difference() { polyhedron( points=[ [10,10,0], [10,-10,0], [-10,-10,0], [-10,10,0], [0,0,10] ], faces=[ [0,1,4], [1,2,4], [2,3,4], [3,0,4], [1,0,3], [2,1,3] ] ); translate ([0,0,5]) rotate ([0, 90, 0])cylinder(h=100, r=3, center=true, $fn=100); } difference() { translate([0, 0, 10]) rotate([0, 180, 0]) polyhedron( points=[ [10,10,0], [10,-10,0], [-10,-10,0], [-10,10,0], [0,0,10] ], faces=[ [0,1,4], [1,2,4], [2,3,4], [3,0,4], [1,0,3], [2,1,3] ] ); rotate ([0, 90, 0])cylinder(h=100, r=5, center=true, $fn=100); } difference() { translate([0, 0, 2]) cube(30, true); translate([0, 0, 2]) cube([20, 20, 31], true); translate([0, 0, 2]) cube([20, 31, 20], true); translate([0, 0, 2]) cube([31, 20, 28], true); } difference() { translate ([0, -18, 3.5])rotate ([40,0,0]) translate([0, 0, 2]) cube(30, true); translate ([0, -18, 3.5])rotate ([40,0,0]) translate([0, 0, 2]) cube([25, 25, 31], true); translate ([0, -18, 3.5])rotate ([40,0,0]) translate([0, 0, 2]) cube([25, 31, 25], true); translate ([0, -18, 3.5]) rotate ([40,0,0]) translate([0, 0, 2]) cube([31, 25, 25], true); }