module arm_preview(angle) {
    rotate([180, 0, 90 + angle])
        translate([-735, -186.4, 0]) {
            import("Crossfire_2/ArmTall4H.stl");
        }
}


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;


color("DarkViolet") {
    translate([ 24,  24, 29]) arm_preview(- 45 + 180);
    translate([-24,  24, 29]) arm_preview(  45 + 180);
    translate([ 24, -24, 29]) arm_preview(  45);
    translate([-24, -24, 29]) arm_preview(- 45);
}



color("DarkBlue")
translate([0, 60, 0]) difference() {
    union() {
        translate([   0,   0,-  8  ]) cube(size=[150, 55, 20], center = true);
    }
    union() {
        translate([   0,   0,- 10.5]) cube(size=[147, 52, 20], center = true);
        
        translate([   0,  21,-  1.5]) cylinder(d = 3, center = true, h = 7.2);
        translate([   0,- 21,-  1.5]) cylinder(d = 3, center = true, h = 7.2);
        translate([  21,   0,-  1.5]) cylinder(d = 3, center = true, h = 7.2);
        translate([- 21,   0,-  1.5]) cylinder(d = 3, center = true, h = 7.2);
        
        translate([  74,  25,- 15.5]) cube(size=[25, 20, 30], center = true);
        
        // bumper holes are removed
        translate([ 32,   0, 0]) bumper_hole();
        translate([-32,   0, 0]) bumper_hole();
        
        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();
    }
}


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