Допечатываем кусок модели после остановки печати
Столкнулся с такой проблемой, после долгой печати модели около 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. Я не претендую на оригинальность данного решения. Возможно есть гораздо проще варианты, может есть и утилиты для таких манипуляций, лично я их в сети не нашел (бегло гугля).
Делитесь своими методами решения таких проблем в комментариях.
Всем добра!
Еще больше интересных статей
Продолжение моделирования МАЗ-537
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Ресивер....
Снова МАЗ-537. Баки, разные.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Баки топливные на раме.
Наблюда-Ski 04.6: Наращиваем в длину, или Фьюз и не только
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Недавно было несколько тем по сращиванию прутков,
и для начи...
Комментарии и вопросы
Может я и ошибаюсь, сейчас не....
Тут хаос в чистом виде, а Авто...
Да, видимо просто для примера....
Принтер при печати просто в ка...
Добрый день! Подскажите пожалу...
Принтер Wanhao D9 500Пластик P...
Здравствуйте. При печати кубик...