Rem        VBScript To center probe inside a pipe

Dist= 40.0 'Rmax= 40.0
ZDist = 4.0 'Zup= 4.0

If GetOemLed (825) <> 0 Then            '=Digitise In LED
        Code "(Probe plate is grounded, check connection and try again)"
Else
        DoSpinStop()
        FeedCurrent = GetOemDRO(818)  'Get the current settings, OEM DROs (818)=Feedrate DRO
        XCurrent = GetOemDRO(184)       '=X Cont. Pnt. coord (Machine - Work - G52/G92) DRO
        YCurrent = GetOemDRO(185)       '=Y Cont. Pnt. coord (Machine - Work - G52/G92) DRO
        ZCurrent = GetOemDRO(186)       '=Z Cont. Pnt. coord (Machine - Work - Tool len. - G52/G92) DRO

        Code "F100"                     'slow feed rate to 100 MM/MIN
        Code "G4 P1"                    'PAUSE 1 second to give time to position probe plate

    Rem Probe Left
        XNew = Xcurrent - Dist                'probe 20mm to left
        Code "G31 X" &XNew
        While IsMoving()                      'wait for the move to finish
                Sleep(10)   'Release CPU
        Wend

        XPos1 = GetOemDRO(184)                'get the probe touch location
        Code "G0 X" &XCurrent                 'rapid move back to start point
        While IsMoving ()
                Sleep(10)   'Release CPU
        Wend


    Rem Probe Right
        XNew = XCurrent + Dist                'probe 20mm to right
        Code "G31 X" &XNew
        While IsMoving()
                Sleep(10)   'Release CPU
        Wend

	XPos2 =GetOemDRO(184)        
        XCenter = (XPos1 + XPos2) / 2         'center is midway between XPos1 and XPos2
	Code "G0 X" &XCenter                  'rapid move to the x center location
        While IsMoving ()
                Sleep(10)   'Release CPU
        Wend


    Rem Probe up
        YNew = YCurrent + Dist
        Code "G31 Y" &YNew
        While IsMoving()
                Sleep(10)   'Release CPU
        Wend
	
	YPos1 = GetOemDRO(185)
        Code "G0 Y" &YCurrent
        While IsMoving ()
                Sleep(10)   'Release CPU
        Wend

    Rem Probe down
        YNew = YCurrent - Dist
        Code "G31 Y" &YNew
        While IsMoving()
                Sleep(10)   'Release CPU
        Wend

        YPos2 = GetOemDRO(185)
        YCenter = (YPos1 + YPos2) / 2

    Rem move to the center
        Code "G0 Y" &YCenter
        While IsMoving ()
                Sleep(10)   'Release CPU
        Wend

        Code "F" &FeedCurrent                 'restore starting feed rate
        ZClear = Zcurrent + ZDist
        Code "Z" &ZClear
        While IsMoving ()
                Sleep(10)   'Release CPU
        Wend

End If
