Rev Author Line No. Line
4641 jacho 1  
2 // Module names are of the form poly_<inkscape-path-id>(). As a result,
3 // you can associate a polygon in this OpenSCAD program with the corresponding
4 // SVG element in the Inkscape document by looking for the XML element with
5 // the attribute id="inkscape-path-id".
6  
7 // fudge value is used to ensure that subtracted solids are a tad taller
8 // in the z dimension than the polygon being subtracted from. This helps
9 // keep the resulting .stl file manifold.
10 fudge = 0.1;
11  
12 module poly_path18(h)
13 {
14 scale([25.4/90, -25.4/90, 1]) union()
15 {
16 difference()
17 {
18 linear_extrude(height=h)
19 polygon([[-232.349188,-35.666875],[-182.797938,-35.898125],[-160.682938,-13.989375],[-160.450438,35.563125],[-232.014188,35.898125],[-232.349188,-35.666875]]);
20 translate([0, 0, -fudge])
21 linear_extrude(height=h+2*fudge)
22 polygon([[-209.879188,-13.409375],[-209.752938,13.430625],[-182.920438,13.305625],[-183.046688,-13.534375],[-209.879188,-13.409375]]);
23 }
24 }
25 }
26  
27 module poly_path62(h)
28 {
29 scale([25.4/90, -25.4/90, 1]) union()
30 {
31 difference()
32 {
33 linear_extrude(height=h)
34 polygon([[92.432812,-1.771750],[92.597949,-4.503371],[93.119219,-6.901594],[93.996035,-8.967707],[95.227812,-10.703000],[96.774141,-12.078137],[98.609687,-13.063156],[100.733984,-13.658410],[103.146562,-13.864250],[105.699062,-13.661125],[107.887812,-13.019250],[109.732656,-11.984875],[111.231562,-10.594250],[112.395469,-8.862219],[113.234062,-6.795500],[113.741562,-4.448156],[113.919062,-1.873000],[113.755859,0.855555],[113.240625,3.252938],[112.374297,5.318914],[111.157812,7.053250],[109.617598,8.429246],[107.786406,9.413719],[105.666230,10.007957],[103.259062,10.213250],[100.702656,10.008719],[98.512812,9.368250],[96.665625,8.337938],[95.150312,6.949500],[93.964375,5.212312],[93.125312,3.147000],[92.613594,0.802000]]);
35 translate([0, 0, -fudge])
36 linear_extrude(height=h+2*fudge)
37 polygon([[98.552812,-1.800500],[98.835312,0.975750],[99.666562,3.205750],[101.112812,4.683250],[103.235312,5.200750],[105.263281,4.768875],[106.697812,3.500750],[107.534531,1.315750],[107.804062,-1.844250],[107.529688,-4.690812],[106.730312,-6.920500],[106.111992,-7.769914],[105.312500,-8.373000],[103.169062,-8.846750],[101.223594,-8.427688],[99.762812,-7.193000],[98.842812,-5.017062]]);
38 }
39 }
40 }
41  
42 module poly_path58(h)
43 {
44 scale([25.4/90, -25.4/90, 1]) union()
45 {
46 difference()
47 {
48 linear_extrude(height=h)
49 polygon([[68.990437,-22.185500],[74.917937,-22.213000],[74.969187,-11.273000],[75.156687,-11.274250],[76.242312,-12.255344],[77.609187,-13.014250],[79.189500,-13.503000],[80.932937,-13.669250],[82.865594,-13.502668],[84.557312,-12.984406],[86.008094,-12.114816],[87.217937,-10.894250],[88.174051,-9.313273],[88.860281,-7.363625],[89.277215,-5.044602],[89.425437,-2.355500],[89.249227,0.538211],[88.692625,3.066062],[87.755867,5.225945],[86.439187,7.015750],[84.785418,8.417801],[82.848406,9.424344],[80.628035,10.034090],[78.124187,10.245750],[72.789187,9.788250],[69.136687,8.730750],[68.990437,-22.185500]]);
50 translate([0, 0, -fudge])
51 linear_extrude(height=h+2*fudge)
52 polygon([[79.224187,-8.645500],[77.738875,-8.428469],[76.562937,-7.790500],[75.659812,-6.752219],[74.996687,-5.341750],[75.042937,4.603250],[76.622937,5.097000],[78.425437,5.222000],[80.548719,4.774656],[82.084187,3.450750],[83.017781,1.173250],[83.316687,-2.135500],[83.049715,-4.992766],[82.277781,-7.029250],[81.002176,-8.246359]]);
53 }
54 }
55 }
56  
57 module poly_path34(h)
58 {
59 scale([25.4/90, -25.4/90, 1]) union()
60 {
61 difference()
62 {
63 linear_extrude(height=h)
64 polygon([[-103.128062,-0.856125],[-102.963473,-3.587746],[-102.443219,-5.985969],[-101.566949,-8.052082],[-100.334312,-9.787375],[-98.786773,-11.162336],[-96.951188,-12.147062],[-94.827789,-12.742258],[-92.416812,-12.948625],[-89.861812,-12.745500],[-87.670562,-12.103625],[-85.828219,-11.069094],[-84.328062,-9.677375],[-83.164781,-7.946437],[-82.326812,-5.879875],[-81.819937,-3.532531],[-81.643062,-0.957375],[-81.805758,1.771180],[-82.320250,4.168563],[-83.186773,6.234539],[-84.405563,7.968875],[-85.947711,9.344871],[-87.777437,10.329344],[-89.895914,10.923582],[-92.304312,11.128875],[-94.860875,10.924344],[-97.055562,10.283875],[-98.899781,9.253563],[-100.416812,7.865125],[-101.598844,6.127938],[-102.444312,4.062625],[-102.949312,1.717625]]);
65 translate([0, 0, -fudge])
66 linear_extrude(height=h+2*fudge)
67 polygon([[-97.013062,-0.884875],[-96.726812,1.891375],[-95.893062,4.121375],[-94.451812,5.600125],[-92.326812,6.116375],[-90.301031,5.684656],[-88.870563,4.417625],[-88.026500,2.231531],[-87.754312,-0.928625],[-88.029469,-3.775187],[-88.830562,-6.004875],[-89.449605,-6.854289],[-90.248531,-7.457375],[-92.393062,-7.931125],[-94.341500,-7.512062],[-95.804312,-6.277375],[-96.719469,-4.101437]]);
68 }
69 }
70 }
71  
72 module poly_path42(h)
73 {
74 scale([25.4/90, -25.4/90, 1]) union()
75 {
76 linear_extrude(height=h)
77 polygon([[-47.308437,-12.520625],[-47.248437,0.426875],[-47.072812,2.824531],[-46.567187,4.446875],[-45.590937,5.361406],[-43.988437,5.661875],[-42.443750,5.402969],[-41.185937,4.644375],[-40.217500,3.524062],[-39.528437,2.176875],[-39.597187,-12.556875],[-33.673437,-12.584375],[-33.599687,3.286875],[-33.404687,6.963125],[-32.838437,10.218125],[-37.304687,10.239375],[-38.372187,6.868125],[-38.553437,6.869375],[-39.800000,8.458125],[-41.460937,9.750625],[-43.496875,10.616719],[-45.875937,10.911875],[-48.979687,10.475625],[-50.237969,9.875469],[-51.268437,8.978125],[-52.079531,7.755000],[-52.672187,6.160625],[-53.170937,1.688125],[-53.238437,-12.493125],[-47.308437,-12.520625]]);
78 }
79 }
80  
81 module poly_path94(h)
82 {
83 scale([25.4/90, -25.4/90, 1]) union()
84 {
85 linear_extrude(height=h)
86 polygon([[41.480063,10.569500],[35.628813,10.597000],[35.476313,-21.966750],[41.328813,-21.994250],[41.480063,10.569500]]);
87 }
88 }
89  
90 module poly_path78(h)
91 {
92 scale([25.4/90, -25.4/90, 1]) union()
93 {
94 difference()
95 {
96 linear_extrude(height=h)
97 polygon([[171.252562,-2.141000],[171.416664,-4.872621],[171.935375,-7.270844],[172.808930,-9.336957],[174.037562,-11.072250],[175.588070,-12.447211],[177.426625,-13.431937],[179.552523,-14.027133],[181.965062,-14.233500],[184.515062,-14.029906],[186.705062,-13.388500],[188.543031,-12.353969],[190.046312,-10.962250],[191.211469,-9.231312],[192.047562,-7.164750],[192.554594,-4.817406],[192.728812,-2.242250],[192.567055,0.486305],[192.053500,2.883688],[191.187914,4.949664],[189.970062,6.684000],[188.430980,8.059996],[186.602094,9.044469],[184.483754,9.638707],[182.076312,9.844000],[179.515219,9.639469],[177.318812,8.999000],[175.473812,7.968688],[173.951312,6.580250],[172.775844,4.844000],[171.927562,2.777750],[171.425062,0.432750]]);
98 translate([0, 0, -fudge])
99 linear_extrude(height=h+2*fudge)
100 polygon([[177.361312,-2.169750],[177.651312,0.606500],[178.485062,2.836500],[179.922562,4.315250],[182.053812,4.831500],[184.074281,4.400250],[185.505062,3.132750],[186.347875,0.946656],[186.622562,-2.213500],[186.346781,-5.060062],[185.548812,-7.289750],[184.927680,-8.139145],[184.127250,-8.742094],[181.987562,-9.214750],[180.036469,-8.796312],[178.570062,-7.562250],[177.655844,-5.386312]]);
101 }
102 }
103 }
104  
105 module poly_path86(h)
106 {
107 scale([25.4/90, -25.4/90, 1]) union()
108 {
109 linear_extrude(height=h)
110 polygon([[221.151687,-0.960625],[221.989187,2.591875],[222.269187,2.590625],[222.836687,-1.015625],[226.242937,-13.801875],[232.349187,-13.830625],[225.516687,6.771875],[223.874188,11.454375],[222.132937,15.133125],[221.136531,16.512031],[220.030438,17.539375],[218.753406,18.173594],[217.269187,18.390625],[215.136531,18.209219],[213.482937,17.633125],[214.555437,12.890625],[215.921687,13.160625],[216.956062,12.930469],[217.949187,12.260625],[218.804188,11.003281],[219.411687,9.038125],[209.776687,-13.724375],[216.896687,-13.758125],[221.151687,-0.960625]]);
111 }
112 }
113  
114 module poly_path50(h)
115 {
116 scale([25.4/90, -25.4/90, 1]) union()
117 {
118 linear_extrude(height=h)
119 polygon([[17.764187,-7.257000],[15.205437,-7.744500],[13.741062,-7.528406],[12.542937,-6.897000],[11.651219,-5.926687],[11.112937,-4.722000],[11.181687,10.011750],[5.251687,10.040500],[5.144187,-12.767000],[9.752937,-12.788250],[10.450437,-9.784500],[10.631687,-9.785750],[11.539656,-11.279031],[12.724187,-12.383250],[14.155281,-13.083875],[15.817937,-13.323250],[18.512937,-12.829500],[17.764187,-7.257000]]);
120 }
121 }
122  
123 module poly_path82(h)
124 {
125 scale([25.4/90, -25.4/90, 1]) union()
126 {
127 linear_extrude(height=h)
128 polygon([[209.396313,-8.154250],[206.840063,-8.641750],[205.376937,-8.425656],[204.180063,-7.794250],[203.285531,-6.823937],[202.753813,-5.619250],[202.822563,9.114500],[196.891313,9.143250],[196.783813,-13.664250],[201.386313,-13.685500],[202.093813,-10.683000],[202.272562,-10.683000],[203.176938,-12.176281],[204.358812,-13.280500],[205.786938,-13.981125],[207.447563,-14.220500],[210.150063,-13.726750],[209.396313,-8.154250]]);
129 }
130 }
131  
132 module poly_path54(h)
133 {
134 scale([25.4/90, -25.4/90, 1]) union()
135 {
136 difference()
137 {
138 linear_extrude(height=h)
139 polygon([[46.283563,-11.629625],[50.606063,-12.954625],[55.847312,-13.462125],[58.027625,-13.328531],[59.823563,-12.914625],[61.254031,-12.223844],[62.361063,-11.299625],[63.162156,-10.153375],[63.692313,-8.800875],[64.097312,-5.517125],[63.982313,-1.485875],[63.839812,2.506625],[63.968563,6.316625],[64.671063,9.806625],[59.834812,9.829125],[58.863563,6.684125],[58.634813,6.685375],[57.552000,8.007250],[56.118562,9.130375],[54.268406,9.915062],[51.948563,10.184125],[49.068562,9.721625],[46.877313,8.357875],[45.456063,6.266625],[44.937313,3.560375],[45.162156,1.623344],[45.854813,0.022875],[46.988875,-1.286188],[48.533563,-2.323375],[50.456688,-3.080563],[52.724812,-3.573375],[58.176063,-3.800875],[58.234969,-5.998063],[57.788563,-7.469625],[56.681531,-8.303375],[54.733563,-8.574625],[50.972312,-8.192125],[47.714812,-7.219625],[46.283563,-11.629625]]);
140 translate([0, 0, -fudge])
141 linear_extrude(height=h+2*fudge)
142 polygon([[53.882313,5.299125],[55.479969,5.090531],[56.711063,4.481625],[58.251062,2.767875],[58.237313,-0.197125],[55.523563,-0.232125],[53.223563,0.191625],[51.628562,1.107875],[51.191688,1.785219],[51.047313,2.622875],[51.239812,3.754125],[51.807313,4.596625],[52.702313,5.127406]]);
143 }
144 }
145 }
146  
147 module poly_path66(h)
148 {
149 scale([25.4/90, -25.4/90, 1]) union()
150 {
151 linear_extrude(height=h)
152 polygon([[130.590187,-7.785500],[128.031437,-8.273000],[126.565344,-8.056281],[125.362687,-7.424250],[124.466437,-6.454563],[123.933937,-5.250500],[124.001437,9.484500],[118.077687,9.512000],[117.971437,-13.294250],[122.580187,-13.316750],[123.276437,-10.313000],[123.451437,-10.314250],[124.360656,-11.807063],[125.546437,-12.911750],[126.972531,-13.611750],[128.637687,-13.850500],[131.332687,-13.358000],[130.590187,-7.785500]]);
153 }
154 }
155  
156 module poly_path14(h)
157 {
158 scale([25.4/90, -25.4/90, 1]) union()
159 {
160 difference()
161 {
162 linear_extrude(height=h)
163 polygon([[-232.349188,-35.666875],[-182.797938,-35.898125],[-160.682938,-13.989375],[-160.450438,35.563125],[-232.014188,35.898125],[-232.349188,-35.666875]]);
164 translate([0, 0, -fudge])
165 linear_extrude(height=h+2*fudge)
166 polygon([[-209.879188,-13.409375],[-209.752938,13.430625],[-182.920438,13.305625],[-183.046688,-13.534375],[-209.879188,-13.409375]]);
167 }
168 }
169 }
170  
171 module poly_path74(h)
172 {
173 scale([25.4/90, -25.4/90, 1]) union()
174 {
175 linear_extrude(height=h)
176 polygon([[154.225437,-13.464250],[157.375437,-13.479250],[157.354188,-17.769250],[163.271687,-19.481750],[163.299188,-13.506750],[168.866688,-13.533000],[168.890438,-8.515500],[163.322938,-8.489250],[163.364188,0.273250],[163.494344,2.303250],[163.861688,3.665750],[164.555906,4.429187],[165.669188,4.680750],[167.242937,4.488250],[168.720438,3.940750],[169.790437,8.493250],[166.929188,9.509500],[163.595438,9.930750],[160.862313,9.540125],[158.954187,8.335750],[157.837312,6.209187],[157.451687,3.034500],[157.397938,-8.461750],[154.249188,-8.445500],[154.225437,-13.464250]]);
177 }
178 }
179  
180 module poly_path46(h)
181 {
182 scale([25.4/90, -25.4/90, 1]) union()
183 {
184 difference()
185 {
186 linear_extrude(height=h)
187 polygon([[-17.605063,-11.330500],[-13.281313,-12.655500],[-8.033813,-13.163000],[-5.857719,-13.029406],[-4.061313,-12.615500],[-2.629438,-11.924250],[-1.527563,-11.000500],[-0.723813,-9.854250],[-0.193813,-8.501750],[0.212437,-5.218000],[0.098687,-1.186750],[-0.045063,2.805750],[0.079937,6.615750],[0.783687,10.105750],[-4.050063,10.128250],[-5.022563,6.983250],[-5.251313,6.984500],[-6.332875,8.306531],[-7.768813,9.430750],[-9.618344,10.214344],[-11.941313,10.483250],[-14.816313,10.020750],[-17.007563,8.657000],[-18.436313,6.565750],[-18.951313,3.859500],[-18.725531,1.922469],[-18.026313,0.322000],[-16.895063,-0.986906],[-15.351313,-2.023000],[-13.425375,-2.781281],[-11.160063,-3.274250],[-5.706313,-3.501750],[-5.651000,-5.698938],[-6.092563,-7.170500],[-7.203031,-8.004250],[-9.152563,-8.275500],[-12.918813,-7.893000],[-16.170063,-6.920500],[-17.605063,-11.330500]]);
188 translate([0, 0, -fudge])
189 linear_extrude(height=h+2*fudge)
190 polygon([[-9.998813,5.598250],[-8.407250,5.390125],[-7.173813,4.780750],[-5.631313,3.067000],[-5.645063,0.102000],[-8.360063,0.067000],[-10.661313,0.490750],[-12.256313,1.407000],[-12.696313,2.084344],[-12.840063,2.922000],[-12.647406,4.053250],[-12.075063,4.895750],[-11.181313,5.426531]]);
191 }
192 }
193 }
194  
195 module poly_path30(h)
196 {
197 scale([25.4/90, -25.4/90, 1]) union()
198 {
199 linear_extrude(height=h)
200 polygon([[-125.741688,10.653750],[-125.799188,-1.755000],[-125.957313,-4.443125],[-126.411687,-6.220000],[-127.327781,-7.208438],[-128.880437,-7.531250],[-130.280906,-7.315156],[-131.384188,-6.683750],[-132.224656,-5.710156],[-132.831688,-4.508750],[-132.761688,10.686250],[-138.689188,10.713750],[-138.796688,-12.092500],[-134.194187,-12.113750],[-133.492938,-9.111250],[-133.309188,-9.112500],[-132.123719,-10.484375],[-130.654188,-11.680000],[-128.806688,-12.502500],[-126.486688,-12.788750],[-124.498406,-12.577344],[-122.902938,-11.922500],[-121.661375,-10.735625],[-120.721688,-8.941250],[-119.532313,-10.539844],[-118.042938,-11.770000],[-116.236219,-12.570313],[-114.077938,-12.847500],[-110.816688,-12.408750],[-109.595906,-11.791406],[-108.621688,-10.841250],[-107.881375,-9.539219],[-107.352937,-7.861250],[-106.920438,-3.121250],[-106.856688,10.565000],[-112.786687,10.592500],[-112.846688,-2.221250],[-113.000750,-4.580781],[-113.434188,-6.262500],[-114.358406,-7.263438],[-115.971688,-7.591250],[-117.402469,-7.371563],[-118.500438,-6.715000],[-119.310125,-5.685313],[-119.881687,-4.335000],[-119.810438,10.626250],[-125.741688,10.653750]]);
201 }
202 }
203  
204 module poly_path70(h)
205 {
206 scale([25.4/90, -25.4/90, 1]) union()
207 {
208 difference()
209 {
210 linear_extrude(height=h)
211 polygon([[133.850562,-12.039750],[138.173062,-13.363500],[143.408062,-13.872250],[145.596344,-13.738656],[147.391813,-13.324750],[148.819156,-12.633500],[149.919312,-11.709750],[150.729781,-10.563500],[151.261812,-9.211000],[151.663062,-5.927250],[151.539312,-1.896000],[151.405562,2.096500],[151.535562,5.906500],[152.238062,9.396500],[147.406813,9.419000],[146.426812,6.274000],[146.209313,6.275250],[145.120875,7.597750],[143.681812,8.721500],[141.828531,9.505563],[139.516812,9.774000],[136.633062,9.311500],[134.443062,7.947750],[133.018062,5.856500],[132.496812,3.150250],[132.724469,1.213219],[133.421812,-0.387250],[134.559156,-1.696156],[136.100562,-2.732250],[138.019156,-3.490375],[140.289312,-3.982250],[145.745563,-4.211000],[145.802281,-6.408187],[145.355562,-7.879750],[144.249469,-8.713500],[142.296812,-8.984750],[138.534312,-8.602250],[135.275562,-7.629750],[133.850562,-12.039750]]);
212 translate([0, 0, -fudge])
213 linear_extrude(height=h+2*fudge)
214 polygon([[141.455562,4.889000],[143.042125,4.680875],[144.278062,4.071500],[145.815562,2.357750],[145.803063,-0.607250],[143.089313,-0.642250],[140.789312,-0.218500],[139.195562,0.697750],[138.753688,1.375563],[138.611812,2.212750],[138.804469,3.344000],[139.373063,4.186500],[140.269937,4.717281]]);
215 }
216 }
217 }
218  
219 module poly_path90(h)
220 {
221 scale([25.4/90, -25.4/90, 1]) union()
222 {
223 linear_extrude(height=h)
224 polygon([[-23.205063,10.872250],[-29.056313,10.899750],[-29.208813,-21.664000],[-23.357563,-21.691500],[-23.205063,10.872250]]);
225 }
226 }
227  
228 module poly_path38(h)
229 {
230 scale([25.4/90, -25.4/90, 1]) union()
231 {
232 difference()
233 {
234 linear_extrude(height=h)
235 polygon([[-58.146312,2.302250],[-58.077562,6.141000],[-57.645062,10.378500],[-61.891312,10.399750],[-62.723813,7.443500],[-62.901312,7.444750],[-64.011937,8.887562],[-65.516312,10.032250],[-67.378187,10.768812],[-69.547562,11.023500],[-71.573285,10.856391],[-73.360531,10.335375],[-74.909418,9.459047],[-76.220062,8.226000],[-77.266059,6.617855],[-78.017094,4.610219],[-78.473051,2.201098],[-78.633813,-0.611500],[-78.481391,-3.367242],[-77.996625,-5.799313],[-77.180453,-7.907477],[-76.033813,-9.691500],[-74.561996,-11.115934],[-72.782094,-12.137594],[-70.693051,-12.755895],[-68.293813,-12.970250],[-65.968812,-12.821500],[-64.140062,-12.302750],[-64.182562,-21.561500],[-58.257563,-21.589000],[-58.146312,2.302250]]);
236 translate([0, 0, -fudge])
237 linear_extrude(height=h+2*fudge)
238 polygon([[-68.205062,6.003500],[-66.652719,5.784750],[-65.468812,5.146000],[-64.621156,4.114281],[-64.068813,2.704750],[-64.115062,-6.970250],[-65.528812,-7.712750],[-67.538813,-7.957750],[-69.730844,-7.526188],[-71.293813,-6.249000],[-72.222719,-3.955250],[-72.518812,-0.454000],[-72.250844,2.179906],[-71.470062,4.233500],[-70.139438,5.565687]]);
239 }
240 }
241 }
242  
243 module poly_path1088(h)
244 {
245 scale([25.4/90, -25.4/90, 1]) union()
246 {
247 linear_extrude(height=h)
248 polygon([[46.482459,41.647066],[46.482459,-3.772989],[46.346967,-9.120684],[45.939241,-13.631023],[45.257402,-17.307759],[44.299573,-20.154648],[42.916807,-22.272136],[40.957654,-23.786951],[38.416482,-24.697217],[35.287657,-25.001056],[32.584083,-24.806111],[30.150865,-24.222527],[27.988006,-23.252182],[26.095503,-21.896952],[23.016432,-18.367285],[20.748434,-13.966466],[20.748434,41.647066],[-0.960270,41.647066],[-0.960270,-41.863352],[15.922052,-41.863352],[18.425362,-30.828762],[19.086236,-30.828762],[21.128311,-33.427823],[23.436988,-35.850401],[28.839131,-40.181127],[32.026783,-41.942206],[35.640624,-43.200119],[39.678776,-43.954867],[44.139361,-44.206450],[47.965983,-44.000553],[51.426496,-43.385364],[54.522777,-42.364640],[57.256705,-40.942134],[59.661760,-39.039618],[61.777682,-36.581368],[63.615738,-33.574893],[65.187190,-30.027703],[67.244911,-33.098012],[69.572989,-35.845395],[72.171425,-38.262340],[75.040218,-40.341339],[78.193450,-42.026693],[81.671486,-43.235166],[85.468694,-43.963003],[89.579442,-44.206450],[96.060511,-43.785894],[101.535250,-42.524226],[103.870838,-41.532915],[105.981128,-40.241207],[107.866121,-38.649102],[109.525815,-36.756600],[110.972102,-34.541483],[112.219376,-31.982788],[114.131905,-25.842169],[115.260898,-18.056875],[115.653918,-8.439158],[115.653918,41.647066],[93.905161,41.647066],[93.905161,-5.295001],[93.384473,-13.893870],[92.739245,-17.289297],[91.842434,-20.074543],[90.466552,-22.229892],[88.465469,-23.769428],[85.829797,-24.693149],[82.550148,-25.001056],[79.786494,-24.799227],[77.323237,-24.197494],[75.160377,-23.201489],[73.297914,-21.816846],[71.694544,-20.081427],[70.308962,-18.056875],[69.141168,-15.739436],[68.191162,-13.125354],[68.191162,41.647066],[46.482459,41.647066]]);
249 }
250 }
251  
252 module poly_path1084(h)
253 {
254 scale([25.4/90, -25.4/90, 1]) union()
255 {
256 difference()
257 {
258 linear_extrude(height=h)
259 polygon([[-336.732227,-136.150017],[-148.182927,-136.150017],[-64.412166,-52.399282],[-64.412166,136.150017],[-336.732227,136.150017],[-336.732227,-136.150017]]);
260 translate([0, 0, -fudge])
261 linear_extrude(height=h+2*fudge)
262 polygon([[-251.639718,51.057508],[-149.524701,51.057508],[-149.524701,-51.077535],[-251.639718,-51.077535],[-251.639718,51.057508]]);
263 }
264 }
265 }
266  
267 module poly_path1098(h)
268 {
269 scale([25.4/90, -25.4/90, 1]) union()
270 {
271 linear_extrude(height=h)
272 polygon([[157.761592,43.427420],[136.333260,43.427420],[136.333260,-75.810236],[157.761592,-75.810236],[157.761592,43.427420]]);
273 }
274 }
275  
276 module poly_path1092(h)
277 {
278 scale([25.4/90, -25.4/90, 1]) union()
279 {
280 difference()
281 {
282 linear_extrude(height=h)
283 polygon([[178.883520,-37.020949],[186.190681,-39.719517],[194.744491,-41.787251],[204.154433,-43.093979],[213.969911,-43.529555],[221.945456,-43.003860],[225.403779,-42.346741],[228.509135,-41.426774],[231.281237,-40.278381],[233.743556,-38.908445],[235.901722,-37.320720],[237.761368,-35.518963],[239.349405,-33.494098],[240.687737,-31.290873],[241.774487,-28.903654],[242.607776,-26.326809],[243.671683,-20.639289],[244.029656,-14.290895],[243.549020,0.488646],[242.948226,15.107976],[243.000796,22.189839],[243.368782,29.046405],[244.237431,35.607580],[245.872092,41.823299],[228.168685,41.823299],[224.664051,30.288047],[223.822939,30.288047],[221.977060,32.796676],[219.825153,35.126945],[217.354073,37.280730],[214.550679,39.259909],[211.377421,40.881115],[207.774219,42.046093],[203.739196,42.749210],[199.270475,42.984835],[193.720637,42.549259],[188.756574,41.242531],[184.403318,39.107208],[180.725956,36.235911],[177.774553,32.673701],[175.559124,28.525717],[174.172291,23.847031],[173.716688,18.612610],[173.927592,14.918350],[174.562807,11.528243],[175.626088,8.446042],[177.121190,5.675504],[179.032467,3.168126],[181.311730,0.906699],[183.958980,-1.103146],[186.974217,-2.855776],[190.348992,-4.362768],[194.041061,-5.614423],[198.044792,-6.618251],[202.354553,-7.381760],[211.812058,-8.187826],[222.320953,-8.122740],[222.677361,-12.475057],[222.573787,-16.160868],[222.008352,-19.182050],[220.979179,-21.540481],[219.345456,-23.359448],[216.936333,-24.647088],[213.749933,-25.412788],[209.784377,-25.665935],[203.090526,-25.332995],[196.006159,-24.324161],[189.399924,-22.772109],[184.070378,-20.799501],[178.883520,-37.020949]]);
284 translate([0, 0, -fudge])
285 linear_extrude(height=h+2*fudge)
286 polygon([[206.439955,25.121215],[209.525284,24.937535],[212.287687,24.387745],[214.719652,23.473724],[216.813671,22.197349],[220.150583,19.160834],[222.481164,15.929061],[222.481164,5.074710],[217.401949,4.776816],[212.548031,4.914498],[208.059596,5.452710],[204.096857,6.396457],[200.822527,7.835861],[198.269151,9.740879],[197.322900,10.905857],[196.647007,12.211646],[196.106292,15.268188],[196.275891,17.479549],[196.787192,19.426185],[197.643950,21.106219],[198.849919,22.517773],[200.351279,23.659595],[202.119242,24.472858],[204.150052,24.959439]]);
287 }
288 }
289 }
290  
291 module poly_path1096(h)
292 {
293 scale([25.4/90, -25.4/90, 1]) union()
294 {
295 difference()
296 {
297 linear_extrude(height=h)
298 polygon([[262.253752,-75.279535],[283.962455,-75.279535],[283.962455,-35.166497],[284.643355,-35.166497],[286.513015,-37.074019],[288.636135,-38.771263],[291.010837,-40.258229],[293.635244,-41.534917],[296.467114,-42.556894],[299.437917,-43.282228],[302.551408,-43.714675],[305.811344,-43.857989],[309.462186,-43.698325],[312.890078,-43.219019],[316.095488,-42.419603],[319.078886,-41.299606],[321.840741,-39.858560],[324.381522,-38.095996],[326.701699,-36.011442],[328.801741,-33.604432],[330.660449,-30.867962],[332.271329,-27.795188],[333.634381,-24.385876],[334.749606,-20.639790],[335.617003,-16.556696],[336.236572,-12.136359],[336.732227,-2.283019],[336.558560,3.187848],[336.037559,8.320063],[335.169223,13.112924],[333.953553,17.565725],[332.390549,21.677764],[330.480211,25.448335],[328.222538,28.876735],[325.617531,31.962260],[322.716000,34.700608],[319.554202,37.073081],[316.132842,39.079914],[312.452625,40.721342],[308.514253,41.997600],[304.318432,42.908922],[299.865865,43.455543],[295.157257,43.637698],[284.903700,43.204625],[275.611413,41.915421],[267.828623,40.055461],[262.253752,37.970204],[262.253752,-75.279535]]);
299 translate([0, 0, -fudge])
300 linear_extrude(height=h+2*fudge)
301 polygon([[299.482976,-25.493708],[296.618251,-25.299075],[294.033271,-24.717682],[291.729913,-23.753282],[289.710054,-22.409630],[287.944595,-20.687040],[286.400679,-18.617116],[285.074550,-16.205489],[283.962455,-13.457794],[283.962455,22.930318],[286.723606,24.071828],[289.710054,24.792781],[296.318793,25.293443],[300.479919,24.888533],[304.104086,23.676305],[307.195048,21.660515],[309.756560,18.844917],[311.777357,15.156915],[313.216134,10.518908],[314.076647,4.927140],[314.362650,-1.622145],[314.129881,-7.218959],[313.431732,-12.068770],[312.268436,-16.171812],[310.640228,-19.528320],[308.547344,-22.138529],[305.990017,-24.002674],[302.968483,-25.120988]]);
302 }
303 }
304 }
305  
306 module MLAB_logo_long()
307 {
308 poly_path18(5);
309 poly_path62(5);
310 poly_path58(5);
311 poly_path34(5);
312 poly_path42(5);
313 poly_path94(5);
314 poly_path78(5);
315 poly_path86(5);
316 poly_path50(5);
317 poly_path82(5);
318 poly_path54(5);
319 poly_path66(5);
320 poly_path14(5);
321 poly_path74(5);
322 poly_path46(5);
323 poly_path30(5);
324 poly_path70(5);
325 poly_path90(5);
326 poly_path38(5);
327 }
328  
329 module MLAB_logo_short()
330 {
331 poly_path1088(5);
332 poly_path1084(5);
333 poly_path1098(5);
334 poly_path1092(5);
335 poly_path1096(5);
336 }