o sub ; o call [x][y] [x][y] [ztop][zbot] [stepover_ratio] G90 ; absolute x,y,z G90.1 ; absolute i,j,k M101 ; enable Z-axis (M102 disables) G17 ; select XY plane for arcs # = #5410 # = [#/2] o1 if [EXISTS[#<_z_clearance>]] # = #<_z_clearance> o1 else # = #5 o1 endif o2 if [EXISTS[#<_rampang>]] # = #<_rampang> o2 else # = 5 ; degrees o2 endif o3 if [#7 GT 0] # = [#*#7] o3 elseif [EXISTS[#<_stepover>]] # = #<_stepover> o3 else # = [#*0.9] o3 endif # = #1 # = #3 o11 if [#3 LT #1] # = #3 # = #1 o11 endif # = #2 # = #4 o12 if [#4 LT #2] # = #4 # = #2 o12 endif # = [[#+#]/2] # = [[#+#]/2] # = [[[#-#]-#]/2] # = [[[#-#]-#]/2] # = [# + #*0.8] # = [-1] G0 Z# G0 X# Y# G0 Z#5 G1 Z#6 o100 while [# LT [#]] G1 Y# o101 if [# LT 0] G1 X# o101 else G1 X# o101 endif # = [-#] # = [# + #] o100 endwhile G0 Z# o endsub