%translate([0, 0, -50]) cylinder(h=100, d=15.5); difference() { union() { cylinder(h=10, d=20); polyhedron( points=[ [-10, 15, 0], [10, 15, 0], [10, 15, 10], [-10, 15, 10], [-5, 5, 0], [5, 5, 0], [5, 5, 10], [-5, 5, 10] ], faces=[ [0, 1, 2], [0, 2, 3], [0, 7, 4], [0, 3, 7], [4, 6, 5], [4, 7, 6], [1, 5, 6], [1, 6, 2], [7, 2, 6], [7, 3, 2], [0, 4, 1], [1, 4, 5] ] ); }; translate([0, 0, -1]) rotate([0, 0, -150]) cube([10, 10, 12]); translate([0, 0, -1]) rotate([0, 0, -120]) cube([10, 10, 12]); translate([0, 0, -1]) cylinder(h=12, d=16); translate([0, 0, 5]) rotate([-90, 0, 0]) cylinder(h=20, d=3.5); translate([0, 7.75, 5]) rotate([-90, 0, 0]) union() { cylinder(h=2.5, d1=7, d2=3.5); translate([0,0,-4.5]) cylinder(h=5, d=7); } };