Creating Subroutines Called by G Functions
en-938872/2 5 - 13
5
EN DI
IF 'P > 0 THEN 'I=0 'L='ER-L[LZ]
(error if retraction plane = hole bottom)
IF 'L = 0 THEN E.891
ENDI
IF 'L < 0 THEN 'L=-'L
ENDI
IF 'Q = 0 OR 'Q > 'P THEN 'Q = 'P
ENDI
(calculate depth of first pass)
'I = 'Q-'P
*
'I/'L + 'P + 'I
'J = 'L-'I
IF 'J <= 0 THEN
(go to bottom of hole)
[dimension]=L[LZ] G1 F[RF] G77 H10080 N[I] N[I]
G79N100
ENDI
IF 'J < 'Q/2 THEN 'I = -'Q/2 + 'L
ENDI
IF 'ER > L[LZ] THEN [depth] = -'I + 'ER
ELSE [depth] = 'I + 'ER
ENDI
(execute first pass)
[dimension]=[depth] G9 G1 F[RF] G77 H10080 N[I] N[I]
IF [.IBE1(6)]=1 THEN G4 FL931
ENDI
(retract —> ER)
[dimension]=’ER G0 G77 H10080 N[I] N[I]
REPEAT
(calculate approach dimension)
[dimension]=[clearance]+[depth]G0 G77 H10080 N[I] N[I]
(calculate and execute next passes)
'I = 'Q-'P
*
'I/'L + 'P + 'I 'J = 'L-'I
IF 'J <= 0 THEN
EXIT
ENDI
IF 'J < 'Q/2 THEN 'I = -'Q/2 + 'L
ENDI
IF 'ER > L[LZ] THEN [depth] = -'I + 'ER
ELSE [depth] = 'I + 'ER
ENDI
[dimension]=[depth] G9 G1 F[RF] G77 H10080 N[I] N[I]
IF [.IBE1(6)]=1 THEN G4 FL931
ENDI
[dimension]=’ER G0 G77 H10080 N[I] N[I]
UNTIL 'I = 'L (test for end of loop)