- translate([-infty/2, -foam_horiz/2, base_wall])
- cube([infty, foam_horiz, support_h + eps]);
- translate([-diamond_x1, 0, base_wall])
- cube([2*diamond_x1, foam_horiz/2, support_h + eps]);
+ body_solid();
+ // center hole
+ translate([0, 0, -eps])
+ cylinder(r = center_hole/2, h = base_wall + 2*eps);
+ // horizontal foam
+ difference() {
+ translate([-infty/2, -foam_horiz/2, base_wall])
+ cube([infty, foam_horiz, infty]);
+ // in the center there is only bottom half of the foam
+ translate([-fuse_w/2, 0, base_wall-eps])
+ cube([fuse_w, foam_horiz/2, infty]);
+ }
+ // screw holes
+ for (angle = [0:90:360])
+ rotate([0, 0, angle])
+ translate([screw_dist/2, 0, -eps])
+ cylinder(r = screw_d/2, h = base_wall + 2*eps);
+ // fuse clips inside
+ hull() for (x = [-1, 1]) for (y = [-1, 1]) scale([x, y, 1]) {
+ translate([fuse_w/2 - wall/sin(atan(fuse_h/fuse_w)), 0, base_wall])
+ cylinder(r = eps, h = base_wall + fuse_top, $fn = 4);
+ translate([0, fuse_h/2 - wall/sin(atan(fuse_w/fuse_h)), base_wall])
+ cylinder(r = eps, h = base_wall + fuse_top, $fn = 4);
+ }