Допечатываем кусок модели после остановки печати
Столкнулся с такой проблемой, после долгой печати модели около 8 часов, случайно зацепил вилку питания самодельной "Прюши" и печать прервалась. Я отлепил модель и задумался, что с ней делать дальше.
Бегло погуглив, как продолжить печать, как отредактировать модель, я ничего толком не нашел и решил эту задачу по-своему.
Поскольку обрезать *.stl модель в нужно месте - задача довольно сложная (ИМХО), я решил в слайсере найти на каком слое остановилась печать и отредактировать g-code файл.
Меня устроило бы доклеить недопечатанную часть, чем с нуля опять печатать всю модель.
Также это один из вариантов разделить модель по высоте при печати.
Внешний вид модели:
Загрузил файл *.gcode в Cura.
Я решил искать совпадения по заполнению модели. За основу взял одну линию решетки, которая выходила из угла модели и линию, которая подходит к краю печати отверстия. На рисунке - черные линии.
Посчитал на оригинальной модели количество линий (7 шт) и двигая ползунок слоев справа, нашел совпадение на 177 слое.
Я уж начал думать, как посчитать высоту оси Z, чтоб отыскать ее в коде, но открыв листинг файла, был приятно удивлен. Начало каждого слоя было закомметировано - ;LAYER:0 и т.д.
В общих чертах, что нужно сделать.
Нужно найти начало кода 177 слоя и впихнуть его в начало кода, после подготовки принтера к печати (прогрев стола и сопла). Предварительно скинув текущие координаты высоты и экструдера (приняв их за начальные).
Итак, сохраняем оригинальный файл под другим именем и открываем исходный в режиме чтения, новый в режиме редактирования.
В начале файла у меня следующий текст:
;Generated with Cura_SteamEngine 4.3.0
M140 S60
M105
M190 S60
M104 S220
M105
M109 S220
M82 ;absolute extrusion mode
G21 ;metric values
G90 ;absolute positioning
M82 ;set extruder to absolute mode
M107 ;start with the fan off
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G1 Z15.0 F9000 ;move the platform down 15mm
G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3mm of feed stock
G92 E0 ;zero the extruded length again
G1 F9000
;Put printing message on LCD screen
M117 Printing...
G92 E0
G92 E0
G1 F1500 E-6.5
;LAYER_COUNT:239
;LAYER:0
M107
G1 F600 Z1.3
G0 F3000 X17.774 Y86.724 Z1.3
;TYPE:SKIRT
G1 F600 Z0.3
G1 F1500 E0
До метки ;LAYER:0 - это подготовка принтера к печати. После, непосредственно печать первого слоя, каймы или юбки.
Поиском нахожу нужную строку ;LAYER:177, меня интересует значение экструдера и значение высоты модели Z.
;LAYER:177
G0 X18.669 Y107.843 Z36.7
;TYPE:SUPPORT
G1 F600 Z35.7
G1 F1500 E3794.29982
G1 F3000 X21.336 Y107.778 E3794.38855
Стоит учесть еще один нюанс - обдув. После прогрева стола лично у меня обдув отключен. Включается обдув командой M106. Ищем строчки M106:
;LAYER:1
M140 S60
M106 S153
Значит при печати следующего слоя - 178 нужно включить обдув. Я просто скопировал две строки, которые создала Cura.
Далее по тексту обдув меняется аж в слое 237 (поэтому мне в коде больше ничего менять и добавлять не нужно)
;LAYER:237
M106 S192
Удалив все лишнее, получаю такой код:
...
M117 Printing...
G92 E0
G92 E0
G1 F1500 E-6.5
;LAYER_COUNT:239
;LAYER:0
M107 ;
G1 F600 Z0.3
G92 Z35.7 E3794.29982 ;Устанавливаем текущие координаты высоты и экструдера как начальные
;LAYER:177
G0 F3000 X18.669 Y107.843 Z36.7
;TYPE:SUPPORT
G1 F600 Z35.7
...
;LAYER:178
M140 S60
M106 S153
В итоге получаем высоту сопла над столом 0,3мм с которой начинается печать слоя.
ВНИМАНИЕ!! Если не добавить строку G92 Z35.7 E3794.29982 , то при работе с абсолютной системой координат каретка уедет в нужную координату по высоте и экструдер будет выдавливать филамент до значения которое он уже выдавил до этого в оригинальной модели.
После редактирования следовало бы прогнать файл в симуляторе G- кода. Можно также открыть файл в самой Cura и посмотреть, как выглядит модель.
В итоге, весь алгоритм сводится к таким действиям:
- Визуальное определение, на каком слое произошла остановка печати.
- Создаем копию файла и находим в нем строку с нужным номером слоя ;LAYER:177
- Находим начальные настройки принтера до печати нулевого слоя ;LAYER:0 и удаляем все до строк нужного слоя. Некоторые строки можно закомментировать знаком ;
- Устанавливаем текущие координаты высоты и экструдера как начальные (для слоя 177) командой G92 Z35.7 E3794.29982В
- В исходном файле ищем команды включения обдува M106 и вставляем их в соответствующие слои при печати.
- Сохраняем и открываем файл в симуляторе G-кода.
Пользуемся)))
PS. Я не претендую на оригинальность данного решения. Возможно есть гораздо проще варианты, может есть и утилиты для таких манипуляций, лично я их в сети не нашел (бегло гугля).
Делитесь своими методами решения таких проблем в комментариях.
Всем добра!
Еще больше интересных статей
Обновленный калькулятор стоимости печати. Снова beta, но избавились от старых проблем!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Обзор калькулятора стоимости 3D-печати: точный расчет заказа за минуту
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Придумал, экструдер.....
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Вспомнилась игра для ПК 1987-8...
а можно поподробнее, как крепи...
Уважаемый, перехлест в принцип...
Accurate Shuttle Limo Serviceh...
новичок в прошиках, поэтому со...
Не могу добавить или обновить...
Здравствуйте! При печати высок...