PlanetaryGear: add maxplanets and deltateeth params
This commit is contained in:
parent
6dd482be9c
commit
419cccc7dd
|
@ -27,6 +27,12 @@ class Planetary(Boxes):
|
||||||
self.argparser.add_argument(
|
self.argparser.add_argument(
|
||||||
"--planetteeth", action="store", type=int, default=20,
|
"--planetteeth", action="store", type=int, default=20,
|
||||||
help="number of teeth on planets")
|
help="number of teeth on planets")
|
||||||
|
self.argparser.add_argument(
|
||||||
|
"--maxplanets", action="store", type=int, default=0,
|
||||||
|
help="limit the number of planets (0 for as much as fit)")
|
||||||
|
self.argparser.add_argument(
|
||||||
|
"--deltateeth", action="store", type=int, default=0,
|
||||||
|
help="enable secondary ring with given delta to the ring gear")
|
||||||
self.argparser.add_argument(
|
self.argparser.add_argument(
|
||||||
"--modulus", action="store", type=float, default=3,
|
"--modulus", action="store", type=float, default=3,
|
||||||
help="modulus of the theeth in mm")
|
help="modulus of the theeth in mm")
|
||||||
|
@ -54,6 +60,8 @@ class Planetary(Boxes):
|
||||||
|
|
||||||
t = self.thickness
|
t = self.thickness
|
||||||
planets = int(math.pi//math.asin((self.planetteeth+2)/(self.planetteeth+self.sunteeth)))
|
planets = int(math.pi//math.asin((self.planetteeth+2)/(self.planetteeth+self.sunteeth)))
|
||||||
|
if self.maxplanets:
|
||||||
|
planets = min(self.maxplanets, planets)
|
||||||
|
|
||||||
# Make sure the teeth mash
|
# Make sure the teeth mash
|
||||||
ta = self.sunteeth+ringteeth
|
ta = self.sunteeth+ringteeth
|
||||||
|
@ -76,7 +84,16 @@ class Planetary(Boxes):
|
||||||
self.gears(teeth=self.sunteeth, dimension=self.modulus,
|
self.gears(teeth=self.sunteeth, dimension=self.modulus,
|
||||||
angle=pressure_angle,
|
angle=pressure_angle,
|
||||||
mount_hole=self.shaft, profile_shift=profile_shift, move="up")
|
mount_hole=self.shaft, profile_shift=profile_shift, move="up")
|
||||||
for i in range(planets):
|
numplanets = planets
|
||||||
|
if self.deltateeth:
|
||||||
|
numplanets += planets
|
||||||
|
deltamodulus = self.modulus*ringteeth/(ringteeth-self.deltateeth)
|
||||||
|
self.gears(teeth=ringteeth-self.deltateeth, dimension=deltamodulus,
|
||||||
|
angle=pressure_angle, internal_ring=True,
|
||||||
|
spoke_width=spoke_width, mount_hole=self.shaft,
|
||||||
|
profile_shift=profile_shift, move="up")
|
||||||
|
|
||||||
|
for i in range(numplanets):
|
||||||
self.gears(teeth=self.planetteeth, dimension=self.modulus,
|
self.gears(teeth=self.planetteeth, dimension=self.modulus,
|
||||||
angle=pressure_angle,
|
angle=pressure_angle,
|
||||||
mount_hole=self.shaft, profile_shift=profile_shift, move="up")
|
mount_hole=self.shaft, profile_shift=profile_shift, move="up")
|
||||||
|
|
Loading…
Reference in New Issue