difference() { union() { difference() { translate([0, -1, 0]) cube([15, 3, 17]); translate([10.5, -2, 8.5]) rotate([0, 90, 90]) cylinder(5, d=3.5, $fn=100); } cube([2, 35.5, 17]); translate([0, 30, 0]) cube([13, 2, 17]); translate([0, 36, 0]) rotate(5) cube([13, 2, 17]); intersection() { translate([-3, 0, 8]) rotate([0, 45, 0]) cube([6, 30, 6]); translate([0, 0, 4]) cube([6, 29.5, 8]); } intersection() { translate([1, -6, 0]) rotate(45) cube([9, 9, 17]); translate([0, 0, 0]) cube([9, 9, 17]); } intersection() { translate([1, 25, 0]) rotate(45) cube([9, 9, 17]); translate([0, 21, 0]) cube([9, 9, 17]); } intersection() { translate([1, 29, 0]) rotate(45) cube([4, 4, 17]); translate([0, 28, 0]) cube([9, 9, 17]); } intersection() { translate([1.5, 34, 0]) rotate(45) cube([4, 4, 17]); translate([0, 28, 0]) cube([9, 9, 17]); } } rotate([5, 0, 0]) translate([-1, -2, -1]) cube([25, 3, 25]); }