Reverse Engineering Cams

Frequently, OEMs need to improve the performance of existing machines. They can often achieve the best and quickest results if they improve the motion design and machine new cams.

The designer must first reverse engineer the cams to find their original intended motion. Then he can look to improve the motion.

Reverse-Engineering Cam Motions

When you look at 'standard' motions, you typically identity it by looking at the acceleration motion law. This is why they are called: 'Modified Sinusoid', 'Modified Trapezoid'..., as this is their 'shape' in the acceleration graph.

When you come to Reverse-Engineer a Cam, you must understand these issues:

Motion and the Measured Cam Profile:

A small displacement error in measurement gives a large error to its acceleration graph.

When you measure a cam, there will [must] be small dimensional differences between the measured cam and the original cam.

The dimensional differences may result from:

measurement errors
cam wear - the wear will be different at different places along the cam profile.

Identify the 'Intended Cam Motion':

When you plot the acceleration graph, to identify the motion law, it will be 'noisy'. This is because to look at acceleration, you must numerically differentiate the measured displacement data two times.

If the original cam motion is not very good, and the cam is worn, it is a fact that the measured data becomes even more noisy, making the acceleration almost impossible to identify.

MechDesigner 's definition for 'Reverse-Engineering a Cam'

Measure a cam to give its XY or RΘ coordinates.
Import the measured data to MechDesigner and recreate the Cam Shape with the Point -Cloud tool
Use the Magnetic-Joint and a mechanism model to find the motion of the Cam-Follower from the Cam Shape.
Import the Cam-Follower motion to MotionDesigner
Crete a new motion [over the top of the imported motion] that has at least acceleration continuity, even if the original cam had an acceleration discontinuity.
Look for opportunities to reduce the cam-follower's peak acceleration and velocity: Make sure there is acceleration continuity, try to extend the duration of each motion law, even so if you can remove a dwell, especially if it is a short dwell.

Thus, it is possible to improve the performance of the machine to be better than its original specification.

Reverse-Engineering a Cam in MechDesigner.

Please follow these steps to reverse engineer a cam with MechDesigner.



Measure or Scan a Cam :

To get the best results use a CMM to measure the cam profile.

If the cam-follower is an oscillating cam-follower, also find these dimensions:

the distance between the cam's rotational centre and cam-follower's oscillating centre.
the distance between the cam-follower roller centre and the cam-follower's oscillating centre.
the radius of the cam-follower, and get its part-number.
the minimum and maximum radius of the cam.

If the cam-follower is a reciprocating cam-follower, measure:

any offset between the cam-follower's sliding plane and its centre of rotation
any offset between the cam-follower roller and the cam-follower's sliding -axis.
the radius of the cam-follower, and get its part-number.
the minimum and maximum radius of the cam

Measure the mechanisms on the machine:

To get the best results, measure the distance between each fixed centre, the position of slides, and the length of each part in the mechanism. You should be able to model the same mechanism in MechDesigner.


1.Build the cam and the cam-follower kinematic-chains, to represent the mechanism[s] you have measured on the machine.
2.Import a Point-Cloud: Add a Point-Cloud FB to the rotating 'Cam-Part'; Edit the Point-Cloud dialog-box to import data you have measured for the cam-profile. Use the Point-Cloud dialog-box to fit a Curve to the Point-Cloud data.

- or -

2.If possible, open a DXF File, then edit a CAD-Line to show the DXF drawing of the cam. Convert DXF Entities to sketch-elements. Make a sketch-loop to represent the cam. Add a Profile element to the sketch-loop that represents the cam.
3.Add a Magnetic-Joint FB to pull the Cam-Follower onto the Curve [derived from the Point-Cloud] or the Profile element [derived from the DXF]
4.Connect wires from the Motion-Dimension FB that is driven by the Magnetic-Joint to a Graph FB to plot the cam-follower's motion - its displacement, velocity and acceleration.


Use the 'Data Transfer Table' to import the plot / data from the Graph
'Put the Data' in the table to a Z-Raw-Data 'motion-law' [segment type] [this is to make sure you do not lose the data if you close MechDesigner].
If necessary, 'Get the motion' from the Z-Raw-Data [if the Data Transfer table is empty after closing MechDesigner].
Add a new Motion and Motion tab and 'Put the data' as an 'Overlay Trace'.
Edit the new motion so that it becomes almost the same as the 'Overlay Trace'.

MotionDesigner - MechDesigner Interaction

Build a new model with new kinematic-chains to represent the Cam and Cam-Follower again.
Put the Joints and Parts in the same positions as those in the original kinematic-chain.
Add the new motion, which is similar to the Overlay-Trace.

Now there are two motions to compare - one driven by the Magnetic-Joint and the other by the new motion.

Improve the New Motion

Make sure the new motion is continuous in at least acceleration.
Reduce the number of segments
'Balance' the new motion to reduce peak accelerations and velocities
Change motion-laws to suit the application
Check the Pressure Angle and Radius of Curvature to make sure they are acceptable.

Export the Cam to SOLIDWORKS

Use a Cam-Data FB and Cam-Coordinates dialog to export the Cam to SOLIDWORKS.


If necessary, 'mirror' the cam to put it in the correct orientation for machining.
Add various details - bore, boss, key-way, , dowel make a full cam model
From the model, add a drawing with tolerances
Export to CAM


Generate the G-Code that is needed for CNC Machine.
If necessary, reverse the cam surface data to cut the cam with 'climb' or conventional' milling.


Machine the Cam.

Tutorial and Reference Help Files for MechDesigner and MotionDesigner 13.2 + © Machine, Mechanism, Motion and Cam Design Software by PSMotion Ltd