ПОЛЕЗНО GRBL Commander - автономный контроллер на ESP32

    Рекомендованный
  • #661
и при толщине щупа отличной от 0,0 по диэлектрической заготовке.
Надо бы придумать адекватную терминологию для этого самого щупа. Просто "щуп" или "пробник" создают путаницу. Может быть "калиброванный пробник" или "пробная пластина"?
 
Хз, чего там путать-то, вроде юзверям понятно...
Можно пробником или щупом считать фрезу, с подключенным крокодилом, а "толщину щупа" обозвать "смещением" (offset), которая равна 0 при поиске токопроводящей поверхности или, если подкладывается калиброванный токопроводящий материал - его высоте.
 
ОК, внёс в исходник.
ОлегК!!!
Пока у себя на ПС или сразу на первую страницу в версию 1.4???
Надо бы придумать адекватную терминологию для этого самого щупа. Просто "щуп" или "пробник" создают путаницу. Может быть "калиброванный пробник" или "пробная пластина"?

Согласен, всегда надо начинать с определений.
 
Пока у себя на ПС или сразу на первую страницу в версию 1.4?
Обновил на сервере.
Заодно, проверьте, плиз, как ездит одновременно по двум осям - я добавил, но не тестил.
 
ОлегК!!!
Скачал, откомпилил, загрузил, проверил.
Чё то с совместными перемещениями XY глючит.
Начинает двигаться XY, но на какое то определённое расстояние и встает как лом проглотил. Кнопки не отпускал.
Проходят оси 8.332мм каждая, и встают.
Ща в исходник гляну.
 
ОлегК!!!
Проверил, всё в порядке. Совместное движение теперь работает Как надо.
Исправь в исходнике
while (currentOperation == OPERATION_MANUAL)
{
if (millis() - prevMillis > KEYS_CHECK_INTERVAL)
{
key_pressed = GetKey();
static bool ds = false;
if (!single_step && (key_pressed == KEY_X_RIGHT ||
key_pressed == KEY_Y_UP ||
key_pressed == KEY_X_LEFT ||
key_pressed == KEY_Z_DOWN ||
key_pressed == KEY_Y_DOWN ||
key_pressed == KEY_Z_UP ||
key_pressed == KEY_XpYp ||
key_pressed == KEY_XmYm ||
key_pressed == KEY_XpYm ||
key_pressed == KEY_XmYp:)
-тут была лишняя круглая скобка.
 
Исправь в исходнике
while (currentOperation == OPERATION_MANUAL)
{
if (millis() - prevMillis > KEYS_CHECK_INTERVAL)
{
key_pressed = GetKey();
static bool ds = false;
if (!single_step && (key_pressed == KEY_X_RIGHT ||
key_pressed == KEY_Y_UP ||
key_pressed == KEY_X_LEFT ||
key_pressed == KEY_Z_DOWN ||
key_pressed == KEY_Y_DOWN ||
key_pressed == KEY_Z_UP ||
key_pressed == KEY_XpYp ||
key_pressed == KEY_XmYm ||
key_pressed == KEY_XpYm ||
key_pressed == KEY_XmYp:)
-тут была лишняя круглая скобка.
А как же оно с лишней скобкой компилировалось? :eek:
 
  • Последнее редактирование:
Последнее редактирование:
ОлегК!!!
Всё же есть пролемка в ProbeZ().
Например: калибруемся по X, Y (X0, Y0) - ну и отошли от точки калибровки. Для удобств.
Индикация показывает отклонение от нулевой точки. Кстати и Z показывает отклонение от 0. (т.е при калибровке по щупу -высота щупа + последний прыжок.
Начинаем программу, где как обычно- Z идёт на безопасное расстояние, потом Команда X;Y на быстром ходу(G0) в зеро.
По X, Y всё проходит без сучка и задоринки.
По Z, в нашем случае (т.е, "не в нашем, а в вашем"- Операция Ы) (это про себя)
По второму джампу отскочили. Начинаем программу, а оно, САбака, за 0 берёт то, на что отскочили.
Хотя по команде Shift+SC XYZ - выходит как и положено в Нули.
Надо поразбираться с этим вопросом.
Сейчас детальку грызу. До утра будет грызть.
Завтра приступлю.
 
  • Последнее редактирование:
Последнее редактирование:
Всё же есть пролемка в ProbeZ().
Согласен.
Я, как обычно на смене, пришлось опять виртуально ковырять...
Вроде сейчас Zsc должна соответствовать правильному значению - я по бумажке проверил :)

ЗЫ: Проверил уже на станке, как по мне, теперь всё нормально и с учётом толщины и без учёта....
 
ОлегК!!!
Уже можно скачать?
 
Можно.
 
  • Последнее редактирование:
Последнее редактирование:
ОлегК!!!
И всё же какая то хрень(извините за выражение) выходит.(Т.е. нихрена "не выходит")
При обнулении с кнопок 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". У себя исправил.
Или не надо было?
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

Конечно, Ваше программное обеспечение для блокировки рекламы отлично справляется с блокировкой рекламы на нашем сайте, но оно также блокирует полезные функции. Мы стараемся для Вас и не обязываем Вас донатить и скидывать денег на наши кошельки, чтобы пользоваться форумом, но реклама это единственное, что позволяет поддерживать проект и развивать его.

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать