]> www.fi.muni.cz Git - things.git/blob - camera-spring-base.scad
Base plate for the ziptie-spring mounted camera
[things.git] / camera-spring-base.scad
1 infty = 200;
2 eps = 0.01;
3
4 wall = 1.5;
5
6 ziptie_w = 4;
7 ziptie_h = 3;
8
9 x_sep = 36;
10
11 corner_l = 9;
12 corner_w = 3;
13
14 hole1_yoff = 20;
15 hole2_yoff = 10;
16
17 body_w = 2*(hole1_yoff+ziptie_h/2+corner_w);
18 body_l = x_sep + 2*ziptie_w + 2*corner_w;
19
20 hook_w = 2;
21 hook_hole = 1.5;
22
23 difference() {
24         union() {
25                 translate([-body_l/2, -body_w/2, 0])
26                         cube([body_l, body_w, wall]);
27                 
28                 // support raised corners
29                 for (x = [-1, 1]) for (y = [-1, 1]) scale([x, y, 1]) {
30                         translate([body_l/2-corner_w, body_w/2-corner_l, 0])
31                                 cube([corner_w, corner_l, 2*wall]);
32                         translate([x_sep/2-corner_w, body_w/2-corner_l, 0])
33                                 cube([corner_w, corner_l, 2*wall]);
34                 }
35
36                 // rubber hooks
37                 for (x = [-1, 1]) for (y = [-1, 1]) scale([x, y, 1]) {
38                         translate([body_l/2-eps, body_w/2-hook_w, 0])
39                                 cube([hook_w+hook_hole+eps, hook_w, wall]);
40                         translate([body_l/2+hook_hole, body_w/2-hook_w-hook_hole, 0])
41                                 cube([hook_w, 2*hook_hole+2*hook_w, wall]);
42                         translate([body_l/2, body_w/2+hook_hole, 0])
43                                 cube([hook_w+hook_hole, hook_w, wall]);
44                 }
45         }
46
47         // center hole
48         translate([-x_sep/2+corner_w, -body_w/2+corner_l, -eps])
49                 cube([x_sep-2*corner_w, body_w-2*corner_l, 2*wall+2*eps]);
50
51         // ziptie angles
52         for (x = [-1, 1]) for (y = [-1, 1]) for (y1 = [-hole2_yoff, hole1_yoff])
53                 scale([x, y, 1]) translate([x_sep/2, y1, wall])
54                         rotate([-40, 0, 0])
55                         translate([0, -ziptie_h/2, -infty/2])
56                         cube([ziptie_w, ziptie_h, infty]);
57 }