Когда команда 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, так как поведение меняется между версиями.