Выполнял по шагам, и происходят какие-то странные вещи, как и должно быть через 3 итерации выполняется условие "If Xcur = Xmax Then" и должен произойти выход из цикла, но он не выходит. После выполнения Exit Do опять в начало цикло попадает.
Код: Выделить всё
Sub Main()
Const ProbeSafeZ = 2
Const ProbeDepthZ = -1
Const ProbeFeed = 20
Xmax = 10
Ymax = 10
Pstep = 5
Xcur = 0
Ycur = 0
Open "C:\Users\user\Desktop\depth.txt" For Output As #1
Code "G0 Z" & ProbeSafeZ
Code "G0 X0 Y0"
While (IsMoving())
Sleep(100)
Wend
Do
Do
Sleep(1000)
Code("G31 Z" & ProbeDepthZ & " F" & ProbeFeed)
While (IsMoving())
Sleep(100)
Wend
X = GetOEMDRO(800)
Y = GetOEMDRO(801)
Z = GetOEMDRO(802)
Print #1,X, ",", Y,",",Z
If Xcur = Xmax Then
Exit Do
End If
Xcur = Xcur + Pstep
If Xcur > Xmax Then
Xcur = Xmax
End If
Code "G0 Z" & ProbeSafeZ
Code "G0 X" & Xcur
While (IsMoving())
Sleep(100)
Wend
Loop
If Ycur = Ymax Then
Exit Do
End If
Ycur = Ycur + Pstep
If Ycur > Ymax Then
Ycur = Ymax
End If
Code "G0 Z" & ProbeSafeZ
Code "G0 X0 Y" & Ycur
While (IsMoving())
Sleep(100)
Wend
Loop
Close #1
Code "G0 Z" & ProbeSafeZ
Code "G0 X0 Y0"
End Sub