$fn=128; difference() { union() { cylinder(h=30,d=23); scale([1,1,0.5]) { sphere(d=23); } translate([0,0,7]) { rotate([0,90,0]) { difference() { cylinder(h=40,d1=24,d2=16); cylinder(h=40,d=12.5); } } } } translate([-12,-5,-3]) { cube([1.5,10,34]); } translate([0,0,-6]) { cylinder(h=36.5,d=16.5); } translate([0,0,12]) { cylinder(h=21,d=12); } } difference() { translate([0,0,24]) { cylinder(h=3,d=18); } translate([0,0,20]) { cylinder(h=10,d=12); } }