Почему сопло моего принтера впилось в печать?

Я только что завершил свою первую печать на своем Ender-3, и когда печать завершилась, сопло не поднялось, чтобы отделиться от куска. Я наблюдал, как сопло медленно опустилось в мой отпечаток и уничтожило его. Вот используемый g-код, сгенерированный Slic3r:

; Filament-specific end gcode
G4 ; wait
M221 S100
M106 S0 ; turn off cooling fan
M104 S0 ; turn off extruder
M140 S0 ; turn off bed
G91
G1 F1800 E-3
G90
G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up
G28 X0 ; home x and y axis
G1 Y180; Remove Print Position
M84 ; disable motors
M300 S2600 P100; Beep
; filament used = 24040.5mm (57.8cm3)
; total filament cost = 0.0

preview of the destruction

, 👍8


3 ответа


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

5

Вы используете неправильные команды в своем конечном коде для неправильного инструмента в отношении подъема печатающей головки.

Slic3r не знает максимальной высоты принтера (как в переменной max_print_height), потому что нет поля ввода, чтобы указать это, как видно на этом частичном снимке экрана:

Slic3r print area settings

Однако в Slic3r PE (версия Prusa) есть возможность ввести такое значение, как показано на следующем частичном снимке экрана:

Slic3r PE print volume settings

Обратите внимание, что в обоих выпусках интерфейс формы стола эквивалентен при нажатии кнопки Установить... : Slic3r and Slic3r PE desk area settings

Чтобы использовать поднятие головы, соблюдая максимальную высоту печати, в Slic3r PE, вам нужно добавить следующую строку:

{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+60, max_print_height)}{endif}

Это будет отлично работать в Slic3r PE, но не в Slic3r (так как max_print_height неизвестен).

Если вам нужна такая команда в Slic3r, вам необходимо ввести (для принтера с максимальной высотой печати 240 мм):

G1 Z{[z_offset]+min([layer_z]+3, 240)}

результаты в Slic3r для калибровочного куба 20x20x20 мм с нулевым значением z_offset равны:

G1 Z23

,

Но не должно быть никакой необходимости менять Z-pos вообще! После того, как печать будет выполнена,головка должна быть в состоянии очистить последний нанесенный слой и перейти к X=0, Y=0 . Больше ничего не нужно делать, верно?, @Carl Witthoft

@CarlWitthoft Вы никогда не видели прямой линии для глажки, которую некоторые слайсеры создают поверх верхнего слоя? Поднятие головы предотвращает это., @0scar

@Оскар Я должен признать, что нет. Конечно, это хорошая причина, чтобы сначала сделать небольшой шаг относительно Z., @Carl Witthoft


1

Ваш конечный код печати должен был выглядеть примерно так:

; Код конца нити g
G4 ; подождите
M221 S100
M106 S0 ; выключить вентилятор охлаждения
M104 S0 ; выключить экструдер
M140 S0 ; выключить стол

; Конечный код
G1 F1800 E-3 ; втянуть 3 мм
G1 Z30 ; Переместите печатающую головку на 30 мм вверх
G28 X0 ; главная ось x и ось y
M84 ; отключить двигатели
M300 S2600 P100; Звуковой Сигнал

Проблема с вашим конечным кодом заключается в G90 для абсолютных измерений вместе с формулой G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} для установки высоты. Сам принтер ничего не вычисляет. Это то, что он не интерпретирует, он игнорирует, интерпретируя все это как нечто сумасшедшее, такое как G1 Z30, чтобы заставить принтер подняться на абсолютные 30 мм выше абсолютного 0. Чтобы исправить это, вашему слайсеру потребуется вычислить {z_offset+min(layer_z+30, max_print_height)} для принтера, который, похоже, выходит на 30 мм выше печати, а затем оператор if, который нигде не запускается.

Увеличение на 30 мм может быть намного проще, если вы выполните относительные измерения в G91 ; и вызовете G1 Z30, чтобы увеличить еще на 30 мм, хотя это может оказаться слишком высоким для рамки принтера.

,

G-код в slic3r гласит: G90 {если layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, максимальная высота печати)}{конечный результат} ; Переместить печатающую головку вверх Я замечаю, что оператор "если", похоже, отсутствует в выходном файле G-кода. В этом ли проблема?, @Jonathan Gallant-Mills

@JonathanGallant-Миллс да, это проблема. у вас также должно быть что-то еще... или просто пропустите это, @Trish


1

То же самое случилось со мной несколько лет назад. Мой отпечаток был довольно высокой деталью для моего дельта-принтера, около 220 мм. Во многих предыдущих отпечатках печатающая головка всегда поднималась вверх после окончания печати, но чего я не знал, так это того, что процедура финишной печати Slic3r указывала абсолютную высоту Z около 200 мм. Когда высокая часть закончилась, все еще горячая печатающая головка двинулась вниз и разрушила верхнюю часть отпечатка.

Выяснив, что у рутины есть абсолютная ссылка, я заменил ее относительным движением на 20 мм вверх. С тех пор все шло хорошо. Простое решение.

,