Был на форуме скрипт центроискателя, у меня он не работал, кое как адаптировал.
Т.к. для финишной обработки я снимаю деталь, и снова ставлю другой стороной, она всегда сдвинута на небольшой угол (0.1 - 0.3 градуса).
По этому по двум отверстиям хочу находить угол смещения.
Вопрос первый,
1. Нужны функции sin, cos, tg, они поддерживаются скриптом или придется высчитывать руками ?
Вопрос второй,
2. В завершении приведенного ниже скрипта, инструмент стоит в координатах 0, 0. Но стоит начать другую УП, как координаты смещаются с учетом G92 и нули уходят. Как написать так, что бы значения не изменялись ?
Вопрос третий,
3. Искал и не смог найти справочника по языку сценариев для MACH3, это какой то секретный язык ?
Код: Выделить всё
Code "G04 p0.25" 'пауза 0.5 c
Code "G31 X-1000 F200" ' двигаться по +Х на 1м до касания щупом
While IsMoving()
Wend ' дождаться конца движения
Call SetDRO(0,0) ' обнулить данные в окне X
Code "G04 p0.25" ' пауза 0.5 с
Code "G01 x0.25" '
Code "G04 p0.25" ' пауза 0.5 с
Code "G31 X1000" ' двигаться по -X на 1м до касания щупом
While IsMoving()
Wend ' дождаться конца движения
Code "G04 p0.25" ' пауза 0.5 с
Xnew = GetDRO(0) - 0.25
Code "G01 x"&Xnew
Xnew = (Xnew+0.25)/2
Code "G01 x"&Xnew
Code "G92 X0"
Code "G04 p0.25" ' пауза 0.5 с
'Установили предварительный нуль по Х.
Code "G31 Y-1000 F200" ' двигаться по +Х на 1м до касания щупом
While IsMoving()
Wend ' дождаться конца движения
Call SetDRO(1,0) ' обнулить данные в окне Y
Code "G04 p0.25" ' пауза 0.5 с
Code "G01 Y0.25" '
Code "G04 p0.25" ' пауза 0.5 с
Code "G31 Y1000" ' двигаться по -X на 1м до касания щупом
While IsMoving()
Wend ' дождаться конца движения
Code "G04 p0.25" ' пауза 0.5 с
Ynew = GetDRO(1) - 0.25
'responde = MsgBox ("сторона X =" &Xnew&)
Code "G01 Y"&Ynew
Ynew = (Ynew+0.25)/2
'responde = MsgBox ("сторона X =" &Xnew&)
Code "G01 Y"&Ynew
Code "G92 Y0"
Code "G04 p0.25" ' пауза 0.5 с
'Установили предварительный нуль по Y.
Code "G04 p0.25" 'пауза 0.5 c
Code "G31 X-1000 F100" ' двигаться по +Х на 1м до касания щупом
While IsMoving()
Wend ' дождаться конца движения
Call SetDRO(0,0) ' обнулить данные в окне X
Code "G04 p0.25" ' пауза 0.5 с
Code "G01 x0.25" '
Code "G04 p0.25" ' пауза 0.5 с
Code "G31 X1000" ' двигаться по -X на 1м до касания щупом
While IsMoving()
Wend ' дождаться конца движения
Code "G04 p0.25" ' пауза 0.5 с
Xnew = GetDRO(0) - 0.25
Code "G01 x"&Xnew
Xnew = (Xnew+0.25)/2
Code "G01 x"&Xnew
Code "G92 X0"
Code "G04 p0.25" ' пауза 0.5 с
'Установили окончательный нуль по Х.
Code "G31 Y-1000 F100" ' двигаться по +Х на 1м до касания щупом
While IsMoving()
Wend ' дождаться конца движения
Call SetDRO(1,0) ' обнулить данные в окне Y
Code "G04 p0.25" ' пауза 0.5 с
Code "G01 Y0.25" '
Code "G04 p0.25" ' пауза 0.5 с
Code "G31 Y1000" ' двигаться по -X на 1м до касания щупом
While IsMoving()
Wend ' дождаться конца движения
Code "G04 p0.25" ' пауза 0.5 с
Ynew = GetDRO(1) - 0.25
'responde = MsgBox ("сторона X =" &Xnew&)
Code "G01 Y"&Ynew
Ynew = (Ynew+0.25)/2
'responde = MsgBox ("сторона X =" &Xnew&)
Code "G01 Y"&Ynew
Code "G92 Y0"
Code "G04 p0.25" ' пауза 0.5 с
'Call SetDRO(1,0) ' обнулить данные в окне Y