Как настроить Cura для запуска Z-зонда перед нагревом

Я использую Cura в качестве программного обеспечения для нарезки/печати, и я только начал использовать печатную поверхность BuildTak.

BuildTak повреждается, вдавливая в него горячее сопло, а функция автоматического выравнивания 3д-принтера (Robo3D R1+) работает, вдавливая сопло в поверхность сборки.

Есть ли способ настроить Cura так, чтобы он сначала запускал Z-зонд, а затем нагревал сопло?

Мой первый лист BuildTak уже имеет 10 небольших отверстий (в положении самонаведения и в 9 точках касания выравнивания).

, 👍12


2 ответа


Лучший ответ:

10

В Cura (и Slic3r) вы можете на 100% настроить работу принтера перед печатью фактической модели с помощью пользовательского начального/конечного g-кода.

Если вы перейдете на вкладку Start/End-GCode в Cura, а затем выберите start.gcode, вы сможете увидеть, какие операции выполняются перед началом каждой печати. Строки с префиксом ; являются комментариями и никак не влияют на печать.

По сути, мы хотим вручную указать принтеру выполнить автоматическое выравнивание перед нагревом сопла, отредактировав g-код в файле start.gcode.

G-код, сгенерированный с помощью стандартного start.gcode:

Если вы попытаетесь срезать некоторую модель с кодом по умолчанию, найденным в start.gcode, вы получите что-то вроде следующего (в зависимости от вашего принтера):

; CURA AUTOMATICALLY INSERTS THESE TEMPERATURE CODES

M190 S70.000000 ; Set bed temperature to 70 degrees
M109 S210.000000 ; Set nozzle temperature to 210 degrees


; THESE ARE THE CODES FROM START.GCODE (for a ROBO 3D R1) 

G28          ;move printer to endstops (the home position)
G92 E0       ;zero the extruded filament length
M565 Z-1     ;set z-probe offset
G1 Z5 F5000  ;move the printer 5mm above the bed
G29          ;run auto-leveling


; THE ACTUAL MODEL BEGINS HERE

;Layer count: 168
;LAYER:0
.
.

Анализ вывода g-кода

В верхней части этого фрагмента кода мы видим, что Cura автоматически вставляет g-код для нагрева стола и сопла до соответствующих температур с помощью g-кодов M190 и M109. Это означает, что принтер всегда будет нагревать сопло перед чтением установленного нами start.gcodes. Однако если мы вручную переопределим код M109 в start.gcode, то M109 вверху автоматически исчезнет из сгенерированного вывода g-кода! (Спасибо, @TomvanderZanden!)

Поэтому мы могли бы использовать команду автоматического выравнивания G29 перед ручной установкой температуры сопла с помощью M109; в частности, мы хотим добавить M109 S{print_temperature}, который считывает базовую настройку температуры печатив Cura и автоматически заменяет {print_temperature}.

Манипулирование start.gcode:

Чтобы отложить нагрев хотенда до окончания зондирования, start.gcode может быть примерно таким:

G28          ;move printer to endstops (the home position)
G92 E0       ;zero the extruded filament length
M565 Z-1     ;set z-probe offset     <-----   ( YOU HAVE TO ADJUST THIS, READ BELOW)
G1 Z5 F5000  ;move the printer 5mm above the bed
G29          ;run auto-leveling
M109 S{print_temperature}    ;set nozzle temperature, and wait for it heat up

И это все! Затем вы можете использовать эти коды в своем start.gcode. Однако вам, вероятно, придется перекалибровать смещение z-prove.

Отрегулируйте смещение z-зонда:

Обычно автонивелирование производится с нагретым соплом не просто так: когда сопло теплое, оно слегка расширяется, приближаясь к столу. Поэтому вам, возможно, придется отрегулировать смещение Z-зонда с помощью команды M565 (как показано в фрагменте), чтобы учесть увеличение длины сопла при нагревании.

Помните:

Помните, что при редактировании g-кода таким образом вы получите полный контроль над работой принтера. Поэтому вы вполне можете сделать что-то непреднамеренное, поэтому держите выключатель питания близко!


,

В этом ответе упускается очень важный момент: в Cura (и что-то подобное работает для Slic3r и Simplify3D) вы можете вставить "M109 S{print_temperature}" в свой G-код. Он заменит {print_temperature} установленной температурой печати и не добавит свой собственный M109. Таким образом, вам не нужно делать уродливый взлом установки температуры на 0., @Tom van der Zanden

@TomvanderZanden, вы совершенно правы! Я не думал, что Cura будет достаточно умна, чтобы удалить первый M109, если вы установите его вручную в start.gcode, но похоже, что это так! Я обновлю ответ., @Tormod Haugene

{print_temperature} не сработало для меня. {material_print_temperature} сделал это. (Посмотрите здесь подробнее.) (https://ultimaker.com/en/community/49978-changing-cura-generated-start-code), @Markus Hütter


0

Как указано в комментарии Маркуса к ответу Tormod, {print_temperature} необходимо заменить на {material_print_temperature}, поэтому код теперь становится:

G28 ;переместить принтер в конечное положение (исходное положение)
G92 E0 ;нулевая длина экструдированной нити 
M565 Z-1 ;установите смещение z-зонда <----- ( ВЫ ДОЛЖНЫ ОТРЕГУЛИРОВАТЬ ЭТО, ЧИТАЙТЕ НИЖЕ)
G1 Z5 F5000 ;переместить принтер на 5 мм выше стола
G29 ;запуск автоматического выравнивания
M109 S{material_print_temperature} ;установите температуру сопла и дождитесь его нагрева
,