Klipper: Ошибка перемещения за пределы стола — как исправить

Klipper: Ошибка перемещения за пределы области

Ваш совершенно новый Klipper говорит, что вы выходите за пределы области печати? Узнайте, как это исправить и остаться в пределах досягаемости!

Представьте себе следующее: Вы только что перевели свой старый принтер с прошивкой Marlin на Klipper и очень рады возможности использовать все его передовые функции. Вы впервые запускаете принтер, и он останавливается на месте с сообщением об ошибке: «Move out of range». Неприятно.

Вы, возможно, задаетесь вопросом: «Что это значит?», «Что вызывает эту ошибку?» и особенно, «Как ее исправить?».

Не расстраивайтесь, это не редкость для новичков в Klipper. Мы постараемся ответить на эти вопросы и при этом узнаем немного больше о том, как Klipper работает под капотом.

Готовы приступить к работе?

Что это значит?

Когда вы прислушиваетесь к своим навязчивым мыслям и печатаете весь объем…
Когда вы прислушиваетесь к своим навязчивым мыслям и печатаете весь объем… (Источник: Reddit)

Полученное сообщение не требует пояснений: Принтер получил указание сделать перемещение, выходящее за пределы области печати. Но само по себе это еще не говорит нам о всей истории. Во-первых, важно понять, что именно подразумевается под «диапазоном» в сообщении об ошибке.

Когда вы впервые настраиваете принтер в Klipper, вам придется создать файл «printer.cfg», который содержит все основные настройки, определяющие свойства вашего конкретного принтера. Диапазон», который мы здесь рассматриваем, на самом деле представляет собой набор диапазонов. А именно, параметры «position_min» и «position_max» для всех трех осей X, Y и Z.

Эти параметры определяют минимальное и максимальное расстояние перемещения Klipper во всех трех направлениях, а также определяют общий печатаемый объем сборки вашего принтера. Заданные здесь значения являются прямым отражением физических свойств вашего принтера и должны точно их отражать.

Файл printer.cfg с параметрами
Параметры «position_min» и «position_max» в файле printer.cfg (Источник: Reddit)

Одна из основных причин, по которой Klipper не позволяет принтеру совершать такие «незаконные» перемещения, заключается в том, чтобы уберечь машину от повреждений.

Если ваш принтер попытается выйти за физические границы по осям X и Y, это может привести к повреждению систем перемещения, включая все важные шаговые двигатели и драйверы шаговых двигателей. Но, возможно, самым распространенным способом повреждения принтера является превышение минимальной уставки по оси Z, что может привести к появлению выемок и царапин на поверхности стола, а это совсем не весело.

Другая, более очевидная причина предотвращения выходящих за пределы границ перемещений заключается в том, чтобы принтер не печатал со стола или не пропускал шаги при достижении физического конца перемещения по каждой оси. Это, конечно, может привести к неудачным отпечаткам, печати в воздухе и смещению слоев.

Что вызывает эту ошибку?

Есть инструменты, которые помогут справиться со смещением
Существуют инструменты, помогающие справиться со смещением (Источник: Printables)

К сожалению, единого ответа на вопрос, почему возникает ошибка «Move out of range», не существует, поскольку она может возникнуть по разным причинам. Но, рассмотрев обстоятельства, сопровождающие сообщение об ошибке, мы можем получить подсказки, которые помогут отследить ее первопричину.

Самой простой причиной может быть команда, отправленная на принтер с просьбой выйти за установленные пределы. Эти команды могут быть отправлены через веб-интерфейс, например OctoPrint, Mainsail или Fluidd или через сенсорный экран, ЖК-дисплей. Управляя принтером вручную, легко ошибочно послать команду, которая выходит за пределы возможностей принтера.

Другой довольно распространенной (и более сложной для диагностики) причиной ошибки является неправильная установка смещений датчиков по осям X и Y в файле printer.cfg. Обычно это происходит при использовании «развернутых» датчиков стола, таких как BLTouch или CR Touch. Такие датчики устанавливаются рядом с печатающей головкой, и для получения точных измерений стола необходимо задать перемещение по осям X и Y. Если одно из этих перемещений задано, например, отрицательное, а не положительное, это может вывести принтер за пределы возможностей при попытке достичь конца хода.

Если вы подозреваете, что проблемы может вызвать датчик, ознакомьтесь с нашей статьей о BLTouch и Klipper, чтобы помочь вам правильно настроить его.

