put hinge of small dispenser gears in between the two plates

This commit is contained in:
Simon Pirkelmann 2019-09-16 11:05:40 +02:00
parent e91578347c
commit 817db1a623
3 changed files with 68 additions and 46 deletions

View File

@ -184,6 +184,7 @@ class PlateLayout:
# parameters for dispenser gears # parameters for dispenser gears
self.dispenser_module = 1.0 self.dispenser_module = 1.0
plate_height = 8.0
dispenser_1_target_pitch_diameter_big = 50.0 dispenser_1_target_pitch_diameter_big = 50.0
dispenser_1_target_pitch_diameter_small = 15.0 dispenser_1_target_pitch_diameter_small = 15.0
dispenser_1_teeth_big = int(dispenser_1_target_pitch_diameter_big/self.dispenser_module) dispenser_1_teeth_big = int(dispenser_1_target_pitch_diameter_big/self.dispenser_module)
@ -259,7 +260,8 @@ class PlateLayout:
p2 = dispenser_1_pitch_diameter_small p2 = dispenser_1_pitch_diameter_small
a1 = self.dispenser_module a1 = self.dispenser_module
a2 = self.dispenser_module a2 = self.dispenser_module
offset_1 = sqrt((p1 / 2 + p2 / 2) ** 2 - (p1 / 2 + a1) ** 2) - p2 / 2 - a2 h = plate_height/2.0
offset_1 = sqrt((p1 / 2 + p2 / 2) ** 2 - (p1 / 2 + a1 + h) ** 2) - p2 / 2 - a2
print("dispenser 1 offset = {}".format(offset_1)) print("dispenser 1 offset = {}".format(offset_1))
print(" big circle tangent points: ") print(" big circle tangent points: ")
@ -321,7 +323,7 @@ class PlateLayout:
p2 = dispenser_2_pitch_diameter_small p2 = dispenser_2_pitch_diameter_small
a1 = self.dispenser_module a1 = self.dispenser_module
a2 = self.dispenser_module a2 = self.dispenser_module
offset_2 = sqrt((p1 / 2 + p2 / 2) ** 2 - (p1 / 2 + a1) ** 2) - p2 / 2 - a2 offset_2 = sqrt((p1 / 2 + p2 / 2) ** 2 - (p1 / 2 + a1 + h) ** 2) - p2 / 2 - a2
print("dispenser 2 offset = {}".format(offset_2)) print("dispenser 2 offset = {}".format(offset_2))
print(" small circle tangent points: ") print(" small circle tangent points: ")

View File

