Если кубик калибровки после печати на Klipper оказывается ромбом, а диагонали детали отличаются на миллиметр и больше — с высокой вероятностью у принтера перекошены оси, и исправить это программно помогает модуль skew correction. Механический перекос портала или рамы не всегда удаётся устранить полностью регулировкой винтов, поэтому прошивка Klipper позволяет скомпенсировать геометрическую погрешность математически, прямо на этапе планирования движений.
Ниже разберём, как работает коррекция перекоса, какие параметры нужно измерить и рассчитать, как прописать секцию [skew_correction] в printer.cfg и как проверить результат на контрольной модели. Материал ориентирован на принтеры с кинематикой Cartesian и CoreXY, где проблема перекоса встречается чаще всего.
Что такое skew correction и когда она нужна
Skew correction — это программная компенсация неперпендикулярности осей принтера. В идеале ось X должна быть строго перпендикулярна оси Y, а ось Z — плоскости XY. На практике из-за допусков сборки, перекоса рамы или неравномерного натяжения ремней углы отклоняются от 90 градусов, и напечатанная деталь «сползает» в параллелограмм.
Модуль коррекции в Klipper применяет аффинное преобразование координат: прошивка сдвигает точки траектории так, чтобы итоговая геометрия детали соответствовала модели. Компенсация выполняется на лету и не требует изменения G-кода или настроек слайсера.
Признаки, при которых стоит проверить перекос:
- 📐 Диагонали квадратной детали заметно различаются при измерении штангенциркулем;
- 🔲 Прямоугольные детали не стыкуются под прямым углом при сборке;
- 🧩 Отверстия и пазы смещаются относительно расчётного положения;
- 📏 Угол между гранями калибровочной модели отличается от 90 градусов.
⚠️ Внимание: skew correction компенсирует погрешность, но не устраняет её причину. Если перекос велик, сначала проверьте механику — крепление рамы, натяжение ремней и перпендикулярность портала. Программная коррекция больших отклонений может снизить точность позиционирования.
Какие плоскости корректируются
Модуль поддерживает коррекцию в трёх плоскостях, и для каждой используется отдельный коэффициент. Вам нужно определить, в какой именно плоскости наблюдается перекос, — для этого печатают соответствующую калибровочную модель и измеряют её.
| Параметр | Плоскость | Что компенсирует |
|---|---|---|
skew_xy | XY | Неперпендикулярность осей X и Y |
skew_xz | XZ | Наклон оси Z относительно X |
skew_yz | YZ | Наклон оси Z относительно Y |
Чаще всего проблема проявляется в плоскости XY — из-за перекоса портала или рамы. Наклоны в плоскостях XZ и YZ обычно связаны с отклонением оси Z от вертикали, например при неравномерной установке направляющих.
Измерение перекоса: калибровочная модель
Для измерения перекоса в плоскости XY в документации Klipper предлагается напечатать специальную тестовую модель квадратной формы с выступами-метками. Модель можно найти в репозитории проекта или сгенерировать самостоятельно — главное, чтобы у детали были измеримые диагонали и стороны известной длины.
Порядок действий следующий. Напечатайте модель без включённой коррекции, дайте ей остыть и измерьте штангенциркулем три величины: длину стороны и обе диагонали. По этим данным рассчитывается коэффициент перекоса — он показывает, насколько фактическая геометрия отклоняется от идеального прямого угла.
Формула расчёта приведена в официальной документации Klipper в разделе, посвящённом skew correction. Общий принцип: по теореме косинусов из длин сторон и диагоналей вычисляется фактический угол, а затем — поправочный коэффициент. Измеряйте деталь после полного остывания: тёплый пластик даёт заметную погрешность на длинах порядка сотни миллиметров.
Почему измерения нужно делать штангенциркулем, а не линейкой
Погрешность обычной линейки составляет доли миллиметра и сопоставима с самим перекосом. Штангенциркуль с ценой деления 0,05–0,1 мм позволяет достоверно измерить диагонали и получить корректный коэффициент. Измеряйте каждую диагональ несколько раз и берите среднее значение.
Настройка секции [skew_correction] в printer.cfg
После расчёта коэффициентов их нужно прописать в конфигурационном файле. Откройте printer.cfg через веб-интерфейс Mainsail или Fluidd и добавьте секцию следующего вида:
[skew_correction]
skew_xy: 0.0
skew_xz: 0.0
skew_yz: 0.0
Вместо нулей подставьте рассчитанные значения для тех плоскостей, где обнаружен перекос. Плоскости без перекоса можно не указывать или оставить с нулевым коэффициентом. После сохранения файла перезапустите прошивку командой RESTART или FIRMWARE_RESTART, чтобы изменения вступили в силу.
Проверочный чек-лист перед печатью контрольной модели:
☑️ Проверка настройки skew correction
⚠️ Внимание: не переносите коэффициенты с чужого принтера, даже той же модели. Перекос — индивидуальная характеристика конкретного экземпляра, зависящая от сборки. Чужие значения могут ухудшить геометрию вместо улучшения.
Проверка результата и тонкая подстройка
Напечатайте калибровочную модель повторно — уже с активной коррекцией. Сравните диагонали: в идеале они должны совпадать в пределах точности измерения. Если разница осталась, скорректируйте коэффициент в нужную сторону и повторите цикл «печать — измерение — правка».
Учтите, что на результат влияет и усадка пластика. Печатайте контрольную модель тем же материалом и с теми же настройками, что и при первичном измерении, иначе вы будете компенсировать не перекос, а разницу усадки. Для чистоты эксперимента полезно напечатать модель дважды и убедиться, что измерения воспроизводятся.
Ограничения метода и типичные ошибки
Программная коррекция имеет пределы применимости. При значительном механическом перекосе компенсация искажает траектории движения, что может сказаться на качестве поверхности и точности в углах детали. Кроме того, коррекция не поможет, если перекос «плавает» — например, из-за люфта в направляющих или ослабленных винтах рамы.
Частые ошибки при настройке:
- ❌ Измерение горячей детали сразу после снятия со стола;
- ❌ Опечатка в знаке коэффициента — перекос удваивается вместо компенсации;
- ❌ Коррекция без перезапуска прошивки — старые значения остаются в памяти;
- ❌ Попытка скомпенсировать люфт механики как будто это перекос.
Если после нескольких итераций геометрия не стабилизируется, вернитесь к механике: проверьте перпендикулярность портала угольником, равномерность натяжения ремней и отсутствие люфтов. Только после этого имеет смысл повторять программную калибровку.
FAQ: частые вопросы о skew correction в Klipper
Работает ли skew correction на принтерах с кинематикой CoreXY?
Да, модуль применяется на уровне координат и работает независимо от типа кинематики. На CoreXY-принтерах перекос плоскости XY встречается из-за неравномерного натяжения ремней, и коррекция настраивается тем же способом — через измерение диагоналей тестовой модели.
Можно ли задать коррекцию через консоль, не редактируя printer.cfg?
В Klipper предусмотрены команды для установки коэффициентов перекоса на лету через консоль веб-интерфейса. Однако значения, заданные командой, действуют до перезапуска. Для постоянного применения коэффициенты нужно сохранить в секции [skew_correction] конфигурационного файла. Точный синтаксис команд сверяйте с документацией вашей версии Klipper.
Почему после коррекции размеры детали изменились?
Преобразование координат сдвигает точки траектории, поэтому габариты детали могут незначительно измениться — это ожидаемое поведение. Если отклонение размеров велико, проверьте правильность расчёта коэффициента и знак значения: ошибка в знаке даёт удвоение перекоса вместо его устранения.
Нужно ли отключать skew correction при смене пластика?
Нет, коэффициенты описывают геометрию механики принтера, а не свойства материала. Менять их нужно только после механических вмешательств: переборки рамы, замены ремней, перевозки принтера. Усадку разных пластиков компенсируют настройками слайсера, а не skew correction.
Что делать, если перекос слишком большой для программной коррекции?
При значительном отклонении диагоналей сначала устраните причину механически: выровняйте раму по угольнику, проверьте крепление портала и натяжение ремней. Программную коррекцию применяйте для остаточной погрешности, которую невозможно убрать регулировкой. Точный допустимый предел зависит от требований к точности ваших деталей.