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