Cura является признанным фаворитом, а Klipper предлагает множество уникальных преимуществ. Читайте дальше, чтобы узнать, как заставить Cura и Klipper играть вместе.
Cura — самый популярный в мире слайсер в 3D-печати с более чем 1 миллионом пользователей. Уже пятая версия Cura имеет открытый исходный код, бесплатна в использовании и поддерживается известным производителем принтеров UltiMaker. Вы найдете бесчисленное количество видеороликов на YouTube и сообщений в блогах о том, как настроить Cura для различных типов принтеров и материалов, но еще меньше о том, как заставить ее хорошо работать с Klipper.
Klipper — это относительно новая прошивка с открытым исходным кодом на рынке 3D-принтеров. Она отличается от других прошивок принтеров тем, что перекладывает обработку G-кода (создаваемого программой для нарезки, такой как Cura) на отдельный процессор, обычно Raspberry Pi. Это позволяет контроллеру принтера сосредоточиться исключительно на управлении аппаратным обеспечением принтера, а также дает Klipper дополнительные возможности для более быстрой и точной обработки сложных оптимизаций.
Klipper часто используется там, где целью является высокоскоростная 3D-печать, поэтому его популярность быстро растет. Не говоря уже о росте популярности принтеров, разработанных для работы с Klipper, включая FLSUN V400 и BIQU Hurakan.
Cura и Klipper — отличная комбинация, способная работать вместе, однако по сравнению с «классической» реализацией Cura/Marlin есть вещи, о которых следует знать.
Давайте рассмотрим подробнее, в чем разница, как избежать проблем совместимости и как получить максимальную отдачу от каждого из них.
Основные настройки слайсера

Слайсеры — это сложное программное обеспечение, предназначенные для преобразования 3D-моделей в G-код, необходимый для работы 3D-принтера. Однако они делают гораздо больше, чем просто нарезают модели на слои; они также имеют функции для улучшения качества печати различными способами.
К сожалению, некоторые из этих функций могут конфликтовать с передовыми технологиями Klipper, такими как Pressure Advance для более четкой печати линий и углов, а также Частота Шейпера (Input Shaping) для устранения вибраций, вызывающих дефекты поверхности. Cura в целом неплохо взаимодействует с Klipper, но чтобы избежать неожиданных результатов, мы должны отключить или изменить несколько функций, чтобы минимизировать возможность конфликта.
- Первая из них — Накат, которая отключает экструзию в конце линий для предотвращения образования пузырей. Накат — конфликтует с функцией Pressure Advance: Klipper, поэтому обязательно отключите ее на вкладке Cura «Экспериментальное».
- Ускорение и рывки в разделе «Скорость» также лучше отключить (хотя последний в любом случае будет игнорироваться в текущих версиях Klipper).
- Напротив, можно (и чаще полезно) использовать настройки Ретракта (Откат), даже после настройки Pressure Advance. Небольшое расстояние (например, 0,75 мм) может помочь, особенно с филаментами, которые имеют тенденцию прилипать к соплу.
Плагины
Хотя это не обязательно для совместного использования Cura и Klipper, существуют также плагины (например от jjgraphix), которые добавляют дополнительное меню конфигурации, чтобы вы могли изменять параметры Klipper непосредственно в Cura, а затем включать их в нарезанные файлы G-кода. Это позволяет настраивать параметры прошивки для Отката, Input Shaper, Pressure Advance, а также настройки калибровочной башни.
Экспорт G-кода

