$screw_offset = 0; // 26 $ptfe_hole_diameter = 4.4; // 4.1 difference() { union() { box1(); translate([0, 0, 10]) rotate([90, 0, 0]) torus(i=7, o=15, xs=0.4, ys=1.5, $fn=100); } translate([0, $screw_offset, 3.70]) cube([5.6, 3.235, 2.61], center=true); translate([0, $screw_offset, 3.70]) rotate([0, 0, 60]) cube([5.6, 3.235, 2.61], center=true); translate([0, $screw_offset, 3.70]) rotate([0, 0, -60]) cube([5.6, 3.235, 2.61], center=true); translate([0, $screw_offset, 0]) cylinder(h=10, d=3.2, center=true, $fn=100); translate([0, $screw_offset, -4.5]) cylinder(h=1.01, d=4.4, center=true, $fn=100); } module box1() { hull() { for (x = [-8, 8]) { for (y = [-4, 4]) { for (z = [-3, 3]) { translate([x, y, z]) sphere(d=4, $fn=100); } } } } } module torus(i, o, xs=1.0, ys=1.0) { r = (o - i) / 2; rotate_extrude() translate([i + r, 0, 0]) scale([xs, ys, 1.0]) circle(r); }