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

  • Последнее редактирование:
    Рекомендованный
  • #646
Последнее редактирование:
ОлегК!!!
Поясни мне Одну вещь.
На версии 1.4.
У меня чёго-то не выходит. (как в общественном туалете крик-"не выходит")
Проб по Z.
Толщина щупа задана в Сетинге проб.
Захожу в проб по Z - как и должно быть, предлагается 2 варианта 1 и 2.
Выбираю второй, где указана толщина щупа.
Калибруюсь.
Поднимаю по Z.
Предварительно, X Y были обнулены.
Нажимаю SHIFT+SC XYZ - оно выходит не в "0" по Z, а на уровень величины толщины щупа.
Это равносильно, если бы выбрал вариант 1 проба по Z.
Единственная разница - при варианте 2 отскок в верх индицируется не как в сетинге 5 мм, а 5мм+толщина щупа.
Может что-то не так делаю?
Задолбал наверное вопросами?
Успехов.
С уважением Виктор.
 
Единственная разница - при варианте 2 отскок в верх индицируется не как в сетинге 5 мм, а 5мм+толщина щупа.
Может что-то не так делаю?
Подозреваю, что "не так" где-то что-то у меня - проверю, как будет возможность.
Спасибо за багрепорты :)
 
  • Последнее редактирование:
Последнее редактирование:
ОлегК!!!
Нашёл проблему в void ProbeZ()
,,,,,,,,
if (probe_resp.result)
{
WaitCNC();
Zsc = probe_resp.z - prb_height;
prefs.putFloat("Zsc", Zsc);
DEBUG(F("[PRB Z:] ":); DEBUGLN(probe_resp.z);
DEBUGLN(F("Z probe OK":);
}

После остановки по касанию проба "G38.2Z" Вы сразу заполняете структуру probe_resp.
И только после этого выполняете ("G92Z" + String(prb_height, 4:).toCharArray(comm, 50);
Где производится смещение на величину проба.
А Присвоение Zsc у Вас из структуры, которая не знает, что было "G92Z"
Жирненьким пометил что надо добавить.
Всё срослось.
Может у Вас есть свои решения данной задачи?
ОлегК, у меня остались непонятки относительно данных сетинга.
На ЕСП32 нет эпрома. На СД карте никаких дополнительных файлов не наблюдается.
Так Где же хранятся данные сетинга?
 
ОлегК!!!
Да, действительно, без учёта толщены щупа "САбака", выходит на в "0" на толщину щупа.
Не понятно, но здорово. Но, Ведь prb_height по определению =0,0 при варианте 1.
при "G92Z" + String(prb_height, 4:).toCharArray(comm, 50); Равносильно "G92Z0" в данной точке.
И строчка "Zsc = probe_resp.z - prb_height;" должна быть равна Zsc = probe_resp.z-0,0;
И где же ошибка?
ОлегК!!! Спасибо огромное за "тут".
Сам дошёл до этого, но начал разбирать с самим Preferences.cpp - теперь надеюсь, с документацией дело пойдёт значительно быстрее.
Успехов.

 
  • Последнее редактирование:
Последнее редактирование:
И строчка "Zsc = probe_resp.z - prb_height;" должна быть равна Zsc = probe_resp.z-0,0;
И где же ошибка?
Я сейчас на смене, попробовать никак, но насколько помню, в поле probe_resp.z пишется рабочая координата, при этом, в Zsc пишется машинная.
По идее, что бы из рабочей получить машинную, надо к ней прибавить текущее смещение рабочих коодинат по Z.
Соответственно надо попробовать строку
C++:
 Zsc = probe_resp.z;
заменить на
C++:
if (dlg_result == 1) {
         Zsc = probe_resp.z;
} else {
         Zsc = probe_resp.z + wcoZ;
}

Это чисто навскидку, нужно проверить в реале :)

ЗЫ. Перемещение по диагонали вернул, тоже надо проверить.
Ну и проверить траблу, что в #642, есть одна идея...
 
Машинная координата - это зло.
Всё - яд и всё - лекарство, зависит от количества и применения :)
Что бы восстановить рабочий 0, нужно знать машинную координату и смещение рабочей координаты.
Знаешь другой способ?
 
ОлегК!!!
В сообщении #653 я не прав.
Всё чётко работает.
Так и должно быть.
Попробовал Ваш вариант - Увы-"не выходит".
 
Так что в итоге-то?
Вот это помогло или как?
Да Олег!!!
Всё чётко работает, и при толщине щупа =0,0 по железной заготовке, и при толщине щупа отличной от 0,0 по диэлектрической заготовке.
Спасибо за содействие.
 
Всё чётко работает
ОК, внёс в исходник.
C++:
//Zsc = probe_resp.z;
Zsc = probe_resp.z - prb_height; //fixed by Bacilio
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

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

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

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

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