13 pcb_side_l = hole_dist+2*hole_sep;
32 cube([pcb_side_l, body_h, body_w]);
34 translate([-frame_w-frame_wall-frame_wall_front, 0, 0])
35 cube([body_h+frame_w+frame_wall, frame_l + 2*frame_wall, body_w]);
42 translate([pcb_side_l - hole_sep, -eps, body_w-hole_sep])
44 cylinder(r = hole_d/2, h = body_h + 2*eps);
45 // pcb hole near the corner
46 translate([hole_sep, -eps, body_w-hole_sep])
48 cylinder(r = hole_d/2, h = body_h + 2*eps);
50 translate([0, pcb_h, body_w-2*hole_sep])
51 cube([pcb_side_l + eps, frame_l, body_w]);
53 translate([2*hole_sep, pcb_bot, body_w-2*hole_sep])
54 cube([pcb_side_l - 4*hole_sep, body_h, body_w]);
57 translate([-frame_w-frame_wall_front, frame_wall, -eps])
58 cube([frame_w, frame_l, body_w + 2*eps]);
60 translate([-frame_w-frame_wall_front-frame_open_x, frame_wall+frame_open_y, -eps])
61 cube([frame_w, frame_l, body_w + 2*eps]);
62 // frame mounting hole
63 translate([-frame_wall_front-eps-body_h, frame_wall+hole_sep, body_w/2])
66 cylinder(r = hole_d/2, h = body_h + 2*eps, $fn = 6);
68 translate([0, nylon_d/2 + nylon_wall, nylon_d/2 + nylon_wall])
71 cylinder(r = nylon_d/2, h = pcb_side_l + eps, $fn = 6);