$fn=50; difference() { union() { difference() { union() { union() { cube([20, 50, 2.1]); translate([0, 2.1, 0]) cube([2.1, 50-2.1, 5.1]); translate([20-2.1, 2.1, 0]) cube([2.1, 50-2.1, 5.1]); }; intersection() { union() { cube([2.1, 5, 5.1]); translate([20-2.1, 0, 0]) cube([2.1, 5, 5.1]); } translate([-5, 2.5, 5.1-2.5]) rotate([0, 90, 0]) cylinder(h=30, r=2.5); } translate([0.1, 50-2.5, 2.5]) rotate([0, -90, 0]) cylinder(h=1.85, d=2.2); translate([19.9, 50-2.5, 2.5]) rotate([0, 90, 0]) cylinder(h=1.85, d=2.2); translate([2.6+1.5, 50-2.5, 0]) cube([11.8, 2.5, 5]); difference() { translate([9.3, 11.8, 0]) cube([1.3, 37, 5]); translate([9.2, 11.7, 2.5]) rotate([22.5, 0, 0]) cube([2, 6.8, 5]); } translate([0.5, 44, 5-(2.1/2)]) rotate([0, -90, 0]) cylinder(h=1.5, d=2.1); translate([20-0.5, 44, 5-(2.1/2)]) rotate([0, 90, 0]) cylinder(h=1.5, d=2.1); } difference() { translate([-2.5, 50-2.4, -2.5]) cube([25, 2.5, 10]); translate([-5, 50-2.5, 2.5]) rotate([0, 90, 0]) cylinder(h=30, r=2.5); } } } translate([2.6, 40, -1]) cube([1.5, 15, 4]); translate([20-2.6-1.5, 40, -1]) cube([1.5, 15, 4]); }