(filename y-half.ngc) o sub (##########################################################) (Set Y to half indicated value #) ( #) G49 G92.1 (Cancel offsets #) (MSG, Y moving forward #) G00 Z 50 ( #) Y -10 ( #) Z-5 ( #) (MSG, Y probe to back #) G91 G38.2 Y 110 F300 (Y incriment back 110 #) o100 if [#5070 EQ 1] (check for contact #) (MSG, Y Probe contact, #) G90 G0 Y-1 F400 (back off 1mm #) G91 G38.2 Y 2 F10 (Y incriment probe #) o call (Store Y1 #) o100 else ( #) (MSG, Y Probe failed #) G90 G53 G0 Z10 (Retract to safe Z #) M66 P0 L0 (synch task and interpreter #) o100 endif ( #) G90 G0 Z50 (ablute to 50mm #) (##########################################################) G01 Y 220 (MSG, Y moving back #) Z-5 ( #) (MSG, Y probe to front #) G91 G38.2 Y-110 F300 (Y incriment front 110 #) o100 if [#5070 EQ 1] (check for contact #) (MSG, Y Probe contact, #) G90 G0 Y 1 F400 (Y back off 1mm #) G91 G38.2 Y-2 F10 (Y incriment probe #) o call (Store Y2 #) o100 else ( #) (MSG, Y Probe failed #) G90 G53 G0 Z10 (Retract to safe Z #) M66 P0 L0 (synch task and interpreter #) o100 endif ( #) G90 G0 Z50 (absolute to 50mm #) (##########################################################) o call ( #) (MSG, Y is centered #) (END-Y-HALF #) (##########################################################) o endsub M2