Jump to content

Українська 3D спільнота

Створено телеграм канали. Підписавшись на них ви будете отримувати повідомлення про появу нових тем на форумі. Також там Ви знайдете посилання на канал допомоги для вирішення термінових питань по друку та принтерам.
3DUA_Help 3DUA.info
KomAndr

Кольоровий друк Klipper-ом - тонкощі макросів.

Recommended Posts

З нагоди Нового року надумався надрукувати ялинковий ліс для друзів

image.thumb.png.700da5e164e4248e193e5e519b9492f4.png

і тут я стикнувся з проблемами паузи та відновленням друку. Ці перші дві ялинки я надрукував використовуючи стандартні функції октопринту, про що колись питався тут

Треба встигнути натиснути паузу, замінити пруток, натиснути відновлення і друк продовжиться там де зупинився. Наче нічого складного, але треба контролювати друк і не прогавити момент заміни кольору прутка. Щоб цього позбавитись існує чудовий плагин до Октопринту - Multi Colors   Цей плагин вставляє у готовий G-code файл, на зазначеному шарі друку, потрібну команду. У нашому випадку, універсальну команду заміни філаменту - М600 Ця команда, при певних налаштуваннях, також працює і в Марлін.

Встановлюємо плагін https://github.com/MoonshineSG/Octoprint-MultiColors/archive/master.zip  після перезавантаження октопринту відкриваємо вкладку Multi Colors

image.thumb.png.0a17eed756ffbc4de001944ea03cd795.png

На зображені мої налаштування. У полі Find line я написав регулярний вираз який шукає співпадіння у зазначеному файлі з Г-кодом, згенерованим слайсером Simplify3d. У моєму випадку шукається рядок з написом  ; layer 6 та після нього вставляє все, що написане у полі inject GCODE  тоб-то М600 Нижче зображення як це буде вставлено у коді

image.thumb.png.4b87b3b5c457a66c703b2dba3f02ce2d.png

Щоб згенерувати змінений код бажано поставити позначку Duplicate file та натиснути Process У такому випадку згенерується новий файл з вставленими командами. У кінці файлу буде допис _multi  

Тепер нам треба сконфігурувати правильно Кліппер. На час написання цієї статті версія кліппера - FIRMWARE_VERSION:v0.9.1-104-g39a04eac FIRMWARE_NAME:Klipper

 

1. Додаємо секцію паузи. Там вказуєм бажану швидкість переміщеня сопла. За замовчуванням стоїть 50мм/с

 

[pause_resume]
recover_velocity: 210.

2. Пишемо макроси виходячи з алгоритму заміни прутка на іньший кольор:

  • зупинити друк;
  • запаркувати сопло у зазначену та зручну, для заміни прутка, позицію;
  • вийняти відпрацьований пруток та подати звуковий сигнал;
  • завантажити новий пруток;
  • при необхідності продавити ще пруток;
  • відновити друк.

Далі макроси з інтуітивно зрозумілими назвами.

[gcode_macro PARKING]
default_parameter_x = 50
default_parameter_y = -2
default_parameter_z = 10
gcode:
 G91
 G1 E-2 F2400
 G1 Z{Z}
 G90
 G1 X{X} Y{Y} F12000

Паркінг: Задаємо дефолтні координати куди повинно приїхати сопло на заміну філаменту

Робимо ретракт 2мм на швидкості 40мм/с

Піднімаємо вісь Z на 10мм від існуючої кординати

переміщуємо сопло у координати X50 Y-2 на швидкосты 200мм/с

[gcode_macro UNLOAD]
gcode:
 G91
 G1 E10 F2400
 G1 E-60 F7000
 G90

Вивантаження прутка:

Видавити 10мм прутка для прогріву кінчика філаменту

Вивантажити на відстань 60мм.

У моєму випадку, для директу, це відстань де пруток буде за межами зони розплаву, але не пройде подаючу шестерню. Чому так? Коли пруток, з м'яким кінчиком, вийде за межи подаючої шестерні - м'яка частина прутка буде деформована тією самою шестерню і потім буде складно вийняти філамент з екструдеру!!!

[gcode_macro PAUSE_MACRO]
gcode:
 PAUSE
 PARKING
[gcode_macro M600]
gcode:
 SAVE_GCODE_STATE NAME=M600_state
 PAUSE_MACRO
 UNLOAD
 # signal about the replacement of the filament
 M300 S880 P800
 RESTORE_GCODE_STATE NAME=M600_state

М600: Як бачимо тут ми фіксуємо координати сопла, перед всіма маніпуляціями з заміною пластику, і перераховуємо написані макроси згідно нашого алгоритма.

[gcode_macro LOAD_FILAMENT]
gcode:
 G91
 G1 E150 F600
 G1 E10 F1000
 G1 E10 F1000
 G90

Завантаження філаменту: тут ми продавлюємо необхідну довжину і два "контрольніх постріла" по 10мм. Не завжди виходить завантажити зразу пруток, є конструкції прижиму, та розташування його, не дуже зручними для ручної заміни. Тому тут принцип завантаження наступний: вставляємо пруток до упору, трохи тиснемо на ньго в сторону подаючих шестерен і натискаємо кнопку завантаження пластику - про це буде трохи далі.

[gcode_macro LOAD_FILAMENT_20]
gcode:
 G91
 G1 E20 F600
 G1 E-1.6 F2500
 G90

Тут я створив додатковий макрос для продавлювання ще 20мм прутка і відразу ретракт 1.2мм. Для повної заміни кольору треба продавлювати пруток на більші відстані. Як що кольори радикально різні - треба набагато більше прогнати прутка з новим кольором, а з ретрактами ми не тільки проганяємо пруток, но і, нібито, вичищаемо сопло як щіткою. Це буде відображатись на кольорі у місці ретракту.

Ну а друга причина, чому я використав у цьому макросі ретракт - це прибирання пластику з сопла для "чистого" переміщеня сопла у зону продовження друку. Таким чином ми позбавляємося від соплі, або павутини через всю модель.

[gcode_macro RESUME_MACRO]
gcode: RESUME

Ну і фінішний аккорд - макрос на відновлення друку. 

Як я писав вище, нам потрібно у ручному режимі активувати макроси завантаження філаменту, додаткового продавлювання, відновлення друку. Ще нам, у повсякденні, може знадобитись макрос вивантаження філаменту. Так як же нам бути? А дуже просто. На вкладці кліппера є можливість прописати свої макроси і відображати їх, за бажанням, на вкладці з'єднання принтера, або кліппера, або і там і там.

image.thumb.png.0dd2dc41e57ae73109e3553b419e9ad2.png

Як це зробити - дуже просто. Відкриваємо налаштування плагина OctoKlipper та прописуємо необхідні нам макроси та назви:

image.thumb.png.a8a3b22ca64c983a6a0c3540bd535126.png

Сподіваюсь на це зображення не треба робити пояснення. 🙂 Як бачимо, ці макроси нам стануть у нагоді.

Ось тепер можно спокійно друкувати ялинковий ліс, тощо. 

П.С. До речі, ці макроси можливо використати при використанні датчика кінця філаменту :classic_biggrin:

Гарних, красивих, цікавих Вам кольорових роздуківок і моделей!!!

  • Thanks 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×