Недавно я печатал под заказ Верньерное колесо. И всё бы ничего, но мне их заказали 50 штук. Поскольку на печать одной единицы уходило примерно 40 минут, то я серьезно задумался про автоматизацию процесса. В данной затее мне поможет Щетка очистки сопла принтера которую я тоже недавно сделал и испытал. Идея такова:
- обнуляю печатную головку по всем осям
- поднимаю её на безопасное расстояние вверх
- грею стол принтера до рабочей температуры
- грею сопло принтера до рабочей температуры
- чищу сопло от потеков пластика
- выполняю печать основной детали
- отвожу печатную головку на безопасное расстояние
- даю соплу остыть 30 секунд
- чищу сопло от потеков пластика
- даю столу остыть примерно до 55 градусов.
- выбрасываю деталь со стола принтера самой же печатной головкой
- принтер выдает сигналы с некоторой периодичностью в течение минуты. в это время возможно прервать процесс, если количество деталей уже достаточно
- автоматически запускаю весь процесс с самого начала
Теперь нужно подготовить оснастку. Для выброса готовой детали необходимо изготовить скребок, который будет закреплен на печатной головке. С него и начну.
Скребок для выгрузки детали со стола принтера
Первым делом размечаю крепежные отверстия, чтобы они совпадали с винтами на печатной головке принтера.
Далее наращиваю стойки, чтобы скребок был максимально близко к корпусу печатной головки.
После этого опускаю стойки вниз максимально близко к поверхности нагреваемого стола.
Соединяю стойки перемычкой. Это и будет скребок, который сталкивает деталь со стола.
Для более плавной печати добавлю несколько скруглений острых углов.
Модель готова.
Подготовил деталь к печати. Нависающие элементы будут напечатаны с поддержками.
Через 20 минут получил готовую деталь.
Когда установил её на принтер, то сразу понял свои ошибки. При попытке почистить сопло о щетку, скребок цеплялся за щетину щетки и я его чуть не оторвал. Нужна модернизация скребка, чтобы он проходил мимо щетки не задевая её. Для этого в модели добавил небольшую арку.
Снова несколько скруглений.
И второй опытный образец готов.
Готовлю его к печати как и предыдущую деталь.
Установка скребка и написание PRE\POST gcode.
Устанавливаю второй скребок на печатную головку.
Пробую варианты перемещения сопла по щетке.
В этот раз ничего не задевает и очистка проходит без проблем.
Настало время самой творческой части моего повествования. Необходимо записать GCODE команды в настройки слайсера Repetier-Host для предварительных действий принтера перед печатью и пост команд после печати основного файла. Эти команды я оттачивал и переписывал много раз, пока добился желаемого эффекта и стабильной работы.
Первым делом, нужно взять себе за правило, что любой файл, который я собираюсь печатать серийно, нужно записывать на SD карту с именем serial.gco. Всё остальное сделают PRE\POST команды. Итак, приведу листинг моих PRE команд. Эти команды хорошо работают в принтерах с прошивкой Marlin. Как будут работать в других прошивках точно сказать не могу. Совместимость не проверял. Кому не понятно, какая команда что делает, оставлю напротив комментарии.
G0 Z20 F7000; приподнимаю сопло чтобы не зацепить модель G28 ; паркую все оси G0 Z20 F7000 ; снова поднимаю ось Z на высоту 20 мм M190 S110 ; включаю нагрев стола до 110 градусов и жду нагрева G0 Y200 Z80 X180 F7000 ; перевожу печатную головку поближе к щетке M109 S240 ; включаю нагрев сопла до 240 градусов и жду нагрева G0 Z27 X0 F7000 ; перевожу печатную головку к щетке на высоте 27 мм G0 Y140 F1000 ; двигаю соплом по щетке к себе G0 Y200 F7000 ; двигаю соплом по щетке от себя G0 Y140 F7000 ; двигаю соплом по щетке к себе G0 Y200 F7000 ; двигаю соплом по щетке от себя G0 Y140 F7000 ; двигаю соплом по щетке к себе G0 Y200 F7000 ; двигаю соплом по щетке от себя G0 Y0 F7000 ; двигаю сопло максимально к себе в 0 по оси Y
Далее автоматически запускается печать основной детали.
А также привожу листинг моих POST команд.
M104 S0 ; выключаю нагрев сопла полностью M140 S0 ; выключаю нагрев стола полностью G0 Z80 F7000 ; поднимаю ось Z на высоту 80 мм G0 Y200 X150 F7000 ; перевожу печатную головку поближе к щетке M117 wait 30 sec... ; вывожу на экран "ждем 30 сек..." G4 S30; делаю программную задержку 30 секунд M117 nozzle cleaning... ; вывожу на экран "очистка сопла..." G0 Y200 Z27 X0 F7000 ; перевожу сопло к щетке на высоте 27 мм G0 Y140 F1000 ; двигаю соплом по щетке к себе G0 Y200 F7000 ; двигаю соплом по щетке от себя G0 Y140 F7000 ; двигаю соплом по щетке к себе G0 Y200 F7000 ; двигаю соплом по щетке от себя G0 Y140 F7000 ; двигаю соплом по щетке к себе G0 Y200 F7000 ; двигаю соплом по щетке от себя G0 Y140 F7000 ; двигаю соплом по щетке к себе G0 Y200 F7000 ; двигаю соплом по щетке от себя G0 Z80 F7000 ; поднимаю ось Z на высоту 80 мм M117 wait 12 min left ; вывожу на экран "ждите, осталось 12 минут" G4 S60 ; делаю программную задержку 60 секунд M117 wait 11 min left ; вывожу на экран "ждите, осталось 11 минут" G4 S60 ; делаю программную задержку 60 секунд M117 wait 10 min left ; вывожу на экран "ждите, осталось 10 минут" G4 S60 ; делаю программную задержку 60 секунд M117 wait 9 min left ; вывожу на экран "ждите, осталось 9 минут" G4 S60 ; делаю программную задержку 60 секунд M117 wait 8 min left ; вывожу на экран "ждите, осталось 8 минут" G4 S60 ; делаю программную задержку 60 секунд M117 wait 7 min left ; вывожу на экран "ждите, осталось 7 минут" G4 S60; делаю программную задержку 60 секунд M117 wait 6 min left ; вывожу на экран "ждите, осталось 6 минут" G4 S60 ; делаю программную задержку 60 секунд M117 wait 5 min left ; вывожу на экран "ждите, осталось 5 минут" G4 S60 ; делаю программную задержку 60 секунд M117 wait 4 min left ; вывожу на экран "ждите, осталось 4 минуты" G4 S60 ; делаю программную задержку 60 секунд M117 wait 3 min left ; вывожу на экран "ждите, осталось 3 минуты" G4 S60 ; делаю программную задержку 60 секунд M117 wait 2 min left ; вывожу на экран "ждите, осталось 2 минуты" G4 S60 ; делаю программную задержку 60 секунд M117 wait 1 min left ; вывожу на экран "ждите, осталось 1 минута" G4 S30 ; делаю программную задержку 30 секунд M117 wait 30 sec left ; вывожу на экран "ждите, осталось 30 секунд" G4 S20 ; делаю программную задержку 20 секунд M117 wait 10 sec left ; вывожу на экран "ждите, осталось 10 секунд" G4 S10 ; делаю программную задержку 10 секунд M117 unloading... ; вывожу на экран "выгрузка..." G0 X100 Z2 F7000 ; перевожу головку в точку выгрузки детали G28 Z ; паркую печатную головку в 0 по оси Z G0 Z0.2 F7000 ; приподнимаю печатную головку на 0,2 мм по оси Z G0 Y30 F8000 ; отрываю деталь скребком от стола на высокой скорости G0 Y0 F4000 ; выталкиваю деталь со стола на средней скорости G0 Z10 Y0 F7000 ; приподнимаю печатную головку на 10 мм по оси Z G28 ; паркую печатную головку в 0 по всем осям G0 Z50 F7000 ; приподнимаю печатную головку на 50 мм по оси Z M84 ; disable motors (отключаю удержание шаговых двигателей) M117 print completed ; вывожу на экран "печать завершена" M300 S5000 P280 ; воспроизведение краткого тонального сигнала G4 S0.5 ; делаю программную задержку 0,5 секунд M300 S5000 P280 ; воспроизведение краткого тонального сигнала G4 S0.5 ; делаю программную задержку 0,5 секунд M300 S5000 P280 ; воспроизведение краткого тонального сигнала G4 S20 ; делаю программную задержку 20 секунд M300 S5000 P280 ; воспроизведение краткого тонального сигнала G4 S0.5 ; делаю программную задержку 0,5 секунд M300 S5000 P280 ; воспроизведение краткого тонального сигнала G4 S0.5 ; делаю программную задержку 0,5 секунд M300 S5000 P280 ; воспроизведение краткого тонального сигнала G4 S20 ; делаю программную задержку 20 секунд M300 S5000 P280 ; воспроизведение краткого тонального сигнала G4 S0.5 ; делаю программную задержку 0,5 секунд M300 S5000 P280 ; воспроизведение краткого тонального сигнала G4 S0.5 ; делаю программную задержку 0,5 секунд M300 S5000 P280 ; воспроизведение краткого тонального сигнала G4 S20 ; делаю программную задержку 20 секунд M32 !serial.gco# ; запускаю с SD карты этот же файл с самого начала
Ну и напоследок покажу как это всё работает. Автоматическая мелкосерийная 3D печать на видео.
Вот такая кучка отправилась заказчику.
Параметры печати:
Суммарный вес готовых деталей (грамм) | 388 |
Время печати (часов:минут) | 33:20 |
Длина пластикового прутка (мм) | 153750 |
Температура сопла (градусов С) | 235 |
Температура стола (градусов С) | 110 |
Тип пластика | ABS |
Диаметр сопла (мм) | 0,4 |
Разрешение печати (микрон) | 200 |
Заполнение (процентов) | 100 |