Sorry, the engineer inside couldn't resist
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]