8 pcb_side_l = hole_dist+2*hole_sep;
27 cube([pcb_side_l, body_h, body_w]);
29 translate([-frame_w-frame_wall-frame_wall_front, 0, 0])
30 cube([body_h+frame_w+frame_wall, frame_l + 2*frame_wall, body_w]);
37 translate([pcb_side_l - hole_sep, -eps, body_w-hole_sep])
39 cylinder(r = hole_d/2, h = body_h + 2*eps);
40 // pcb hole near the corner
41 translate([hole_sep, -eps, body_w-hole_sep])
43 cylinder(r = hole_d/2, h = body_h + 2*eps);
45 translate([0, pcb_h, body_w-2*hole_sep])
46 cube([pcb_side_l + eps, frame_l, body_w]);
48 translate([2*hole_sep, pcb_bot, body_w-2*hole_sep])
49 cube([pcb_side_l - 4*hole_sep, body_h, body_w]);
52 translate([-frame_w-frame_wall_front, frame_wall, -eps])
53 cube([frame_w, frame_l, body_w + 2*eps]);
55 translate([-frame_w-frame_wall_front-frame_open_x, frame_wall+frame_open_y, -eps])
56 cube([frame_w, frame_l, body_w + 2*eps]);
57 // frame mounting hole
58 translate([-frame_wall_front-eps-body_h, frame_wall+hole_sep, body_w/2])
61 cylinder(r = hole_d/2, h = body_h + 2*eps, $fn = 6);
63 translate([0, nylon_d/2 + nylon_wall, nylon_d/2 + nylon_wall])
66 cylinder(r = nylon_d/2, h = pcb_side_l + eps, $fn = 6);