3d_print/Neptune4/filament_detector_guide.scad
2025-12-15 23:42:49 +01:00

68 lines
No EOL
1.9 KiB
OpenSCAD

include <BOSL2/std.scad>
$fn = 36*5;
t = 5;
rounding = 1;
// base to connect to the printer
base_hole_distance = 40;
base_hole_d = 4.5;
base_dim = [62,25,12];
det_offset = 4;
difference() {
// base
cuboid(base_dim, rounding=rounding, anchor=TOP);
// holes for screws
left(base_hole_distance/2) cyl(d=base_hole_d, h=base_dim[2], chamfer=-1, anchor=TOP);
right(base_hole_distance/2) cyl(d=base_hole_d, h=base_dim[2], chamfer=-1, anchor=TOP);
// hole for screw for filament detector
down(base_dim[2]/2) left(det_offset) ycyl(d=base_hole_d, h=base_dim[1]);
}
// ball bearing holder
bear_up = 25;
bear_fwd = 15;
bear_od = 22;
bear_cover_od = 35; // I have a cover/guide printed on my 608 bearings
bear_id = 8;
bear_w = 8;// bearing is 7mm, +1 for clearance
// bearing mockup to see clearance
// up(bear_up) fwd(bear_fwd) xcyl(d=bear_cover_od);
difference() {
// base for bearing
chain_hull() {
up(bear_up) fwd(bear_fwd) xcyl(d=bear_od, h=bear_w+2*t, rounding=rounding);
cuboid([bear_w + 2*t, base_dim[1],2]);
}
// cutout for bearing
up(bear_up) fwd(bear_fwd) xcyl(d=bear_cover_od + t, h=bear_w);
// hole for screw to hold bearing
up(bear_up) fwd(bear_fwd) xcyl(d=bear_id, h=bear_w + 2*t+0.1);
}
// PTFE tube holder
ptfe_dim = [bear_w + 2*t,9,37];
filament_od = 2.5;
ptfe_od = 4.2;
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);
}