|
@@ -15,14 +15,22 @@ cam_height = 43; // 42.1
|
15
|
15
|
button_size = 12;
|
16
|
16
|
button_dist = 14;
|
17
|
17
|
|
18
|
|
-mic_hole = 2;
|
|
18
|
+mic_hole = 2.5;
|
19
|
19
|
mic_hole_dist = 17.8;
|
|
20
|
+mic_hole_2_width = 2;
|
|
21
|
+mic_hole_2_height = 8;
|
|
22
|
+mic_hole_2_dist = 4.5;
|
20
|
23
|
|
21
|
|
-bottom_hole = 8;
|
|
24
|
+bottom_hole = 8.5;
|
22
|
25
|
bottom_hole_dist = 17.2;
|
|
26
|
+light_hole = 3;
|
|
27
|
+light_hole_dist_x = 9;
|
|
28
|
+light_hole_dist_y = 5.5;
|
23
|
29
|
|
24
|
30
|
wifi_hole = 6.4;
|
25
|
|
-wifi_hole_dist = 18;
|
|
31
|
+wifi_hole_dist = 17.5;
|
|
32
|
+wifi_hole_2 = 3;
|
|
33
|
+wifi_hole_2_dist = 6;
|
26
|
34
|
|
27
|
35
|
mount_width = 3; // 3.1
|
28
|
36
|
mount_gap = 3.2; // 3.1
|
|
@@ -36,10 +44,21 @@ wall_size = 1.8;
|
36
|
44
|
lip_height = 1;
|
37
|
45
|
lip_width = 1.4;
|
38
|
46
|
|
|
47
|
+print_support_size = 10;
|
|
48
|
+print_support_height = 0.4;
|
|
49
|
+
|
39
|
50
|
$fn = 20;
|
40
|
51
|
|
41
|
52
|
// -----------------------------------------------------------
|
42
|
53
|
|
|
54
|
+module print_support() {
|
|
55
|
+ difference() {
|
|
56
|
+ cylinder(d = print_support_size, h = print_support_height);
|
|
57
|
+ translate([0, 0, -1])
|
|
58
|
+ cube([print_support_size / 2, print_support_size / 2, print_support_height + 2]);
|
|
59
|
+ }
|
|
60
|
+}
|
|
61
|
+
|
43
|
62
|
module half_cylinder(d, h) {
|
44
|
63
|
rotate([0, 0, 180])
|
45
|
64
|
difference() {
|
|
@@ -80,15 +99,29 @@ module frameWithButton() {
|
80
|
99
|
rotate([90, 0, 0])
|
81
|
100
|
cylinder(d = mic_hole, h = wall_size + 2);
|
82
|
101
|
|
|
102
|
+ // mic slit
|
|
103
|
+ translate([wall_size + cam_width - mic_hole_2_dist, -1, (cam_depth - mic_hole_2_height) / 2])
|
|
104
|
+ cube([mic_hole_2_width, wall_size + 2, mic_hole_2_height]);
|
|
105
|
+
|
83
|
106
|
// bottom hole
|
84
|
107
|
translate([wall_size + cam_width - bottom_hole_dist, wall_size + 1, cam_depth / 2])
|
85
|
108
|
rotate([90, 0, 0])
|
86
|
109
|
cylinder(d = bottom_hole, h = wall_size + 2);
|
87
|
110
|
|
|
111
|
+ // light hole
|
|
112
|
+ translate([wall_size + light_hole_dist_x, wall_size + 1, cam_depth - light_hole_dist_y])
|
|
113
|
+ rotate([90, 0, 0])
|
|
114
|
+ cylinder(d = light_hole, h = wall_size + 2);
|
|
115
|
+
|
88
|
116
|
// wifi hole
|
89
|
117
|
translate([wall_size + cam_width - 1, wall_size + wifi_hole_dist, cam_depth / 2])
|
90
|
118
|
rotate([0, 90, 0])
|
91
|
119
|
cylinder(d = wifi_hole, h = wall_size + 2);
|
|
120
|
+
|
|
121
|
+ // wifi light hole
|
|
122
|
+ translate([wall_size + cam_width - 1, wall_size + wifi_hole_dist + wifi_hole_2_dist, cam_depth / 2])
|
|
123
|
+ rotate([0, 90, 0])
|
|
124
|
+ cylinder(d = wifi_hole_2, h = wall_size + 2);
|
92
|
125
|
}
|
93
|
126
|
}
|
94
|
127
|
|
|
@@ -117,6 +150,20 @@ module frameLips() {
|
117
|
150
|
|
118
|
151
|
translate([0, 0, cam_depth + lip_height])
|
119
|
152
|
lip();
|
|
153
|
+
|
|
154
|
+ print_support();
|
|
155
|
+
|
|
156
|
+ translate([cam_width + (2 * wall_size), 0, 0])
|
|
157
|
+ rotate([0, 0, 90])
|
|
158
|
+ print_support();
|
|
159
|
+
|
|
160
|
+ translate([cam_width + (2 * wall_size), cam_height + (2 * wall_size), 0])
|
|
161
|
+ rotate([0, 0, 180])
|
|
162
|
+ print_support();
|
|
163
|
+
|
|
164
|
+ translate([0, cam_height + (2 * wall_size), 0])
|
|
165
|
+ rotate([0, 0, 270])
|
|
166
|
+ print_support();
|
120
|
167
|
}
|
121
|
168
|
|
122
|
169
|
module mountArm() {
|
|
@@ -152,8 +199,12 @@ module cover() {
|
152
|
199
|
|
153
|
200
|
translate([wall_size + ((cam_width - (mount_gap + (2 * mount_width))) / 2) + mount_offset, (2 * wall_size) + cam_height, lip_height + (cam_depth / 2)])
|
154
|
201
|
mount();
|
|
202
|
+
|
|
203
|
+ translate([wall_size + (cam_width / 2) + mount_offset, wall_size + cam_height, 0])
|
|
204
|
+ cylinder(d = print_support_size, h = print_support_height);
|
155
|
205
|
}
|
156
|
206
|
|
157
|
207
|
// -----------------------------------------------------------
|
158
|
208
|
|
159
|
|
-cover();
|
|
209
|
+translate([print_support_size / 2, print_support_size / 2, 0])
|
|
210
|
+ cover();
|