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

Подписаться на 3Dtoday
levscha
Идет загрузка
Загрузка
16.07.16
21520
46
печатает на WANHAO Duplicator i3
Разное
111
Добрый день!
Возникла необходимость в смене цвета на нужном слое в процессе печати. Погуляв по просторам интернета так и не нашел подробной реализации этого принципа. Везде описаны общие моменты и приведены команды с рекомендациями, что их нужно пробовать.
Перепробовав разные команды, остановился на 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
111
Комментарии к статье

Комментарии

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

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

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

все!

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

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

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

не в 0, а в 5 мм допустим от концевика
17.01.17 в 14:26
0
пост понравился! земляку привет)
21.01.17 в 05:37
0
Спасибо! привет!)

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

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

Шаровая защита – легко 2.0

Ремонт/стайлинг габаритных огней вилочного электропогрузчика HELI

Сборка Creality CR-10S

Тест на излом прутка PLA, ABS, SBS, HIPS и PET-G

Самодельный 3D принтер из CD/DVD приводов

Калибровка Anycubic Photon не по феншую