20 for (x = [-1, 1]) for (y = [-1, 1]) scale([x, y, 1])
21 translate([body_l/2 - corner_r,
22 body_w/2 - corner_r, 0])
23 cylinder(r = corner_r + wall, h = wall);
25 // translate([-body_l/2+corner_r + hook_l, -body_w/2+corner_r, -eps])
26 // cube([body_l-2*corner_r-2*hook_l, body_w - 2*corner_r, wall +2*eps]);
27 translate([-body_l/2+corner_r, -body_w/2+corner_r, -eps])
28 cube([body_l-2*corner_r, body_w - 2*corner_r, wall +2*eps]);
31 // raised corner bottom
32 for (x = [-1, 1]) for (y = [-1, 1]) scale([x, y, 1])
33 translate([body_l/2 - corner_r,
34 body_w/2 - corner_r, wall-eps])
36 cylinder(r = corner_r + wall, h = wall+eps);
37 translate([-infty, -infty/2, -infty/2]) cube(infty);
38 translate([-infty/2, -infty, -infty/2]) cube(infty);
43 for (x = [-1, 1]) for (y = [-1, 1]) scale([x, y, 1])
44 translate([body_l/2 - corner_r,
45 body_w/2 - corner_r, 2*wall-eps])
47 cylinder(r = corner_r + wall, h = corner_side_h+eps);
48 translate([0, 0,-eps])
49 cylinder(r = corner_r, h = infty);
50 translate([-infty, -infty/2, -infty/2]) cube(infty);
51 translate([-infty/2, -infty, -infty/2]) cube(infty);
55 for (x = [-1, 1]) for (y = [-1, 1]) scale([x, y, 1])
57 translate([body_l/2 - corner_r - hook_l,
58 body_w/2 - corner_r, 0])
59 cube([hook_l, hook_w + corner_r + wall, 2*wall]);
60 translate([body_l/2 - corner_r - hook_hole_l,
61 body_w/2 + wall, -eps])
62 cube([hook_hole_l + eps, hook_hole_w, 2*wall+2*eps]);