-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathifsbadge.scad
2880 lines (2593 loc) · 224 KB
/
ifsbadge.scad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/* [Parameters] */
// IFS Month and Year
event_date = "ABidoofSlayer";
// IFS City Name
event_city = "UMBRA";
// Ingress Badge
badge = "resistance"; // [builder:Builder, connector:Connector, engineer:Engineer, explorer:Explorer, hacker:Hacker, ifs:IFS/AP, illuminator:Illuminator, liberator:Liberator, mind-controller:Mind-Controller, pioneer:Pioneer, purifier:Purifier, translator:Translator, trekker:Trekker]
/* [Hidden] */
_ASCII_SPACE = 32;
_ASCII_0 = 48;
_ASCII_9 = _ASCII_0 + 9;
_ASCII_UPPER_A = 65;
_ASCII_UPPER_Z = _ASCII_UPPER_A + 25;
_ASCII_LOWER_A = 97;
_ASCII_LOWER_Z = _ASCII_LOWER_A + 25;
_ASCII = "\t\n\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
_ASCII_HACK = "\""; // only here to work around syntax highlighter defficiencies in certain text editors
_WHITESPACE = " \t\r\n";
_ASCII_CODE = concat(9,10,13, [for(i=[_ASCII_SPACE : _ASCII_LOWER_Z+4]) i]);
radius = 21;
ingress_ign = upper(event_date);
ingress_ifs = reverse(upper(event_city));
difference()
{
union()
{
if (badge == "builder")
builder();
if (badge == "connector")
connector();
if (badge == "engineer")
engineer();
if (badge == "explorer")
explorer();
if (badge == "hacker")
hacker();
if (badge == "ifs")
ifs();
if (badge == "illuminator")
illuminator();
if (badge == "liberator")
liberator();
if (badge == "mind-controller")
mind_controller();
if (badge == "pioneer")
pioneer();
if (badge == "purifier")
purifier();
if (badge == "translator")
translator();
if (badge == "trekker")
trekker();
if (badge == "resistance")
resistance();
translate([0, -radius, 0])
{
revolve_text(radius, ingress_ign);
}
translate([0, radius, 0])
{
revolve_text(-radius, ingress_ifs);
}
/* difference()
{
// Octagonal block
linear_extrude(4.0)
{
rotate([0, 0, 22.5])
{
regular_polygon(8, 16.0);
}
}
// Octagonal cut out to contain detail
translate([0, 0, 2.0])
{
linear_extrude(2.01)
{
rotate([0, 0, 22.5])
{
regular_polygon(8, 14.5);
}
}
}
} */
}
// Cut out for badge pin
translate([0, 0, -1.5])
{
cylinder(d1=15.1,d2=15.1,h=3,$fn=100);
//cube([5.2, 25, 1.2]);
}
}
// From https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_the_2D_Subsystem#regular_polygon
module regular_polygon(order, r=1){
angles=[ for (i = [0:order-1]) i*(360/order) ];
coords=[ for (th=angles) [r*cos(th), r*sin(th)] ];
polygon(coords);
}
module revolve_text(radius, chars)
{
chars_len = len(chars);
font_size = min(abs(radius) / 4, 90 / chars_len);
// step_angle = 360 / chars_len;
step_angle = min(12, 180 / chars_len);
offset = step_angle * (chars_len - 1) / 2;
translate([0, radius, 2.0])
{
linear_extrude(2.0)
{
for(i = [0 : chars_len - 1])
{
rotate((i * step_angle) - offset)
{
translate([0, -(radius), 0])
{
text(
chars[i],
font = "Liberation Mono:style=Bold",
size = font_size,
valign = "center", halign = "center"
);
}
}
}
}
}
backing = step_angle * (chars_len + 1);
translate([0, radius, 0])
{
pie(abs(radius) + font_size / 2 + 1, backing, 2.0, -(90 + backing / 2) + (radius < 0 ? 180 : 0));
}
}
// PieTest
/**
* @author: Marcel Jira
* This module generates a pie slice in OpenSCAD. It is inspired by the
* [dotscad](https://github.com/dotscad/dotscad)
* project but uses a different approach.
* I cannot say if this approach is worse or better.
* @param float radius Radius of the pie
* @param float angle Angle (size) of the pie to slice
* @param float height Height (thickness) of the pie
* @param float spin Angle to spin the slice on the Z axis
*/
module pie(radius, angle, height, spin=0) {
// calculations
ang = angle % 360;
absAng = abs(ang);
halfAng = absAng % 180;
negAng = min(ang, 0);
// submodules
module pieCube() {
translate([-radius - 1, 0, -1]) {
cube([2*(radius + 1), radius + 1, height + 2]);
}
}
module rotPieCube() {
rotate([0, 0, halfAng]) {
pieCube();
}
}
if (angle != 0) {
if (ang == 0) {
cylinder(r=radius, h=height);
} else {
rotate([0, 0, spin + negAng]) {
intersection() {
cylinder(r=radius, h=height, $fn=100);
if (absAng < 180) {
difference() {
pieCube();
rotPieCube();
}
} else {
union() {
pieCube();
rotPieCube();
}
}
}
}
}
}
}
function upper(string) =
let(code = ascii_code(string))
join([for (i = [0:len(string)-1])
code[i] >= 97 && code[i] <= 122?
chr(code[i]-97+65)
:
string[i]
]);
function join(strings, delimeter="") =
strings == undef?
undef
: strings == []?
""
: _join(strings, len(strings)-1, delimeter);
function _join(strings, index, delimeter) =
index==0 ?
strings[index]
: str(_join(strings, index-1, delimeter), delimeter, strings[index]) ;
function ascii_code(string) =
!is_string(string)?
undef
:
[for (result = search(string, _ASCII, 0))
result == undef?
undef
:
_ASCII_CODE[result[0]]
]
;
function is_string(x) =
x == str(x);
function reverse(string) =
string == undef?
undef
: len(string) <= 0?
""
:
join([for (i = [0:len(string)-1]) string[len(string)-1-i]])
;
// fudge value is used to ensure that subtracted solids are a tad taller
// in the z dimension than the polygon being subtracted from. This helps
// keep the resulting .stl file manifold.
fudge = 0.1;
// Builder badge
module builder_3342(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[2.400000,-194.536230],[0.150000,-192.311230],[-2.400000,-189.036230],[-3.842187,-186.800293],[-4.637500,-184.948730],[-4.889062,-183.115918],[-4.700000,-180.936230],[-3.818750,-176.998730],[-2.375000,-174.186230],[-1.442187,-173.201855],[-0.368750,-172.498730],[0.845312,-172.076855],[2.200000,-171.936230],[4.486719,-172.270801],[7.031250,-173.187793],[9.660156,-174.557129],[12.200000,-176.248730],[14.477344,-178.132520],[16.318750,-180.078418],[17.550781,-181.956348],[18.000000,-183.636230],[17.620703,-185.026074],[16.596875,-186.823730],[13.300000,-190.911230],[9.478125,-194.436230],[7.798047,-195.530762],[6.500000,-195.936230],[4.450000,-195.536230],[2.400000,-194.536230]]);
}
}
module builder_3348(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-134.500000,-134.236230],[-164.000000,-117.536230],[-178.500000,-109.336230],[-178.800000,-74.536230],[-179.000000,-39.736230],[-171.500000,-45.936230],[-164.000000,-52.136230],[-163.800000,-76.236230],[-163.500000,-100.236230],[-141.800000,-112.336230],[-120.200000,-124.436230],[-119.600000,-128.436230],[-118.237500,-139.686230],[-118.207812,-142.133105],[-118.600000,-142.836230],[-123.625000,-140.298730],[-134.500000,-134.236230]]);
}
}
module builder_3358(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-178.800000,67.563770],[-178.500000,102.163770],[-156.000000,114.863770],[-125.600000,131.863770],[-117.700000,136.163770],[-118.400000,128.863770],[-119.700000,119.363770],[-120.992188,117.762207],[-124.562500,115.176270],[-140.300000,105.963770],[-162.200000,93.663770],[-162.736719,93.192285],[-163.156250,92.385645],[-163.700000,88.913770],[-164.000000,68.563770],[-164.100000,44.563770],[-169.200000,40.563770],[-176.600000,34.763770],[-179.000000,32.863770],[-178.800000,67.563770]]);
}
}
module builder_3360(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[170.500000,39.163770],[163.500000,44.963770],[163.000000,69.263770],[162.500000,93.463770],[141.800000,105.063770],[120.300000,117.363770],[119.496875,120.465332],[118.450000,126.651270],[117.628125,132.818457],[117.500000,135.863770],[148.300000,118.863770],[179.000000,101.563770],[178.900000,69.063770],[178.700000,45.638770],[178.200000,34.963770],[177.559375,34.340332],[176.300000,34.701270],[174.065625,36.243457],[170.500000,39.163770]]);
}
}
module builder_3362(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[35.600000,87.063770],[32.950000,90.113770],[32.000000,91.732520],[31.500000,93.163770],[30.971875,94.529395],[30.050000,95.988770],[27.400000,98.663770],[25.687500,100.155957],[24.650000,101.526270],[24.137500,103.065332],[24.000000,105.063770],[24.512500,108.263770],[25.139063,109.535645],[26.000000,110.563770],[27.270312,111.527832],[28.812500,111.901270],[31.273438,111.730957],[35.300000,111.063770],[41.025000,109.938770],[44.800000,108.963770],[46.068555,108.234473],[47.167188,107.123145],[48.085352,105.669629],[48.812500,103.913770],[49.651563,99.654395],[49.600000,94.663770],[48.965625,91.105176],[47.918750,88.245020],[46.506250,86.106738],[44.775000,84.713770],[42.771875,84.089551],[40.543750,84.257520],[38.137500,85.241113],[35.600000,87.063770]]);
}
}
module builder_3364(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-51.900000,106.363770],[-53.000000,108.938770],[-54.100000,113.163770],[-54.556250,118.526270],[-53.925000,123.138770],[-53.248438,124.987988],[-52.356250,126.438770],[-51.267188,127.420801],[-50.000000,127.863770],[-47.392188,127.696582],[-46.324414,127.208105],[-45.412500,126.451270],[-44.051562,124.137207],[-43.300000,120.763770],[-43.106250,118.302832],[-43.325000,116.226270],[-44.031250,114.168457],[-45.300000,111.763770],[-47.554688,108.220020],[-49.312500,106.213770],[-50.714062,105.632520],[-51.900000,106.363770]]);
}
}
module builder_3366(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[49.200000,119.363770],[48.220312,120.636621],[47.531250,122.027832],[47.025000,125.001270],[47.681250,127.955957],[48.445313,129.323730],[49.500000,130.563770],[51.440625,132.305957],[53.025000,132.876270],[54.646875,132.265332],[56.700000,130.463770],[57.954688,129.032520],[58.637500,127.713770],[58.851563,126.245020],[58.700000,124.363770],[57.865625,121.535645],[56.525000,119.213770],[54.846875,117.641895],[53.000000,117.063770],[51.212500,117.726270],[49.200000,119.363770]]);
}
}
module builder_3368(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[14.000000,124.563770],[10.450000,127.026270],[8.909375,127.784082],[7.800000,128.063770],[5.212500,128.976270],[1.800000,131.163770],[-1.781250,133.601270],[-5.775000,135.513770],[-10.181250,136.901270],[-15.000000,137.763770],[-18.087500,137.921582],[-20.125000,137.301270],[-21.525000,135.612207],[-22.700000,132.563770],[-23.303125,131.085645],[-24.150000,130.038770],[-25.371875,129.329395],[-27.100000,128.863770],[-31.425000,128.049707],[-33.650000,127.976270],[-34.209375,128.272949],[-34.525000,128.821582],[-34.800000,130.763770],[-34.575000,133.738770],[-33.600000,136.263770],[-32.928125,137.616895],[-32.425000,139.513770],[-32.000000,144.563770],[-31.673437,149.007520],[-30.737500,152.363770],[-29.032812,154.970020],[-26.400000,157.163770],[-24.556641,158.210840],[-22.809375,158.865332],[-21.094922,159.109668],[-19.350000,158.926270],[-17.511328,158.297559],[-15.515625,157.205957],[-10.800000,153.563770],[-5.687500,149.688770],[-3.642187,148.501270],[-2.300000,148.063770],[-1.298437,148.309082],[-0.062500,148.976270],[2.400000,151.163770],[4.039844,153.709473],[4.850000,156.435645],[4.853906,159.288379],[4.075000,162.213770],[2.536719,165.157910],[0.262500,168.066895],[-2.724219,170.886816],[-6.400000,173.563770],[-10.875000,176.813770],[-14.000000,179.763770],[-14.893677,181.154126],[-15.486914,182.608496],[-15.845312,185.609082],[-15.221680,188.565137],[-13.762500,191.276270],[-11.614258,193.542090],[-8.923437,195.162207],[-5.836523,195.936230],[-2.500000,195.663770],[-0.739062,194.866895],[0.637500,193.263770],[1.845313,190.460645],[3.100000,186.063770],[3.912500,183.557520],[5.325000,181.163770],[7.600000,178.470020],[11.000000,175.063770],[15.975000,169.688770],[17.637500,167.470020],[18.400000,165.963770],[18.435938,162.627832],[17.487500,158.476270],[15.770312,154.193457],[13.500000,150.463770],[11.717188,147.324707],[11.162500,144.476270],[11.342773,143.287012],[11.826563,142.321582],[12.612695,141.630371],[13.700000,141.263770],[14.815625,141.341895],[15.950000,141.888770],[18.500000,144.463770],[20.089063,146.376270],[21.537500,147.463770],[23.267187,147.951270],[25.700000,148.063770],[29.650000,147.613770],[33.000000,146.563770],[34.737695,145.256152],[35.707812,143.659082],[35.958398,141.886230],[35.537500,140.051270],[34.493164,138.267871],[32.873437,136.649707],[30.726367,135.310449],[28.100000,134.363770],[26.109375,133.654395],[24.850000,132.588770],[24.190625,130.960645],[24.000000,128.563770],[23.592188,125.957520],[22.537500,123.538770],[21.089063,121.757520],[20.296289,121.246582],[19.500000,121.063770],[17.350000,122.101270],[14.000000,124.563770]]);
}
}
module builder_3356(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[61.500000,-74.236230],[60.837695,-73.262402],[60.420313,-71.976855],[60.287500,-68.836230],[61.035938,-65.545605],[61.720117,-64.072559],[62.600000,-62.836230],[64.080469,-61.646777],[65.743750,-61.045605],[67.472656,-60.983496],[69.150000,-61.411230],[70.658594,-62.279590],[71.881250,-63.539355],[72.700781,-65.141309],[73.000000,-67.036230],[72.607813,-69.117480],[71.587500,-71.461230],[70.173438,-73.617480],[68.600000,-75.136230],[66.928125,-75.797168],[64.975000,-75.848730],[63.059375,-75.319043],[61.500000,-74.236230]]);
}
}
module builder_3344(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[21.000000,-161.836230],[15.925000,-159.973730],[10.100000,-158.336230],[3.226562,-156.186230],[-3.262500,-153.286230],[-8.195313,-150.236230],[-9.711914,-148.842480],[-10.400000,-147.636230],[-12.093750,-139.069043],[-12.389844,-136.271973],[-12.250000,-134.148730],[-11.622656,-132.461426],[-10.456250,-130.972168],[-6.300000,-127.636230],[-2.118750,-124.347168],[1.350000,-120.973730],[4.668750,-116.906543],[8.400000,-111.536230],[11.212500,-107.120605],[12.600000,-104.186230],[12.787500,-102.001855],[12.000000,-99.836230],[11.289063,-98.948730],[10.287500,-98.361230],[7.000000,-97.936230],[5.088672,-97.763184],[3.278125,-97.264355],[1.603516,-96.470215],[0.100000,-95.411230],[-1.197266,-94.117871],[-2.253125,-92.620605],[-3.032422,-90.949902],[-3.500000,-89.136230],[-4.265625,-85.262793],[-4.975000,-83.498730],[-5.408203,-83.316895],[-5.946875,-83.553418],[-7.500000,-85.136230],[-9.750000,-89.011230],[-12.000000,-94.536230],[-13.114062,-98.073730],[-13.637500,-100.636230],[-13.617188,-102.748730],[-13.100000,-104.936230],[-12.250000,-108.319043],[-12.150000,-110.698730],[-12.875000,-112.572168],[-14.500000,-114.436230],[-16.728125,-116.186230],[-19.125000,-116.811230],[-22.009375,-116.348730],[-25.700000,-114.836230],[-28.531445,-113.186621],[-30.651563,-111.314355],[-32.061523,-109.221777],[-32.762500,-106.911230],[-32.755664,-104.385059],[-32.042188,-101.645605],[-30.623242,-98.695215],[-28.500000,-95.536230],[-26.278125,-92.411230],[-24.900000,-89.961230],[-24.196875,-87.773730],[-24.000000,-85.436230],[-24.337500,-82.223730],[-25.200000,-80.136230],[-26.084180,-79.587402],[-27.398437,-79.214355],[-30.937500,-78.986230],[-35.057813,-79.433105],[-39.000000,-80.536230],[-41.312500,-81.556543],[-42.500000,-82.623730],[-42.937500,-84.347168],[-43.000000,-87.336230],[-43.256250,-91.054980],[-44.150000,-93.386230],[-44.894531,-94.113574],[-45.868750,-94.592480],[-48.600000,-94.936230],[-51.100000,-94.589355],[-52.850000,-93.436230],[-54.000000,-91.308105],[-54.700000,-88.036230],[-54.857227,-85.896387],[-54.664062,-84.061230],[-54.023242,-82.432324],[-52.837500,-80.911230],[-51.009570,-79.399512],[-48.442187,-77.798730],[-40.700000,-73.936230],[-31.662500,-69.348730],[-29.267188,-67.678418],[-28.100000,-66.336230],[-27.382812,-65.117480],[-26.412500,-64.386230],[-24.935938,-64.029980],[-22.700000,-63.936230],[-20.471875,-63.812793],[-18.750000,-63.398730],[-17.328125,-62.628418],[-16.000000,-61.436230],[-14.693750,-59.895605],[-14.175000,-58.636230],[-14.368750,-57.076855],[-15.200000,-54.636230],[-16.787500,-51.448730],[-17.660937,-50.684668],[-18.600000,-50.436230],[-20.764062,-50.119043],[-22.112500,-49.023730],[-22.804688,-46.934668],[-23.000000,-43.636230],[-22.710938,-38.890918],[-21.887500,-34.698730],[-20.595312,-31.275293],[-18.900000,-28.836230],[-17.696875,-27.829980],[-16.475000,-27.311230],[-14.990625,-27.204980],[-13.000000,-27.436230],[-10.903125,-27.701855],[-9.500000,-27.536230],[-8.471875,-26.845605],[-7.500000,-25.536230],[-6.434375,-23.051855],[-6.399609,-21.904590],[-6.700000,-20.811230],[-8.315625,-18.758105],[-11.300000,-16.836230],[-14.907812,-14.822168],[-17.287500,-13.023730],[-18.598437,-11.281543],[-19.000000,-9.436230],[-18.849219,-8.126270],[-18.412500,-6.981543],[-17.713281,-6.017285],[-16.775000,-5.248730],[-14.275000,-4.359668],[-11.100000,-4.436230],[-8.228125,-5.117480],[-6.425000,-6.211230],[-5.334375,-8.092480],[-4.600000,-11.136230],[-4.034375,-13.025293],[-3.000000,-15.148730],[0.100000,-19.536230],[3.559375,-23.906543],[4.596484,-25.616504],[5.200000,-27.123730],[5.391016,-28.513770],[5.190625,-29.872168],[3.700000,-32.836230],[1.421875,-36.590918],[0.550000,-39.248730],[0.623828,-40.350879],[1.028125,-41.400293],[2.800000,-43.636230],[4.243750,-45.306543],[5.350000,-47.323730],[6.231250,-49.922168],[7.000000,-53.336230],[8.300000,-60.136230],[3.600000,-64.636230],[1.233789,-67.274316],[-0.310937,-69.728418],[-1.028320,-72.020801],[-0.912500,-74.173730],[0.042383,-76.209473],[1.842188,-78.150293],[4.492773,-80.018457],[8.000000,-81.836230],[11.525000,-83.298730],[13.700000,-83.936230],[14.563086,-83.600293],[15.785938,-82.692480],[18.762500,-79.761230],[21.532813,-76.342480],[23.000000,-73.636230],[23.621484,-72.435059],[24.765625,-71.395605],[26.364453,-70.538965],[28.350000,-69.886230],[33.209375,-69.276855],[38.800000,-69.736230],[44.037500,-70.973730],[47.700000,-72.436230],[49.173437,-73.569043],[49.565039,-74.213379],[49.737500,-75.123730],[49.457813,-78.384668],[48.400000,-84.636230],[48.200000,-86.429980],[48.450000,-87.661230],[49.300000,-88.629980],[50.900000,-89.636230],[52.893750,-91.172168],[53.800000,-92.923730],[53.656250,-95.106543],[52.500000,-97.936230],[51.009766,-100.348145],[49.278125,-102.250293],[47.363672,-103.629785],[45.325000,-104.473730],[43.220703,-104.769238],[41.109375,-104.503418],[39.049609,-103.663379],[37.100000,-102.236230],[34.489063,-99.345605],[33.807617,-98.063184],[33.537500,-96.811230],[33.675195,-95.531152],[34.217188,-94.164355],[36.500000,-90.936230],[38.906250,-87.636230],[39.850000,-85.086230],[39.785156,-84.022168],[39.368750,-83.061230],[37.500000,-81.336230],[35.985937,-80.447168],[34.912500,-80.223730],[33.857813,-80.731543],[32.400000,-82.036230],[29.287500,-84.448730],[25.200000,-86.936230],[21.076563,-89.654980],[19.819336,-91.042480],[19.062500,-92.561230],[18.779102,-94.295605],[18.942188,-96.329980],[20.500000,-101.636230],[23.312500,-107.911230],[26.500000,-113.436230],[28.904102,-117.216699],[30.564063,-120.392480],[31.476367,-122.977637],[31.637500,-124.986230],[31.043945,-126.432324],[29.692188,-127.329980],[27.578711,-127.693262],[24.700000,-127.536230],[21.441797,-127.396973],[18.584375,-127.715918],[16.153516,-128.473145],[14.175000,-129.648730],[12.674609,-131.222754],[11.678125,-133.175293],[11.211328,-135.486426],[11.300000,-138.136230],[11.862500,-140.472168],[13.175000,-142.873730],[15.575000,-145.856543],[19.400000,-149.936230],[25.262500,-156.511230],[26.585938,-158.654980],[27.000000,-160.236230],[26.765625,-162.314355],[26.419922,-162.904590],[25.875000,-163.211230],[24.046875,-163.020605],[21.000000,-161.836230]]);
}
}
module builder_3346(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-39.600000,-155.436230],[-42.157812,-153.636230],[-43.937500,-151.161230],[-44.648438,-148.573730],[-44.512305,-147.413574],[-44.000000,-146.436230],[-42.762500,-145.386230],[-41.600000,-144.936230],[-39.612500,-144.348730],[-36.500000,-142.936230],[-33.092188,-141.420605],[-30.762500,-141.086230],[-29.905273,-141.367871],[-29.201563,-141.951855],[-28.100000,-144.036230],[-27.203711,-147.565332],[-27.098437,-150.612793],[-27.722070,-153.118848],[-29.012500,-155.023730],[-30.907617,-156.267676],[-33.345312,-156.790918],[-36.263477,-156.533691],[-39.600000,-155.436230]]);
}
}
module builder_3350(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[118.500000,-133.936230],[119.412500,-127.523730],[120.100000,-124.636230],[141.700000,-112.336230],[163.000000,-100.436230],[163.000000,-76.436230],[163.000000,-52.436230],[170.700000,-46.236230],[176.200000,-41.936230],[178.700000,-40.336230],[178.737500,-50.673730],[178.400000,-75.036230],[177.700000,-109.536230],[148.200000,-125.936230],[118.000000,-142.736230],[117.912500,-140.248730],[118.500000,-133.936230]]);
}
}
module builder_3352(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[51.500000,-135.536230],[50.583398,-134.377246],[49.867188,-132.545605],[49.087500,-127.736230],[49.264062,-122.851855],[49.743164,-120.926465],[50.500000,-119.636230],[52.148438,-118.379980],[53.637500,-118.061230],[54.957813,-118.679980],[56.100000,-120.236230],[57.500000,-122.173730],[59.200000,-123.736230],[59.959180,-124.541113],[60.510938,-125.694043],[60.987500,-128.673730],[60.620313,-131.934668],[59.400000,-134.736230],[57.842188,-136.211230],[55.862500,-136.861230],[53.676562,-136.648730],[51.500000,-135.536230]]);
}
}
module builder_3354(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-83.000000,-89.736230],[-84.984375,-86.775293],[-87.850000,-81.798730],[-94.800000,-68.536230],[-103.200000,-51.436230],[-101.200000,-6.736230],[-99.200000,37.863770],[-91.900000,55.363770],[-86.500000,67.626270],[-84.671875,71.240332],[-83.800000,72.463770],[-83.250000,70.926270],[-83.000000,67.963770],[-82.825000,65.862207],[-82.275000,63.826270],[-81.312500,61.734082],[-79.900000,59.463770],[-76.800000,54.963770],[-77.900000,30.363770],[-78.637500,12.926270],[-78.700000,5.463770],[-75.025000,6.413770],[-66.700000,9.163770],[-55.000000,13.363770],[-55.000000,32.463770],[-54.900000,51.563770],[-40.500000,77.063770],[-31.253125,93.496582],[-28.177734,98.254199],[-25.475000,101.276270],[-22.650391,102.990527],[-19.209375,103.824707],[-8.500000,104.563770],[1.500000,105.263770],[9.000000,90.463770],[13.060938,82.746582],[16.512500,76.951270],[19.982813,72.112207],[24.100000,67.263770],[31.700000,58.863770],[32.900000,43.663770],[33.864063,31.176270],[34.438086,27.505957],[35.362500,25.063770],[36.854102,23.484082],[39.129688,22.401270],[46.900000,20.263770],[55.850000,17.988770],[60.600000,17.063770],[61.131250,17.143848],[61.531250,17.479395],[61.975000,19.488770],[61.700000,32.863770],[61.390625,42.027832],[61.475000,47.151270],[62.121875,50.005957],[63.500000,52.363770],[64.776563,54.424707],[65.537500,56.551270],[65.904688,59.184082],[66.000000,62.763770],[66.220312,72.230957],[66.787500,80.676270],[67.560938,86.740332],[67.981055,88.454590],[68.400000,89.063770],[73.100000,88.063770],[74.268945,87.652246],[75.345312,86.965332],[76.508398,85.699512],[77.937500,83.551270],[82.310938,75.393457],[89.900000,60.063770],[103.200000,33.163770],[104.800000,-9.636230],[106.300000,-52.436230],[97.900000,-65.336230],[91.900000,-74.036230],[89.996875,-76.445605],[89.200000,-77.036230],[89.750000,-70.961230],[91.500000,-57.836230],[94.200000,-39.736230],[93.100000,-7.636230],[91.700000,24.563770],[77.700000,32.063770],[77.225000,27.313770],[76.600000,15.963770],[75.900000,-0.236230],[63.300000,-24.536230],[50.800000,-48.936230],[41.500000,-48.936230],[32.200000,-48.936230],[30.600000,-42.236230],[26.400000,-23.036230],[24.765625,-15.790918],[23.000000,-10.448730],[20.184375,-4.825293],[15.400000,3.263770],[7.000000,17.163770],[6.000000,33.863770],[4.400000,52.963770],[3.900000,55.263770],[-10.800000,54.663770],[-28.200000,53.463770],[-31.000000,52.863770],[-31.000000,35.563770],[-31.000000,18.263770],[-38.000000,5.063770],[-45.000000,-8.136230],[-45.000000,-31.036230],[-45.000000,-53.936230],[-52.100000,-57.536230],[-58.012500,-60.098730],[-59.398438,-60.250293],[-60.100000,-59.736230],[-71.100000,-41.136230],[-78.450000,-28.998730],[-80.831250,-25.372168],[-81.900000,-24.136230],[-87.800000,-26.336230],[-93.000000,-28.336230],[-93.000000,-39.936230],[-93.000000,-51.536230],[-86.000000,-72.436230],[-79.300000,-93.636230],[-80.550000,-92.623730],[-83.000000,-89.736230]]);
}
}
module regular_polygon(order, r=1){
angles=[ for (i = [0:order-1]) i*(360/order) ];
coords=[ for (th=angles) [r*cos(th), r*sin(th)] ];
polygon(coords);
}
module builder(){
translate([0, 0, 1.8])
{
scale([0.24, 0.24, 1.0])
{
builder_3342(2);
builder_3348(2);
builder_3358(2);
builder_3360(2);
builder_3362(2);
builder_3364(2);
builder_3366(2);
builder_3368(2);
builder_3356(2);
builder_3344(2);
builder_3346(2);
builder_3350(2);
builder_3352(2);
builder_3354(2);
}
}
difference()
{
linear_extrude(4.0)
{
rotate([0, 0, 30])
{
regular_polygon(6, 17.5);
}
}
translate([0, 0, 2.0])
{
linear_extrude(4.01)
{
rotate([0, 0, 30])
{
regular_polygon(6, 16.0);
}
}
}
translate([-2.6, -12.5, -0.05])
{
cube([5.2, 25, 1.2]);
}
}
}
// Connector badge
module connector_3342(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
difference()
{
linear_extrude(height=h)
polygon([[-61.268750,-170.879297],[-68.058179,-169.043555],[-74.512305,-166.576172],[-80.628638,-163.480664],[-86.404688,-159.760547],[-91.837964,-155.419336],[-96.925977,-150.460547],[-101.666235,-144.887695],[-106.056250,-138.704297],[-110.093530,-131.913867],[-113.775586,-124.519922],[-117.099927,-116.525977],[-120.064063,-107.935547],[-122.665503,-98.752148],[-124.901758,-88.979297],[-126.770337,-78.620508],[-128.268750,-67.679297],[-129.318750,-56.829297],[-129.768750,-48.679297],[-129.768750,-42.379297],[-124.468750,-42.379297],[-120.506250,-42.629297],[-118.268750,-43.179297],[-117.857812,-44.318359],[-117.531250,-46.891797],[-117.168750,-54.879297],[-116.851758,-61.525586],[-115.982813,-68.243359],[-114.572461,-75.000977],[-112.631250,-81.766797],[-110.169727,-88.509180],[-107.198438,-95.196484],[-103.727930,-101.797070],[-99.768750,-108.279297],[-96.854565,-112.442847],[-93.813086,-116.270508],[-90.645923,-119.761548],[-87.354687,-122.915234],[-83.940991,-125.730835],[-80.406445,-128.207617],[-76.752661,-130.344849],[-72.981250,-132.141797],[-69.093823,-133.597729],[-65.091992,-134.711914],[-60.977368,-135.483618],[-56.751563,-135.912109],[-52.416187,-135.996655],[-47.972852,-135.736523],[-43.423169,-135.130981],[-38.768750,-134.179297],[-34.377148,-132.896875],[-29.604688,-131.044922],[-24.567383,-128.691406],[-19.381250,-125.904297],[-9.026563,-119.301172],[-4.090039,-115.621094],[0.531250,-111.779297],[4.323438,-107.558984],[8.593750,-101.716797],[11.907813,-96.380859],[12.758008,-94.567773],[12.831250,-93.679297],[11.306250,-94.254297],[8.131250,-96.179297],[-0.393750,-101.351172],[-9.368750,-105.904297],[-17.293750,-109.144922],[-20.393750,-110.056250],[-22.668750,-110.379297],[-22.850977,-110.284180],[-22.739062,-110.012109],[-21.731250,-109.016797],[-17.268750,-105.779297],[-11.373389,-101.466162],[-5.655859,-96.525781],[-0.125244,-90.975439],[5.209375,-84.832422],[10.338916,-78.114014],[15.254297,-70.837500],[19.946436,-63.020166],[24.406250,-54.679297],[28.624658,-45.832178],[32.592578,-36.496094],[36.300928,-26.688330],[39.740625,-16.426172],[42.902588,-5.726904],[45.777734,5.392187],[48.356982,16.913818],[50.631250,28.820703],[52.729688,41.658203],[54.518750,54.720703],[55.764062,66.058203],[56.231250,73.720703],[56.231250,78.320703],[61.931250,80.520703],[69.318555,82.782617],[76.817188,83.953516],[84.369727,84.048633],[91.918750,83.083203],[99.406836,81.072461],[106.776563,78.031641],[113.970508,73.975977],[120.931250,68.920703],[125.131250,65.420703],[124.631250,59.320703],[123.512695,48.902344],[122.020312,38.598828],[120.136523,28.337500],[117.843750,18.045703],[115.124414,7.650781],[111.960938,-2.919922],[108.335742,-13.739063],[104.231250,-24.879297],[99.021875,-37.882422],[93.831250,-49.479297],[87.890625,-61.301172],[80.431250,-74.979297],[69.876367,-92.856055],[59.235938,-108.737109],[53.859839,-115.953052],[48.433789,-122.698633],[42.948267,-128.983374],[37.393750,-134.816797],[31.760718,-140.208423],[26.039648,-145.167773],[20.221021,-149.704370],[14.295312,-153.827734],[8.253003,-157.547388],[2.084570,-160.872852],[-4.219507,-163.813647],[-10.668750,-166.379297],[-16.723047,-168.336328],[-23.159375,-169.923047],[-29.825391,-171.125391],[-36.568750,-171.929297],[-43.237109,-172.320703],[-49.678125,-172.285547],[-55.739453,-171.809766],[-61.268750,-170.879297]]);
translate([0, 0, -fudge])
linear_extrude(height=h+2*fudge)
polygon([[-31.068750,-155.779297],[-25.529883,-154.428125],[-19.776563,-152.582422],[-13.903711,-150.291406],[-8.006250,-147.604297],[-2.179102,-144.570313],[3.482813,-141.238672],[8.884570,-137.658594],[13.931250,-133.879297],[21.084741,-127.747070],[28.062305,-120.952734],[34.852075,-113.518555],[41.442187,-105.466797],[47.820776,-96.819727],[53.975977,-87.599609],[59.895923,-77.828711],[65.568750,-67.529297],[70.982593,-56.723633],[76.125586,-45.433984],[80.985864,-33.682617],[85.551563,-21.491797],[89.810815,-8.883789],[93.751758,4.119141],[97.362524,17.494727],[100.631250,31.220703],[103.181250,43.170703],[104.231250,49.420703],[103.791016,50.957617],[102.546875,52.528516],[100.613672,54.073633],[98.106250,55.533203],[95.139453,56.847461],[91.828125,57.956641],[88.287109,58.800977],[84.631250,59.320703],[78.531250,59.920703],[77.331250,48.020703],[76.090723,37.782300],[74.546094,27.622852],[72.700293,17.551001],[70.556250,7.575391],[68.116895,-2.295337],[65.385156,-12.052539],[62.363965,-21.687573],[59.056250,-31.191797],[55.464941,-40.556567],[51.592969,-49.773242],[47.443262,-58.833179],[43.018750,-67.727734],[38.322363,-76.448267],[33.357031,-84.986133],[28.125684,-93.332690],[22.631250,-101.479297],[15.331250,-111.277734],[8.181250,-119.341797],[0.806250,-126.074609],[-7.168750,-131.879297],[-13.465503,-135.691553],[-19.780273,-138.953906],[-26.093579,-141.667236],[-32.385937,-143.832422],[-38.637866,-145.450342],[-44.829883,-146.521875],[-50.942505,-147.047900],[-56.956250,-147.029297],[-62.851636,-146.466943],[-68.609180,-145.361719],[-74.209399,-143.714502],[-79.632813,-141.526172],[-84.859937,-138.797607],[-89.871289,-135.529688],[-94.647388,-131.723291],[-99.168750,-127.379297],[-103.131250,-123.416797],[-104.768750,-122.079297],[-101.168750,-129.079297],[-98.201758,-133.824023],[-94.814063,-138.274609],[-91.063086,-142.380664],[-87.006250,-146.091797],[-82.700977,-149.357617],[-78.204687,-152.127734],[-73.574805,-154.351758],[-68.868750,-155.979297],[-65.698242,-156.565430],[-61.429688,-156.974609],[-50.906250,-157.266797],[-39.914063,-156.865234],[-31.068750,-155.779297]]);
}
}
}
module connector_3344(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-176.268750,-39.779297],[-184.379687,-35.179297],[-186.451758,-33.676172],[-187.231250,-32.379297],[-186.740430,-31.044922],[-185.001563,-29.429297],[-177.868750,-24.379297],[-171.801563,-20.157422],[-167.281250,-17.454297],[-163.229688,-15.688672],[-158.568750,-14.279297],[-153.320313,-13.155859],[-147.406250,-12.566797],[-138.248438,-12.408984],[-123.268750,-12.579297],[-96.268750,-12.979297],[-88.868750,-16.779297],[-80.987500,-21.505859],[-71.643750,-27.966797],[-64.062500,-33.808984],[-61.940625,-35.762695],[-61.468750,-36.679297],[-65.857813,-38.641797],[-72.956250,-41.204297],[-79.960938,-43.429297],[-84.068750,-44.379297],[-86.968750,-44.379297],[-84.868750,-40.979297],[-83.368750,-37.741797],[-82.768750,-34.579297],[-83.007813,-32.752734],[-84.006250,-31.141797],[-86.185937,-29.249609],[-89.968750,-26.579297],[-97.268750,-21.679297],[-120.668750,-20.979297],[-143.968750,-20.279297],[-155.368750,-24.579297],[-166.768750,-28.879297],[-166.768750,-33.279297],[-166.639063,-35.677734],[-166.106250,-37.466797],[-164.954688,-39.087109],[-162.968750,-40.979297],[-159.268750,-44.279297],[-163.768750,-44.379297],[-166.312500,-44.166797],[-168.968750,-43.429297],[-172.150000,-42.016797],[-176.268750,-39.779297]]);
}
}
module connector_3348(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
difference()
{
linear_extrude(height=h)
polygon([[174.731250,-5.779297],[161.503125,5.736328],[155.006250,11.120703],[153.455859,12.117187],[152.596875,12.305078],[152.098828,11.925781],[151.631250,11.220703],[149.931250,8.320703],[149.514258,8.156055],[148.601563,8.353516],[145.968750,9.483203],[143.392187,11.006641],[142.231250,12.220703],[152.331250,34.320703],[162.331250,56.120703],[159.731250,70.120703],[157.031250,84.120703],[136.331250,97.220703],[125.075000,104.234766],[117.006250,108.858203],[110.175000,112.112891],[102.631250,115.020703],[95.095313,117.583203],[88.918750,119.245703],[82.198438,120.420703],[73.031250,121.520703],[63.432813,122.456641],[57.068750,122.708203],[51.360938,122.266016],[43.731250,121.120703],[30.831250,119.120703],[18.131250,103.120703],[11.185937,94.194141],[7.043750,88.333203],[4.645312,83.841016],[2.931250,79.020703],[0.431250,70.920703],[7.931250,53.020703],[15.831250,33.020703],[15.886133,32.351172],[15.370313,31.808203],[13.825586,31.340234],[10.793750,30.895703],[-1.564062,29.870703],[-25.368750,28.320703],[-66.968750,25.620703],[-75.168750,34.320703],[-88.168750,48.420703],[-91.506250,52.233203],[-92.668750,54.020703],[-80.331250,56.820703],[-51.268750,62.920703],[-10.268750,71.320703],[-8.668750,80.220703],[-7.631250,86.695703],[-7.568750,89.720703],[-21.581250,94.670703],[-54.268750,105.620703],[-87.006250,116.620703],[-101.068750,121.620703],[-100.123437,122.933203],[-96.881250,125.970703],[-85.568750,135.420703],[-69.268750,148.420703],[-22.468750,136.820703],[24.331250,125.320703],[34.331250,127.120703],[41.518750,128.583203],[44.731250,129.520703],[40.443750,136.070703],[29.631250,151.020703],[14.231250,172.320703],[39.731250,160.520703],[41.103125,159.023828],[43.356250,155.745703],[49.231250,145.720703],[56.631250,131.920703],[67.631250,130.320703],[75.456250,129.258203],[78.931250,129.020703],[79.931250,134.520703],[80.606250,138.120703],[81.028125,139.217578],[81.431250,139.620703],[83.781250,138.758203],[88.231250,136.620703],[91.520312,134.878516],[93.318750,133.483203],[94.123438,131.881641],[94.431250,129.520703],[94.731250,125.420703],[107.231250,120.020703],[119.731250,114.520703],[122.331250,117.420703],[124.931250,120.320703],[129.631250,117.920703],[134.331250,115.520703],[131.831250,112.120703],[129.231250,108.720703],[141.031250,101.820703],[157.431250,92.220703],[162.231250,89.420703],[166.231250,92.620703],[168.475000,94.312891],[170.081250,95.133203],[171.462500,95.222266],[173.031250,94.720703],[175.643750,93.333203],[178.031250,91.720703],[180.431250,89.920703],[173.331250,85.120703],[168.318750,81.395703],[166.231250,79.320703],[168.331250,66.220703],[170.331250,54.120703],[178.831250,45.620703],[187.231250,37.120703],[187.231250,29.820703],[186.968750,24.758203],[186.682813,23.197266],[186.331250,22.620703],[182.993750,24.633203],[176.131250,29.420703],[165.531250,36.920703],[164.700586,36.727734],[163.517188,35.583203],[160.743750,31.545703],[158.514063,27.020703],[158.010352,25.266797],[158.131250,24.220703],[172.631250,13.120703],[186.131250,3.120703],[186.231250,-6.179297],[186.031250,-15.379297],[174.731250,-5.779297]]);
translate([0, 0, -fudge])
linear_extrude(height=h+2*fudge)
polygon([[-25.768750,35.220703],[-5.506250,37.133203],[3.131250,38.220703],[3.006445,39.341211],[2.170312,41.859766],[-0.806250,49.183203],[-4.139062,56.375391],[-5.420508,58.729883],[-6.168750,59.620703],[-74.668750,49.320703],[-74.866211,49.135156],[-74.785937,48.661328],[-73.806250,46.895703],[-68.668750,40.420703],[-64.476563,35.623828],[-61.831250,33.095703],[-59.879687,32.180078],[-57.768750,32.220703],[-25.768750,35.220703]]);
translate([0, 0, -fudge])
linear_extrude(height=h+2*fudge)
polygon([[4.231250,102.420703],[12.431250,112.720703],[16.131250,117.320703],[-24.768750,128.520703],[-65.768750,139.720703],[-75.268750,132.020703],[-81.843750,126.420703],[-84.368750,123.820703],[-43.081250,110.083203],[-1.268750,96.720703],[0.768750,98.408203],[4.231250,102.420703]]);
}
}
}
module connector_3346(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[130.331250,-16.179297],[133.531250,-8.679297],[135.918750,-10.704297],[141.231250,-15.879297],[148.631250,-23.379297],[138.031250,-23.379297],[127.331250,-23.379297],[130.331250,-16.179297]]);
}
}
module connector_3350(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[7.431250,3.620703],[9.903125,8.119141],[11.606250,10.508203],[13.196875,11.453516],[15.331250,11.620703],[18.931250,11.620703],[20.131250,4.720703],[21.231250,-3.279297],[20.610937,-3.746484],[18.818750,-4.091797],[12.131250,-4.379297],[3.131250,-4.379297],[7.431250,3.620703]]);
}
}
module connector(){
translate([0, 0, 1.8])
{
scale([0.24, 0.24, 1.0])
{
connector_3342(2);
connector_3344(2);
connector_3348(2);
connector_3346(2);
connector_3350(2);
}
}
difference()
{
linear_extrude(4.0)
{
rotate([0, 0, 30])
{
regular_polygon(6, 17.5);
}
}
translate([0, 0, 2.0])
{
linear_extrude(4.01)
{
rotate([0, 0, 30])
{
regular_polygon(6, 16.0);
}
}
}
translate([-2.6, -12.5, -0.05])
{
cube([5.2, 25, 1.2]);
}
}
}
module ifs()
{
difference()
{
cylinder(4, 10, 10);
rotate([0, 0, 60])
{
translate([-2, 0, 0])
{
cube([4, 12, 4.1]);
}
}
rotate([0, 0, 180])
{
translate([-2, 0, 0])
{
cube([4, 12, 4.1]);
}
}
rotate([0, 0, 300])
{
translate([-2, 0, 0])
{
cube([4, 12, 4.1]);
}
}
}
rotate([0, 0, 60])
{
translate([-0.75, 0, 0])
{
cube([1.5, 16, 4]);
}
translate([0, 16, 0])
{
rotate([0, 0, 150])
{
translate([-0.75, 0, 0])
{
cube([1.5, 6, 4]);
}
}
rotate([0, 0, 210])
{
translate([-0.75, 0, 0])
{
cube([1.5, 6, 4]);
}
}
}
}
rotate([0, 0, 180])
{
translate([-0.75, 0, 0])
{
cube([1.5, 16, 4]);
}
translate([0, 16, 0])
{
rotate([0, 0, 150])
{
translate([-0.75, 0, 0])
{
cube([1.5, 6, 4]);
}
}
rotate([0, 0, 210])
{
translate([-0.75, 0, 0])
{
cube([1.5, 6, 4]);
}
}
}
}
rotate([0, 0, 300])
{
translate([-0.75, 0, 0])
{
cube([1.5, 16, 4]);
}
translate([0, 16, 0])
{
rotate([0, 0, 150])
{
translate([-0.75, 0, 0])
{
cube([1.5, 6, 4]);
}
}
rotate([0, 0, 210])
{
translate([-0.75, 0, 0])
{
cube([1.5, 6, 4]);
}
}
}
}
difference()
{
linear_extrude(4.0)
{
rotate([0, 0, 30])
{
regular_polygon(6, 17.5);
}
}
translate([0, 0, 2.0])
{
linear_extrude(4.01)
{
rotate([0, 0, 30])
{
regular_polygon(6, 16.0);
}
}
}
translate([-2.6, -12.5, -0.05])
{
cube([5.2, 25, 1.2]);
}
}
}
module engineer_3344(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-3.800000,-169.850000],[-5.457617,-168.725000],[-6.748437,-167.337500],[-7.661914,-165.743750],[-8.187500,-164.000000],[-8.314648,-162.162500],[-8.032813,-160.287500],[-7.331445,-158.431250],[-6.200000,-156.650000],[-4.267773,-154.917773],[-1.973437,-154.023438],[0.491992,-153.895508],[2.937500,-154.462500],[5.172070,-155.652930],[7.004687,-157.395313],[8.244336,-159.618164],[8.700000,-162.250000],[8.367969,-164.602734],[7.506250,-166.671875],[6.203906,-168.398828],[4.550000,-169.725000],[2.633594,-170.591797],[0.543750,-170.940625],[-1.630469,-170.712891],[-3.800000,-169.850000]]);
}
}
module engineer_3360(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-58.800000,-138.550000],[-60.366992,-136.438086],[-61.135938,-134.104687],[-61.171289,-131.703320],[-60.537500,-129.387500],[-59.299023,-127.310742],[-57.520312,-125.626562],[-55.265820,-124.488477],[-52.600000,-124.050000],[-49.962695,-124.447461],[-47.720312,-125.542187],[-45.939648,-127.187695],[-44.687500,-129.237500],[-44.030664,-131.545117],[-44.035937,-133.964062],[-44.770117,-136.347852],[-46.300000,-138.550000],[-47.616406,-139.669727],[-49.125000,-140.476563],[-50.764844,-140.966992],[-52.475000,-141.137500],[-54.194531,-140.984570],[-55.862500,-140.504687],[-57.417969,-139.694336],[-58.800000,-138.550000]]);
}
}
module engineer_3410(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-112.800000,-5.550000],[-114.404297,-3.405273],[-115.209375,-1.048437],[-115.278516,1.366992],[-114.675000,3.687500],[-113.462109,5.759570],[-111.703125,7.429688],[-109.461328,8.544336],[-106.800000,8.950000],[-105.027930,8.785742],[-103.404688,8.310937],[-101.957227,7.552539],[-100.712500,6.537500],[-99.697461,5.292773],[-98.939063,3.845313],[-98.464258,2.222070],[-98.300000,0.450000],[-98.464258,-1.322070],[-98.939063,-2.945313],[-99.697461,-4.392773],[-100.712500,-5.637500],[-101.957227,-6.652539],[-103.404688,-7.410938],[-105.027930,-7.885742],[-106.800000,-8.050000],[-108.567188,-7.898437],[-110.137500,-7.437500],[-111.539063,-6.657812],[-112.800000,-5.550000]]);
}
}
module engineer_3418(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-170.800000,5.450000],[-171.907813,6.710938],[-172.687500,8.112500],[-173.148438,9.682813],[-173.300000,11.450000],[-173.148438,13.217187],[-172.687500,14.787500],[-171.907813,16.189063],[-170.800000,17.450000],[-169.539063,18.557813],[-168.137500,19.337500],[-166.567188,19.798438],[-164.800000,19.950000],[-163.032813,19.798438],[-161.462500,19.337500],[-160.060938,18.557813],[-158.800000,17.450000],[-157.195703,15.305273],[-156.390625,12.948438],[-156.321484,10.533008],[-156.925000,8.212500],[-158.137891,6.140430],[-159.896875,4.470313],[-162.138672,3.355664],[-164.800000,2.950000],[-166.567188,3.101563],[-168.137500,3.562500],[-169.539063,4.342188],[-170.800000,5.450000]]);
}
}
module engineer_3350(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-36.100000,-169.350000],[-37.425000,-168.125000],[-38.900000,-165.850000],[-39.848437,-162.939062],[-39.737500,-160.037500],[-38.632813,-157.342187],[-36.600000,-155.050000],[-33.773438,-153.537109],[-30.900000,-153.165625],[-28.176563,-153.773828],[-25.800000,-155.200000],[-23.967187,-157.282422],[-22.875000,-159.859375],[-22.720313,-162.769141],[-23.700000,-165.850000],[-25.250000,-168.100000],[-26.800000,-169.450000],[-28.787500,-169.842188],[-31.450000,-169.962500],[-34.112500,-169.801562],[-36.100000,-169.350000]]);
}
}
module engineer_3426(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-141.800000,27.150000],[-143.280469,29.465625],[-144.006250,31.837500],[-144.028906,34.153125],[-143.400000,36.300000],[-142.171094,38.165625],[-140.393750,39.637500],[-138.119531,40.603125],[-135.400000,40.950000],[-132.673633,40.527734],[-130.389063,39.371875],[-128.613086,37.648828],[-127.412500,35.525000],[-126.854102,33.166797],[-127.004688,30.740625],[-127.931055,28.412891],[-129.700000,26.350000],[-131.228906,25.215430],[-132.800000,24.435937],[-134.389844,24.010352],[-135.975000,23.937500],[-137.532031,24.216211],[-139.037500,24.845313],[-140.467969,25.823633],[-141.800000,27.150000]]);
}
}
module engineer_3342(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[62.100000,-171.050000],[59.948438,-169.720312],[58.237500,-167.687500],[57.107812,-165.185938],[56.700000,-162.450000],[56.860938,-160.798438],[57.387500,-159.362500],[58.345313,-158.020312],[59.800000,-156.650000],[62.245313,-154.917188],[64.512500,-154.187500],[66.873438,-154.414063],[69.600000,-155.550000],[71.590625,-156.810937],[72.850000,-158.362500],[73.509375,-160.457812],[73.700000,-163.350000],[73.320313,-166.001563],[72.312500,-168.137500],[70.648438,-169.804688],[68.300000,-171.050000],[66.375000,-171.725000],[65.050000,-171.950000],[63.800000,-171.725000],[62.100000,-171.050000]]);
}
}
module engineer_3388(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[158.600000,-57.150000],[156.721875,-54.785938],[155.875000,-52.487500],[156.040625,-50.020313],[157.200000,-47.150000],[158.460937,-45.159375],[160.012500,-43.900000],[162.107812,-43.240625],[165.000000,-43.050000],[167.802930,-43.518164],[170.098438,-44.732812],[171.829102,-46.521680],[172.937500,-48.712500],[173.366211,-51.133008],[173.057813,-53.610937],[171.954883,-55.974023],[170.000000,-58.050000],[167.150000,-59.625000],[164.225000,-60.000000],[161.337500,-59.175000],[158.600000,-57.150000]]);
}
}
module engineer_3422(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-109.000000,13.650000],[-111.292188,14.739063],[-113.312500,16.812500],[-114.751563,19.429687],[-115.300000,22.150000],[-115.087500,23.533008],[-114.500000,25.001563],[-112.500000,27.862500],[-109.900000,30.067188],[-108.562500,30.715430],[-107.300000,30.950000],[-105.574072,30.803125],[-104.001953,30.384375],[-101.353125,28.862500],[-99.421484,26.646875],[-98.275000,24.000000],[-97.981641,21.184375],[-98.609375,18.462500],[-100.226172,16.096875],[-101.426709,15.129688],[-102.900000,14.350000],[-106.500000,13.050000],[-109.000000,13.650000]]);
}
}
module engineer_3396(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[101.100000,-46.650000],[99.383398,-44.644531],[98.467188,-42.343750],[98.289258,-39.921094],[98.787500,-37.550000],[99.899805,-35.403906],[101.564063,-33.656250],[103.718164,-32.480469],[106.300000,-32.050000],[109.250000,-32.240625],[111.375000,-32.900000],[112.937500,-34.159375],[114.200000,-36.150000],[115.359375,-39.020313],[115.525000,-41.487500],[114.678125,-43.785938],[112.800000,-46.150000],[109.945313,-48.210938],[108.474023,-48.760352],[106.987500,-48.987500],[105.496289,-48.891211],[104.010938,-48.470313],[101.100000,-46.650000]]);
}
}
module engineer_3372(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-171.200000,-91.450000],[-172.922070,-89.513477],[-173.914063,-87.320313],[-174.214648,-85.007617],[-173.862500,-82.712500],[-172.896289,-80.572070],[-171.354688,-78.723438],[-169.276367,-77.303711],[-166.700000,-76.450000],[-165.032813,-76.379688],[-163.375000,-76.731250],[-161.792188,-77.448438],[-160.350000,-78.475000],[-159.114063,-79.754687],[-158.150000,-81.231250],[-157.523438,-82.848438],[-157.300000,-84.550000],[-157.476563,-87.557813],[-158.112500,-89.712500],[-159.367188,-91.285938],[-161.400000,-92.550000],[-164.126563,-93.685937],[-166.487500,-93.912500],[-168.754687,-93.182813],[-171.200000,-91.450000]]);
}
}
module engineer_3378(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[129.200000,-78.550000],[127.595508,-76.405273],[126.789063,-74.048438],[126.716211,-71.633008],[127.312500,-69.312500],[128.513477,-67.240430],[130.254687,-65.570312],[132.471680,-64.455664],[135.100000,-64.050000],[137.836133,-64.447656],[140.151563,-65.543750],[141.981836,-67.192969],[143.262500,-69.250000],[143.929102,-71.569531],[143.917188,-74.006250],[143.162305,-76.414844],[141.600000,-78.650000],[140.312500,-79.732617],[138.818750,-80.504688],[137.184375,-80.965039],[135.475000,-81.112500],[133.756250,-80.945898],[132.093750,-80.464062],[130.553125,-79.665820],[129.200000,-78.550000]]);
}
}
module engineer_3404(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[101.200000,-25.550000],[100.083984,-24.197070],[99.284375,-22.657812],[98.798828,-20.999023],[98.625000,-19.287500],[98.760547,-17.590039],[99.203125,-15.973437],[99.950391,-14.504492],[101.000000,-13.250000],[102.340430,-12.237500],[103.848437,-11.525000],[105.466602,-11.112500],[107.137500,-11.000000],[108.803711,-11.187500],[110.407812,-11.675000],[111.892383,-12.462500],[113.200000,-13.550000],[114.339453,-14.868750],[115.134375,-16.262500],[115.587109,-17.712500],[115.700000,-19.200000],[115.475391,-20.706250],[114.915625,-22.212500],[112.800000,-25.150000],[109.862500,-27.265625],[108.356250,-27.825391],[106.850000,-28.050000],[105.362500,-27.937109],[103.912500,-27.484375],[102.518750,-26.689453],[101.200000,-25.550000]]);
}
}
module engineer_3412(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[104.700000,-6.350000],[103.105396,-5.585669],[101.768164,-4.627539],[99.845313,-2.264062],[98.890430,0.472070],[98.862500,3.312500],[99.720508,5.988867],[101.423438,8.232812],[103.930273,9.775977],[105.472339,10.200903],[107.200000,10.350000],[109.025195,10.184399],[110.635938,9.714258],[112.028711,8.979565],[113.200000,8.020313],[114.864062,5.588086],[115.600000,2.737500],[115.379687,-0.211523],[114.175000,-2.939063],[113.194727,-4.119800],[111.957812,-5.125195],[110.460742,-5.915259],[108.700000,-6.450000],[106.475000,-6.625000],[104.700000,-6.350000]]);
}
}
module engineer_3358(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[48.900000,-139.750000],[47.887500,-138.409570],[47.175000,-136.901563],[46.762500,-135.283398],[46.650000,-133.612500],[46.837500,-131.946289],[47.325000,-130.342188],[48.112500,-128.857617],[49.200000,-127.550000],[50.648828,-126.337817],[52.160937,-125.530664],[53.703516,-125.097632],[55.243750,-125.007813],[58.185937,-125.734180],[60.725000,-127.462500],[62.598437,-129.945508],[63.543750,-132.935938],[63.586328,-134.544165],[63.298438,-136.186523],[62.647266,-137.832104],[61.600000,-139.450000],[60.381641,-140.607227],[58.884375,-141.451563],[57.194922,-141.979492],[55.400000,-142.187500],[53.586328,-142.072070],[51.840625,-141.629688],[50.249609,-140.856836],[48.900000,-139.750000]]);
}
}
module engineer_3420(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[159.200000,6.550000],[157.624414,8.805273],[156.832812,11.204688],[156.765430,13.611133],[157.362500,15.887500],[158.564258,17.896680],[160.310938,19.501563],[162.542773,20.565039],[165.200000,20.950000],[166.972070,20.785742],[168.595313,20.310937],[170.042773,19.552539],[171.287500,18.537500],[172.302539,17.292773],[173.060937,15.845313],[173.535742,14.222070],[173.700000,12.450000],[173.290234,9.727344],[172.165625,7.450000],[170.483203,5.678906],[168.400000,4.475000],[166.073047,3.899219],[163.659375,4.012500],[161.316016,4.875781],[159.200000,6.550000]]);
}
}
module engineer_3362(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-24.000000,-112.050000],[-26.091211,-110.727344],[-27.567187,-108.893750],[-28.431445,-106.713281],[-28.687500,-104.350000],[-28.338867,-101.967969],[-27.389062,-99.731250],[-25.841602,-97.803906],[-23.700000,-96.350000],[-21.764062,-95.464063],[-20.287500,-95.187500],[-18.792188,-95.492188],[-16.800000,-96.350000],[-14.269336,-98.075586],[-12.585938,-100.273438],[-11.725195,-102.750195],[-11.662500,-105.312500],[-12.373242,-107.766992],[-13.832813,-109.920312],[-16.016602,-111.579102],[-18.900000,-112.550000],[-21.600000,-112.562500],[-24.000000,-112.050000]]);
}
}
module engineer_3382(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[103.100000,-70.050000],[101.317383,-69.060156],[99.882813,-67.718750],[98.816211,-66.105469],[98.137500,-64.300000],[97.866602,-62.382031],[98.023437,-60.431250],[98.627930,-58.527344],[99.700000,-56.750000],[101.389844,-55.084180],[103.318750,-53.979688],[105.388281,-53.425977],[107.500000,-53.412500],[109.555469,-53.928711],[111.456250,-54.964063],[113.103906,-56.508008],[114.400000,-58.550000],[115.300000,-60.571875],[115.600000,-62.050000],[115.300000,-63.528125],[114.400000,-65.550000],[113.446875,-67.170703],[112.325000,-68.503125],[111.053125,-69.540234],[109.650000,-70.275000],[108.134375,-70.700391],[106.525000,-70.809375],[104.840625,-70.594922],[103.100000,-70.050000]]);
}
}
module engineer_3428(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[130.600000,28.850000],[128.576563,31.589062],[128.017773,33.024805],[127.762500,34.487500],[127.811914,35.964258],[128.167188,37.442188],[129.800000,40.350000],[131.002344,41.479102],[132.518750,42.314063],[134.250781,42.851367],[136.100000,43.087500],[137.967969,43.018945],[139.756250,42.642188],[141.366406,41.953711],[142.700000,40.950000],[143.703711,39.616406],[144.392187,38.006250],[144.768945,36.217969],[144.837500,34.350000],[144.601367,32.500781],[144.064063,30.768750],[143.229102,29.252344],[142.100000,28.050000],[139.192187,26.417188],[137.714258,26.061914],[136.237500,26.012500],[134.774805,26.267773],[133.339063,26.826562],[130.600000,28.850000]]);
}
}
module engineer_3390(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-139.300000,-55.350000],[-141.096997,-54.451782],[-142.524414,-53.325195],[-143.599390,-52.016089],[-144.339063,-50.570313],[-144.760571,-49.033716],[-144.881055,-47.452148],[-144.287500,-44.337500],[-142.695508,-41.593164],[-141.567944,-40.474487],[-140.242188,-39.585937],[-138.735376,-38.973364],[-137.064648,-38.682617],[-135.247144,-38.759546],[-133.300000,-39.250000],[-131.349805,-40.270312],[-129.792188,-41.750000],[-128.654102,-43.567187],[-127.962500,-45.600000],[-127.744336,-47.726563],[-128.026563,-49.825000],[-128.836133,-51.773438],[-130.200000,-53.450000],[-132.142188,-54.632813],[-134.637500,-55.412500],[-137.189063,-55.685937],[-139.300000,-55.350000]]);
}
}
module engineer_3434(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-57.600000,126.350000],[-63.025000,132.612500],[-65.300000,135.950000],[-60.662500,141.825000],[-49.500000,154.450000],[-33.800000,171.950000],[-0.300000,171.850000],[33.200000,171.850000],[45.700000,157.850000],[61.600000,139.950000],[64.900000,135.950000],[61.300000,131.750000],[53.300000,122.450000],[48.800000,117.450000],[24.200000,141.950000],[-0.300000,166.450000],[-13.000000,153.950000],[-37.900000,129.650000],[-49.900000,117.850000],[-57.600000,126.350000]]);
}
}
module engineer_3352(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-26.800000,-141.250000],[-29.119922,-140.433984],[-30.959375,-139.053125],[-32.287891,-137.245703],[-33.075000,-135.150000],[-33.290234,-132.904297],[-32.903125,-130.646875],[-31.883203,-128.516016],[-30.200000,-126.650000],[-27.300000,-124.756250],[-25.910937,-124.301563],[-24.550000,-124.175000],[-23.207812,-124.376563],[-21.875000,-124.906250],[-19.200000,-126.950000],[-17.356836,-129.442969],[-16.492188,-132.081250],[-16.515820,-134.691406],[-17.337500,-137.100000],[-18.866992,-139.133594],[-21.014063,-140.618750],[-23.688477,-141.382031],[-26.800000,-141.250000]]);
}
}
module engineer_3398(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-141.800000,-26.550000],[-142.916016,-25.197070],[-143.715625,-23.657812],[-144.201172,-21.999023],[-144.375000,-20.287500],[-144.239453,-18.590039],[-143.796875,-16.973437],[-143.049609,-15.504492],[-142.000000,-14.250000],[-140.659570,-13.237500],[-139.151562,-12.525000],[-137.533398,-12.112500],[-135.862500,-12.000000],[-134.196289,-12.187500],[-132.592188,-12.675000],[-131.107617,-13.462500],[-129.800000,-14.550000],[-128.660547,-15.868750],[-127.865625,-17.262500],[-127.412891,-18.712500],[-127.300000,-20.200000],[-127.524609,-21.706250],[-128.084375,-23.212500],[-130.200000,-26.150000],[-133.137500,-28.265625],[-134.643750,-28.825391],[-136.150000,-29.050000],[-137.637500,-28.937109],[-139.087500,-28.484375],[-140.481250,-27.689453],[-141.800000,-26.550000]]);
}
}
module engineer_3368(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[37.800000,-110.450000],[36.422070,-108.108594],[35.776563,-105.668750],[35.808398,-103.257031],[36.462500,-101.000000],[37.683789,-99.024219],[39.417188,-97.456250],[41.607617,-96.422656],[44.200000,-96.050000],[46.792383,-96.422656],[48.982813,-97.456250],[50.716211,-99.024219],[51.937500,-101.000000],[52.591602,-103.257031],[52.623437,-105.668750],[51.977930,-108.108594],[50.600000,-110.450000],[49.417188,-111.742188],[48.112500,-112.537500],[46.451562,-112.939062],[44.200000,-113.050000],[41.948438,-112.939062],[40.287500,-112.537500],[38.982812,-111.742188],[37.800000,-110.450000]]);
}
}
module engineer_3380(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-110.900000,-72.050000],[-112.857227,-70.972461],[-114.370313,-69.523438],[-115.426367,-67.790820],[-116.012500,-65.862500],[-116.115820,-63.826367],[-115.723437,-61.770313],[-114.822461,-59.782227],[-113.400000,-57.950000],[-111.605273,-56.494727],[-109.710938,-55.570313],[-107.776758,-55.163867],[-105.862500,-55.262500],[-104.027930,-55.853320],[-102.332812,-56.923438],[-100.836914,-58.459961],[-99.600000,-60.450000],[-98.960352,-62.169922],[-98.682813,-63.859375],[-98.754492,-65.487891],[-99.162500,-67.025000],[-99.893945,-68.440234],[-100.935938,-69.703125],[-102.275586,-70.783203],[-103.900000,-71.650000],[-106.189063,-72.556250],[-107.737500,-72.900000],[-109.117188,-72.718750],[-110.900000,-72.050000]]);
}
}
module engineer_3406(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[129.900000,-25.750000],[128.887500,-24.409570],[128.175000,-22.901562],[127.762500,-21.283398],[127.650000,-19.612500],[127.837500,-17.946289],[128.325000,-16.342187],[129.112500,-14.857617],[130.200000,-13.550000],[131.518750,-12.410547],[132.912500,-11.615625],[134.362500,-11.162891],[135.850000,-11.050000],[137.356250,-11.274609],[138.862500,-11.834375],[141.800000,-13.950000],[143.915625,-16.887500],[144.475391,-18.393750],[144.700000,-19.900000],[144.587109,-21.387500],[144.134375,-22.837500],[143.339453,-24.231250],[142.200000,-25.550000],[140.847070,-26.666016],[139.307813,-27.465625],[137.649023,-27.951172],[135.937500,-28.125000],[134.240039,-27.989453],[132.623438,-27.546875],[131.154492,-26.799609],[129.900000,-25.750000]]);
}
}
module engineer_3414(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-142.200000,-0.450000],[-143.832812,2.457813],[-144.188086,3.935742],[-144.237500,5.412500],[-143.982227,6.875195],[-143.423438,8.310938],[-141.400000,11.050000],[-138.725000,13.093750],[-137.392188,13.623437],[-136.050000,13.825000],[-134.689063,13.698437],[-133.300000,13.243750],[-130.400000,11.350000],[-129.073633,10.013672],[-128.095313,8.515625],[-127.466211,6.909766],[-127.187500,5.250000],[-127.260352,3.590234],[-127.685938,1.984375],[-128.465430,0.486328],[-129.600000,-0.850000],[-131.035547,-1.919727],[-132.665625,-2.657813],[-134.412891,-3.070117],[-136.200000,-3.162500],[-137.949609,-2.940820],[-139.584375,-2.410938],[-141.026953,-1.578711],[-142.200000,-0.450000]]);
}
}
module engineer_3376(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-142.800000,-80.550000],[-143.939453,-79.231250],[-144.734375,-77.837500],[-145.187109,-76.387500],[-145.300000,-74.900000],[-145.075391,-73.393750],[-144.515625,-71.887500],[-142.400000,-68.950000],[-139.660937,-66.926563],[-138.225195,-66.367773],[-136.762500,-66.112500],[-135.285742,-66.161914],[-133.807813,-66.517188],[-130.900000,-68.150000],[-129.742773,-69.368359],[-128.898438,-70.865625],[-128.370508,-72.555078],[-128.162500,-74.350000],[-128.277930,-76.163672],[-128.720313,-77.909375],[-129.493164,-79.500391],[-130.600000,-80.850000],[-131.940430,-81.862500],[-133.448438,-82.575000],[-135.066602,-82.987500],[-136.737500,-83.100000],[-138.403711,-82.912500],[-140.007813,-82.425000],[-141.492383,-81.637500],[-142.800000,-80.550000]]);
}
}
module engineer_3374(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[158.600000,-91.150000],[157.303125,-89.662500],[156.400000,-88.175000],[155.871875,-86.650000],[155.700000,-85.050000],[155.908398,-83.600977],[156.485937,-82.082812],[158.462500,-79.162500],[161.057813,-76.935937],[162.408789,-76.284961],[163.700000,-76.050000],[165.518164,-76.222852],[167.201562,-76.720312],[168.718555,-77.510742],[170.037500,-78.562500],[171.126758,-79.843945],[171.954688,-81.323437],[172.489648,-82.969336],[172.700000,-84.750000],[172.509375,-87.642188],[171.850000,-89.737500],[170.590625,-91.289063],[168.600000,-92.550000],[165.729688,-93.709375],[163.262500,-93.875000],[160.964063,-93.028125],[158.600000,-91.150000]]);
}
}
module engineer_3384(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-10.700000,-23.250000],[-17.825000,9.200000],[-21.200000,23.050000],[-23.067187,22.065625],[-27.737500,18.850000],[-42.600000,7.750000],[-57.437500,-3.425000],[-63.800000,-7.850000],[-60.850000,3.200000],[-53.100000,29.250000],[-45.437500,55.400000],[-42.500000,66.550000],[-50.037500,65.287500],[-67.400000,61.550000],[-84.650000,57.750000],[-92.000000,56.350000],[-46.200000,101.950000],[-0.100000,147.250000],[45.000000,102.350000],[90.600000,57.150000],[91.126758,56.748437],[90.726563,56.600000],[86.962500,57.100000],[66.300000,61.550000],[49.162500,65.312500],[41.700000,66.750000],[42.315625,63.657813],[44.525000,55.512500],[52.300000,29.050000],[63.400000,-8.650000],[41.800000,7.550000],[20.100000,23.750000],[10.100000,-22.050000],[3.037500,-54.375000],[-0.200000,-68.250000],[-1.250000,-64.917188],[-3.575000,-55.312500],[-10.700000,-23.250000]]);
}
}
module engineer_3430(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-170.200000,38.650000],[-171.900000,41.025000],[-173.000000,44.150000],[-173.185937,46.182812],[-172.912500,47.737500],[-172.057813,49.198438],[-170.500000,50.950000],[-167.718750,53.032813],[-164.825000,53.887500],[-163.359375,53.857227],[-161.893750,53.523438],[-159.000000,51.950000],[-157.025000,49.687500],[-155.800000,47.050000],[-155.778125,44.314063],[-156.600000,41.437500],[-158.021875,38.992187],[-159.800000,37.550000],[-162.437500,36.976563],[-165.375000,37.012500],[-168.125000,37.592187],[-170.200000,38.650000]]);
}
}
module engineer_3346(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[26.200000,-167.850000],[25.085767,-166.258716],[24.383008,-164.654102],[24.057886,-163.065015],[24.076563,-161.520313],[24.405200,-160.048853],[25.009961,-158.679492],[26.912500,-156.362500],[29.513477,-154.800195],[32.542188,-154.223438],[34.132349,-154.376782],[35.727930,-154.863086],[37.295093,-155.711206],[38.800000,-156.950000],[40.843750,-159.625000],[41.373437,-160.957813],[41.575000,-162.300000],[41.448438,-163.660938],[40.993750,-165.050000],[39.100000,-167.950000],[37.639258,-169.393555],[36.057813,-170.423438],[34.394336,-171.038477],[32.687500,-171.237500],[30.975977,-171.019336],[29.298437,-170.382813],[27.693555,-169.326758],[26.200000,-167.850000]]);
}
}
module engineer_3392(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[132.000000,-52.550000],[130.174805,-51.447656],[128.760938,-49.937500],[127.775977,-48.127344],[127.237500,-46.125000],[127.163086,-44.038281],[127.570313,-41.975000],[128.476758,-40.042969],[129.900000,-38.350000],[131.133398,-37.510156],[132.604688,-36.937500],[135.937500,-36.575000],[139.251563,-37.225000],[140.699414,-37.917969],[141.900000,-38.850000],[142.803711,-40.000781],[143.485938,-41.437500],[144.162500,-44.775000],[143.882813,-48.075000],[143.369727,-49.464844],[142.600000,-50.550000],[140.367188,-52.114063],[137.637500,-53.012500],[134.739062,-53.179688],[132.000000,-52.550000]]);
}
}
module engineer_3354(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-5.300000,-139.250000],[-7.473437,-136.254688],[-8.050977,-134.730664],[-8.287500,-133.212500],[-8.181836,-131.717773],[-7.732813,-130.264062],[-6.939258,-128.868945],[-5.800000,-127.550000],[-3.597852,-125.866992],[-1.214063,-124.979688],[1.204883,-124.830664],[3.512500,-125.362500],[5.562305,-126.517773],[7.207812,-128.239062],[8.302539,-130.468945],[8.700000,-133.150000],[8.221875,-136.406250],[6.825000,-138.950000],[4.565625,-140.743750],[1.500000,-141.750000],[-0.532813,-141.935938],[-2.087500,-141.662500],[-3.548437,-140.807813],[-5.300000,-139.250000]]);
}
}
module engineer_3402(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-171.300000,-25.850000],[-172.531250,-23.818750],[-173.200000,-21.150000],[-173.268750,-18.256250],[-172.700000,-15.550000],[-171.350000,-14.000000],[-169.100000,-12.450000],[-166.019336,-11.470508],[-163.110938,-11.626563],[-160.537695,-12.722461],[-158.462500,-14.562500],[-157.048242,-16.950977],[-156.457812,-19.692188],[-156.854102,-22.590430],[-158.400000,-25.450000],[-159.602344,-26.607422],[-161.118750,-27.453125],[-162.850781,-27.984766],[-164.700000,-28.200000],[-166.567969,-28.096484],[-168.356250,-27.671875],[-169.966406,-26.923828],[-171.300000,-25.850000]]);
}
}
module engineer_3364(h)
{
scale([25.4/90, -25.4/90, 1]) union()
{
linear_extrude(height=h)
polygon([[-4.600000,-111.050000],[-6.554883,-108.974023],[-7.657812,-106.610937],[-7.966211,-104.133008],[-7.537500,-101.712500],[-6.429102,-99.521680],[-4.698438,-97.732812],[-2.402930,-96.518164],[0.400000,-96.050000],[3.293750,-96.242187],[5.400000,-96.912500],[6.981250,-98.201563],[8.300000,-100.250000],[9.064453,-102.436523],[9.221875,-104.654688],[8.830859,-106.804883],[7.950000,-108.787500],[6.637891,-110.502930],[4.953125,-111.851562],[2.954297,-112.733789],[0.700000,-113.050000],[-1.987500,-112.462500],[-4.600000,-111.050000]]);
}
}