difference(){ union(){ translate([-1,-1,0]) cube([16.2,16.2,18]); translate([4,-8,0]) cube([6,10,18]); translate([1,-8,0]) cube([12,10,2.5]); translate([7,0,8]) rotate([90,0,0]) cylinder(h=8,r=8,$fn=20); rotate([90,0,0]) translate([7,8,8]) cylinder(h=4, r1=8, r2=20, center=yes); rotate([90,0,0]) translate([7,8,12]) difference() { cylinder(h=10, r=20); cylinder(h=10, r=17); } } translate([2,2,-2]) cube([10.2,10.2,50]); translate([7,0,8]) rotate([90,0,0]) cylinder(h=50,r=4.7,$fn=20); translate([7,-4.5,-10]) rotate([0,0,0]) cylinder(h=37,r=1.5,$fn=20); translate([-14,-25,-20]) rotate([0,0,0]) cube([40,40,20]); }