Amazing tool! Thank you for developing and sharing this!
I believe your "wormRotationAngle" variable is calculated incorrectly causing the worm to turn the wrong direction and carve the "wheel gear" incorrectly. I believe the issue is disguised when testing with 2 cuttingStepsProWormTurn because it's symmetrical for a rotation of 180* but the issue happens for values above 2.
I used the parameters below to generate the two screenshots of the worm gear sets, one with the positive wormRotationAngle and one with the negative wormRotationAngle.
# START OF PARAMETERS SECTION YOU MAY/SHOUD ADJUST
# Terminology by http://www.tandwiel.info/de/verzahnungen/nomenklatur-verzahnungen-tandwiel-info/
# Multiply module by 0.1 to convert from mm into internal cm unit
self.module = 0.1*1
self.pressureAngle = fromGrad(0)
self.wheelTeethNumber = 20 # must be even number
self.wormRotations = 5
self.wormAxisAngle = fromGrad(0)
'''
2 - for initial testing
10 - OK
15 - OK
17 - probably some cut errors, result quality OK
20 - probably somecut errors, result quality perfect, long calculating time, many small faces
'''
self.cuttingStepsProWormTurn = 10 # minimal 2
Wait, this is only an issue for a worm axis angle of 0. It appears that for other values of the worm axis angle that statement in line 251 SHOULD be positive.
Amazing tool! Thank you for developing and sharing this!
I believe your "wormRotationAngle" variable is calculated incorrectly causing the worm to turn the wrong direction and carve the "wheel gear" incorrectly. I believe the issue is disguised when testing with 2 cuttingStepsProWormTurn because it's symmetrical for a rotation of 180* but the issue happens for values above 2.
Solution - I changed line 251 from:
wormRotationAngle = wormTurns 2math.pi / steps
to:
wormRotationAngle = -1 wormTurns 2*math.pi / steps
and now it appears to work correctly!
I used the parameters below to generate the two screenshots of the worm gear sets, one with the positive wormRotationAngle and one with the negative wormRotationAngle.