Klipper: Аппроксимация дуг и рекомендации по использованию G2/G3
Эта статья поясняет, как в Klipper соотносятся [gcode_arcs], команды дуг G2/G3 и аппроксимация дуг слайсером. При повседневной 3D-печати не рекомендуется использовать аппроксимацию дуг на стороне Klipper в качестве основного способа повышения качества или производительности.
Точность генерируемых современными слайсерами путей уже очень высока; разбивка кривых, упрощение путей и аппроксимация дуг могут быть выполнены на этапе слайсинга. При повседневной печати не рекомендуется дополнительно добавлять [gcode_arcs] в Klipper, чтобы прошивка заново разбивала дуги; нет необходимости заставлять Klipper пересчитывать то, что слайсер может сделать хорошо.
Распространенные ошибки
Сообщения об ошибках: Unknown command:"G2", Unknown command:"G3", G2/G3 requires IJ, IK or JK parameters, G2/G3 does not support relative move mode, G2/G3 does not support R moves.
Распространенные причины:
- Слайсер выводит команды дуг
G2/G3, но в конфигурации Klipper не включен[gcode_arcs]. - В командах дуг в G-коде отсутствуют параметры
I,J,K. - В G-коде используется формат дуги с радиусом
R, который не поддерживается Klipper. - Формат дуг, выводимых слайсером или скриптом постобработки, несовместим с поддерживаемым Klipper диапазоном.
Конфигурация только для совместимости с G2/G3
Добавлять следующую конфигурацию в качестве слоя совместимости рекомендуется только в тех случаях, когда G-код уже содержит G2/G3, и временно невозможно отключить вывод дуг в слайсере:
[gcode_arcs]
resolution: 1.0
resolution указывает точность, с которой Klipper разбивает дуги на отрезки. Чем меньше значение, тем мельче разбивка; чем больше значение, тем крупнее разбивка.
Рекомендации по использованию
[gcode_arcs] в Klipper не заставляет прошивку двигаться непосредственно по траектории дуги; вместо этого он заново разбивает дуги G2/G3 на множество маленьких прямолинейных отрезков, которые затем передаются в планировщик движения.
- Маленькое значение
resolution: отрезки тоньше, но нагрузка на CPU хост-машины и планировщик движения выше; на маломощных хост-машинах чаще возникают задержки, ошибкиTimer too closeили нестабильный ритм печати. - Большое значение
resolution: вычислительная нагрузка снижается, но страдает детализация дуги, и фактический эффект ограничен. - Слайсер уже хорошо справляется с обработкой кривых модели, точностью разбивки и упрощением путей; нет необходимости заставлять прошивку пересчитывать это заново.
Повседневные рекомендации:
- Предпочтительнее использовать встроенные в слайсер функции точности кривых, аппроксимации дуг или упрощения путей.
- Если слайсер может напрямую выводить высокоточные отрезки, не рекомендуется включать
[gcode_arcs]на стороне Klipper. - Если совместимость с
G2/G3необходима, используйте[gcode_arcs]только как временный слой совместимости, не устанавливайтеresolutionслишком малым. - При появлении задержек печати, ошибок
Timer too closeили высокой загрузки CPU хост-машины в первую очередь отключите выводG2/G3в слайсере, перейдя на генерацию отрезков непосредственно слайсером. - Не рекомендуется одновременно включать аппроксимацию дуг в слайсере и устанавливать очень маленькое значение
resolutionв Klipper ради «более гладких» линий; это обычно только увеличивает вычислительную нагрузку.
Рекомендуемый порядок поиска и устранения неисправностей
- При появлении ошибки
Unknown command:"G2"/Unknown command:"G3"сначала проверьте, включен ли в слайсере вывод дуг. - Если вывод дуг не нужен, отключите в слайсере опции типа Arc / G2-G3 / Arc Welder и выполните повторную нарезку.
- Если вывод дуг обязательно нужно сохранить, добавьте
[gcode_arcs]в качестве конфигурации совместимости. - Если после включения появляются задержки или ошибки тайм-аута, сначала увеличьте
resolutionили отключите вывод дуг. - Убедившись, что проблема исчезла, решите, оставлять ли эту функцию, исходя из фактического качества печати.
Соответствующая диагностика: Ошибки системы, производительности и служб, Ошибки конфигурации.