eps = 0.01; infty = 1000; lateral_angle = 18; dihedral = 10; wall = 1.0; fuse_w = 36; body_l = 40; foam_w = 3; module plate(w, h, la, d) { intersection() { translate([-eps, -infty/2, -eps]) cube([w, infty, h]); rotate([la, 0, 0]) rotate([0, 0, d]) translate([-infty/2, 0, -infty/2]) cube([infty, wall, infty]); } } for (z = [-1, 1]) for (x = [-1, 1]) scale([x, 1, z]) plate(fuse_w/2, body_l/2, lateral_angle/2, dihedral/2); // lateral beam hull() { for (z = [-1, 1]) scale ([1, 1, z]) { rotate([lateral_angle/2, 0, 0]) translate([-wall/2, 0, 0]) cube([wall, wall/2, foam_w/sin(lateral_angle/2)]); } } // cross beam hull() { for (x = [-1, 1]) scale ([x, 1, 1]) { rotate([0, 0, dihedral/2]) translate([0, wall/2, -wall/2]) cube([fuse_w/2, wall/2, wall]); } }