
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();
    }
}
*/