$fn=90; use ; difference() { union() { hull() { translate([0,0,10]) rotate_extrude() translate([30/2-2, 0]) #circle(r=2); cylinder(d=30, h=10); } for(i=[0:360/12:359]) rotate([0,0,i]) translate([15,0,1]) hull() { translate([0,0,8]) sphere(d=2); sphere(d=2); } } render() metric_thread( diameter=27, pitch=3.5, thread_size=2, length=8, groove=true ); translate([0,0,8]) cylinder(d=26.5, h=2); translate([0,0,-0.01]) union() { cylinder(d=19, h=20); cylinder(d1=27, d2=26, h=1); } }