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