Sprężyna śrubowa
Helical Spring

Ten skrypt wykonuje następujące czynności:
-
Wyświetla użytkownikowi okno dialogowe z parametrami wejściowymi
-
Generuje profil „Szkic 3D” (3D Sketch) w kształcie sprężyny śrubowej, którego można użyć jako ścieżki operacji „Wyciągnięcie po ścieżce” (Sweep Boss)
-
Skrypt nie generuje geometrii 3D — generuje wyłącznie „Szkic 3D”, którego można użyć w operacji „Wyciągnięcie po ścieżce”
-
Przedstawia przykład użycia równań do wykreślenia ścieżki „Krzywa 3D” (3D curve)
import sysimport math
# create dialog windowWin = Windows()Options = []Options.append(['Angle Increment', WindowsInputTypes.Real, 0.05])Options.append(['Loop Scale', WindowsInputTypes.Real, 0.8])Options.append(['Height Scale', WindowsInputTypes.Real, 1.0])Options.append(['Major Helix Width Scale', WindowsInputTypes.Real, 2.0])Options.append(['Turn Density', WindowsInputTypes.Integer, 25])
# show dialog window and get valuesValues = Win.OptionsDialog('Everyone Loves a Slinky', Options)if Values == None: sys.exit('User cancelled')
AngleIncrement = Values[0]LoopScale = Values[1]HeightScale = Values[2]WidthScale = Values[3]TurnDensity = Values[4]print 'Angle Increment = %f' % AngleIncrementprint 'Loop Scale = %f' % LoopScaleprint 'Height Scale = %f' % HeightScaleprint 'Width Scale = %f' % WidthScaleprint 'Turn Density = %d' % TurnDensity
# create list of points for 3d sketchPoints = []Angle = 0.0for Pass in range(0, 437): X = (WidthScale + LoopScale * math.cos(Angle * TurnDensity)) * math.cos(Angle) Y = (WidthScale + LoopScale * math.cos(Angle * TurnDensity)) * math.sin(Angle) Z = HeightScale * Angle + LoopScale * math.sin(Angle * TurnDensity) Points.extend([X, Y, Z]) Angle += AngleIncrement
# create part and add 3d sketchSlinky = Part('Slinky')Path = Slinky.Add3DSketch('Path')Path.AddBspline(Points)Oryginał: Helical Spring