]> www.fi.muni.cz Git - things.git/commitdiff
Proof of concept of a bumper for mini arrow
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Tue, 8 Aug 2017 13:17:24 +0000 (15:17 +0200)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Tue, 8 Aug 2017 13:17:24 +0000 (15:17 +0200)
mini-arrow-spring.svg [new file with mode: 0644]
mini-arrow-spring2.scad [new file with mode: 0644]

diff --git a/mini-arrow-spring.svg b/mini-arrow-spring.svg
new file mode 100644 (file)
index 0000000..7e40cd4
--- /dev/null
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="210mm"
+   height="297mm"
+   viewBox="0 0 210 297"
+   version="1.1"
+   id="svg5162"
+   inkscape:version="0.92+devel unknown"
+   sodipodi:docname="mini-arrow-spring.svg">
+  <defs
+     id="defs5156" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.6568542"
+     inkscape:cx="104.29066"
+     inkscape:cy="41.827462"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer2"
+     inkscape:document-rotation="0"
+     showgrid="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1851"
+     inkscape:window-height="1170"
+     inkscape:window-x="49"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid5707"
+       units="mm"
+       spacingx="0.5"
+       spacingy="0.5" />
+    <sodipodi:guide
+       position="8.5,21.5"
+       orientation="0,1"
+       id="guide6267"
+       inkscape:locked="false" />
+    <sodipodi:guide
+       position="39.999999,17.5"
+       orientation="1,0"
+       id="guide6269"
+       inkscape:locked="false" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata5159">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Layer 2">
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 11,267 0,10"
+       id="path6271"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       inkscape:connector-curvature="0"
+       id="path6273"
+       d="m 14,274 0,13"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 10,285.5 60,0"
+       id="path6275"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 40,274 v 13"
+       id="path6277"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       inkscape:connector-curvature="0"
+       id="path6279"
+       d="M 10,265.5 H 70"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <g
+       id="g6285"
+       style="stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none">
+      <path
+         sodipodi:nodetypes="ccc"
+         inkscape:connector-curvature="0"
+         id="path6263"
+         d="m 36.5,275.5 c 0,5 -19.5,2 -19.5,6 0,3.5 22.999999,3 22.999999,3"
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 36.5,275.5 c 0,-5 -19.5,-2 -19.5,-6 0,-3.5 22.999999,-3 22.999999,-3"
+         id="path6281"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccc" />
+    </g>
+    <g
+       id="g6291"
+       transform="matrix(-1,0,0,1,80,5.6413171e-8)"
+       style="stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none">
+      <path
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 37,275.5 c 0,5 -20,2 -20,6 0,3.5 22.999999,3 22.999999,3"
+         id="path6287"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccc" />
+      <path
+         sodipodi:nodetypes="ccc"
+         inkscape:connector-curvature="0"
+         id="path6289"
+         d="m 37,275.5 c 0,-5 -20,-2 -20,-6 0,-3.5 22.999999,-3 22.999999,-3"
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 66,274 v 13"
+       id="path6293"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       inkscape:connector-curvature="0"
+       id="path6295"
+       d="m 69,267 v 10"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+  </g>
+</svg>
diff --git a/mini-arrow-spring2.scad b/mini-arrow-spring2.scad
new file mode 100644 (file)
index 0000000..4961be6
--- /dev/null
@@ -0,0 +1,121 @@
+
+// Module names are of the form poly_<inkscape-path-id>().  As a result,
+// you can associate a polygon in this OpenSCAD program with the corresponding
+// SVG element in the Inkscape document by looking for the XML element with
+// the attribute id="inkscape-path-id".
+
+// 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;
+
+module poly_path4339(h)
+{
+  union()
+  {
+    linear_extrude(height=h)
+      polygon([[25.000000,-1.500000],[25.000000,11.500000],[27.000000,11.500000],[27.000000,-1.500000],[25.000000,-1.500000]]);
+  }
+}
+
+module poly_path4315(h)
+{
+  union()
+  {
+    linear_extrude(height=h)
+      polygon([[-30.000000,-11.500000],[-30.000000,-8.500000],[30.000000,-8.500000],[30.000000,-11.500000],[-30.000000,-11.500000]]);
+  }
+}
+
+module poly_path4321(h)
+{
+  union()
+  {
+    linear_extrude(height=h)
+      polygon([[0.015625,-9.750000],[-3.592242,-9.773235],[-11.541016,-9.560550],[-15.799638,-9.233666],[-19.558594,-8.679690],[-22.353516,-7.800780],[-23.300781,-7.109380],[-23.750000,-6.000000],[-23.392851,-4.918063],[-22.539062,-4.150390],[-20.097656,-3.341800],[-13.306641,-2.626950],[-9.756763,-2.294389],[-6.738281,-1.759770],[-4.791016,-0.931640],[-4.250000,0.000000],[-2.750000,0.000000],[-3.069577,-1.201359],[-3.884766,-2.126950],[-6.355469,-3.208980],[-9.583081,-3.787643],[-13.193359,-4.123050],[-19.808594,-4.814450],[-21.785156,-5.447270],[-22.250000,-6.000000],[-22.181641,-6.111330],[-21.669922,-6.466800],[-19.253906,-7.210940],[-15.645675,-7.740944],[-11.458984,-8.064450],[-3.595258,-8.273640],[-0.015625,-8.250000],[0.015625,-9.750000]]);
+  }
+}
+
+module poly_path4291(h)
+{
+  union()
+  {
+    linear_extrude(height=h)
+      polygon([[-30.000000,-8.500000],[-30.000000,1.500000],[-28.000000,1.500000],[-28.000000,-8.500000],[-30.000000,-8.500000]]);
+  }
+}
+
+module poly_path4345(h)
+{
+  union()
+  {
+    linear_extrude(height=h)
+      polygon([[28.000000,-8.500000],[28.000000,1.500000],[30.000000,1.500000],[30.000000,-8.500000],[28.000000,-8.500000]]);
+  }
+}
+
+module poly_path4333(h)
+{
+  union()
+  {
+    linear_extrude(height=h)
+      polygon([[-0.015625,-9.750000],[3.592242,-9.773235],[11.541016,-9.560550],[15.799638,-9.233666],[19.558594,-8.679690],[22.353516,-7.800780],[23.300781,-7.109380],[23.750000,-6.000000],[23.383995,-4.912297],[22.511719,-4.146480],[20.015625,-3.341800],[13.056641,-2.626950],[9.413756,-2.293870],[6.312500,-1.757810],[4.304688,-0.925780],[3.870214,-0.487351],[3.750000,0.000000],[2.250000,0.000000],[2.579004,-1.207472],[3.414062,-2.132810],[5.937500,-3.210940],[9.242494,-3.788161],[12.943359,-4.123050],[19.734375,-4.814450],[21.769531,-5.451170],[22.250000,-6.000000],[22.181641,-6.111330],[21.669922,-6.466800],[19.253906,-7.210940],[15.645675,-7.740944],[11.458984,-8.064450],[3.595258,-8.273640],[0.015625,-8.250000],[-0.015625,-9.750000]]);
+  }
+}
+
+module poly_path4303(h)
+{
+  union()
+  {
+    linear_extrude(height=h)
+      polygon([[-30.000000,8.500000],[-30.000000,11.500000],[30.000000,11.500000],[30.000000,8.500000],[-30.000000,8.500000]]);
+  }
+}
+
+module poly_path4285(h)
+{
+  union()
+  {
+    linear_extrude(height=h)
+      polygon([[-4.250000,0.000000],[-4.791016,0.931640],[-6.738281,1.759770],[-9.756763,2.294389],[-13.306641,2.626950],[-20.097656,3.341800],[-22.539062,4.150390],[-23.392851,4.918063],[-23.750000,6.000000],[-23.300781,7.109380],[-22.353516,7.800780],[-19.558594,8.679690],[-15.799638,9.233666],[-11.541016,9.560550],[-3.592242,9.773235],[0.015625,9.750000],[-0.015625,8.250000],[-3.595258,8.273640],[-11.458984,8.064450],[-15.645675,7.740944],[-19.253906,7.210940],[-21.669922,6.466800],[-22.181641,6.111330],[-22.250000,6.000000],[-21.785156,5.447270],[-19.808594,4.814450],[-13.193359,4.123050],[-9.583081,3.787643],[-6.355469,3.208980],[-3.884766,2.126950],[-3.069577,1.201359],[-2.750000,0.000000],[-4.250000,0.000000]]);
+  }
+}
+
+module poly_path4327(h)
+{
+  union()
+  {
+    linear_extrude(height=h)
+      polygon([[3.750000,0.000000],[3.870214,0.487351],[4.304688,0.925780],[6.312500,1.757810],[9.413756,2.293870],[13.056641,2.626950],[20.015625,3.341800],[22.511719,4.146480],[23.383995,4.912298],[23.750000,6.000000],[23.300781,7.109380],[22.353516,7.800780],[19.558594,8.679690],[15.799638,9.233666],[11.541016,9.560550],[3.592242,9.773235],[-0.015625,9.750000],[0.015625,8.250000],[3.595258,8.273640],[11.458984,8.064450],[15.645675,7.740944],[19.253906,7.210940],[21.669922,6.466800],[22.181641,6.111330],[22.250000,6.000000],[21.769531,5.451170],[19.734375,4.814450],[12.943359,4.123050],[9.242494,3.788161],[5.937500,3.210940],[3.414062,2.132810],[2.579004,1.207473],[2.250000,0.000000],[3.750000,0.000000]]);
+  }
+}
+
+module poly_path4297(h)
+{
+  union()
+  {
+    linear_extrude(height=h)
+      polygon([[-27.000000,-1.500000],[-27.000000,11.500000],[-25.000000,11.500000],[-25.000000,-1.500000],[-27.000000,-1.500000]]);
+  }
+}
+
+module poly_path4309(h)
+{
+  union()
+  {
+    linear_extrude(height=h)
+      polygon([[-1.000000,-1.500000],[-1.000000,11.500000],[1.000000,11.500000],[1.000000,-1.500000],[-1.000000,-1.500000]]);
+  }
+}
+
+poly_path4339(5);
+poly_path4315(5);
+poly_path4321(5);
+poly_path4291(5);
+poly_path4345(5);
+poly_path4333(5);
+poly_path4303(5);
+poly_path4285(5);
+poly_path4327(5);
+poly_path4297(5);
+poly_path4309(5);