Многоцветная печать ручной сменой пластика, правим G-code вставкой паузы.

Подписаться на 3Dtoday
levscha
Идет загрузка
Загрузка
16.07.16
10383
45
печатает на WANHAO Duplicator i3
Разное
90
Добрый день!
Возникла необходимость в смене цвета на нужном слое в процессе печати. Погуляв по просторам интернета так и не нашел подробной реализации этого принципа. Везде описаны общие моменты и приведены команды с рекомендациями, что их нужно пробовать.
Перепробовав разные команды, остановился на M25 - но есть нюансы. Приведенная ниже методика работает только с slic3r.
Итак что нам нужно.
1) Открываем slic3r и во вкладке Printer Settings-Extruder1, ставим галочку на Retract on layer change (ретракт при изменении уровня).
1.png
2) Грузим модель в slic3r и генерируем G-code.
2.png
3) Переключаем отображение в slic3r на Previev.
3.png
4) Боковым ползунком находим тот слой, с которого мы хотим печатать новым цветом. В своем примере я хочу напечатать основу зеленым цветом, а буквы белым. Двигая ползунок слоев с нуля я запоминаю на каком слое начинаются буквы. В моем случае это - 3.2
5.png
6.png
5) Теперь открываем полученный G-code любым текстовым редактором (в примере блокнот), идем во вкладку правка-найти и пишем Z3.2, нажимаем найти далее, и у нас показалась та строчка где мы хотим сменить пластик.
7.png
6) Теперь перед строкой G92 E0 мы вставляем следующие 2 строки (пометил жирным шрифтом)

G1 E1.21118 F3000.00000
M25
G28 X0

G92 E0
G1 Z3.200 F4200.000

7) Нажимаем сохранить изменения в блокноте и в печать.
Когда принтер дойдет до этой строчки, он остановится и уйдет в home X. Мы выгружаем пластик, меняем на новый, продавливаем необходимое количества пластика до появления чистого цвета и выбираем в меню принтера продолжить печать.
Хочу еще отметить, что для удобства смены пластика печатающую головку можно поднимать и опускать через меню принтера по оси Z. Благодаря тому, что шаговые двигатели заблокированы, а после продолжения печати принтер выставляет печатающую головку на нужную высоту - на качестве печати это никак не скажется (только не забываем что в меню принтера есть настройки по разблокировании шаговых двигателей по времени бездействии, нужно либо успеть в это время сменить пластик, либо увеличить это параметр до требуемого значения).

PS, для чего в slic3r мы ставили галочку ретракт при изменении уровня. Дело в том, что при загрузке и выгрузке пластика, внутренний счетчик количества пластика принтера может принять любое состояние и после того как мы сделали все операции по смене пластика и возобновили печать, строчка G92 E0 обнуляет этот счетчик и далее весь процесс печати продолжается в нужном порядке.
Команда M25 - это пауза в печати.
Команда G28 это дижение в home. В вики указано что можно поставить только координату, которую нам нужно двигать в ноль (X), без значений, но мой принтер не поехал. А когда я указал X0, голова уехала в home X.
По такой же методике можно делать вплавляемые гайки, монеты и т.д.
И немного фото результатов печати.
PREVIEW
P1130714.JPG
P1130711.JPG
P1130712.JPG
Подписаться на 3Dtoday
90
Комментарии к статье

Комментарии

16 Июл 17:58
0
А с курой что не так в этом плане?
16 Июл 18:28
3
Неправильно выразился в статье, шаги что описал для Slic3r (переключить туда, посмотреть сюда). С курой тоже можно но нужно посмотреть что там и как, поэтому команды и расшифровал, чтобы было понятно что делать и почему именно так.
16 Июл 19:45
3
Уже попробовал. В Куре тоже работает, только там не нужно ретракт ставить, и без этого работает.
Сейчас как раз печатаю - всё ОК. Как допечатаю - отпишусь. Спасибо за статью! )
16 Июл 21:42
0
Хорошо что так)
16 Июл 21:45
0
Ага, уже напечатал, скоро будет пост ).
16 Июл 22:00
0
Метеор)
16 Июл 22:17
1
А вот нет :(.
Модели-то корявенькие получились. Для отчёта так себе.
А принтер сейчас неожиданно супруга заняла. Печатает себе коробочку для всяких мелочей.
Научил на свою голову ))).
26 Фев 00:18
1
Я немного другой алгоритм нашел

