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".
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.
12 module poly_path882(h)
14 scale([25.4/90, -25.4/90, 1]) union()
16 linear_extrude(height=h)
17 polygon([[6.534245,73.006824],[2.030515,72.872334],[2.286355,38.805804],[3.206799,32.163892],[5.370075,26.277614],[12.148405,17.169724],[22.891415,7.789514],[32.386315,0.960044],[33.740985,-0.035806],[38.086425,-2.479766],[41.404955,-2.601506],[42.454785,-1.976456],[43.096645,-0.381666],[41.660775,2.914694],[32.873145,11.567634],[30.989315,13.253354],[30.989315,14.054954],[31.137485,14.809684],[41.590725,12.300104],[51.623515,9.717954],[56.177645,7.542904],[60.938225,2.695474],[64.806585,-7.390256],[66.801875,-14.110866],[67.482045,-16.058196],[68.412045,-18.809866],[69.385565,-21.730516],[71.392595,-25.209976],[73.491985,-26.005516],[75.260205,-25.245326],[76.344975,-21.688526],[75.471045,-15.296196],[71.601695,-0.394866],[69.380835,4.600474],[62.146645,15.299134],[59.225825,17.713284],[51.055230,23.035956],[43.054315,26.319214],[29.888513,31.435295],[22.777745,36.449834],[18.502965,45.028804],[17.213674,52.516114],[16.949445,66.026134],[16.976945,73.053474],[13.971275,73.060474],[6.534205,73.006374]]);
18 linear_extrude(height=h)
19 polygon([[16.874415,63.845974],[17.191565,51.421134],[18.726419,43.916981],[21.807555,37.560254],[25.214906,34.066150],[30.917205,30.790844],[42.885875,26.242934],[51.197266,22.822330],[60.159185,16.869344],[68.008665,6.988474],[72.278045,-2.733925],[75.312535,-15.084526],[76.256145,-21.773196],[75.676485,-24.419226],[73.485525,-25.964196],[70.718965,-24.317996],[69.439275,-21.513666],[66.550005,-13.010196],[64.907755,-7.295196],[61.336555,2.316394],[56.050645,7.771724],[43.477645,12.009834],[34.883985,13.960254],[31.962985,14.714644],[30.904645,14.027754],[30.904645,13.125714],[31.263405,12.821254],[41.455455,2.949474],[42.937608,0.207695],[42.363575,-1.935246],[41.614985,-2.400916],[40.090985,-2.634636],[38.397645,-2.439366],[34.206645,-0.233556],[30.481315,2.361664],[19.209735,11.035134],[10.479905,19.078474],[4.975502,27.393379],[2.495505,37.001764],[2.210805,55.485134],[2.113705,72.777354],[14.662185,72.997474],[16.834715,73.011174]]);
20 linear_extrude(height=h)
21 polygon([[-9.581745,72.805314],[-16.811719,72.651654],[-16.753649,70.028614],[-16.746449,54.807804],[-19.476433,41.615642],[-22.228530,37.299242],[-26.171651,33.912274],[-36.931111,28.445114],[-40.614111,26.990524],[-45.158944,25.249514],[-54.799618,20.906149],[-61.152586,16.285644],[-68.829200,5.404804],[-74.760247,-12.544526],[-76.344975,-21.172406],[-75.013199,-25.393906],[-72.063519,-26.016596],[-70.197189,-24.089631],[-68.946065,-20.376196],[-60.664999,2.295854],[-58.448413,5.780134],[-52.114235,9.303107],[-40.765657,12.601704],[-30.934954,14.647314],[-30.874564,13.940984],[-30.823544,13.248494],[-31.942263,12.293114],[-35.135313,9.302604],[-38.164149,6.470484],[-42.892512,0.368514],[-41.778859,-2.391985],[-37.421313,-2.285676],[-28.404313,3.789944],[-22.405003,8.147824],[-15.111647,13.987524],[-9.183945,19.994484],[-3.504155,30.282144],[-2.148005,40.414474],[-1.910745,72.853264],[-2.183815,72.912764],[-9.581715,72.805314]]);
22 linear_extrude(height=h)
23 polygon([[-2.008395,68.798974],[-2.163695,51.675134],[-2.668525,34.995804],[-4.430161,27.977491],[-7.895835,21.848664],[-13.745127,15.421397],[-21.969680,8.642284],[-35.032221,-0.800106],[-37.878198,-2.294936],[-41.217208,-2.473293],[-42.837214,-0.874006],[-41.819544,2.350757],[-38.173537,6.293804],[-35.135837,9.131224],[-30.996546,12.921794],[-30.712967,13.157464],[-30.773057,13.958964],[-30.939209,14.760474],[-39.076349,13.109114],[-52.192729,9.408285],[-59.011500,5.381094],[-62.289351,-1.029866],[-69.000705,-20.089396],[-70.562317,-24.431126],[-73.321813,-26.147294],[-75.683164,-24.035086],[-75.938558,-17.585286],[-72.293589,-4.134806],[-68.861362,5.030242],[-64.339325,12.433294],[-59.525739,17.561884],[-53.224337,21.617434],[-42.459012,26.147844],[-31.390569,30.856624],[-26.373020,33.623074],[-21.278919,38.275364],[-18.253095,44.606184],[-16.765046,53.326237],[-16.498084,65.218214],[-16.687892,70.724804],[-16.737432,72.556604],[-4.774305,72.743234],[-1.972275,72.757134]]);
24 linear_extrude(height=h)
25 polygon([[-55.598941,4.613374],[-71.735287,-40.109986],[-63.488273,-42.625946],[-57.563732,-24.360346],[-51.701273,-6.095236],[-48.461999,-6.443186],[-36.109013,-7.606536],[-23.747680,-7.608536],[-12.485161,-6.047220],[-2.792685,-3.027986],[-1.649685,-2.554086],[-1.625885,-1.519316],[-1.602085,-0.484536],[-1.837505,-0.432536],[-3.937166,0.481616],[-4.998055,2.377504],[-5.207655,2.737334],[-6.570085,1.948924],[-13.933185,-1.857533],[-20.995923,-3.582506],[-28.150256,-3.627106],[-33.059424,-2.987116],[-33.735258,-2.868256],[-34.516149,-3.614796],[-37.736675,-5.603259],[-41.299669,-5.865386],[-45.463631,-3.501251],[-46.437512,0.744154],[-46.375482,1.395814],[-50.629255,2.938554],[-55.167301,4.543464],[-55.598850,4.612864]]);
26 linear_extrude(height=h)
27 polygon([[-51.043530,2.949524],[-46.512499,1.347604],[-46.533669,0.863424],[-46.515809,-1.694976],[-43.146674,-5.433076],[-40.003687,-6.019406],[-37.904243,-5.786166],[-34.437829,-3.707796],[-33.697969,-2.997266],[-32.278829,-3.221756],[-23.747688,-3.837846],[-15.292928,-2.484503],[-6.645025,1.752524],[-5.205695,2.641124],[-5.027635,2.117964],[-2.281425,-0.449466],[-1.692025,-0.582566],[-1.692025,-1.500756],[-1.692025,-2.418936],[-2.094195,-2.597746],[-3.652145,-3.235376],[-16.440851,-6.679235],[-31.240687,-7.646886],[-48.247040,-6.355676],[-51.663541,-5.999386],[-57.664221,-24.262676],[-63.518711,-42.520496],[-71.625564,-39.999916],[-55.568834,4.452304],[-55.504704,4.515804],[-51.043534,2.949524]]);
28 linear_extrude(height=h)
29 polygon([[51.055315,3.058934],[46.452815,1.385884],[46.531815,0.861574],[46.683995,-0.267866],[45.354264,-3.551220],[41.996015,-5.619386],[38.440015,-5.573786],[34.391545,-3.320706],[33.671885,-2.891346],[28.703345,-3.565666],[17.539810,-3.033552],[6.530385,2.029334],[5.292525,2.737784],[4.958345,2.081614],[2.302995,-0.311276],[1.689615,-0.497586],[1.713315,-1.515336],[1.737015,-2.533096],[2.372015,-2.778136],[14.987345,-6.394216],[28.915015,-7.818216],[48.470705,-6.492056],[51.796645,-6.103286],[57.582625,-24.280716],[63.400675,-42.488126],[66.168345,-41.968256],[71.509415,-40.235846],[63.705975,-17.766016],[55.671085,4.628624],[51.055345,3.058914]]);
30 linear_extrude(height=h)
31 polygon([[63.559045,-17.715856],[71.454215,-40.033496],[63.882315,-42.351006],[63.458985,-42.403706],[57.708845,-24.256766],[51.890245,-6.031636],[50.359055,-6.144266],[30.171296,-7.739543],[14.521645,-6.183566],[2.477815,-2.681146],[1.779315,-2.412026],[1.779315,-1.491366],[1.779315,-0.570716],[2.139145,-0.478116],[3.784805,0.190134],[5.115495,2.122824],[5.295175,2.655454],[6.367005,1.979474],[13.379336,-1.744073],[19.728645,-3.606936],[31.878315,-3.269516],[33.757225,-3.019526],[34.349885,-3.452426],[37.721035,-5.476596],[43.135715,-5.352886],[45.985368,-2.911734],[46.755315,0.338654],[46.607255,1.129144],[51.029255,2.922214],[55.584985,4.481884],[63.559045,-17.715846]]);
32 linear_extrude(height=h)
33 polygon([[-1.946015,-5.297586],[-4.105015,-6.051316],[-15.418995,-9.218472],[-26.112925,-10.854290],[-36.551836,-10.989356],[-47.100759,-9.654256],[-48.768077,-9.422346],[-62.361514,-54.024296],[-61.201075,-54.826826],[-56.574052,-56.537716],[-52.566056,-57.144766],[-47.649926,-36.153266],[-42.802424,-15.230386],[-41.686943,-15.290386],[-28.446680,-15.384686],[-10.284695,-11.412796],[-1.487815,-8.183196],[-1.643545,-5.295586],[-1.643545,-5.295586],[-1.946015,-5.297586]]);
34 linear_extrude(height=h)
35 polygon([[-1.669955,-6.620906],[-1.565015,-8.130116],[-5.121015,-9.426876],[-17.821013,-13.568196],[-28.775513,-15.284325],[-41.382554,-15.202936],[-42.891714,-15.150336],[-47.757414,-36.082806],[-52.618082,-57.035346],[-56.551118,-56.430706],[-62.228679,-54.059076],[-48.692090,-9.523746],[-47.623679,-9.673896],[-41.993346,-10.592386],[-25.806263,-10.938031],[-9.015685,-7.720666],[-1.777175,-5.362406]]);
36 linear_extrude(height=h)
37 polygon([[1.800485,-5.367886],[1.694645,-6.793326],[1.694645,-8.182326],[2.350815,-8.511766],[12.495495,-12.656856],[25.500416,-15.289575],[40.973925,-15.337456],[42.897955,-15.238656],[47.745695,-36.161766],[52.647185,-57.138636],[57.919455,-56.102546],[61.793815,-54.240396],[62.453155,-53.618256],[48.989055,-9.645756],[47.484125,-9.866866],[39.625315,-10.825786],[27.263985,-10.782086],[15.504115,-9.200708],[4.742645,-6.333866],[2.456645,-5.538736],[1.800485,-5.367946]]);
38 linear_extrude(height=h)
39 polygon([[2.836825,-5.813246],[19.072195,-9.943725],[36.394075,-11.059526],[48.804135,-9.764026],[48.994075,-10.046886],[55.717425,-31.972186],[62.366825,-53.663986],[59.545495,-55.316436],[53.911095,-56.896326],[52.705105,-57.034916],[47.882675,-36.238946],[43.051605,-15.305626],[43.002805,-15.103366],[42.054865,-15.162066],[39.850625,-15.299396],[28.271649,-15.380417],[18.246935,-14.062066],[2.943435,-8.644496],[1.779265,-8.067386],[1.779265,-6.771156],[1.902075,-5.558446],[2.836775,-5.813286]]);
40 linear_extrude(height=h)
41 polygon([[-2.708015,-11.063156],[-11.361125,-14.945656],[-23.554992,-17.980161],[-39.228465,-19.243376],[-41.659173,-18.950346],[-51.052679,-66.751766],[-42.278037,-70.441656],[-32.997676,-72.586922],[-23.764100,-72.932898],[-14.424155,-71.470377],[-4.824685,-68.190156],[-2.348185,-67.085506],[-1.353355,-66.615956],[-1.353355,-38.543086],[-1.501515,-10.477036],[-2.708015,-11.063156]]);
42 linear_extrude(height=h)
43 polygon([[-1.504165,-66.534876],[-6.367875,-68.686206],[-23.155013,-72.792736],[-30.097679,-72.792676],[-39.364933,-71.174450],[-48.896705,-67.744426],[-50.938125,-66.577636],[-46.230357,-42.945976],[-41.519919,-18.921806],[-40.441361,-19.382276],[-19.455163,-17.349004],[-3.089015,-11.409446],[-1.525135,-10.595156],[-1.459035,-38.521466],[-1.504135,-66.534896]]);
44 linear_extrude(height=h)
45 polygon([[1.461685,-38.547486],[1.482985,-66.624776],[2.160315,-66.993946],[4.319315,-68.053636],[13.575273,-71.459199],[22.852874,-73.060474],[32.145277,-72.856945],[41.445645,-70.848096],[49.467815,-67.599706],[51.393395,-66.440536],[41.690725,-19.366496],[38.990315,-19.198586],[21.208595,-17.623136],[11.370652,-15.013755],[2.390665,-10.884686],[1.555375,-10.470196],[1.461675,-38.547486]]);
46 linear_extrude(height=h)
47 polygon([[2.720015,-11.215676],[14.552259,-16.188146],[28.322315,-18.677396],[40.725985,-19.361326],[41.552285,-19.430526],[51.270355,-66.496056],[47.619185,-68.344516],[39.110895,-71.399418],[30.480835,-72.920186],[22.437985,-72.920606],[12.386999,-71.000633],[2.625985,-67.077086],[1.567645,-66.535756],[1.546345,-38.540276],[1.722275,-10.815926],[2.719975,-11.215756]]);
53 cylinder(r = 20, h = 3, $fn = 128);
54 translate([0, -2, 0.4]) scale([0.8, 0.8, 1]) poly_path882();
55 translate([0, 17, -1]) cylinder(r = 1.8, h = 10, $fn = 6);
59 step_x = 2*(40+1)*cos(55);
60 step_y = 2*(40+1)*sin(55);
62 for (x = [0:2]) for (y = [0:1]) {
63 translate([step_x*x, step_y*y, 0])
67 for (x = [0:1]) for (y = [0:1]) {
68 translate([step_x*x+step_x/2, step_y*y+step_y/2, 0])
72 // translate([-20, -20, 0]) cube([190, 190, 0.1]);