Here is an update to the old WaveSpring script from 2012:

Version 2, added a few variables.

http://www.engineering.com/tutorials/modeling-a-wave-spring-in-solidworks/
This script creates a circular sinusoidal helix-like curve.

The user may Sweep the curve with a circle or rectangle to make a WaveSpring.

Parameters:

Here is a update to an old script from 2012:

WaveSpring2 script, added a few variables.

http://www.engineering.com/tutorials/modeling-a-wave-spring-in-solidworks/
radius is the outer radius of the curve, in TopView.

A negative radius switches clockwiseness, and rotates the curve.

amplitude is the maximum zHeight of half of one sine wave.

There must be a sufficient number of numpoints.

numwaves is the number of sine waves per level.

coilspace is the zSpace between portions of the sine wave.

For a WaveSpring, the coilspace should be about half of the Amplitude.

For a closed, one level sine wave ring:

Set coilspace = 0, and numwaves = integer or integer + 0.5.

numcoils is the number of coils per level.

ellipsescale modifies the y radius, to make an elliptical, rather than circular, TopView.

An ellipsescale of -1.0 switches clockwiseness also, without rotation.

(Try a perp/perp line segment, and Sweep using a ring sinewave, and its negative, as two rails.)

The zHeight of the coil is approximately = coilspace * 2PI * numcoils,

but is also affected by the amplitude.(?).

The z height of a swept object, say rectange or circle, must also be added, to get the total zHeight.

Well, maybe I'll try to integrate it with CircularSineWave script...

- Brian