Почему сопло моего принтера впилось в печать?
Я только что завершил свою первую печать на своем 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
3 ответа
Лучший ответ:
Вы используете неправильные команды в своем конечном коде для неправильного инструмента в отношении подъема печатающей головки.
Slic3r не знает максимальной высоты принтера (как в переменной max_print_height
), потому что нет поля ввода, чтобы указать это, как видно на этом частичном снимке экрана:
Однако в Slic3r PE (версия Prusa) есть возможность ввести такое значение, как показано на следующем частичном снимке экрана:
Обратите внимание, что в обоих выпусках интерфейс формы стола
эквивалентен при нажатии кнопки Установить...
:
Чтобы использовать поднятие головы, соблюдая максимальную высоту печати, в 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
Ваш конечный код печати должен был выглядеть примерно так:
; Код конца нити 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
То же самое случилось со мной несколько лет назад. Мой отпечаток был довольно высокой деталью для моего дельта-принтера, около 220 мм. Во многих предыдущих отпечатках печатающая головка всегда поднималась вверх после окончания печати, но чего я не знал, так это того, что процедура финишной печати Slic3r указывала абсолютную высоту Z около 200 мм. Когда высокая часть закончилась, все еще горячая печатающая головка двинулась вниз и разрушила верхнюю часть отпечатка.
Выяснив, что у рутины есть абсолютная ссылка, я заменил ее относительным движением на 20 мм вверх. С тех пор все шло хорошо. Простое решение.
- Сохранение настроек BL Touch
- Переменные Cura и начальные команды G-кода
- Я не могу заставить G29 запустить BLTouch на моем Ender 3 V2
- Как прервать длинную команду с помощью G-кода?
- Ender 3 Pro - "Пауза на высоте" автоматически возобновляется через несколько секунд
- Первый слой Z-смещение в G-коде
- Редактирование G-кода для изменения порядка печати нескольких заданий печати по одному
- Ender 3 Pro неправильно интерпретирует G-код?
Но не должно быть никакой необходимости менять Z-pos вообще! После того, как печать будет выполнена,головка должна быть в состоянии очистить последний нанесенный слой и перейти к X=0, Y=0 . Больше ничего не нужно делать, верно?, @Carl Witthoft
@CarlWitthoft Вы никогда не видели прямой линии для глажки, которую некоторые слайсеры создают поверх верхнего слоя? Поднятие головы предотвращает это., @0scar
@Оскар Я должен признать, что нет. Конечно, это хорошая причина, чтобы сначала сделать небольшой шаг относительно Z., @Carl Witthoft