Переключение между абсолютным и относительным позиционированием во Fluidd
Переключение между абсолютным и относительным позиционированием во Fluidd (Источник: All3DP)

Другая причина ошибки связана с командами G90 и G91 G-кода, известными также как Absolute Positioning (Абсолютное позиционирование) и Relative Positioning (Относительное позиционирование). Эти команды изменяют способ получения команд движения. В двух словах, «Абсолютное позиционирование» говорит принтеру «переместить печатающую головку в это место», а «Относительное позиционирование» говорит принтеру «переместить эту ось на столько-то мм», без учета текущего положения печатающей головки.

Достаточно сказать, что если подается команда на перемещение и активен неправильный режим позиционирования, это может привести к плохим последствиям.

Один из вероятных виновников, на которого обычно не обращают внимания, связан с настройками слайсера. Слайсеры могут легко отдавать ошибочные команды по разным причинам, включая неправильные команды G90 и G91, которые обычно вводятся в стартовый G-код слайсера.

Чаще всего это происходит, если пределы, установленные в слайсере, не совпадают с предельными значениями в файле printer.cfg программы Klipper. Если слайсер считает, что стол больше, чем на самом деле, он может посылать команды, выходящие за границы, особенно при попытке напечатать большие объекты или напечатать много объектов до края стола.

Как это исправить?

В сообщении консоли также говорится, откуда поступила команда
В сообщении консоли также указано, откуда поступила команда (Источник: All3DP)

Итак, теперь, когда мы знаем немного больше о том, что может вызвать эту ошибку, давайте приступим к ее устранению!

Для того чтобы найти решение, нам нужно точно знать, какая ось влияет на ошибку. Чтобы узнать это, просто посмотрите на сообщение об ошибке, которое появляется в консоли. Оно должно выглядеть примерно так:

Move out of range: 232.00 240.00 5.00 [0.000]

Четыре отображаемых числа — это координаты X, Y и Z (именно в таком порядке) ошибочной команды G-кода, а также расстояние до экструдера. Сравните эти числа со значениями «position_min» и «position_max», которые находятся в файле Printer.cfg для каждой оси. Если какие-то из них превышают максимальные значения или опускаются ниже минимальных, значит, неисправна именно эта ось.

Стартовый G-код слайсера - хорошее место для поиска конфликтов G90 и G91.
Проблемы с G90 и G91 могут возникнуть в стартовом G-коде слайсера

Полезно знать, что делал принтер в момент возникновения ошибки, поскольку это дает подсказку, где может находиться источник проблемы. К распространенным действиям, которые могут вызвать ошибку, относятся:

  • Установка оси X или Y, когда переменные «position_min» или «position_max» установлены неверно: Эти переменные можно найти в файле printer.cfg. Можно просто исправить переменные в соответствии с информацией о вашем принтере.
  • Генерация сетки стола при неправильной настройке смещения датчика по оси X и/или Y: Значения «x_offset» и «y_offset» можно найти в разделах или в файле printer.cfg. Это еще один случай, когда значения могут быть скорректированы в соответствии с данными вашей установки.
  • Ручное перемещение позиции принтера за установленные пределы: Как уже упоминалось, это можно сделать с помощью прикрепленных к принтеру элементов управления или другого программного обеспечения для управления принтером, например Mainsail, Fluidd или Octoprint. Установленные пределы, которые необходимо подтвердить, — это «position_min» и «position_max», упомянутые выше. Следите за тем, чтобы при ручном управлении принтером или добавлении каких-либо особых значений они не выходили за пределы (больше или меньше) установленных ограничений.
  • Печать с неправильными настройками слайсера: Часто причиной этого является выбор неправильного профиля принтера. Также это может быть связано с ограничениями принтера, установленными в слайсере (например, максимальная высота печати или форма стола в PrusaSlicer). Убедитесь, что в слайсере выбран правильный 3D-принтер, и при необходимости повторно нарежьте файл (если только вы не хотите вручную изменить G-код с правильной информацией).

Эти контекстные подсказки могут привести к источнику проблемы и позволить вам найти ошибочную переменную или настройку и исправить ее. Однако если вам не удается найти проблему на основе этих подсказок, есть несколько других проблем, которые могут привести человека в тупик. Давайте рассмотрим их подробнее.

Другие причины и решения

