]> www.fi.muni.cz Git - things.git/blob - skrpro-mount.scad
SKRPro mount
[things.git] / skrpro-mount.scad
1 eps = 0.01;
2 infty = 200;
3
4 hole_dist = 87;
5 hole_d = 2.5;
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;
12 frame_wall_front = 4;
13
14 body_w = 15;
15 body_h = 10;
16 pcb_h  = 7;
17 pcb_bot = 3;
18
19 frame_open_x = 3;
20 frame_open_y = 15;
21
22 module body() {
23         // pcb-side arm
24         cube([pcb_side_l, body_h, body_w]);
25         // frame-side arm
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]);
28 }
29
30 difference() {
31         body();
32
33         // pcb hole far
34         translate([pcb_side_l - hole_sep, -eps, body_w-hole_sep])
35                 rotate([-90, 0, 0])
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])
39                 rotate([-90, 0, 0])
40                 cylinder(r = hole_d/2, h = body_h + 2*eps);
41         // pcb
42         translate([0, pcb_h, body_w-2*hole_sep])
43                 cube([pcb_side_l + eps, frame_l, body_w]);
44         // under the pcb
45         translate([2*hole_sep, pcb_bot, body_w-2*hole_sep])
46                 cube([pcb_side_l - 4*hole_sep, body_h, body_w]);
47
48         // frame
49         translate([-frame_w-frame_wall_front, frame_wall, -eps])
50                 cube([frame_w, frame_l, body_w + 2*eps]);
51         // frame opening
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])
56                 rotate([0, 90, 0])
57                 rotate([0, 0, 90])
58                 cylinder(r = hole_d/2, h = body_h + 2*eps, $fn = 6);
59 }
60