]> www.fi.muni.cz Git - things.git/blob - skrpro-mount.scad
6de9377344a599215a5cd8572a3b2372e39f1e23
[things.git] / skrpro-mount.scad
1 eps = 0.01;
2 infty = 200;
3
4 hole_dist = 87;
5 hole_d = 3;
6 hole_sep = 5;
7
8 pcb_side_l = hole_dist+2*hole_sep;
9 frame_l = 56;
10 frame_w = 6.5;
11 frame_wall = 2.5;
12 frame_wall_front = 4;
13
14 body_w = 15;
15 body_h = 15;
16 pcb_h  = 12;
17 pcb_bot = 8;
18
19 frame_open_x = 5;
20 frame_open_y = 15;
21
22 nylon_d = 3 + 0.7;
23 nylon_wall = 2;
24
25 module body() {
26         // pcb-side arm
27         cube([pcb_side_l, body_h, body_w]);
28         // frame-side arm
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]);
31 }
32
33 difference() {
34         body();
35
36         // pcb hole far
37         translate([pcb_side_l - hole_sep, -eps, body_w-hole_sep])
38                 rotate([-90, 0, 0])
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])
42                 rotate([-90, 0, 0])
43                 cylinder(r = hole_d/2, h = body_h + 2*eps);
44         // pcb
45         translate([0, pcb_h, body_w-2*hole_sep])
46                 cube([pcb_side_l + eps, frame_l, body_w]);
47         // under the pcb
48         translate([2*hole_sep, pcb_bot, body_w-2*hole_sep])
49                 cube([pcb_side_l - 4*hole_sep, body_h, body_w]);
50
51         // frame
52         translate([-frame_w-frame_wall_front, frame_wall, -eps])
53                 cube([frame_w, frame_l, body_w + 2*eps]);
54         // frame opening
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])
59                 rotate([0, 90, 0])
60                 rotate([0, 0, 90])
61                 cylinder(r = hole_d/2, h = body_h + 2*eps, $fn = 6);
62         // nylon string hole
63         translate([0, nylon_d/2 + nylon_wall, nylon_d/2 + nylon_wall])
64         rotate([0, 90, 0])
65         rotate([0, 0, 90])
66                 cylinder(r = nylon_d/2, h = pcb_side_l + eps, $fn = 6);
67 }
68