8 pcb_side_l = hole_dist+2*hole_sep;
24 cube([pcb_side_l, body_h, body_w]);
26 translate([-frame_w-frame_wall-frame_wall_front, 0, 0])
27 cube([body_h+frame_w+frame_wall, frame_l + 2*frame_wall, body_w]);
34 translate([pcb_side_l - hole_sep, -eps, body_w-hole_sep])
36 cylinder(r = hole_d/2, h = body_h + 2*eps);
37 // pcb hole near the corner
38 translate([hole_sep, -eps, body_w-hole_sep])
40 cylinder(r = hole_d/2, h = body_h + 2*eps);
42 translate([0, pcb_h, body_w-2*hole_sep])
43 cube([pcb_side_l + eps, frame_l, body_w]);
45 translate([2*hole_sep, pcb_bot, body_w-2*hole_sep])
46 cube([pcb_side_l - 4*hole_sep, body_h, body_w]);
49 translate([-frame_w-frame_wall_front, frame_wall, -eps])
50 cube([frame_w, frame_l, body_w + 2*eps]);
52 translate([-frame_w-frame_wall_front-frame_open_x, frame_wall+frame_open_y, -eps])
53 cube([frame_w, frame_l, body_w + 2*eps]);
54 // frame mounting hole
55 translate([-frame_wall_front-eps-body_h, frame_wall+hole_sep, body_w/2])
58 cylinder(r = hole_d/2, h = body_h + 2*eps, $fn = 6);