'Поиск центра заготовки с предварительным вводом данных

H=GetUserDRO(1160) 'высота подпрыга
A=5                          ' переезд за заготовку по Х
B=5                          ' переезд за заготовку по У

Sx=GetUserDRO(1154)/2+A
Sy=GetUserDRO(1155)/2+B
Sxx=GetUserDRO(1154)+A+1
Syy=GetUserDRO(1155)+B+1

Dx=GetUserDRO(1156)
Dy=GetUserDRO(1157)
Dz=GetUserDRO(1158)

'ищем центр по Х

code "G90"
Call SetDRO(0,0)
Call SetDRO(1,0)
code "G0 X" & Dx
code "G0 Y" & Dy

code "G91"
code "G31 Z-1000 F100"
While IsMoving() 
Wend
Call SetDRO(2,0)
code "G0 Z" & H
code "G90"
code "G0 X0 Y0"

code "G0 X" & Sx
code "G0 Z-" & Dz
code "G91"
code "G31 X-1000 F100"
While IsMoving()
Wend
Call SetDRO(0,0)
code "G4 P1"
code "G0 X1"
code "G90"
code "G0 Z" & H

code "G0 X-" & Sxx
code "G0 Z-" & Dz
code "G91"
code "G31 X1000 F100"
While IsMoving()
Wend
L1=GetDRO(0)/2
code "G4 P1"
code "G0 X-1"
code "G90"
code "G0 Z" & H
code "G0 X" &L1
While IsMoving()
Wend 

'ищем центр по У

Call SetDRO(0,0)
Call SetDRO(1,0)

code "G0 Y" & Sy 
code "G0 Z-" & Dz
code "G91"
code "G31 Y-1000 F100"
While IsMoving()
Wend
Call SetDRO(1,0)
code "G4 P1"
code "G0 Y1"
code "G90"
code "G0 Z" & H

code "G0 Y-" & Syy
code "G0 Z-" & Dz
code "G91"
code "G31 Y1000 F100"
While IsMoving()
Wend
L2=GetDRO(1)/2
code "G4 P1"
code "G0 Y-1"
code "G90"
code "G0 Z" & H
code "G0 Y" &L2
While IsMoving()
Wend 
Call SetDRO(1,0) 