V1.1
Been a while since I had to think through a programming problem and I ****ed up the loops so it went to the wrong position without the reverse direction of last pass flag set.
Probably going to set it up to use SFM and FPT rather than RPM and FR later.
Code:
%
O09010 (G200 - FACING)
(FLAGS)
(REVERSE LAST PASS)
#110= 0
(VARIABLES)
(FEED RATE) #9= 32.
(TOOL DIA) #101= 2.
(Y DIST.) #102= 8.5
(X DIST.) #103= 12.5
(X RETN.) #104= #103 * -1
(AXIAL E.) #105= #101 * 0.8
(# PASSES) #106= ROUND[ #102 / #105 ] - 1
(RETN. Y.) #107= [ #106 * #105 ] * -1
(IF Y DISTANCE REMAINDER IS GREATER THAN ZERO)
(ADD A PASS)
IF [ [ #102 MOD #104 ] GT 0 ] GOTO300
(START SPINDLE)
N50 M03 S880
(WHILE PASSES IS GREATER THAN OR EQUAL TO ONE)
(CLIMB ACROSS SURFACE)
WHILE [ #106 GE 1 ] DO1
M97 P100
#106= #106 - 1
END1
M30
(SUB)
(CLIMB PASS)
N100 G91 G01 X#104 F#9
(IF PASSES IS EQUAL TO TWO AND RLP FLAG IS SET)
IF [ [ #106 EQ 2 ] AND [ #110 EQ 1 ] ] GOTO200
(IF PASSES IS EQUAL TO ONE RETURN TO HOME POSITION)
IF [ #106 EQ 1 ] GOTO400
G00 Z1.
X#103 Y#105
G01 Z-1. F#9
M99
(SUB)
(REVERSE DIRECTION OF LAST PASS)
N200 G00 Z1.
Y#105
G01 Z-1. F#9
G01 X#103 F#9
GOTO400
(FUNCTION)
(INCREMENT PASSES)
N300 #106= #106 + 1
GOTO50
(SUB)
(RETURN TO START POS)
N400 G00 Z3.
IF [ #110 EQ 0 ] THEN X#103 Y#107
IF [ #110 EQ 1 ] THEN Y#107
G01 Z-3.
M30
%