fix num_teeth issue
This commit is contained in:
@@ -201,10 +201,11 @@ class CycloidGear(BaseGear):
|
||||
) # set read-only after setting the expression, else it won't be visible. bug?
|
||||
|
||||
def generate_gear_shape(self, fp):
|
||||
fp.gear.num_teeth = fp.num_teeth
|
||||
fp.gear.m = fp.module.Value
|
||||
fp.dw = fp.module * fp.num_teeth
|
||||
fp.gear.z1 = fp.inner_diameter
|
||||
fp.gear.z2 = fp.outer_diameter
|
||||
fp.gear.num_teeth_1 = fp.inner_diameter
|
||||
fp.gear.num_teeth_2 = fp.outer_diameter
|
||||
fp.gear.clearance = fp.clearance
|
||||
fp.gear.head = fp.head
|
||||
fp.gear.backlash = fp.backlash.Value
|
||||
|
||||
@@ -287,6 +287,7 @@ class InvoluteGear(BaseGear):
|
||||
obj.gear.backlash = obj.backlash.Value * (-obj.reversed_backlash + 0.5) * 2.0
|
||||
obj.gear.head = obj.head
|
||||
obj.gear.properties_from_tool = obj.properties_from_tool
|
||||
obj.gear.num_teeth = obj.num_teeth
|
||||
|
||||
obj.gear._update()
|
||||
self.compute_traverse_properties(obj)
|
||||
|
||||
@@ -21,24 +21,24 @@ from ._functions import rotation, reflection
|
||||
|
||||
|
||||
class CycloidTooth:
|
||||
def __init__(self, z1=5, z2=5, z=14, m=5, clearance=0.25, backlash=0.00, head=0.0):
|
||||
def __init__(self, num_teeth_1=5, num_teeth_2=5, num_teeth=14, m=5, clearance=0.25, backlash=0.00, head=0.0):
|
||||
self.m = m
|
||||
self.z = z
|
||||
self.num_teeth = num_teeth
|
||||
self.clearance = clearance
|
||||
self.backlash = backlash
|
||||
self.z1 = z1
|
||||
self.z2 = z2
|
||||
self.num_teeth_1 = num_teeth_1
|
||||
self.num_teeth_2 = num_teeth_2
|
||||
self.head = head
|
||||
self._calc_gear_factors()
|
||||
|
||||
def _calc_gear_factors(self):
|
||||
self.d1 = self.z1 * self.m
|
||||
self.d2 = self.z2 * self.m
|
||||
self.d1 = self.num_teeth_1 * self.m
|
||||
self.d2 = self.num_teeth_2 * self.m
|
||||
self.phi = self.m * pi
|
||||
self.d = self.z * self.m
|
||||
self.d = self.num_teeth * self.m
|
||||
self.da = self.d + 2 * (1 + self.head) * self.m
|
||||
self.di = self.d - 2 * (1 + self.clearance) * self.m
|
||||
self.phipart = 2 * pi / self.z
|
||||
self.phipart = 2 * pi / self.num_teeth
|
||||
self.angular_backlash = self.backlash / (self.d / 2)
|
||||
|
||||
def epicycloid_x(self):
|
||||
@@ -120,9 +120,9 @@ class CycloidTooth:
|
||||
def _update(self):
|
||||
self.__init__(
|
||||
m=self.m,
|
||||
z=self.z,
|
||||
z1=self.z1,
|
||||
z2=self.z2,
|
||||
num_teeth=self.num_teeth,
|
||||
num_teeth_1=self.num_teeth_1,
|
||||
num_teeth_2=self.num_teeth_2,
|
||||
clearance=self.clearance,
|
||||
backlash=self.backlash,
|
||||
head=self.head,
|
||||
|
||||
@@ -43,7 +43,7 @@ class InvoluteTooth:
|
||||
def __init__(
|
||||
self,
|
||||
m=5,
|
||||
z=15,
|
||||
num_teeth=15,
|
||||
pressure_angle=20 * pi / 180.0,
|
||||
clearance=0.12,
|
||||
shift=0.5,
|
||||
@@ -56,7 +56,7 @@ class InvoluteTooth:
|
||||
self.pressure_angle = pressure_angle
|
||||
self.beta = beta
|
||||
self.m_n = m
|
||||
self.z = z
|
||||
self.num_teeth = num_teeth
|
||||
self.undercut = undercut
|
||||
self.shift = shift
|
||||
self.clearance = clearance
|
||||
@@ -76,12 +76,12 @@ class InvoluteTooth:
|
||||
self.pitch = self.m * pi
|
||||
self.c = self.clearance * self.m_n
|
||||
self.midpoint = [0.0, 0.0]
|
||||
self.d = self.z * self.m
|
||||
self.dw = self.m * self.z
|
||||
self.d = self.num_teeth * self.m
|
||||
self.dw = self.m * self.num_teeth
|
||||
self.da = self.dw + 2.0 * self.m_n + 2.0 * (self.shift + self.head) * self.m_n
|
||||
self.df = self.dw - 2.0 * self.m_n - 2 * self.c + 2.0 * self.shift * self.m_n
|
||||
self.dg = self.d * cos(self.pressure_angle_t)
|
||||
self.phipart = 2 * pi / self.z
|
||||
self.phipart = 2 * pi / self.num_teeth
|
||||
|
||||
self.undercut_end = sqrt(-(self.df**2) + self.da**2) / self.da
|
||||
self.undercut_rot = (
|
||||
@@ -109,7 +109,7 @@ class InvoluteTooth:
|
||||
self.m / (self.d) * (pi / 2 + 2 * self.shift * tan(self.pressure_angle_t))
|
||||
)
|
||||
self.involute_rot2 = (
|
||||
1 / self.z * (pi / 2 + 2 * self.shift * tan(self.pressure_angle_t))
|
||||
1 / self.num_teeth * (pi / 2 + 2 * self.shift * tan(self.pressure_angle_t))
|
||||
)
|
||||
self.involute_rot = self.involute_rot1 + self.involute_rot2
|
||||
self.angular_backlash = self.backlash / (self.d / 2)
|
||||
@@ -206,7 +206,7 @@ class InvoluteRack(object):
|
||||
def __init__(
|
||||
self,
|
||||
m=5,
|
||||
z=15,
|
||||
num_teeth=15,
|
||||
pressure_angle=20 * pi / 180.0,
|
||||
thickness=5,
|
||||
beta=0,
|
||||
@@ -219,7 +219,7 @@ class InvoluteRack(object):
|
||||
self.pressure_angle = pressure_angle
|
||||
self.thickness = thickness
|
||||
self.m = m
|
||||
self.z = z
|
||||
self.num_teeth = num_teeth
|
||||
self.beta = beta
|
||||
self.head = head
|
||||
self.clearance = clearance
|
||||
@@ -247,8 +247,8 @@ class InvoluteRack(object):
|
||||
]
|
||||
teeth = [tooth]
|
||||
trans = translation([0.0, pitch, 0.0])
|
||||
for i in range(self.z - 1):
|
||||
if self.simplified and i > 3 and i < (self.z - 6):
|
||||
for i in range(self.num_teeth - 1):
|
||||
if self.simplified and i > 3 and i < (self.num_teeth - 6):
|
||||
tooth = trans(tooth).tolist()
|
||||
else:
|
||||
tooth = trans(tooth).tolist()
|
||||
@@ -258,7 +258,7 @@ class InvoluteRack(object):
|
||||
teeth[-1].pop()
|
||||
teeth[-1][-1][0] = 0
|
||||
teeth[-1][-1][1] -= a / 2
|
||||
if self.simplified and (i == self.z - 6):
|
||||
if self.simplified and (i == self.num_teeth - 6):
|
||||
teeth[-1].pop(0)
|
||||
teeth[-1].pop(0)
|
||||
teeth[-1][0][0] = 0
|
||||
|
||||
Reference in New Issue
Block a user