Когда команда BED_MESH_CALIBRATE сканирует весь стол перед каждой печатью небольшой детали, вы тратите лишние минуты на прогрев и прощупывание зон, которые в этой печати вообще не участвуют. Именно эту проблему решает adaptive bed mesh — адаптивная карта высот стола, которая строится только под областью печати конкретной модели.

Технология поддерживается в прошивке Klipper и частично реализована в Marlin и Prusa-прошивках. Суть проста: слайсер передаёт принтеру координаты границ печати, а прошивка зондирует только этот прямоугольник с небольшим запасом. Результат — более плотная сетка точек на меньшей площади, точнее компенсация неровностей и заметная экономия времени на старте.

Как работает адаптивная карта стола

Классическая карта стола (bed mesh) строится один раз и сохраняется в профиле — принтер делит всю поверхность на сетку, например 5×5 точек, и измеряет высоту в каждом узле. При печати прошивка сдвигает ось Z, компенсируя выявленные отклонения. Проблема в том, что на столе 300×300 мм сетка 5×5 даёт шаг 60 мм — мелкие локальные неровности между точками просто не попадают в расчёт.

Адаптивный подход меняет логику: вместо фиксированной сетки по всему столу зондирование выполняется только внутри прямоугольника, занимаемого моделью, плюс заданное поле (margin). На той же плотности измерений маленькая деталь получает в разы более детальную карту. Первый слой ложится равномернее, а риск отлипания по краям снижается.

⚠️ Внимание: адаптивная карта не отменяет механическую выставку стола. Если стол перекошен сильно, ни одна программная компенсация не заменит базовую регулировку винтами или установку силиконовых проставок.

Настройка adaptive mesh в Klipper

В Klipper функция встроена в модуль [bed_mesh] начиная с относительно свежих версий прошивки — перед настройкой обновите хост через интерфейс Mainsail или Fluidd. Минимальная конфигурация выглядит так:

[bed_mesh]

speed: 120

mesh_min: 10, 10

mesh_max: 290, 290

probe_count: 5, 5

algorithm: bicubic

adaptive_margin: 5

Ключевой параметр здесь — adaptive_margin: это запас в миллиметрах, который добавляется к границам модели со всех сторон. Значение 3–10 мм обычно достаточно; слишком большой запас сводит на нет выигрыш во времени.

Чтобы слайсер передавал координаты области печати, в стартовый G-code добавляют переменные размеров. Для PrusaSlicer и OrcaSlicer вызов макроса калибровки принимает примерно такой вид:

BED_MESH_CALIBRATE ADAPTIVE=1 AREA_START={first_layer_print_min[0]},{first_layer_print_min[1]} AREA_END={first_layer_print_max[0]},{first_layer_print_max[1]}

В современных версиях Klipper при активном adaptive_margin достаточно вызвать BED_MESH_CALIBRATE без аргументов — прошивка сама возьмёт границы из данных слайсера, если те передаются. Проверьте актуальный синтаксис в официальной документации Klipper, так как поведение меняется между версиями.

☑️ Настройка adaptive bed mesh

Обновите Klipper до актуальной версииДобавьте adaptive_margin в секцию [bed_mesh]Проверьте передачу координат из слайсераВыполните тестовую калибровку на маленькой моделиСравните первый слой с обычной картойВыполнено: 0 / 5