fn = 50; difference(){ union(){ translate([-32.5,0,0]) hull(){ translate([1.5,0,0]){ cylinder(h = 16, r = 4.5, $fn = fn); } translate([-1.5,0,0]){ cylinder(h = 16, r = 4.5, $fn = fn); } } translate([32.5,0,0]) hull(){ translate([1.5,0,0]){ cylinder(h = 16, r = 4.5, $fn = fn); } translate([-1.5,0,0]){ cylinder(h = 16, r = 4.5, $fn = fn); } } intersection(){ hull(){ translate([-34,0,5]) cylinder(h = 100, r = 4.5, $fn = fn); translate([34,0,5]) cylinder(h = 100, r = 4.5, $fn = fn); }; difference(){ translate([0,0,-70]) sphere(r = 95, $fn = 5*fn); translate([0,0,-70]) sphere(r = 90, $fn = 5*fn); }; }; }; translate([-32.5,0,-2]){ linear_extrude(height = 18, center = false, convexity = 10, twist = -9*360, $fn = fn) { translate([.25,0,0]) circle(r = 1.75); }; }; translate([32.5,0,-2]){ linear_extrude(height = 18, center = false, convexity = 10, twist = -9*360, $fn = fn) { translate([.25,0,0]) circle(r = 1.75); }; }; };