%
O00100 (ALIGN SCRIBED PLATE)
#150= 0 (NOMINAL TOTAL DISTANCE BETWEEN CROSSHAIRS)
#151= 0 (NOMINAL DISTANCE FROM CROSSHAIR TO CENTER)
#152= 0 (MACHINE X POSITION OF RIGHT CROSSHAIR)
#153= 0 (MACHINE Y POSITION OF RIGHT CROSSHAIR)
#154= 0 (MACHINE X POSITION OF LEFT CROSSHAIR)
#155= 0 (MACHINE Y POSITION OF LEFT CROSSHAIR)
#156= 0 (HALF DELTA Y RIGHT CROSSHAIR TO LEFT CROSSHAIR)
#157= 0 (DELTA Y LEFT CROSSHAIR TO RIGHT CROSSHAIR)
(***0***)
G00 G17 G20 G40 G59 G80 G90 (SAFETY BLOCK)
G103 P1
N0 #500= 0 (RESETS VARIABLE 500)
N1 M109 P500 (PLATE SIZE A=10 B=8.2 C=7.25 D=6.5 E=5)
IF [ #500 EQ 0 ] GOTO1 (WAIT FOR BUTTON PRESS)
IF [ #500 EQ 65. ] #150= 9.25 (SET 10 IN PLATE)
IF [ #500 EQ 66. ] #150= 7.45 (SET 8.2 IN PLATE)
IF [ #500 EQ 67. ] #150= 6.5 (SET 7.25 IN PLATE)
IF [ #500 EQ 68. ] #150= 5.75 (SET 6.5 IN PLATE)
IF [ #500 EQ 69. ] #150= 4.25 (SET 5 IN PLATE)
IF [ #500 GT 69. ] GOTO0 (INVALID SELECTION)
#151= #150 / 2 (SET DISTANCE FROM CROSSHAIR TO CENTER)
(***1***)
X#151 Y0. Z0. (MOVES CAMERA TO FOCUS HEIGHT & APPROX RIGHT XHAIR POSITION)
G103 P1 (LIMITS LOOK-AHEAD TO ONE BLOCK)
N2 #501= 0 (RESETS VARIABLE 501)
N3 M109 P501 (JOG TO ALIGN XHAIR PRESS Y TO CONTINUE)
IF [ #501 EQ 0 ] GOTO3 (WAIT FOR BUTTON PRESS)
IF [ #501 EQ 89. ] GOTO4 (Y BUTTON PRESSED)
IF [ #501 NE 89. ] GOTO2 (SOME OTHER BUTTON PRESSED)
N4 M00 (IF Y PRESSED, STOPS PROGRAM)
(***2***)
G00 G17 G20 G40 G59 G80 G90 (SAFETY BLOCK)
G103 P1 (LIMITS LOOK-AHEAD TO ONE BLOCK)
#152= #5021 (VARIABLE 152 SET TO MACHINE X POSITION OF RIGHT CROSSHAIR)
#153= #5022 (VARIABLE 153 SET TO MACHINE Y POSITION OF RIGHT CROSSHAIR)
N5 #502= 0 (RESETS VARIABLE 502)
G91 X - #150 (MOVE TO WHERE LEFT CROSSHAIR SHOULD BE)
N6 M109 P502 (JOG TO ALIGN XHAIR PRESS Y TO CONTINUE)
IF [ #502 EQ 0 ] GOTO6 (WAIT FOR BUTTON PRESS)
IF [ #502 EQ 89. ] GOTO7 (Y BUTTON PRESSED)
IF [ #502 NE 89. ] GOTO5 (SOME OTHER BUTTON PRESSED)
N7 M00 (IF Y PRESSED, STOPS PROGRAM)
(***3***)
G00 G17 G20 G40 G59 G80 G90 (SAFETY BLOCK)
G103 P1 (LIMITS LOOK-AHEAD TO ONE BLOCK)
#154= #5021 (VARIABLE 154 SET TO MACHINE X POSITION OF LEFT CROSSHAIR)
#155= #5022 (VARIABLE 155 SET TO MACHINE Y POSITION OF LEFT CROSSHAIR)
#156= [ 0.5 * [ #153 - #155 ] ] (FINDS HALF THE DELTA Y FROM RIGHT TO LEFT)
G91 Y#156
N8 #503= 0 (RESETS VARIABLE 503)
N9 M109 P503 (ROT/JOG TO ALIGN XHAIR PRESS Y TO CONT)
IF [ #503 EQ 0 ] GOTO9 (WAIT FOR BUTTON PRESS)
IF [ #503 EQ 89. ] GOTO10 (Y BUTTON PRESSED)
IF [ #503 NE 89. ] GOTO8 (SOME OTHER BUTTON PRESSED)
N10 M00 (IF Y PRESSED, STOPS PROGRAM)
(***4***)
G00 G17 G20 G40 G59 G80 G90 (SAFETY BLOCK)
G103 P1 (LIMITS LOOK-AHEAD TO ONE BLOCK)
#154= #5021 (VARIABLE 154 SET TO MACHINE X POSITION OF LEFT CROSSHAIR)
#155= #5022 (VARIABLE 155 SET TO MACHINE Y POSITION OF LEFT CROSSHAIR)
G91 X#150 (MOVE TO WHERE RIGHT CROSSHAIR SHOULD BE)
N11 #504= 0 (RESETS VARIABLE 504)
N12 M109 P504 (JOG TO ALIGN XHAIR PRESS Y TO CONTINUE)
IF [ #504 EQ 0 ] GOTO12 (WAIT FOR BUTTON PRESS)
IF [ #504 EQ 89. ] GOTO13 (Y BUTTON PRESSED)
IF [ #504 NE 89. ] GOTO11 (SOME OTHER BUTTON PRESSED)
N13 M00 (IF Y PRESSED, STOPS PROGRAM)
(***5***)
G00 G17 G20 G40 G59 G80 G90 (SAFETY BLOCK)
G103 P1 (LIMITS LOOK-AHEAD TO ONE BLOCK)
#152= #5021 (VARIABLE 152 SET TO MACHINE X POSITION OF RIGHT CROSSHAIR)
#153= #5022 (VARIABLE 153 SET TO MACHINE Y POSITION OF RIGHT CROSSHAIR)
#157= #153 - #155 (FINDS THE DELTA Y FROM LEFT TO RIGHT)
IF [ #157 NE 0 ] GOTO5 (RUN THROUGH THE ALIGNMENT AGAIN)
IF [ #157 EQ 0 ] GOTO99 (PLATE IS ALIGNED)
N99 (IF DELTA Y IS 0, THEN THE PLATE IS ALIGNED. SET THE OFFSETS & STOP)
M98 P102 (READ CAMERA OFFSETS)
#5241= [ 0.5 * [ #154 - #152 ] ] + #152 + #131
#5242= #153 + #132
M30 (END OF PROGRAM)
%