'Поиск центра отверстия без предварительного ввода данных об отверстии с обнулением и отображением диаметра/сторон полученного отверстия '

'setting X' ищеи центр по оси Х

d=1.6        ' диаметр шарика
dx=d+1.84   '   поправочный коэфф по X
dy=d+1.79     '   поправочный коэфф по Y

Code "G04 p0.5" 'пауза 0.5 c
Code "G91" ' переход в относительную систему координат
Code "G31 X1000 F500" ' двигаться по +Х на 1м до касания щупом  
While IsMoving() 
Wend ' дождаться конца движения
Code "G1 X-1" 'отъехать назад на 1мм
While IsMoving() 
Wend ' дождаться конца движения


Call SetDRO(0,0) ' обнулить данные в окне X
Code "G04 p0.5" ' пауза 0.5 с
Code "G31 X-1000" ' двигаться по -X на 1м до касания щупом
While IsMoving() 
Wend ' дождаться конца движения
Code "G1 X1" 'отъехать назад на 1мм
While IsMoving() 
Wend ' дождаться конца движения

Code "G04 p1" ' пауза 1 с
Call SetDRO(0, (GetDRO(0))/2) ' разделить показания окна X на 2

Code "G04 p1" ' пауза 1 с
Code "G90" ' переход в абсолютную систему координат
Code "G04 p1" ' пауза 1 с
Code "G0 X0" ' ускоренное движение до X=0
Code "G91" ' переход в относительную систему координат
While IsMoving() 
Wend ' дождаться конца движения 

'setting Y' ищем центр по оси Y

Code "G04 p0.5" 'пауза 0.5 с
Code "G91" ' переход в относительную систему координат
Code "G31 Y1000 F500"'  движемся по +У на 1м до касания щупом  
While IsMoving() 
Wend' дождаться конца движения
Code "G1 Y-1" 'отъехать назад на 1мм
While IsMoving() 
Wend ' дождаться конца движения

Call SetDRO(1,0)' обнулить данные в окне Y
Code "G04 p0.5"' пауза 0.5 с
Code "G31 Y-1000"' движемся по -У на 1м до касаня щупом
While IsMoving() 
Wend' дождаться конца движения
Code "G1 Y1" 'отъехать назад на 1мм
While IsMoving() 
Wend ' дождаться конца движения

Code "G04 p1"' пауза 1 с
a = -(GetDRO(1))+dy' прибавляем к пройденноу пути по У диаметр головки щупа, записываем в переменную а
Call SetDRO(1, (GetDRO(1))/2)' разделить показания окна Y на 2


Code "G04 p1"' пауза 1 с
Code "G90"' переход в абсолютную систему координат 
Code "G04 p1"' пауза 1 с
Code "G0 Y0"' ускоренное движение до У=0
Code "G04 p1"' пауза 1 с
Code "G91"' переход в относительную систем координат
Code "G04 p1"' пауза 1 с
While IsMoving() 
Wend' дождаться кнца движения

 'setting X' точная установка нуля по Х

Code "G04 p0.5" 'пауза 0.5 c
Code "G91" ' переход в относительную систему координат
Code "G31 X1000 F500" ' двигаться по +Х на 1м до касания щупом  
While IsMoving() 
Wend ' дождаться конца движения
Code "G1 X-1" 'отъехать назад на 1мм
While IsMoving() 
Wend ' дождаться конца движения

Call SetDRO(0,0) ' обнулить данные в окне X
Code "G04 p0.5" ' пауза 0.5 с
Code "G31 X-1000" ' двигаться по -X на 1м до касания щупом
While IsMoving() 
Wend ' дождаться конца движения
Code "G1 X1" 'отъехать назад на 1мм
While IsMoving() 
Wend ' дождаться конца движения

Code "G04 p1" ' пауза 1 с
b = -(GetDRO(0))+dx'прибавляем к пройденноу пути по Х диаметр головки щупа, записываем в переменную b
Call SetDRO(0, (GetDRO(0))/2) ' разделить показания окна X на 2

Code "G04 p1" ' пауза 1 с
Code "G90" ' переход в абсолютную систему координат
Code "G04 p1" ' пауза 1 с
Code "G0 X0" ' ускоренное движение до X=0
While IsMoving() 
Wend ' дождаться конца движения 

Call SetUserDRO(1152,a)'   выводим сообщение с длинной по Х
Call SetUserDRO(1153,b)'      выводим сообщение с длинной по У 