About Cam Profiles
(Original Document)
Introduction
A cam profile relates the position of a slave axis for a given position of a master axis. The cam profile is a table of master and slave position co-ordinates. Position points that are not explicitly listed in the table are derived by interpolating between the given points. Interpolation can be linear or cubic.
Master Positions and Increments
The master positions must be in increasing order in the table from the first element in the profile until the last. For example, the master positions cannot go from 360 degrees to 0 degrees because these master positions are not increasing.
The increments between master positions can be variables. A fixed increment is not required. For example, the following are acceptable master position values: 0, 1, 2, 100, 300, 360. Any valid position units can be used.
Typical Applications
Applications require smooth movement, as movement proceeds from one iteration through a profile to the next. To make this transition as smooth as possible, the value of the slave position for the first data point should be the same value of the slave position for the last data point. For example, if master positions are in degrees, and slave positions are in inches, and if the first position is for the master at 0 degrees, the slave at 0 inches, then the corresponding last position would be the master at 360 degrees with the slave at 0 inches.
Establishing a Cam Profile
Each point in a cam profile table has a position value for both co-ordinate axes of the cam profile. This means a cam profile has two values per point: one for the master position and one for the slave position. The SetCoord function changes both values of an existing point in a cam profile. The GetCoord function returns both values of the designated point in a cam profile.
Modifying the Interpolation Type
In a cam profile table of points, positions that are not in these tables are derived by interpolating between the given points. Linear and cubic interpolation are supported. Modification of the interpolation type is supported via the GetInterpType and SetInterpType functions.