o sub ; o call [x1][y1] [x2][y2] [ztop][zbot] [mode] [radius] # = [FIX[#7/1] MOD 2 EQ 1] # = [FIX[#7/2] MOD 2 EQ 1] # = [FIX[#7/4] MOD 2 EQ 1] # = [FIX[#7/8] MOD 2 EQ 1] # = [FIX[#7/1] MOD 2 EQ 0] # = [FIX[#7/2] MOD 2 EQ 0] # = [FIX[#7/4] MOD 2 EQ 0] # = [FIX[#7/8] MOD 2 EQ 0] 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 [EXISTS[#<_stepover>]] # = #<_stepover> o3 else # = [#*0.4] o3 endif # = #6 # = [#6+#*0.1] # = #1 # = #3 o11 if [#3 LT #1] # = #3 # = #1 o11 endif # = #2 # = #4 o12 if [#4 LT #2] # = #4 # = #2 o12 endif # = [# + #] # = [# - #] # = [# + #] # = [# - #] G0 Z# G0 X[#] Y[#] G0 Z[#5] G1 Z[#6] ;# = # # = 0 # = [#-#] # = FUP[#/#] o100 while [# LE #] G1 Y[#+#/#*#] o101 if [# MOD 2 EQ 0] G1 X[#] o101 else G1 X[#] o101 endif # = [#+1] o100 endwhile o call [#1][#2] [#3][#4] [#5][#6] [#7] [#8] G0 Z# o endsub M2