I am trying to make a 3D printed cam for a quarter turn switch in OpenSCAD. The mechanical stops are trivial, low dwell and high dwell no problems (concentric circles), but I cannot figure out how to approximate the curve between the high and low dwells. Can I use a straight line? The cam follower will be a bearing.

This has been very difficult to search as a lot of results for computer aided manufacturing and cameras show up when searching for cam. Searching for cam switches only finds complete units. Cam shaft or cam lobe finds high speed cams with differentiable curves which although they might work seem needlessly complex for the application, not well suited for short turn, and even harder for me to draw. any pointers would be appreciated.

  • $\begingroup$ Can it be a straight line? Well it can if you dont mind the cam bouncing. Which is probably fine for your usecase. $\endgroup$
    – joojaa
    Commented Sep 21, 2023 at 20:02
  • $\begingroup$ One of the tools we had when doing drawings of cams were french curves, but being able to draw the curve freehand was also required - which meant no flat spots from straight lines... $\endgroup$
    – Solar Mike
    Commented Sep 21, 2023 at 20:20
  • $\begingroup$ my senior project was polynomial cams $\endgroup$
    – Tiger Guy
    Commented Sep 21, 2023 at 20:53

1 Answer 1


The simplest and most easily understood method would be to draw a series of evenly-spaced concentric circles between low and high. Then draw the same number of evenly spaced radial lines between the start and end angles.

Mark the intersection points.

Then you have a choice of joining them with line segments or some sort of spline.

Having an abrupt change in slope of the cam gives very high jerk, $\frac {d^3x}{dt^3}$, which is why it would be avoided in machine motion profiles where the details might matter.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.