3d_print/Neptune4/screw_tube.scad
2025-11-14 12:54:17 +01:00

51 lines
No EOL
1 KiB
OpenSCAD

include <BOSL2/std.scad>
include <BOSL2/screws.scad>
h = 15; // if modified, also edit thread length
s_spec = "M8,15";
s_d = 6; // also modify to fit thread
hole_d = 4.38;
base_d = 17;
base_h = 3;
nut_h = 4;
nut_d = 17;
// outside shape
nut_n = 16;
nut_n_d = 2;
oring_od = 13;
oring_t = 1.5;
$fn = 36*3;
$slop=0.1;
module knurl(out_d, knurl_d, n, h) {
for(i = [0 : 360/n : 360]) {
zrot(i) left(out_d/2 + knurl_d/5) cyl(h=h+1, d=knurl_d);
}
}
// thread
difference() {
union() {
up(h/2) screw(s_spec);
up(base_h/2) cyl(h=base_h, d=base_d, chamfer=0.2);
}
up(h/2) cyl(d=hole_d, h=h+0.1, chamfer=-0.5);
up(base_h/2) knurl(base_d, nut_n_d, nut_n, base_h);
// space for oring
up(base_h) torus(od=oring_od, r_min=oring_t/2);
}
// nut
left((nut_d + base_d)/2 + 5) difference() {
union() {
up(nut_h/2) cyl(h=nut_h, d=nut_d, chamfer=0.2);
}
up(nut_h/2) screw_hole(s_spec, thread=true, l=nut_h+0.1, bevel=0.25);
up(nut_h/2) knurl(nut_d, nut_n_d, nut_n, nut_h);
}