Делаем все точно также, до вставки кода в G-code

1) На нужном слое вставляем координаты отьезда - у меня это X100 Y30 bи высота Z30
2)Далее @pause - встаем на паузу
3) находим последнюю координатную строку (где был экструдер прямо перед отьздом и вставляем ее только последние значения "E" заменяем на последнее значение высоты Z

все!

Печатаем - далее по достижении строчки - башка отьезжает, встает на паузу - меняем пластик, продавливаем руками до нужного цвета. убираем соплюхи и жмем продолжить печать. ПРОФИТ!
17 Июл 17:03
5
Уже не надо изобретать велосипед. Для куры давно все написано и встроено.
Модуль смены филамента
очередное обновление
Еще обновление
17 Июл 18:42
1
Так то да. Но лично я любой ликбез по джи-коду приветствую
16 Июл 19:20
0
Спасибо.
16 Июл 21:48
1
Спасибо. В избранном.

Попробую использовать это в том числе и для продолжения печати с другой бобины.
16 Июл 21:53
0
Спасибо вам за избранное! Буду стараться дальше.
17 Июл 00:45
2
Рекомендую еще через код м300 пропищать сигнал, что пора пластик менять.
17 Июл 07:17
0
Пробывал, не воспринимается прошивкой что-то, нужно разбираться.
17 Июл 17:14
1
А на гитхабе ссылку можно на используюемую прошивку? Щас глянем что не так.
17 Июл 18:14
1
Нету ссылки, пользуюсь тем что стоит в ванхау I3, а что там интереса нету) Печатает да и ладно). Просто взглянул на этого марлина и как то не хочется туда лезть. Пишем свое на STM32.
17 Июл 17:12
0
А чем принтер будет пищать?
17 Июл 17:15
2
В марлине он пищит вот этим. )))
Buzzer.cpp
17 Июл 17:25
0
Ну так бипер должен быть подключен )))
А вот это что?

