eps = 0.01; infty = 300; fuse_w = 60; fuse_h = 30-3; fuse_l = 80; wall = 2; front_h = 5; wing_hole_x = 25; wing_hole_l = 25; wing_hole_h = 12; difference() { translate([0, -fuse_w/2, 0]) intersection() { cube([fuse_l, fuse_w, fuse_h]); translate([0, 0, front_h]) scale([fuse_l/(fuse_h-front_h), 1, 1]) rotate([-90, 0, 0]) cylinder(r = fuse_h-front_h, h = fuse_w, $fn = 128); } // inner space difference() { translate([-eps, -fuse_w/2+wall, wall]) cube([fuse_l + 2*eps, fuse_w-2*wall, fuse_h]); // front beams translate([fuse_l, fuse_w/2, wall + 5]) rotate([0, 60, 0]) translate([0, -infty/2, -infty/2]) cube(infty); // sides for (y = [-1, 1]) scale([1, y, 1]) translate([0, fuse_w/2, -10*0.707]) rotate([45, 0, 0]) cube([fuse_l, 10, 10]); }; // wing hole translate([wing_hole_x, -fuse_w/2-eps, wall]) cube([wing_hole_l, fuse_w + 2*eps, wing_hole_h]); // center squares for (x = [9:16:fuse_l - 15]) for (y = [0,16]) for (n = [0, 16/2]) for (s = [-1, 1]) scale([1, s, 1]) translate([x+n, y-n, -eps]) cylinder(r = 6, h = wall + 2*eps, $fn = 4); }