Башня ретракта
Готовый файл: две колонки с просветом 30 мм. Сопло перебегает с одной на другую каждый слой — плохой ретракт оставляет в промежутке нить. Скачивай STL или нарезанный G-code под свою прошивку.
STLСкачать модельretraction-tower.stl · 14,7 КБКакой G-code скачать под свой принтер
Файлы под Marlin и Klipper не взаимозаменяемы: выбери прошивку в поле ниже, имя файла в кнопке поменяется. Что проверить в самой прошивке до печати, сказано сразу под кнопкой.
Creality Ender-3 · сопло 0.4 мм · PLA · профиль 0,20 мм · ретракт 0 → 6 мм по высоте, команда M207 (Marlin)
Перед скачиванием сверь имя файла: оно меняется вместе с выбором. Не меняется — скрипт не отработал, тогда бери файл из списка ниже.
SET_RETRACTION RETRACT_SPEED=35 TUNING_TOWER COMMAND=SET_RETRACTION PARAMETER=RETRACT_LENGTH START=0 FACTOR=0.119
Выполни обе строки в консоли Klipper до запуска печати. Первая ставит скорость ретракта, вторая задаёт правило: длина растёт от нуля у стола и прибавляет FACTOR миллиметров на каждый миллиметр высоты. Сами по себе они ничего не печатают.
После теста TUNING_TOWER надо снять. Правило живёт до перезапуска прошивки и меняет ретракт по высоте на любой следующей печати — деталь выйдет с ретрактом от нуля у стола. Сбрасывается FIRMWARE_RESTART в консоли; найденное значение до этого впиши в printer.cfg, иначе оно тоже пропадёт.
Klipper эту команду не реализует: модуль firmware_retraction знает SET_RETRACTION, GET_RETRACTION, G10 и G11 — и всё. На неизвестной команде печать останавливается. Марлиновский файл умрёт в конце стартового кода: M207 дописана в хвост вендорской преамбулы, поэтому принтер успеет прогреться, припарковаться и выложить линию прочистки — и встанет перед самой деталью. Обратная подмена тише, но так же бесполезна: Klipper-файл на Marlin напечатается ровной башней без единого изменения ретракта.
Втягивания в обоих файлах идут через G10 и G11. Выполнит их только Marlin, собранный с FWRETRACT, или Klipper с секцией [firmware_retraction] в printer.cfg. В Marlin без неё G10 и G11 проходят мимо — ретракта не будет вообще, и башня выйдет сплошной паутиной; в Klipper без секции они неизвестны, и печать остановится.
Проверяется за минуту, но команда у прошивок разная. Marlin — отправь M207 в консоль (OctoPrint, Pronterface). Klipper — GET_RETRACTION в веб-интерфейсе Mainsail или Fluidd; M207 тут не показатель, он ответит Unknown command даже при верно настроенной секции. Нет firmware retraction — режь башню сама, скрипт для слайсера выдаёт калькулятор ретракта.
Та же башня, уже нарезанная под конкретную машину профилем 0,20 мм из поставки PrusaSlicer. Длина ретракта растёт линейно по высоте — от нуля у стола до верха диапазона на макушке; у боудена диапазон до 6 мм, у директа до 2 мм. Размер файла — 0,5–0,9 МБ, зависит от принтера и сопла.
Верх диапазона у боудена закрывает не все материалы: таблица стартовых значений даёт PETG на боудене 5–7 мм, а башня доходит до 6. Если у связки боуден + PETG чистой оказалась только макушка или чистого участка нет вовсе — ответ «6 мм и больше», и башню надо перерезать самому с верхом 8 мм. Директу и остальным материалам диапазона хватает с запасом.
Файлов два, и они не взаимозаменяемы. В марлиновском длина прошита командой M207 — в стартовом коде и в каждом слое. В файле для Klipper команд ретракта нет ни одной: там голая башня, а длину перебирает сама прошивка по TUNING_TOWER, которую ты выполняешь в консоли до запуска печати.
M201, M203, M205, у Prusa ещё M862, G80 и M907, у Elegoo M420 — Klipper не знает ни одной. Вместо неё в файле минимальный старт: единицы, координаты, режим подачи, нагрев стола и сопла с ожиданием, парковка G28 и линия прочистки по краю стола. Вызова PRINT_START в файле нет — ни в одном из наших Klipper-вариантов: преамбула заменена целиком, а не дополнена. Значит не грузится сохранённая карта стола и не применяется SET_GCODE_OFFSET, если он живёт в этом макросе. На типовой конфигурации это первый слой в стол. Открой файл текстовым редактором и впиши PRINT_START первой строкой сам — со своими параметрами, если макрос их принимает.M112 в консоли: аварийная остановка, гасит нагрев и моторы немедленно. После неё прошивка остаётся в заблокированном состоянии, её надо перезапустить: FIRMWARE_RESTART в Klipper, кнопка reset или переподключение по USB в Marlin..gcode текстовым редактором: в первых строках записаны принтер, сопло, профиль, филамент, для какой прошивки нарезан файл и что сделать до печати — у варианта Klipper там записана готовая команда TUNING_TOWER с посчитанным FACTOR.Все файлы модели списком
Marlin — M207 прошит в файл
Creality Ender-3
- ender3_0.4nozzle_0.20mm_pla_retraction-tower_0-6mm.gcode
- ender3_0.4nozzle_0.20mm_petg_retraction-tower_0-6mm.gcode
- ender3_0.4nozzle_0.20mm_abs_retraction-tower_0-6mm.gcode
- ender3_0.6nozzle_0.20mm_pla_retraction-tower_0-6mm.gcode
- ender3_0.6nozzle_0.20mm_petg_retraction-tower_0-6mm.gcode
- ender3_0.6nozzle_0.20mm_abs_retraction-tower_0-6mm.gcode
Creality Ender-3 V2
- ender3v2_0.4nozzle_0.20mm_pla_retraction-tower_0-6mm.gcode
- ender3v2_0.4nozzle_0.20mm_petg_retraction-tower_0-6mm.gcode
- ender3v2_0.4nozzle_0.20mm_abs_retraction-tower_0-6mm.gcode
- ender3v2_0.6nozzle_0.20mm_pla_retraction-tower_0-6mm.gcode
- ender3v2_0.6nozzle_0.20mm_petg_retraction-tower_0-6mm.gcode
- ender3v2_0.6nozzle_0.20mm_abs_retraction-tower_0-6mm.gcode
Creality Ender-3 S1
- ender3s1_0.4nozzle_0.20mm_pla_retraction-tower_0-2mm.gcode
- ender3s1_0.4nozzle_0.20mm_petg_retraction-tower_0-2mm.gcode
- ender3s1_0.4nozzle_0.20mm_abs_retraction-tower_0-2mm.gcode
- ender3s1_0.6nozzle_0.20mm_pla_retraction-tower_0-2mm.gcode
- ender3s1_0.6nozzle_0.20mm_petg_retraction-tower_0-2mm.gcode
- ender3s1_0.6nozzle_0.20mm_abs_retraction-tower_0-2mm.gcode
Original Prusa i3 MK3S и MK3S+
- mk3s_0.4nozzle_0.20mm_pla_retraction-tower_0-2mm.gcode
- mk3s_0.4nozzle_0.20mm_petg_retraction-tower_0-2mm.gcode
- mk3s_0.4nozzle_0.20mm_abs_retraction-tower_0-2mm.gcode
- mk3s_0.6nozzle_0.20mm_pla_retraction-tower_0-2mm.gcode
- mk3s_0.6nozzle_0.20mm_petg_retraction-tower_0-2mm.gcode
- mk3s_0.6nozzle_0.20mm_abs_retraction-tower_0-2mm.gcode
Anycubic i3 Mega S
Elegoo Neptune-3 Pro
Klipper — чистая башня, значение задаёт TUNING_TOWER
Creality Ender-3
- ender3_0.4nozzle_0.20mm_pla_retraction-tower-klipper.gcode
- ender3_0.4nozzle_0.20mm_petg_retraction-tower-klipper.gcode
- ender3_0.4nozzle_0.20mm_abs_retraction-tower-klipper.gcode
- ender3_0.6nozzle_0.20mm_pla_retraction-tower-klipper.gcode
- ender3_0.6nozzle_0.20mm_petg_retraction-tower-klipper.gcode
- ender3_0.6nozzle_0.20mm_abs_retraction-tower-klipper.gcode
Creality Ender-3 V2
- ender3v2_0.4nozzle_0.20mm_pla_retraction-tower-klipper.gcode
- ender3v2_0.4nozzle_0.20mm_petg_retraction-tower-klipper.gcode
- ender3v2_0.4nozzle_0.20mm_abs_retraction-tower-klipper.gcode
- ender3v2_0.6nozzle_0.20mm_pla_retraction-tower-klipper.gcode
- ender3v2_0.6nozzle_0.20mm_petg_retraction-tower-klipper.gcode
- ender3v2_0.6nozzle_0.20mm_abs_retraction-tower-klipper.gcode
Creality Ender-3 S1
- ender3s1_0.4nozzle_0.20mm_pla_retraction-tower-klipper.gcode
- ender3s1_0.4nozzle_0.20mm_petg_retraction-tower-klipper.gcode
- ender3s1_0.4nozzle_0.20mm_abs_retraction-tower-klipper.gcode
- ender3s1_0.6nozzle_0.20mm_pla_retraction-tower-klipper.gcode
- ender3s1_0.6nozzle_0.20mm_petg_retraction-tower-klipper.gcode
- ender3s1_0.6nozzle_0.20mm_abs_retraction-tower-klipper.gcode
Original Prusa i3 MK3S и MK3S+
- mk3s_0.4nozzle_0.20mm_pla_retraction-tower-klipper.gcode
- mk3s_0.4nozzle_0.20mm_petg_retraction-tower-klipper.gcode
- mk3s_0.4nozzle_0.20mm_abs_retraction-tower-klipper.gcode
- mk3s_0.6nozzle_0.20mm_pla_retraction-tower-klipper.gcode
- mk3s_0.6nozzle_0.20mm_petg_retraction-tower-klipper.gcode
- mk3s_0.6nozzle_0.20mm_abs_retraction-tower-klipper.gcode
Anycubic i3 Mega S
Elegoo Neptune-3 Pro
С какими параметрами печатать
- Габарит52 × 14 × 50,6 мм
- Высота слоя0,2 мм
- Периметры2
- Заполнение0 %
- Обдувкак для материала
- Поддержкине нужны
- Смена ретрактакаждый слой
- Разметка канавкамикаждые 10 мм
Это параметры для самостоятельной нарезки из STL. В готовом G-code выше стоит стоковый профиль вендора целиком — периметров 3, заполнение 15 %, верх 5 слоёв, низ 4: скрипт нарезки переопределяет только firmware retraction и смену длины по высоте, остальное берётся из профиля. На колонках это видно — внутри у них заполнение, а не пустота.
Сечение колонок постоянно по высоте намеренно: время слоя не меняется, и разница между полосами объясняется только настройкой ретракта, а не тем, что верх успевает остыть сильнее низа. Значение по высоте меняет команда TUNING_TOWER в Klipper или скрипт смены слоя в слайсере — её выдаёт калькулятор ретракта.
Как найти высоту без нитей
Под колонками лежит подошва 0,6 мм, поэтому канавки стоят на 10,6, 20,6, 30,6 и 40,6 мм от стола, а не на круглых числах. Шаг длины посчитан на полную высоту 50,6 мм и растёт от стола, а не от верха подошвы — счёт «канавка = 10 мм» занижает результат: на первой канавке это 6 %, на четвёртой 1,5 %. Считай канавки для ориентира, а в калькулятор ставь высоту, снятую штангенциркулем от стола.
Как изменить модель под себя
Просвет между колонками, число полос и их высота вынесены переменными в шапку исходника OpenSCAD. Боудену нужен перебег подлиннее — на 30 мм трубка не успевает показать, как её растягивает давлением; там ставят 60–80 мм и пересобирают STL.