ОлегК!!!
И всё же какая то хрень(извините за выражение) выходит.(Т.е. нихрена "не выходит")
При обнулении с кнопок X0, Y0, Z0- всё идёт как по маслу.
Подошёл по одной оси -обнулился. Отъехал в Удобное место для калибровки другой оси- откалибровался. И так по всем осям.
Последнее положение не соответствует 0 заготовки.
Начинаем программу - Как и положено по программе - всё выполняется в соответствии с УП. Хотя Исходное положение Машинки было далеко от 0 заготовки.
Всё чин- чинарём.
Однако, при калибровке по Зет по щупу и начав программу с этого места(второго отскока+толщина щупа)- Зет выходит на 2ую величину последнего отскока+толщину проба/щупа,
По Команде SHIFT+Stop Z выходит на величину безопасного расстояния, т.е. опускается, т.к. величину (у меня была 3мм)
А оси X и Y вообще начинают уходить в непредсказуемое положении.
Но, если после калибровки по Зет проб или иные Пробы по осям и Выйти в SHIFT+SC XYZ
Всё срастается.
Можно отойти от точки "плавающего нуля" (так у нас назвали G54-G59) в нашем случае Координаты sc и начать работать с программой.
Не понятно, но здорово.
В принципе это можно оговорить в инструкции(Хелпе).
Но, SC XY и SHIFT+SC XYZ нужны, как правило, для экстренных случаев.
Хотя пользуюсь этой опцией регулярно.
Закончил одну программу над деталью. Выключил Машинку и пошёл спать.
На сл день - включаю машинку, проделываю известную процедуру и начинаю другую программу с теми же плавающими Нулями.
ОлегК!!!
Вопрос в сл.:
Чем отличается SC XY и SHIFT+SC XYZ от всяческих пробов?
Кстати ОлнгК!!!
В WiFiBidge -
void zeroAxis(char axis)
{
if (cnc_state != STATE_IDLE || lock) return;
switch (axis)
{
case 'X':
Xsc = Xm;
if (isHomingCycle) prefs.putFloat("Xsc", Xsc);
sendCommand
char *)"G92X0.0");
break;
case 'Y':
Ysc = Ym;
if (isHomingCycle) prefs.putFloat("Ysc", Ysc);
sendCommand
char *)"G92Y0.0");
break;
case 'Z':
Zsc = Zm;
if (isHomingCycle) prefs.putFloat("Zsc", Zsc);
sendCommand
char *)"G92Z0.0");
break;
}
}
У вас было по всем осям "G92X0.0". У себя исправил.
Или не надо было?