CAM draws the working face of a plate cam — the shape that has to be cut so a roller follower rises by a given amount over a given angle, in a given way.
What CamProfile does
Three motion laws. Constant velocity rises at a steady rate: simple, and violent, because the acceleration is infinite at each end, so it hammers — use only at low speed. Harmonic follows a cosine: smooth in the middle, but the acceleration jumps at the ends, which rings. Cycloidal starts and finishes with zero acceleration, so nothing jerks. That is the one to use at speed, and it is the default.
Written as a fraction f of the way through the rise, with h the lift:
constant s = h f
harmonic s = h (1 - cos(π f)) / 2
cycloidal s = h (f - sin(2π f) / 2π)
How to use it
- Load the routine with
APPLOAD, or put it on your support file search path. - Type
CAM. - Give the base radius, the follower radius, the lift and the angle over which it rises.
- Choose the motion law — cycloidal unless you have a reason.
- Cut to the cam face layer, not the pitch curve.
How it works
The pitch curve and the cam face are not the same curve, and confusing them is the classic mistake.
The follower’s centre traces the pitch curve — base radius plus follower radius plus the lift. The cam face is that curve pulled in by the follower radius, along the normal at each point.
Both are drawn, on separate layers, and which is which is said plainly. Cutting to the pitch curve gives you a cam that lifts too far by exactly one follower radius, everywhere.
Notes and limits
- Cut the cam face, not the pitch curve. They are on separate layers for that reason.
- Cycloidal is the default because it is the only one of the three that does not shock the follower at the ends.
- Constant velocity is included for completeness, not as a recommendation — its acceleration is infinite at both ends.
- One undo group covers both curves.
Download and details
| Name | CamProfile — draw a plate cam profile from a motion law |
| Download | CamProfile.lsp — 9.2 KB, plain AutoLISP source. Downloads directly; no zip to unpack. |
| Type | AutoCAD AutoLISP routine |
| Command | CAM |
| Requires | nothing beyond a CAD platform with AutoLISP. |
| Source size | 9.2 KB, 209 lines |
| Error handling | Yes — a *error* handler restores every system variable it changed, on cancel as well as on error. |
| Undo | The whole operation is wrapped in a single undo group, so one U reverses all of it. |
| Compatibility | AutoCAD (any release with AutoLISP), BricsCAD, ZWCAD, GstarCAD, ProgeCAD and other IntelliCAD-based platforms. AutoCAD LT needs a LISP enabler. No .NET, no ObjectARX, no installer. |
| Author | YZ, August 2026 |
| Licence | Free to use, supplied “as is” with no warranty. |
References
- SPURGEAR LISP — involute gear teeth, the other classic profile
- ARCTOCIRCLE LISP — converting the base circle afterwards
- More free AutoLISP routines on this site
- Wisey’s Steel Shapes — free structural steel section drawing program