Sorry, the engineer inside couldn't resist ![enter image description here][1] **Edit** Here is the code: gearCurve[a_, b_, n_, c_, h_] := ParametricPlot[{c + (a + 1/b Tanh[b Sin[n t + h]]) Cos[t + h], (a + 1/b Tanh[b Sin[n t + h]]) Sin[t + h]}, {t, 0, 2 Pi}, Axes -> False, Method -> {Refinement -> {ControlValue -> 1 Degree}}]; Animate[Show[gearCurve[10, 5, 38, 0, h], gearCurve[10, 5, 38, 20, -h], PlotRange -> {{-10, 30}, {-10, 10}}], {h, 0, 2 Pi, .01}, DisplayAllSteps -> True] [1]: https://i.sstatic.net/03aWj.gif