|
@@ -56,31 +56,40 @@ switch_screw_l = 10.0;
|
56
|
56
|
switch_screw_d = 15.0;
|
57
|
57
|
switch_off = 15;
|
58
|
58
|
|
59
|
|
-bat_h = bat_l + bat_spring_dist + 2 * bat_wall + 2 * bat_tab_d;
|
60
|
|
-
|
61
|
|
-$fn = 42;
|
62
|
|
-
|
63
|
|
-echo("sensor_distance", height - 2 * led_off);
|
64
|
|
-
|
65
|
|
-// https://dkprojects.net/openscad-threads/
|
66
|
|
-include <extern/threads.scad>
|
67
|
|
-
|
68
|
59
|
// 1911
|
69
|
60
|
thread_profile_1911 = [
|
70
|
61
|
true, // type is_male
|
71
|
62
|
12.0, // diameter
|
72
|
63
|
1.0, // pitch
|
73
|
64
|
0.0, // offset
|
74
|
|
- 9.0 // length
|
|
65
|
+ 9.0, // length
|
|
66
|
+ 0.0, // offset dia
|
|
67
|
+ 9.1, // inner hole
|
|
68
|
+ true, // is cw thread
|
75
|
69
|
];
|
76
|
70
|
|
77
|
|
-// M14x1.0 female thread
|
78
|
|
-thread_profile_m14 = [
|
|
71
|
+// M14x1.0 CW female thread
|
|
72
|
+thread_profile_m14_cw = [
|
79
|
73
|
false, // type is_male
|
80
|
74
|
14.0, // diameter
|
81
|
75
|
1.0, // pitch
|
82
|
76
|
0.0, // offset
|
83
|
|
- 12.0 // length
|
|
77
|
+ 12.0, // length
|
|
78
|
+ 0.0, // offset dia
|
|
79
|
+ 8.5, // inner hole
|
|
80
|
+ true, // is cw thread
|
|
81
|
+];
|
|
82
|
+
|
|
83
|
+// M14x1.0 CCW female thread
|
|
84
|
+thread_profile_m14_ccw = [
|
|
85
|
+ false, // type is_male
|
|
86
|
+ 14.0, // diameter
|
|
87
|
+ 1.0, // pitch
|
|
88
|
+ 0.0, // offset
|
|
89
|
+ 12.0, // length
|
|
90
|
+ 0.0, // offset dia
|
|
91
|
+ 8.5, // inner hole
|
|
92
|
+ false, // is cw thread
|
84
|
93
|
];
|
85
|
94
|
|
86
|
95
|
// ASG / KWC Cobray Ingram M11 CO2 NBB 6mm
|
|
@@ -88,17 +97,30 @@ thread_profile_mac11 = [
|
88
|
97
|
false, // type is_male
|
89
|
98
|
16.5, // diameter
|
90
|
99
|
1.5, // pitch
|
91
|
|
- 8.0, // offset
|
92
|
|
- 10.0 // length
|
|
100
|
+ 9.0, // offset
|
|
101
|
+ 10.0, // length
|
|
102
|
+ 20.0, // offset dia
|
|
103
|
+ 8.5, // inner hole
|
|
104
|
+ true, // is cw thread
|
93
|
105
|
];
|
94
|
106
|
|
95
|
|
-// debug / testing
|
96
|
|
-thread_profile_none = [ false, 0, 0, 0, 0 ];
|
|
107
|
+thread_profile_giant = [
|
|
108
|
+ false, // type is_male
|
|
109
|
+ 34.0, // diameter
|
|
110
|
+ 1.0, // pitch
|
|
111
|
+ 0.0, // offset
|
|
112
|
+ 10.0, // length
|
|
113
|
+ 0.0, // offset dia
|
|
114
|
+ 8.5, // inner hole
|
|
115
|
+ true, // is cw thread
|
|
116
|
+];
|
97
|
117
|
|
98
|
118
|
thread_profiles = [
|
99
|
119
|
thread_profile_1911,
|
100
|
|
- thread_profile_m14,
|
101
|
|
- thread_profile_mac11
|
|
120
|
+ thread_profile_m14_cw,
|
|
121
|
+ thread_profile_m14_ccw,
|
|
122
|
+ thread_profile_mac11,
|
|
123
|
+ thread_profile_giant
|
102
|
124
|
];
|
103
|
125
|
|
104
|
126
|
thread_base = 5.0;
|
|
@@ -114,8 +136,6 @@ thread_adapter_screw_inset = 5;
|
114
|
136
|
thread_adapter_in_body = 5;
|
115
|
137
|
thread_adapter_h = body_screw_insert_height - thread_adapter_in_body;
|
116
|
138
|
|
117
|
|
-enable_gap_support = true;
|
118
|
|
-
|
119
|
139
|
text1 = [
|
120
|
140
|
"OpenChrono",
|
121
|
141
|
"Liberation Sans:style=Bold",
|
|
@@ -131,14 +151,93 @@ text2 = [
|
131
|
151
|
-60
|
132
|
152
|
];
|
133
|
153
|
|
|
154
|
+text3 = [
|
|
155
|
+ "OpenChrono",
|
|
156
|
+ "Liberation Sans:style=Bold",
|
|
157
|
+ 12.0 - 4,
|
|
158
|
+ 1.0,
|
|
159
|
+ 70
|
|
160
|
+];
|
|
161
|
+text4 = [
|
|
162
|
+ "by xythobuz.de",
|
|
163
|
+ "Liberation Sans:style=Bold",
|
|
164
|
+ 9.0 - 2,
|
|
165
|
+ 1.0,
|
|
166
|
+ -70
|
|
167
|
+];
|
|
168
|
+
|
134
|
169
|
texts_left = [ text1, text2 ];
|
|
170
|
+texts_lipo = [ text3, text4 ];
|
|
171
|
+
|
|
172
|
+lipo_lid_height = 65;
|
|
173
|
+lipo_lid_width = 80;
|
|
174
|
+lipo_lid_d = 3.0;
|
|
175
|
+lipo_lid_gap = 0.5;
|
|
176
|
+lipo_lid_gap_d = 0.2;
|
|
177
|
+
|
|
178
|
+lipo_lid_screw_d_small = 2.8;
|
|
179
|
+lipo_lid_screw_d_big = 3.3;
|
|
180
|
+lipo_lid_screw_area = 10;
|
|
181
|
+lipo_lid_screw_len = 10.0;
|
|
182
|
+lipo_lid_screw_off = 5.0;
|
|
183
|
+
|
|
184
|
+lipo_lid_compartment_d = 15.0;
|
|
185
|
+lipo_lid_compartment_w = lipo_lid_width - 2 * lipo_lid_screw_area - 5;
|
|
186
|
+
|
|
187
|
+lipo_pcb_w = 18.0;
|
|
188
|
+lipo_pcb_h = 29.0;
|
|
189
|
+lipo_pcb_d = 5.0;
|
|
190
|
+lipo_pcb_usb_w = 9.0;
|
|
191
|
+lipo_pcb_usb_h = 3.6;
|
|
192
|
+lipo_pcb_usb_off = 1.4;
|
|
193
|
+lipo_pcb_usb_wall = 1.5;
|
|
194
|
+lipo_pcb_led_dia = 2.0;
|
|
195
|
+lipo_pcb_led_dist = 5.0;
|
|
196
|
+lipo_pcb_led_off_x = 1.75;
|
|
197
|
+lipo_pcb_led_off_z = 7.0;
|
|
198
|
+
|
|
199
|
+lipo_w = 30.0;
|
|
200
|
+lipo_h = 43.0;
|
|
201
|
+lipo_d = 9.0;
|
135
|
202
|
|
|
203
|
+enable_gap_support = true;
|
136
|
204
|
include_uv_leds = true;
|
137
|
205
|
|
|
206
|
+lipo_lid_angle = circum_angle(lipo_lid_width - lipo_lid_gap * 2, outer_dia);
|
|
207
|
+lipo_lid_angle_hole = circum_angle(lipo_lid_width, outer_dia);
|
|
208
|
+lipo_lid_angle_compartment = circum_angle(lipo_lid_compartment_w, outer_dia);
|
|
209
|
+
|
|
210
|
+bat_h = bat_l + bat_spring_dist + 2 * bat_wall + 2 * bat_tab_d;
|
|
211
|
+
|
|
212
|
+$fn = 42;
|
|
213
|
+
|
|
214
|
+echo("sensor_distance", height - 2 * led_off);
|
|
215
|
+
|
|
216
|
+if (include_uv_leds)
|
|
217
|
+echo("uv_led_distance", led_off / 2);
|
|
218
|
+
|
|
219
|
+// https://dkprojects.net/openscad-threads/
|
|
220
|
+include <extern/threads.scad>
|
|
221
|
+
|
138
|
222
|
// how deep things on the outside have to be set in
|
139
|
223
|
function circle_offset_deviation(off, dia) =
|
140
|
224
|
dia * (1 - sin(acos(off * 2 / dia))) / 2;
|
141
|
225
|
|
|
226
|
+// circumference to angle
|
|
227
|
+function circum_angle(width, dia) = width / dia * 180 / 3.141;
|
|
228
|
+
|
|
229
|
+// from https://3dprinting.stackexchange.com/questions/10638/creating-pie-slice-in-openscad
|
|
230
|
+module pie_slice(r, a) {
|
|
231
|
+ intersection() {
|
|
232
|
+ circle(r = r);
|
|
233
|
+
|
|
234
|
+ square(r);
|
|
235
|
+
|
|
236
|
+ rotate(a - 90)
|
|
237
|
+ square(r);
|
|
238
|
+ }
|
|
239
|
+}
|
|
240
|
+
|
142
|
241
|
module lcd_cutout() {
|
143
|
242
|
difference() {
|
144
|
243
|
cube([lcd_pcb_w, lcd_pcb_h, lcd_pcb_d + 10]);
|
|
@@ -150,8 +249,8 @@ module lcd_cutout() {
|
150
|
249
|
|
151
|
250
|
// TODO hacky
|
152
|
251
|
if (enable_gap_support)
|
153
|
|
- translate([0, (lcd_pcb_w - 1) / 2, 0])
|
154
|
|
- cube([lcd_pcb_w, 1, 9]);
|
|
252
|
+ translate([0, (lcd_pcb_w - 1) / 2, 1])
|
|
253
|
+ cube([lcd_pcb_w, 1, 8]);
|
155
|
254
|
}
|
156
|
255
|
|
157
|
256
|
for (x = [0, lcd_hole_off_x])
|
|
@@ -199,25 +298,29 @@ module thread(profile, thread_draw) {
|
199
|
298
|
// male thread
|
200
|
299
|
difference() {
|
201
|
300
|
union() {
|
202
|
|
- cylinder(d = outer_dia, h = thread_base);
|
203
|
|
- metric_thread(profile[1], profile[2], profile[4] + thread_base, test=!thread_draw);
|
|
301
|
+ cylinder(d = outer_dia, h = thread_base + body_screw_depth);
|
|
302
|
+
|
|
303
|
+ scale([1, profile[7] ? 1 : -1, 1])
|
|
304
|
+ metric_thread(profile[1], profile[2], profile[4] + thread_base + body_screw_depth, test=!thread_draw);
|
204
|
305
|
}
|
205
|
306
|
|
206
|
307
|
translate([0, 0, -1])
|
207
|
|
- cylinder(d = inner_dia, h = profile[4] + thread_base + 2);
|
|
308
|
+ cylinder(d = profile[6], h = profile[4] + thread_base + body_screw_depth + 2);
|
208
|
309
|
}
|
209
|
310
|
} else {
|
210
|
311
|
// female thread
|
211
|
312
|
difference() {
|
212
|
|
- cylinder(d = outer_dia, h = thread_base + profile[4] + profile[3]);
|
|
313
|
+ cylinder(d = outer_dia, h = thread_base + body_screw_depth + profile[4] + profile[3]);
|
213
|
314
|
|
214
|
|
- metric_thread(profile[1], profile[2], profile[4] + thread_base + 1, true, test=!thread_draw);
|
|
315
|
+ translate([0, 0, -1])
|
|
316
|
+ scale([1, profile[7] ? 1 : -1, 1])
|
|
317
|
+ metric_thread(profile[1], profile[2], profile[4] + thread_base + body_screw_depth + 2, true, test=!thread_draw);
|
215
|
318
|
|
216
|
|
- translate([0, 0, thread_base + profile[4]])
|
217
|
|
- cylinder(d = profile[1] + 2, h = profile[3] + 1);
|
|
319
|
+ translate([0, 0, thread_base + body_screw_depth + profile[4]])
|
|
320
|
+ cylinder(d = profile[5], h = profile[3] + 1);
|
218
|
321
|
|
219
|
322
|
translate([0, 0, -1])
|
220
|
|
- cylinder(d = inner_dia, h = profile[4] + thread_base + profile[3] + 2);
|
|
323
|
+ cylinder(d = profile[6], h = profile[4] + thread_base + profile[3] + 2);
|
221
|
324
|
}
|
222
|
325
|
}
|
223
|
326
|
}
|
|
@@ -229,8 +332,30 @@ module thread_profile_adapter(profile, draw_profile) {
|
229
|
332
|
for (r = [45, -45])
|
230
|
333
|
for (r2 = [0, 180])
|
231
|
334
|
rotate([0, 0, r + r2])
|
232
|
|
- translate([0, (outer_dia - body_screw_insert_dia) / 2 - thread_adapter_screw_inset, -1])
|
233
|
|
- cylinder(d = body_screw_dia, h = 100);
|
|
335
|
+ translate([0, (outer_dia - body_screw_insert_dia) / 2 - thread_adapter_screw_inset, 0]) {
|
|
336
|
+ translate([0, 0, -1])
|
|
337
|
+ cylinder(d = body_screw_dia, h = 50);
|
|
338
|
+
|
|
339
|
+ translate([0, 0, thread_base])
|
|
340
|
+ cylinder(d = body_screw_head, h = 50);
|
|
341
|
+ }
|
|
342
|
+ }
|
|
343
|
+}
|
|
344
|
+
|
|
345
|
+module mac11_extender() {
|
|
346
|
+ difference() {
|
|
347
|
+ cylinder(d = outer_dia, h = 15);
|
|
348
|
+
|
|
349
|
+ translate([0, 0, -1])
|
|
350
|
+ cylinder(d = 20, h = 15 + 2);
|
|
351
|
+
|
|
352
|
+ for (r = [45, -45])
|
|
353
|
+ for (r2 = [0, 180])
|
|
354
|
+ rotate([0, 0, r + r2])
|
|
355
|
+ translate([0, (outer_dia - body_screw_insert_dia) / 2 - thread_adapter_screw_inset, 0]) {
|
|
356
|
+ translate([0, 0, -1])
|
|
357
|
+ cylinder(d = body_screw_dia, h = 50);
|
|
358
|
+ }
|
234
|
359
|
}
|
235
|
360
|
}
|
236
|
361
|
|
|
@@ -302,6 +427,13 @@ module half_body(right_side) {
|
302
|
427
|
|
303
|
428
|
translate([-inner_dia / 2 - led_l - led_ridge_h - 5, 0, -10])
|
304
|
429
|
cylinder(d = led_ridge_dia, h = led_ridge_h);
|
|
430
|
+
|
|
431
|
+ if (include_uv_leds)
|
|
432
|
+ if (z < 0)
|
|
433
|
+ for (x = [0, 5])
|
|
434
|
+ translate([-inner_dia / 2 - led_l - led_ridge_h - x, 0, led_off / 2])
|
|
435
|
+ rotate([0, 90, 0])
|
|
436
|
+ cylinder(d = led_ridge_dia, h = led_ridge_h);
|
305
|
437
|
}
|
306
|
438
|
|
307
|
439
|
// TODO hacky led cable, led side
|
|
@@ -444,7 +576,7 @@ module right_half_aaa_bat() {
|
444
|
576
|
}
|
445
|
577
|
}
|
446
|
578
|
|
447
|
|
-module right_half_testing() {
|
|
579
|
+module right_halt_aa_bat() {
|
448
|
580
|
difference() {
|
449
|
581
|
right_half();
|
450
|
582
|
|
|
@@ -454,8 +586,8 @@ module right_half_testing() {
|
454
|
586
|
|
455
|
587
|
// TODO hacky
|
456
|
588
|
if (enable_gap_support)
|
457
|
|
- translate([-0.5, 14, 20])
|
458
|
|
- cube([1, 13, test_bat_h + 2]);
|
|
589
|
+ translate([-0.5, 14 + 1, 20])
|
|
590
|
+ cube([1, 12, test_bat_h + 2]);
|
459
|
591
|
}
|
460
|
592
|
|
461
|
593
|
for (x = [test_bat_off / 2, -test_bat_off / 2])
|
|
@@ -470,9 +602,118 @@ module right_half_testing() {
|
470
|
602
|
}
|
471
|
603
|
}
|
472
|
604
|
|
|
605
|
+module lipo_pcb_cutout() {
|
|
606
|
+ translate([-lipo_pcb_w / 2, 0, lipo_pcb_usb_wall])
|
|
607
|
+ cube([lipo_pcb_w, lipo_pcb_d, lipo_pcb_h]);
|
|
608
|
+
|
|
609
|
+ translate([-lipo_pcb_usb_w / 2, lipo_pcb_usb_off, -1])
|
|
610
|
+ cube([lipo_pcb_usb_w, lipo_pcb_usb_h, lipo_pcb_usb_wall + 2]);
|
|
611
|
+
|
|
612
|
+ for (z = [0, lipo_pcb_led_off_z])
|
|
613
|
+ translate([lipo_pcb_w / 2 - lipo_pcb_led_off_x, 0, lipo_pcb_usb_wall + lipo_pcb_led_off_z + z])
|
|
614
|
+ rotate([-90, 0, 0])
|
|
615
|
+ cylinder(d = lipo_pcb_led_dia, h = 42);
|
|
616
|
+}
|
|
617
|
+
|
|
618
|
+module lipo_lid() {
|
|
619
|
+ difference() {
|
|
620
|
+ rotate([0, 0, 90 - lipo_lid_angle / 2])
|
|
621
|
+ linear_extrude(lipo_lid_height - lipo_lid_gap * 2)
|
|
622
|
+ difference() {
|
|
623
|
+ pie_slice(outer_dia / 2, lipo_lid_angle);
|
|
624
|
+ pie_slice(outer_dia / 2 - lipo_lid_d + lipo_lid_gap_d, lipo_lid_angle);
|
|
625
|
+ }
|
|
626
|
+
|
|
627
|
+ // screw holes
|
|
628
|
+ for (z = [0, lipo_lid_height - 2 * lipo_lid_screw_off])
|
|
629
|
+ for (r = [1, -1])
|
|
630
|
+ rotate([0, 0, r * (lipo_lid_angle / 2 - circum_angle(lipo_lid_screw_area / 2, outer_dia))])
|
|
631
|
+ translate([0, outer_dia / 2 + 1, lipo_lid_screw_off - lipo_lid_gap + z])
|
|
632
|
+ rotate([90, 0, 0])
|
|
633
|
+ cylinder(d = lipo_lid_screw_d_big, h = lipo_lid_d + 2);
|
|
634
|
+ }
|
|
635
|
+}
|
|
636
|
+
|
|
637
|
+module right_half_lipo() {
|
|
638
|
+ difference() {
|
|
639
|
+ right_half();
|
|
640
|
+
|
|
641
|
+ // space for lid
|
|
642
|
+ translate([0, 0, (height - lipo_lid_height) / 2])
|
|
643
|
+ rotate([0, 0, 90 - lipo_lid_angle_hole / 2])
|
|
644
|
+ linear_extrude(lipo_lid_height)
|
|
645
|
+ difference() {
|
|
646
|
+ pie_slice(outer_dia / 2 + 1, lipo_lid_angle_hole);
|
|
647
|
+ pie_slice(outer_dia / 2 - lipo_lid_d, lipo_lid_angle_hole);
|
|
648
|
+ }
|
|
649
|
+
|
|
650
|
+ // compartment behind lid
|
|
651
|
+ translate([0, 0, (height - lipo_lid_height) / 2])
|
|
652
|
+ rotate([0, 0, 90 - lipo_lid_angle_compartment / 2])
|
|
653
|
+ linear_extrude(lipo_lid_height)
|
|
654
|
+ difference() {
|
|
655
|
+ pie_slice(outer_dia / 2 - lipo_lid_d + 1, lipo_lid_angle_compartment);
|
|
656
|
+ pie_slice(outer_dia / 2 - lipo_lid_d - lipo_lid_compartment_d, lipo_lid_angle_compartment);
|
|
657
|
+ }
|
|
658
|
+
|
|
659
|
+ // screw holes
|
|
660
|
+ for (z = [0, lipo_lid_height - 2 * lipo_lid_screw_off])
|
|
661
|
+ for (r = [1, -1])
|
|
662
|
+ rotate([0, 0, r * (lipo_lid_angle / 2 - circum_angle(lipo_lid_screw_area / 2, outer_dia))])
|
|
663
|
+ translate([0, outer_dia / 2, (height - lipo_lid_height) / 2 + lipo_lid_screw_off + z])
|
|
664
|
+ rotate([90, 0, 0])
|
|
665
|
+ cylinder(d = lipo_lid_screw_d_small, h = lipo_lid_d + lipo_lid_screw_len);
|
|
666
|
+
|
|
667
|
+ // charging pcb
|
|
668
|
+ translate([0, outer_dia / 2 - 11, 0]) {
|
|
669
|
+ lipo_pcb_cutout();
|
|
670
|
+
|
|
671
|
+ %translate([-(lipo_pcb_w - 1) / 2, 0.5, lipo_pcb_usb_wall])
|
|
672
|
+ cube([lipo_pcb_w - 1, lipo_pcb_d - 1, lipo_pcb_h + 1]);
|
|
673
|
+ }
|
|
674
|
+
|
|
675
|
+ translate([-lipo_w / 2, outer_dia / 2 - lipo_lid_d - lipo_d - circle_offset_deviation(lipo_w / 2, outer_dia - (lipo_lid_d * 2)) - 1, 32]) {
|
|
676
|
+ cube([lipo_w, lipo_d + 20, lipo_h]);
|
|
677
|
+
|
|
678
|
+ %cube([lipo_w, lipo_d, lipo_h]);
|
|
679
|
+ }
|
|
680
|
+
|
|
681
|
+ // TODO hacky power cable
|
|
682
|
+ translate([15, -10, 27])
|
|
683
|
+ rotate([-90, 0, 15])
|
|
684
|
+ cylinder(d = 6.0, h = outer_dia);
|
|
685
|
+
|
|
686
|
+ for (t = texts_lipo)
|
|
687
|
+ rotate([0, 0, -t[4]])
|
|
688
|
+ translate([0, outer_dia / 2 - t[3], (height + thread_adapter_h) / 2])
|
|
689
|
+ rotate([0, -90, -90])
|
|
690
|
+ linear_extrude(height = t[3] + 1)
|
|
691
|
+ text(t[0], size = t[2], font = t[1], halign = "center", valign="center");
|
|
692
|
+ }
|
|
693
|
+
|
|
694
|
+ // TODO hacky
|
|
695
|
+ if (enable_gap_support) {
|
|
696
|
+ translate([-0.5, 10, 17.5])
|
|
697
|
+ cube([1, 17, lipo_lid_height + 1]);
|
|
698
|
+
|
|
699
|
+ for (x = [-12, 11])
|
|
700
|
+ translate([x, 10, 31])
|
|
701
|
+ cube([1, 10, 45]);
|
|
702
|
+ }
|
|
703
|
+}
|
|
704
|
+
|
|
705
|
+module assembly_right_half_lipo() {
|
|
706
|
+ right_half_lipo();
|
|
707
|
+
|
|
708
|
+ color("green")
|
|
709
|
+ translate([0, 0, (height - lipo_lid_height) / 2 + lipo_lid_gap])
|
|
710
|
+ lipo_lid();
|
|
711
|
+}
|
|
712
|
+
|
473
|
713
|
module assembly_closed() {
|
474
|
714
|
//right_half_aaa_bat();
|
475
|
|
- right_half_testing();
|
|
715
|
+ //right_halt_aa_bat();
|
|
716
|
+ assembly_right_half_lipo();
|
476
|
717
|
|
477
|
718
|
rotate([0, 0, 180])
|
478
|
719
|
left_half();
|
|
@@ -483,13 +724,11 @@ module assembly_closed() {
|
483
|
724
|
|
484
|
725
|
module assembly_opened(angle) {
|
485
|
726
|
translate([-outer_dia / 2, 0, 0]) {
|
486
|
|
- //rotate([0, 0, angle / 2])
|
487
|
|
- //translate([outer_dia / 2, 0, 0])
|
488
|
|
- //right_half_aaa_bat();
|
489
|
|
-
|
490
|
727
|
rotate([0, 0, angle / 2])
|
491
|
728
|
translate([outer_dia / 2, 0, 0])
|
492
|
|
- right_half_testing();
|
|
729
|
+ //right_half_aaa_bat();
|
|
730
|
+ //right_halt_aa_bat();
|
|
731
|
+ assembly_right_half_lipo();
|
493
|
732
|
|
494
|
733
|
rotate([0, 0, -angle / 2])
|
495
|
734
|
translate([outer_dia / 2, 0, 0])
|
|
@@ -498,20 +737,23 @@ module assembly_opened(angle) {
|
498
|
737
|
}
|
499
|
738
|
}
|
500
|
739
|
|
|
740
|
+module print_all_thread_adapters() {
|
|
741
|
+ for (p = [0 : len(thread_profiles) - 1])
|
|
742
|
+ translate([(p - floor(len(thread_profiles) / 2)) * (outer_dia + 5), -outer_dia / 2 - 5, 0])
|
|
743
|
+ thread_profile_adapter(thread_profiles[p], true);
|
|
744
|
+}
|
|
745
|
+
|
501
|
746
|
module print(all_thread_adapters) {
|
502
|
747
|
translate([outer_dia / 2 + 5, 0, 0])
|
503
|
748
|
left_half();
|
504
|
749
|
|
505
|
|
- //translate([-outer_dia / 2 - 5, 0, 0])
|
506
|
|
- //right_half_aaa_bat(true);
|
507
|
|
-
|
508
|
750
|
translate([-outer_dia / 2 - 5, 0, 0])
|
509
|
|
- right_half_testing();
|
|
751
|
+ //right_half_aaa_bat();
|
|
752
|
+ //right_halt_aa_bat();
|
|
753
|
+ right_half_lipo();
|
510
|
754
|
|
511
|
755
|
if (all_thread_adapters)
|
512
|
|
- for (p = [0 : len(thread_profiles) - 1])
|
513
|
|
- translate([(p - floor(len(thread_profiles) / 2)) * (outer_dia + 5), -outer_dia / 2 - 5, 0])
|
514
|
|
- thread_profile_adapter(thread_profiles[p], true);
|
|
756
|
+ print_all_thread_adapters();
|
515
|
757
|
}
|
516
|
758
|
|
517
|
759
|
//lcd_cutout();
|
|
@@ -519,8 +761,25 @@ module print(all_thread_adapters) {
|
519
|
761
|
//left_half();
|
520
|
762
|
//right_half();
|
521
|
763
|
|
|
764
|
+//right_half_aaa_bat();
|
|
765
|
+//right_halt_aa_bat();
|
|
766
|
+
|
|
767
|
+//right_half_lipo();
|
|
768
|
+//lipo_lid();
|
|
769
|
+//assembly_right_half_lipo();
|
|
770
|
+
|
522
|
771
|
//assembly_closed();
|
523
|
772
|
//assembly_opened(90);
|
524
|
773
|
|
525
|
774
|
//print(true);
|
526
|
|
-print(false);
|
|
775
|
+//print(false);
|
|
776
|
+
|
|
777
|
+//print_all_thread_adapters();
|
|
778
|
+
|
|
779
|
+//thread_profile_adapter(thread_profile_1911, true);
|
|
780
|
+//thread_profile_adapter(thread_profile_m14_cw, true);
|
|
781
|
+//thread_profile_adapter(thread_profile_m14_ccw, true);
|
|
782
|
+//thread_profile_adapter(thread_profile_giant, true);
|
|
783
|
+
|
|
784
|
+thread_profile_adapter(thread_profile_mac11, true);
|
|
785
|
+//mac11_extender();
|