Pressure Advance
Pressure Advance (PA) компенсирует задержку давления в зоне плавления: при разгоне
экструдер «не додаёт» пластик, при торможении «переливает». PA заранее подкручивает подачу
пропорционально ускорению — от этого зависят чёткость углов, отсутствие набуханий на старте
линии и качество шва. Формула Klipper: pa_position = nominal_position + pressure_advance * nominal_velocity.
Главное: PA — свойство ФИЛАМЕНТА, не принтера
Значение зависит в первую очередь от пластика (PLA ≠ PETG ≠ TPU, и даже разные бренды
одного материала различаются), а также от тракта, температуры и потока. Типичные порядки:
- direct drive: PA ≈ 0.02–0.08 (короткий тракт, малая задержка);
- bowden: PA ≈ 0.3–1.0 (длинная трубка сжимается — задержка в разы больше).
Поэтому одно число «на весь принтер» неверно — у каждого материала своё.
Где оно живёт в Klipper
- В
[extruder]:pressure_advanceиpressure_advance_smooth_time(дефолт smooth_time в
Klipper —0.040). Klipper требует какое-то значение, поэтому оно там есть всегда — но это
дефолт/фолбэк, который применяется, пока никто не переопределит. - Реальное значение ставится на лету:
SET_PRESSURE_ADVANCE ADVANCE=<x> SMOOTH_TIME=<y>
(для многоэкструдерных — сEXTRUDER=<name>; иначе применяется к активному экструдеру). - Физический экструдер один. При мультиматериальной печати PA нужно переставлять на
каждой смене инструмента под загруженный пластик — иначе весь принт печатается с PA
первого филамента.
Проверить, что реально активно:
# дефолт из конфига (фолбэк):
curl -s "http://<printer>:7125/printer/objects/query?configfile" | \
python3 -c "import sys,json;print(json.load(sys.stdin)['result']['status']['configfile']['settings']['extruder']['pressure_advance'])"
# что слайсер реально вписал в gcode:
grep -n "SET_PRESSURE_ADVANCE" file.gcode
Правильное место — профиль филамента в слайсере
OrcaSlicer/Bambu хранят PA отдельным полем филамента (не в стартовом g-коде):
enable_pressure_advance— чекбокс, в JSON["0"]/["1"](массив строк);pressure_advance— значение, в JSON["0.085"](массив строк).
При enable_pressure_advance = ["1"] и Klipper-флейворе слайсер сам эмитит
SET_PRESSURE_ADVANCE ADVANCE=<val> в стартовом g-коде филамента, перекрывая дефолт из
printer.cfg.
Гоча наследования: enable_pressure_advance часто задан не в твоём профиле, а в базовом
(например у вендора в fdm_filament_common.json стоит ["1"]) и наследуется вниз по
цепочке inherits. Легко решить «PA не задан», глядя только на свой профиль, — проверяй всю
цепочку. Само значение PA без своего override тоже наследуется (вендорский дефолт), а не
берётся из printer.cfg.
Гоча: smooth_time поля в слайсере обычно НЕТ
Поле слайсера шлёт только ADVANCE, без SMOOTH_TIME (проверяется грепом: ни один
filament-профиль не содержит smooth_time). Значит smooth_time не задаётся пофиламентно
и для всех берётся глобальное значение из [extruder]. Меньший smooth_time (0.02–0.03) —
резче реакция, но чувствительнее к шуму; больший (0.04+) — мягче. Если калибровка дала разный
smooth_time по материалам, его дописывают вручную в стартовый g-код филамента
(SET_PRESSURE_ADVANCE ADVANCE=X SMOOTH_TIME=Y). Обычно один smooth_time годится на всё.
Калибровка
Мерить методом «линий» (например, генератор K3D), а НЕ башней/шаблоном — башня и шаблон
занижают PA из-за input shaping (сглаживание гасит те самые
всплески, которые PA должен ловить). 2D-вариант заодно подбирает smooth_time по граням.
Найденное значение вписывать в поле профиля филамента, а не в printer.cfg.
Если в голове принтера есть тензодатчик-зонд (Prusa Nextruder, QIDI Q2), K меряется автоматически по давлению расплава — быстрее и без расхода на тестовые узоры: Авто-калибровка Pressure Advance тензодатчиком. На моём Q2 авто-замер сошёлся с методом линий в третьем знаке (0.0328 против 0.032).
Общий контекст параметров — Настройка параметров печати 3д модели,
мультиматериал — Печать несколькими филаментами на одном экструдере,
механика прошивки — Klipper.
Источники
- Klipper docs: Pressure Advance,
SET_PRESSURE_ADVANCE,pressure_advance_smooth_time - OrcaSlicer: filament settings (
pressure_advance,enable_pressure_advance) - K3D калибровки · K3D генератор PA