Когда Z Offset оказывается ошибочным, получаются вот такие выемки
Когда Z Offset оказывается ошибочным, получаются вот такие выемки (Источник: Reddit)

Несмотря на то, что устранение ошибок Klipper может быть очень неприятным, лучше всего определить причину ошибки, чтобы можно было применить правильное решение. Вот некоторые из наиболее распространенных проблем и способы их устранения:

Ошибки «Z Min» при выравнивании стола

Одна из распространенных проблем, с которой часто сталкиваются при первой настройке датчика выравнивания стола — отрицательная ошибка «Move out of range» по оси Z. Логично предположить, что минимальное положение по оси Z должно быть установлено на ноль в файле printer.cfg, но это не так. В Klipper обычно необходимо установить «Z min» немного ниже нуля, чтобы обеспечить небольшое отклонение стола.

Если значение «Z min» установлено точно на ноль, сетка будет создана просто отлично, так как датчик находится ниже сопла во время измерения. Как только вы перейдете к печати первого слоя, и сетка скажет принтеру опуститься ниже нулевой точки, чтобы исправить провал в поверхности печати, принтер остановится и выдаст ошибку. Установив значение «Z min» немного ниже нуля, вы даете принтеру понять, что можно опуститься немного ниже нулевой точки, установленной при первом наведении оси Z. Это позволит корректировать сетку стола с учетом низких точек.

Чтобы решить эту проблему, рекомендуется установить минимальное положение по оси Z («position_min», в разделе файла printer.cfg) на достаточно маленькое значение, например -2, что позволит учесть самые глубокие впадины даже в самых деформированных билд пластинах.

Ошибки относительного и абсолютного позиционирования

Это действительно распространенная проблема для тех, кто любит использовать множество макросов для оптимизации и расширения функциональности своих принтеров. Хотя макросы в Klipper могут быть невероятно полезны, важно понимать, что и когда они делают, чтобы избежать ошибок, связанных с командами G90 и G91.

Лучший способ найти и исправить эту проблему — отключать макросы по одному, пока ошибка не исчезнет. Это и будет ваш проблемный макрос. Чаще всего принтер по ошибке остается в режиме относительного позиционирования (G91) при отправке абсолютных координат. Исправить это можно, добавив соответствующую команду G90 или G91 в макрос, стартовый G-код или пользовательский раздел G-кода слайсера.

Неправильные настройки слайсера

Убедитесь, что вы выбрали правильный 3D-принтер при нарезке
Убедитесь, что вы выбрали правильный 3D-принтер при нарезке

Одна из очень простых и часто упускаемых из виду ошибок — попытка запустить G-код, который был нарезан с помощью профиля другого принтера. Это может привести к самым разным проблемам, но в первую очередь к ошибке «Move out of range error», если стол на принтере, для которого был нарезан файл, больше, чем на принтере, на котором выполняется G-код.

Чтобы избежать этой ошибки, всегда перепроверяйте настройки слайсера, выбранный профиль и любые ограничения принтера или стартовый G-код, который вводится программой слайсера.

Ошибки в Klipper

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

Полезные ресурсы

Для пользователей, предпочитающих более традиционный формат общения (т.е. не Discord), форум Klipper - отличное место, куда можно обратиться за помощью
Для тех, кто предпочитает более традиционный формат, форум Klipper — отличное место (Источник: Klipper Forum)

Надеемся, это ввело вас в курс дела и дало некоторые подсказки о том, почему ваш принтер испытывает ошибку Klipper «Move out of range». Под капотом может происходить много всего, что может быть причиной ошибки, но этот вид поиска неисправностей заключается в сужении круга возможных вариантов и нахождении точной причины проблемы.

Если вы исчерпали все возможные варианты и все еще находитесь в тупике, существует множество ресурсов, которые помогут вам решить проблему.

Одним из самых полезных является форум Klipper, который представляет собой очень активное сообщество с большим количеством умных людей, готовых помочь вам в решении ваших проблем. Здесь также есть конкретное сообщение лидера форума Sineos, в котором очень четко и лаконично описаны возможные причины и решения этой проблемы. И, наконец, есть просто документация по Klipper. Никогда не помешает прочитать руководство, а также сохранить эту страницу в закладках для изучения в будущем.

Источник
Николай

Я всегда рад вашим комментариям, предложениям или новостям из первых уст.

Оцените автора
Добавить комментарий