module bumper_hole() { rotate([0, 180, 0]) translate([0, 0, -1]) union() { cylinder(d = 8.5, center = true, h = 3.1); translate([0, 0, 0.76]) cylinder(d = 14.5, center = true, h = 1.5); } } module band_hole() { translate([0, 0, 1.5]) union() { translate([ 9, 0, 0]) cylinder(d = 4, center = true, h = 5); translate([- 9, 0, 0]) cylinder(d = 4, center = true, h = 5); cube([18, 4, 5], center = true); } } $fn=30; translate([0, 70, 0]) difference() { union() { translate([ 0, 0,- 8 ]) cube(size=[150, 67, 20], center = true); } union() { translate([ 0, 0,- 10.5]) cube(size=[147, 64, 20], center = true); translate([ 74, -25,- 15.5]) cube(size=[25, 20, 30], center = true); // bumper holes are removed rotate([0, 0, 45]) { translate([ 0, 32, 0]) bumper_hole(); translate([ 0,- 32, 0]) bumper_hole(); translate([ 32, 0, 0]) bumper_hole(); translate([-32, 0, 0]) bumper_hole(); } translate([ 20, 32, 0]) band_hole(); translate([ 20,- 32, 0]) band_hole(); translate([-20, 32, 0]) band_hole(); translate([-20,- 32, 0]) band_hole(); } } /* difference() { union() { translate([ 0, 0,- 4]) cube(size=[150, 55, 10], center = true); } union() { translate([ 0, 0,- 4.5]) cube(size=[147, 52, 10], center = true); translate([74, 25,- 15.5]) cube(size=[25, 20, 30], center = true); translate([ 20, 26, -1.5]) band_hole(); translate([ 20,- 26, -1.5]) band_hole(); translate([-20, 26, -1.5]) band_hole(); translate([-20,- 26, -1.5]) band_hole(); } } */