Lissajous

sub..endsub..call

%
O1000 sub
  G00 X#1 Y[#2+#10] Z#3
  #20 = 0
  O1002 while [#20 LE 360]
    #21 = [#4 * sin[#6 * #20 + #8]]
    #22 = [#5 * cos[#7 * #20 + #9]]
    G01 X[#1+[#10*#21]] Y[#2+[#10*#22]]
    #20 = [#20 + #11]
  O1002 endwhile
O1000 endsub
 
(#1=x #2=y #3=z #4=A #5=B #6=a #7=b #8=d #9=g #10=scale #11=res)
O1000 call [0] [0] [0] [1] [1] [1] [3] [0] [0] [100] [5]
;O1000 call [0] [0] [0] [1] [1] [2] [5] [0] [0] [100] [5]
;O1000 call [0] [0] [0] [1] [1] [5] [3] [0] [0] [100] [5]
%