86 lines
No EOL
2.4 KiB
OpenSCAD
86 lines
No EOL
2.4 KiB
OpenSCAD
include <BOSL2/std.scad>
|
|
|
|
$fn = 36*5;
|
|
t = 5;
|
|
rounding = 1;
|
|
|
|
// base to connect to the printer
|
|
base_hole_distance = 40;
|
|
base_frame_hole_d = 4.5;
|
|
base_dim = [61,23,12];
|
|
|
|
// I had a M3x30 screw, with a head diameter of ~5.5mm
|
|
base_det_screw_l = 30;
|
|
base_det_screw_d = 3.5;
|
|
base_det_screw_head = 6;
|
|
|
|
det_offset = 0; // NO offset to the left, because the Elegoo filament detector IS centered
|
|
|
|
|
|
difference() {
|
|
// base
|
|
cuboid(base_dim, rounding=rounding, anchor=TOP);
|
|
// holes for screws
|
|
left(base_hole_distance/2) cyl(d=base_frame_hole_d, h=base_dim[2], chamfer=-1, anchor=TOP);
|
|
right(base_hole_distance/2) cyl(d=base_frame_hole_d, h=base_dim[2], chamfer=-1, anchor=TOP);
|
|
|
|
down(base_dim[2]/2) left(det_offset) union() {
|
|
// hole for screw for filament detector
|
|
ycyl(d=base_det_screw_d, h=base_dim[1]);
|
|
// hole for the screw head
|
|
back(base_det_screw_l - 15) ycyl(d=base_det_screw_head, h=base_dim[1]);
|
|
}
|
|
|
|
}
|
|
|
|
// ball bearing holder
|
|
bear_up = 25;
|
|
bear_fwd = 15;
|
|
bear_left = 30; // move for easier visuals
|
|
|
|
// 608 bearing
|
|
bear_od = 22;
|
|
bear_cover_od = 32;
|
|
bear_id = 8;
|
|
bear_w = 7;
|
|
|
|
difference() {
|
|
// base for bearing
|
|
chain_hull() {
|
|
up(bear_up) fwd(bear_fwd) xcyl(d=bear_od, h=bear_w+1+2*t, rounding=rounding);
|
|
cuboid([bear_w+1 + 2*t, base_dim[1],2]);
|
|
}
|
|
// cutout for bearing
|
|
up(bear_up) fwd(bear_fwd) xcyl(d=bear_cover_od + t, h=bear_w+1);
|
|
// hole for screw to hold bearing
|
|
up(bear_up) fwd(bear_fwd) xcyl(d=bear_id, h=bear_w+1 + 2*t+0.1);
|
|
}
|
|
|
|
// bearing cover
|
|
left(bear_left) up(bear_up) fwd(bear_fwd) difference() {
|
|
union() {
|
|
xcyl(h=bear_w, d1=bear_od, d2=bear_cover_od);
|
|
xcyl(h=bear_w, d2=bear_od, d1=bear_cover_od);
|
|
}
|
|
xcyl(d=bear_od, h=bear_w);
|
|
}
|
|
|
|
// PTFE tube holder
|
|
ptfe_dim = [bear_w+1 + 2*t,9,37];
|
|
filament_od = 2.5;
|
|
ptfe_od = 4.4;
|
|
|
|
difference() {
|
|
union() {
|
|
// upright square
|
|
back(base_dim[1]/2) down(rounding) cuboid(ptfe_dim, anchor=BACK+BOTTOM);
|
|
// upright round top
|
|
up(ptfe_dim[2]-rounding) back(base_dim[1]/2)
|
|
ycyl(h=ptfe_dim[1], d=ptfe_dim[0], anchor=BACK);
|
|
}
|
|
// hole for filament
|
|
up(ptfe_dim[2]-rounding) back(base_dim[1]/2) ycyl(h=ptfe_dim[1], d=filament_od, anchor=BACK);
|
|
// hole for PTFE tube
|
|
up(ptfe_dim[2]-rounding) back(base_dim[1]/2) ycyl(h=ptfe_dim[1]/2, d=ptfe_od, rounding1=1, rounding2=-0.5, anchor=BACK);
|
|
|
|
} |