@ -9,7 +9,7 @@
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:docname="feeder_gears.svg" sodipodi:docname="dispenser_gears.svg"
width="210mm" width="210mm"
height="297mm" height="297mm"
viewBox="0 0 744.09448819 1052.3622047" viewBox="0 0 744.09448819 1052.3622047"
@ -23,17 +23,17 @@
borderopacity="1.0" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="1.8101934" inkscape:zoom="2.5600001"
inkscape:cx="196.01806" inkscape:cx="116.84746"
inkscape:cy="474.03501" inkscape:cy="648.90954"
inkscape:document-units="mm" inkscape:document-units="mm"
inkscape:current-layer="svg2" inkscape:current-layer="svg2"
showgrid="false" showgrid="false"
inkscape:window-width="960" inkscape:window-width="1920"
inkscape:window-height="1028" inkscape:window-height="1056"
inkscape:window-x="960" inkscape:window-x="0"
inkscape:window-y="24" inkscape:window-y="24"
inkscape:window-maximized="0" /> inkscape:window-maximized="1" />
<defs <defs
id="defs4" /> id="defs4" />
<metadata <metadata
@ -72,7 +72,7 @@
</g> </g>
<g <g
info="N:16; Pitch:22.2632550254; Pressure Angle: 20.0" info="N:16; Pitch:22.2632550254; Pressure Angle: 20.0"
transform="matrix(0.98261279,-0.18566662,0.18566662,0.98261279,416.37006,413.37433)" transform="matrix(0.99144484,0.13052619,-0.13052619,0.99144484,402.83559,425.52773)"
inkscape:label="Gear16" inkscape:label="Gear16"
id="g4161"> id="g4161">
<path <path
@ -89,38 +89,38 @@
id="circle4165" /> id="circle4165" />
</g> </g>
<path <path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.81840914px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.18522573px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 208.00782,413.69031 139.45312,0" d="m 208.00782,413.69031 292.47544,0"
id="path4205" id="path4205"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<path <path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.9883278px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 296.28906,412.90906 c 0.39063,-120.50782 0.39063,-120.50782 0.39063,-120.50782 C 417.1875,413.29968 417.1875,413.29968 417.1875,413.29968" d="M 295.9019,425.20469 C 296.24829,292.4573 296.24829,292.4573 296.24829,292.4573 403.10616,425.63498 403.10616,425.63498 403.10616,425.63498"
id="path4212" id="path4212"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="322.07031" x="325.39062"
y="310.56531" y="320.33093"
id="text4214" id="text4214"
sodipodi:linespacing="125%"><tspan sodipodi:linespacing="125%"><tspan
sodipodi:role="line" sodipodi:role="line"
id="tspan4216" id="tspan4216"
x="322.07031" x="325.39062"
y="310.56531" y="320.33093"
style="font-size:6.25px">p1/2</tspan></text> style="font-size:6.25px">p1/2</tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="391.20636" x="385.5423"
y="384.9657" y="393.36414"
id="text4214-3" id="text4214-3"
sodipodi:linespacing="125%"><tspan sodipodi:linespacing="125%"><tspan
sodipodi:role="line" sodipodi:role="line"
id="tspan4216-6" id="tspan4216-6"
x="391.20636" x="385.5423"
y="384.9657" y="393.36414"
style="font-size:6.25px">p2/2</tspan></text> style="font-size:6.25px">p2/2</tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
@ -133,7 +133,7 @@
x="228.71094" x="228.71094"
y="324.62781" y="324.62781"
style="font-size:6.25px" style="font-size:6.25px"
id="tspan4246"> p1/2 + a1</tspan><tspan id="tspan4246"> p1/2 + a1 + h</tspan><tspan
sodipodi:role="line" sodipodi:role="line"
x="228.71094" x="228.71094"
y="332.44031" y="332.44031"
@ -141,27 +141,27 @@
id="tspan4248">(= Outside circle)</tspan></text> id="tspan4248">(= Outside circle)</tspan></text>
<path <path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 351.95313,417.20593 c 0,4.10157 0,4.10157 0,4.10157" d="m 338.67188,428.53405 c 0,4.10157 0,4.10157 0,4.10157"
id="path4252" id="path4252"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<path <path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.96795285px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.90801376px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 295.70311,419.35437 122.05746,0" d="m 294.87447,430.40291 107.40902,0"
id="path4254" id="path4254"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<path <path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 375.58594,373.45593 c 4.88281,-3.71094 4.88281,-3.71094 4.88281,-3.71094" d="m 364.84375,383.41687 c 4.88281,-3.71094 4.88281,-3.71094 4.88281,-3.71094"
id="path4258" id="path4258"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<path <path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 294.92188,292.01062 c 3.51562,-2.14844 3.51562,-2.14844 3.51562,-2.14844" d="m 293.95513,292.83926 c 3.51562,-2.14844 3.51562,-2.14844 3.51562,-2.14844"
id="path4260" id="path4260"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<path <path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 415.18699,415.16107 c 4.29687,-3.51562 4.29687,-3.51562 4.29687,-3.51562" d="m 401.12449,427.46576 c 4.29687,-3.51562 4.29687,-3.51562 4.29687,-3.51562"
id="path4262" id="path4262"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<flowRoot <flowRoot
@ -187,41 +187,41 @@
x="51.5625" x="51.5625"
y="596.11218" y="596.11218"
style="font-size:6.25px" /></flowRegion><flowPara style="font-size:6.25px" /></flowRegion><flowPara
id="flowPara4278">(p1/2 + p2/2)**2 = (p1/2 + a1)**2 + (p2/2 + a2 + x)**2</flowPara><flowPara id="flowPara4278">(p1/2 + p2/2)**2 = (p1/2 + a1 + h)**2 + (p2/2 + a2 + x)**2</flowPara><flowPara
id="flowPara4374" /><flowPara id="flowPara4374" /><flowPara
id="flowPara4372"> =&gt; Offset x = sqrt((p1/2 + p2/2)**2 - (p1/2 + a1)**2) - p2/2 - a2</flowPara></flowRoot> <text id="flowPara4372"> =&gt; Offset x = sqrt((p1/2 + p2/2)**2 - (p1/2 + a1)**2) - p2/2 - a2</flowPara></flowRoot> <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="324.21875" x="323.4375"
y="428.14343" y="435.37"
id="text4296" id="text4296"
sodipodi:linespacing="125%"><tspan sodipodi:linespacing="125%"><tspan
sodipodi:role="line" sodipodi:role="line"
id="tspan4298" id="tspan4298"
x="324.21875" x="323.4375"
y="428.14343" y="435.37"
style="font-size:6.25px">x</tspan></text> style="font-size:6.25px">x</tspan></text>
<path <path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 295.70313,417.49892 c 0,4.10157 0,4.10157 0,4.10157" d="m 295.50782,427.91413 c 0,4.10157 0,4.10157 0,4.10157"
id="path4252-7" id="path4252-7"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<path <path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 417.77344,417.10829 c 0,4.10157 0,4.10157 0,4.10157" d="m 402.92969,427.45985 c 0,4.10157 0,4.10157 0,4.10157"
id="path4252-5" id="path4252-5"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="373.82812" x="355.07812"
y="427.36218" y="435.56531"
id="text4321" id="text4321"
sodipodi:linespacing="125%"><tspan sodipodi:linespacing="125%"><tspan
sodipodi:role="line" sodipodi:role="line"
id="tspan4323" id="tspan4323"
x="373.82812" x="355.07812"
y="427.36218" y="435.56531"
style="font-size:6.25px">p2/2 + a2</tspan></text> style="font-size:6.25px">p2/2 + a2</tspan></text>
<flowRoot <flowRoot
xml:space="preserve" xml:space="preserve"
@ -239,7 +239,8 @@
id="flowPara4333">p2: Pitch diameter gear 2</flowPara><flowPara id="flowPara4333">p2: Pitch diameter gear 2</flowPara><flowPara
id="flowPara4335">a1: Addendum gear 1 = module 1</flowPara><flowPara id="flowPara4335">a1: Addendum gear 1 = module 1</flowPara><flowPara
id="flowPara4337">a2: Addendum gear 2 = module 2</flowPara><flowPara id="flowPara4337">a2: Addendum gear 2 = module 2</flowPara><flowPara
id="flowPara4376">x : Offset</flowPara></flowRoot> <flowRoot id="flowPara4376">x : Offset</flowPara><flowPara
id="flowPara4212">h : half of the plate height</flowPara></flowRoot> <flowRoot
xml:space="preserve" xml:space="preserve"
id="flowRoot4360" id="flowRoot4360"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><flowRegion style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><flowRegion
@ -305,7 +306,7 @@
</g> </g>
<g <g
info="N:53; Pitch:16.6974412691; Pressure Angle: 25.0" info="N:53; Pitch:16.6974412691; Pressure Angle: 25.0"
transform="translate(224.50825,840.97022)" transform="translate(147.94575,906.59522)"
inkscape:label="Gear53" inkscape:label="Gear53"
inkscape:transform-center-x="-0.086406844" inkscape:transform-center-x="-0.086406844"
id="g6277"> id="g6277">
@ -412,4 +413,19 @@
x="0" x="0"
style="font-style:normal;font-weight:normal;font-size:13px;font-family:'Bitstream Vera Sans', sans-serif;text-align:center;text-anchor:middle;fill:#f6921e">Base diameter: 35.346 mm</text> style="font-style:normal;font-weight:normal;font-size:13px;font-family:'Bitstream Vera Sans', sans-serif;text-align:center;text-anchor:middle;fill:#f6921e">Base diameter: 35.346 mm</text>
</g> </g>
<path
inkscape:connector-curvature="0"
id="path4208"
d="m 206.90296,426.67235 292.47544,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.18346453;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.18346453, 2.36692905;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4210"
d="m 207.45539,438.54953 292.47544,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.18522573px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 298.1593,425.68469 c -4.10157,0 -4.10157,0 -4.10157,0"
id="path4252-3"
inkscape:connector-curvature="0" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -8,11 +8,15 @@ Lasercut segments for plate. Profile: FLB_Sperrholz_4mm_Natur_new
Important: SVG produced by python script needs to be openend, transformed and saved in inkscape, otherwise import in CorelDraw fails Important: SVG produced by python script needs to be openend, transformed and saved in inkscape, otherwise import in CorelDraw fails
In progress: In progress:
- automate generation of plate segment
TODO: TODO:
- stack 2 plates for better stability (add cuts at small circles)
- second ring above the first plate to fix the containers and hide the gear mechanic (or manufacure them from acrylic to show the mechanic) - second ring above the first plate to fix the containers and hide the gear mechanic (or manufacure them from acrylic to show the mechanic)
- think about if stacked plate is to thick for a single gear (i.e. we may need two gears in order to transfer motion from below the plate to dispensers) - whole for hinges of big dispenser gears
- shovels for dispensers by cutting segments from a sphere - shovels for dispensers by cutting segments from a sphere
DONE:
- stack 2 plates for better stability (add cuts at small circles)
- automate generation of plate segment
- connectors for segments (jigsaw puzzle style) - connectors for segments (jigsaw puzzle style)
- think about if stacked plate is to thick for a single gear (i.e. we may need two gears in order to transfer motion from below the plate to dispensers) -> solved by moving hinge point of the gear in between the two plates