Как Вы думаете, чем отличаются эти крокодилы?
Цветом? Увы, но не только. Вот крокодил здорового человека, напечатан на MZ3D-256:
А вот - крокодил курильщика, напечатан на принтере "Дельта", собранном из DIY-конструктора
Если первый имеет практически "круглую" длину 90 мм, то второй - существенно длиннее. Чтобы исключить влияние кривизны установки крокодила, я быстренько сделал тестовую модельку со стороной 60 мм. После печати её на Дельте, получаем:
Снова завышение...
"Какая разница?", спросите Вы... Действительно, чуть длиннее крокодил, или чуть короче - никто и не заметит. Но увы. Печать всякой красоты - это так, для развлечения. А когда принтер используется для дела - от погрешности в доли миллиметра получаются вот такие филиалы Пизанской башни
Соседняя стойка, чуть покрупнее:
И это хорошо, что корпус сделан из мягкого, но прочного PETG. Будь он из PLA - стойка бы просто сломалась. И в крышку эта стойка уже не попадёт. В общем, если принтер взят для дела - он должен давать идеальные размеры.
Смотрим файлы конфигурации. Там есть куча параметров, измеренных с точностью до сотой миллиметра. Пытаемся измерить самостоятельно - нет, это невозможно. Там получается плюс-минус лапоть.
К счастью, оказалось, что схема Дельта - это уникальная схема. Благодаря куче формул из прикладной математики, она может калиброваться полностью самостоятельно, надо только знать волшебные заклинания. Осматриваем сеть, видим кучу обсуждений на уровне шаманства. Затем - находим красивый PDF файл с подробной инструкцией, как откалибровать принтер при помощи команды "G30 A". Пробуем подать - не работает. В.И. Ленин, конечно, сказал, что важнейшим из искусств для нас является шаманство... Но в данном конкретном случае, к принтеру прилагались исходные коды "Прошивки", поэтому у нас имеется возможность докопаться до физической сути. Открываем исходный код - а нет такой подкоманды у команды G30. Причём код-то не самый старый, уже этого года выпуска.
Допустим, документ был написан для новейшей версии "прошивки" Marlin. Идём на сайт разработчика, скачиваем самую-самую свежую версию. Но в ней тоже у команды G30 нет ничего подобного. Но зато появилась команда G33, которая явно производит требуемую автокалибровку.
Первое желание - перетащить новую команду в работающую прошивку. И тут мы понимаем, что такое бардак... Обе прошивки называются Marlin. У них сходные версии. Но... Ээээ. Я лучше приведу фрагмент кода обработчика команды G30 для "прошивки", приложенной к принтеру
float X_probe_location = code_seen('X') ? code_value_axis_units(X_AXIS) : current_position[X_AXIS] + X_PROBE_OFFSET_FROM_EXTRUDER,
Y_probe_location = code_seen('Y') ? code_value_axis_units(Y_AXIS) : current_position[Y_AXIS] + Y_PROBE_OFFSET_FROM_EXTRUDER;
и кода, скачанного с сайта разработчика "прошивки"
const float xpos = parser.linearval('X', current_position[X_AXIS] + X_PROBE_OFFSET_FROM_EXTRUDER),
ypos = parser.linearval('Y', current_position[Y_AXIS] + Y_PROBE_OFFSET_FROM_EXTRUDER);
и кода, скачанного с сайта разработчика "прошивки"
Видите что-то общее? А это одна и та же функциональность... И так - по всему тексту. Одно и то же выражено совершенно разными способами.
В общем, бросил я эту затею, перетянуть функцию. Слишком много правок, а значит - шансов на ошибку. Поэтому я просто перетянул конфигурацию в новый вариант. Тоже творческая задачка. Часть параметров расположены в разных местах файла, некоторые параметры имеют разные имена. Так что чисто сравнением файлов не обойдёшься.
Дальше пошло испытание всего этого дела. Ну, и разные весёлости. Например, выход щупа BL-TOUCH за стекло. Тем не менее, через несколько часов калибровка была завершена, можно было начинать печать. Ставим принтер на прогрев... Что такое? Хочу 225 градусов, а он даёт 218 и ни градусом больше. Наверное, с новой "прошивкой" стоит перекалибровать PID-регулятор? Да без проблем, M303 S225... Что такое? Температура сопла - падает. Может, алгоритм калибровки изменился? Вот оно остыло... А потом и сообщение об ошибке вышло.
Долго я думал, что это такое, но нечаянно задел провода, идущие к головке. Тут-то нагрев и пошёл. Да-да, отходит контакт. Причём там этот контакт греется, даже оплётка оплавилась.
Поэтому и не мог до 225 градусов дойти. Ээээх! Гарантийный же случай... Но перед нами - не заводской принтер, а DIY конструктор, так что никакой он не гарантийный. Ладно, позажимал плоскогубцами - провода перестали греться, а сопло - наоборот, начало достигать любых температур.
Печатаем... Получаем вот такую красоту.
Заключение
3D принтеры со схемой "Дельта" обладают уникальной способностью для самокалибровки. В статье показано, как это можно сделать (взять "прошивку", поддерживающую команду G33 и применить эту команду).
Кроме того, в статье показано, что конструкторы DIY позволяют расширить кругозор в области механики, программирования, а также - провести время с пользой. Автор получает массу положительных эмоций, разбираясь во всех деталях шаг за шагом.
Но вот идею "Зачем переплачивать заводу? Сейчас соберём, и будем всё печатать" DIY-комплект в очередной раз не оправдал. Пока автор получал удовольствие, разбираясь с премудростями, печатью занимался стоящий в другом углу старичок MZ3D. За это время он успел напечатать вот такую замечательную вещь, у которой размеры - весьма критичны. А печатать надо было срочно, так как после сильных ливней в гараже залило кессон, и надо было быстренько откачать воду... Гайка же, разумеется, вместе с приделанным к ней шлангом, была далеко. Так может случиться с каждым...
комментарии