lcd_buzz(duration, freq);
LCD будет моргать, если поддерживает buzzer?
17 Июл 17:32
0
Не, там же четкое условие
#if ENABLED(LCD_USE_I2C_BUZZER)
lcd_buzz(duration, freq);
Это если по I2C подключен.
17 Июл 17:36
0
Ну это понятно, что условие. Оно идет первым. То-есть бипер на плате дисплея? Или каким-то еще образом на экране что-то выводится?
17 Июл 17:47
0
Э-э-э... Боюсь мне надо будет очень много чего рассказывать и по директивам компилятора и по I2C и по дисплеям чтобы суметь дать понятный ответ. Это не просто условие, это будет единственная скомпиленная команда. Остальная часть не будет откомпилирована.
17 Июл 18:11
1
Я знаю что такое #if. Чем будет пищать дисплей?
17 Июл 18:28
1
А-а-а, так это же от реализации I2C дисплея зависит. В марлине тут, как я понимаю, просто заглушка.
Вот, например, быстренький поиск показал проектик
17 Июл 18:45
0
Я так понял в базовой комплектации вряд ли на принтере есть пищалка. )))
17 Июл 18:56
2
Вообще наоборот, если используется стандартный reprap discount, а он использется,наверное, в 99% самосборных и в доброй половине коммерческих принтеров, то чтоб не было пищалки надо специально этим заморочиться.
17 Июл 18:46
0
Была не так давно заметка здесь по джи коду, там про пищалки подробно было. Хоть мендельсона можно
17 Июл 10:53
3
Дополню для Repetier Host
дабы не прописывать при каждой смене цвета несколько строчек кода, можно воспользоваться командой запуска скрипта @pause, а уже в настройках принтера в скрипте запускаемом при паузе можно прописать нужный код... ну а там уж можно разгуляться и не ограничивать себя двумя строчками, например сразу прописать ретракт на нужную величину, подъем по Z и X0 для удобства замены пластика :)
17 Июл 13:03
1
Вот-вот, такое и находил везде, общие рекомендации и т.д. Сделайте статью, многие вам скажут спасибо, я бы тут указал это все, но я работаю с SD и Slic3r, выше уже Gray_Manul писал что набросает отчет по куре, с вас тогда по Repetier Host;)
19 Июл 14:08
0
Я бы про репетир тоже почитал бы.... Пока на нём продолжаю "жить" . Марлин почему-то оказался "чуждым элементом" ((
19 Июл 18:56
0
Вообще не вижу смысла в репетире) Записал на флешку и в принтер и комп свободен для другой работы. Чуток не удобно в перемещениях, но все дело в привычке. Может поясните плюсы?
19 Июл 20:06
1
Я писал про прошивку репетирхост. При чём тут откуда печатать (с компа или с флешки)?
По методу печати с флешки минус (для меня):
Во первых: Мне лень.. воткнул в переходник, пока определилось, пока записал.. Вытащил. Пока попал в слот карты памяти, пока крутилкой энкодера выбрал файл (а на дисплее то хреново видно то перескакивают)...
Плюс: при постановке на паузу сопло уезжает в сторону, а если из софта, то тупо тормозится на детали.
19 Июл 20:21
0
Ну теперь понятно,я просто не увлечен прошивками, их версиями и кто их сделал. Знаю софт Repetier.
19 Июл 20:33
2
Там есть путаница, не спорю.
Repetier-Firmware - прошивка.
Repetier-Host - софт для управления с компом.
Repetier-Server - софт для удаленного управления.
19 Июл 20:45
0
Спасибо! надо посмотреть, какие возможности всего этого.
17 Июл 21:28
3
Насчет пищалок и других заморочек - отрыл в избранном материал "Плюшки от Павлушки". Кто пропустил - очень рекомендую. И вообще иногда полезно память освежать
19 Июл 09:42
2
Полезнейшая информация, но пользуюсь этим, то еще чтиво:D
19 Июл 20:31
1
Плюс много. Можно сказать, "настольная книга".
19 Июл 09:24
1
Я бы рекомендовал уводить голову не в 0, а в 5 мм допустим от концевика, чтобы устранить погрешность концевика (подразумеваю механический дешевый кликер). И ставить на паузу после отвода головы- так логичней. Так же по слоям можно перемещаться по коду любого слайсера задав в поиске высоту по Z.
19 Июл 09:37
0
Да, ваше замечание правильны насчет 0-5, попробую, но там команда связана с HOME, поэтому решил не экспериментировать, пока точность совпадения устраивает. Про паузу после отвода +
А вот насчет поиска слоев не понял.
19 Июл 10:51
0
Можно просто задать перемещения обычной командой движения, не обязательно домой. Думаю у вас не работало потому, что именно пауза впереди была. Я еще задаю ретракт, чтобы не сопливило. А после паузы ставлю сколько выдавить прутка, обычно столько же, сколько и откатил. То есть:
1) Команда перемещения и ретракта
2) Пауза
3) Команда выдавливания
Тут важно обратить внимание есть ли обнуление координат экструдера в коде слайсера. Не все слайсеры между слоями координаты обнуляют. И уже тогда думать какой ретракт делать.
Перемещаться так же как и в статье. Можно вообще открывать файл в репитерхосте и там делать все манипуляции, кому как угодно. То есть во всех слайсерах все практически одинаково.
19 Июл 11:16
1
С паузой понял, я сам выше этой сроки еще парочку строк пишу, допустим на ночь ставлю, чтобы нагрев отключить, так что верное замечание. По ретракту понял, но именно искал методику для Slic3r чтобы делать все на автомате, нашел высоту смены, скопировал готовые строчки кода и вставил - проще некуда. Доп ретракт я думаю излишен, так как если посмотреть на мой листинг G кода, там перед паузой есть ретракт. Репетитором не пользуюсь, поэтому не понял о чем вы, спасибо за разъяснение!
17 Янв 14:26
0
пост понравился! земляку привет)
21 Янв 05:37
0
Спасибо! привет!)

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Мой хардкор -принтер, почти полностью самодельный. (Много фото). Обновлен.

Как ни тряси, последняя капля все равно..

Подарочная шкатулка.

«Bone Charm» из Dishonored 2 / моделинг / печать / обработка / покраска

Череп единорога.

Еще один Франкенштейн