Хотя мы склонны считать G-код единственным способом управления прошивкой 3D-принтера, Klipper проложил путь к более продвинутому подходу. Он использует относительно ограниченный набор команд G-кода для основного управления движением принтера, «расширенный» G-код для общей настройки и состояния (например SET_SERVO SERVO=myservo ANGLE=5.3), а также макросы, которые объединяют оба этих способа с простыми сценариями для дополнительной настройки.
В Cura есть возможность выводить различные варианты G-кода, чтобы учесть тонкие различия в традиционных реализациях микропрограмм, однако это пока не включает Klipper. Удобно, что установка вкуса Marlin по-прежнему работает в большинстве случаев, однако есть несколько важных последствий, о которых следует знать.
На одном языке
Во-первых, некоторые команды G-кода, используемые Cura, могут быть не распознаны Klipper. Например, Klipper напрямую не поддерживает команду G-кода M0 (безусловная остановка), которую многие используют для приостановки печати.
Это может показаться большой проблемой, но ее очень легко обойти. В приведенном выше примере команду M0 можно просто заменить «расширенной» командой G-кода PAUSE. Этого можно добиться либо:
- Ретроспективно отредактировать файл G-кода.
- Отредактировать плагин или функцию, которая добавит команду в первую очередь.
- Для создания паузы попробуйте использовать плагины постобработки Cura, такие как Pause at Height.
- Создание макроса Klipper под названием
M0, который просто включает командуPAUSE.
Стартовый и завершающий G-код

На этом этапе можно задаться вопросом, почему Klipper не распознает команды типа M0 в первую очередь? В документации Klipper говорится, что «поддержка всех возможных команд G-кода не является целью. Вместо этого Klipper предпочитает человекочитаемые ‘расширенные команды G-кода’.»
Это подводит нас ко второму последствию использования Cura с Klipper, а именно к мощным последствиям для начального и конечного G-кода.
Cura добавляет стартовый и завершающий G-код к каждому нарезанному файлу в зависимости от используемого профиля принтера. Довольно часто этот код также содержит команды G-кода, которые по умолчанию не распознаются Klipper.
Чтобы решить эту проблему, мы можем использовать подход, аналогичный приведенному выше примеру и вручную заменить их эквивалентами Klipper. Сделайте это в Cura перейдя в «Настройки > Настроить Cura > Принтеры > Параметры принтера», а затем отредактируйте код напрямую.
Однако более эффективным подходом будет создание макросов, содержащих все необходимые инструкции начала и конца (будь то G-код, расширенный G-код или другие макросы) в самом Klipper, например,
[gcode_macro START_PRINT...].
Типичные примеры таких инструкций можно найти на Klipper GitHub. Фактический код запуска для включения из Cura обычно выглядит примерно так:
START_PRINT BED_TEMP={material_bed_temperature_layer_0} EXTRUDER_TEMP={material_print_temperature_layer_0}
Такой подход облегчает настройку начального и конечного шагов принтера, поскольку изменения не требуют повторной нарезки или ручного редактирования файла G-кода.
Установка соединения

Хотя многие могут быть довольны экспортом файлов G-кода и передачей их на принтер через SD-карту, другие могут захотеть напрямую подключить Klipper.
Klipper поддерживает это с помощью API Moonraker. Хотя для этой цели доступно несколько API Cura, остановимся на официальном варианте, который можно загрузить из встроенного Marketplace (или GitHub, если хотите). Этот API предлагает функциональность, которая удовлетворит подавляющее большинство потребностей.
Установка и использование — проще простого:
- Используйте поле поиска в Cura Marketplace (справа вверху на главной странице Cura), чтобы найти и установить «Moonraker Connection».
- После завершения установки перезапустите Cura.
- Перейдите в «Настройки > Принтер > Параметры принтера» и выберите «Connect Moonraker».
- Теперь настройте URL для вашего экземпляра Klipper-Moonraker, используя IP-адрес вашего Raspberry Pi (или любого другого устройства, на котором они работают).
- По желанию добавьте идентификаторы любых устройств с питанием, которые вы настроили в Klipper (например, светодиодные лампы) и добавьте URL камеры, если она установлена.
- Выберите загрузку файлов G-кода или UFP. Настройки конфигурации сохраняются при закрытии этого окна.
Теперь вы готовы к работе!
После нарезки модели обычные опции сохранения файлов теперь будут включать запрос «Upload to <Printername>», в котором появится окно, где можно изменить имена файлов и задать другие параметры. Это так просто!
Обратите внимание, что этот подход не имеет ничего общего с Fluidd, Mainsail, KlipperScreen или любым другим пользовательским интерфейсом Klipper.







