One more variation on the same subject:
z[t_, a_, b_] := {(a - b) Cos[t] + b Cos[(1 - a/b) t], (a - b) Sin[t] + b Sin[(1 - a/b) t]}
ParametricPlot[
Evaluate[MapThread[
z[t, #1, #2] &, {Range[-(1/2), 9, 1/3],
Range[-(1/3), 14, 1/2]}]], {t, 0, 180 \[Pi]},
PlotTheme -> "Marketing", Axes -> False,
PlotStyle -> Thick]