Making O-ring groves in different part locations G54-G59 and trying to loop that cut to get to my desired depths. So I thought that I could write a sub program to accomplish that and just give it a new part location every time I ran a new o-ring groove. The program will loop a full circle to the start point then give an invalid I,J or K in G02 or G03. Can someone take a look at this and give me some hints? I have a HAAS TM2P.

T15 M06
G90 G154 P17 G00 X-10.32 Y0.
S3000 M03
G43 H15 Z1.0 M08
G01 Z0. F1000.
M97 P23456 L8
G00 Z1.0
G28 G49 Z0.
G54X0 Y0
M30

N23456
G91 Z-.170 F100.
G90
G02 X-10.32 Y0. I0. J0. F125.
M99