Проблемы настройки Temp Tower -- Slic3r (Как вы форматируете операторы G-Code {if}?)

Я с большим интересом смотрел это видео: Temp Tower - Slic3r Gcode Placeholders - How To - Chris's Basement -- Jan 23, 2019 Chris Riley

Я нашел модель, которой я доволен: Smart compact temperature calibration tower by gaaZolee, 24 декабря 2017 Использует слой 0,20 мм заполнение: 15 %

Я испытываю упрямую новую катушку PLA. Диапазон температур испытания от 225 °C до 180 °C. Эта модель выше поставляется с рекомендуемыми инструкциями if. Я проверил, что со 100% толщиной на первом слое я точно поражаю все цели Z в точно правильном месте для каждого температурного этажа на башне.

Я использую вкладку Slic3r "Настройки принтера" - чтобы разместить мои операторы if на месте в "Перед изменением слоя G-кода".

Мне непонятен формат, необходимый для оператора G-Code {if}. Я пытался...

{if layer_z == 7.8}M104 S225{endif};   // fail, this converts to: M104 S225 {endif}    
{if layer_z==1.6}M104 S225             // fail, this converts to: M104 S225    
{if [layer_z]==1.6} M104 S225          // fails, this converts to: (null)    
{if [layer_num]==8} M104 S225          // fails, this converts to: (null)    
{if layer_num==8} M104 S225          // fails, this converts to: M104 S225 

В деталях то, что я вижу, - это если заявления со всех десяти башен печатают как темп изменения на 225, 220, 215, 210... до 180 (последняя запись) и 180 °C-это место, где печатаются ВСЕ мои отпечатки. Полный Провал.

Я просто не вижу ничего в выводе Gcode из Slic3r, что отдаленно похоже на оператор if. Есть какие-нибудь идеи? Я видел эту ссылку на расширенный условный G-код, но я просто не понимаю, что здесь делать.

Я вижу из ссылки на заполнитель пользовательского G-кода Slic3r, что я использую правильные термины. [layer_z] - Высота Z активного слоя, а [layer_num] - целое число активного слоя. Неясно, требует ли их использование в "Before Layer Change G-Code" квадратных скобок или нет.

Есть какие-нибудь подсказки о том, как получить оператор if в G-код через Slic3r для печати температурной башни?

, 👍2


1 ответ


Лучший ответ:

1

Так что, кажется, я все понял. Я смотрел на это немного неправильно. И вот мой код:

; Примечание для себя: layer_z = [layer_z]
; Т-образный этаж башни 1
{if [layer_z]==1.6} M104 S225 T0
; T этаж башни 2
{if [layer_z]==11.6} M104 S220 T0
; T этаж башни 3
{if [layer_z]==21.6} M104 S215 T0
; T этаж башни 4
{if [layer_z]==31.6} M104 S210 T0
; T башня этаж 5
{if [layer_z]==41.6} M104 S205 T0
; T этаж башни 6
{if [layer_z]==51.6} M104 S200 T0
; T башня этаж 7
{if [layer_z]==61.6} M104 S195 T0
; T этаж башни 8
{if [layer_z]==71.6} M104 S190 T0
; T башня этаж 9
{if [layer_z]==81.6} M104 S185 T0
; T этаж башни 10
{if [layer_z]==91.6} M104 S180 T0

Ключом к пониманию того, что происходит, является ; Примечание для себя: layer_z = [layer_z] строка. Весь приведенный выше блок кода повторяется для каждого слоя печати в G-коде, но он оценивается. И когда я ищу "слой z =" и сканирую через код.. В конце концов я вижу это...

; Note to self:  layer_z = 1.6
; T tower floor 1
 M104 S225 T0                  <---- Yowza. Nice. 
; T tower floor 2
; T tower floor 3
; T tower floor 4
; T tower floor 5
; T tower floor 6
; T tower floor 7
; T tower floor 8
; T tower floor 9
; T tower floor 10

а потом еще раз:

; Note to self:  layer_z = 11.6
; T tower floor 1
; T tower floor 2
 M104 S220 T0           <---- Yes!
; T tower floor 3
...

Все хорошо. Вы должны иметь {} и [] внутри операторов кода...

Добавление: Итак, оказывается, что все не совсем идеально. Я замечаю, что на верхних этажах, где должно быть прохладнее, температура не меняется. Он заперт при температуре 215С. Я вижу это в коде:

; Note to self:  layer_z = 31.5999999999999      <--- not sure how that happened.  
; T tower floor 1
; T tower floor 2
; T tower floor 3
; T tower floor 4
; T tower floor 5
; T tower floor 6
; T tower floor 7
; T tower floor 8
; T tower floor 9
; T tower floor 10

31.6 вызвало бы изменение температуры. 31.5999999999999 не будет этого делать. Мне нужно изменить {if... == } на сложный тест между двумя значениями... Просто хотел поделиться этим наблюдением здесь.

Из этой ссылки я действительно вижу что

Выражения могут быть скованы цепочкой для неявного И:

{if [layer_num] == 10}{if [temperature_1] != 210}M104 S210

И это, кажется, все исправляет:

; Note to self:  layer_z = [layer_z]
; T tower floor 1
{if [layer_z]<=1.65}{if [layer_z]>1.55} M104 S225 T0
; T tower floor 2
{if [layer_z]<=11.65}{if [layer_z]>11.55} M104 S220 T0
; T tower floor 3
{if [layer_z]<=21.65}{if [layer_z]>21.55} M104 S215 T0
; T tower floor 4
{if [layer_z]<=31.65}{if [layer_z]>31.55} M104 S210 T0
; T tower floor 5
{if [layer_z]<=41.65}{if [layer_z]>41.55} M104 S205 T0
; T tower floor 6
{if [layer_z]<=51.65}{if [layer_z]>51.55} M104 S200 T0
; T tower floor 7
{if [layer_z]<=61.65}{if [layer_z]>61.55} M104 S195 T0
; T tower floor 8
{if [layer_z]<=71.65}{if [layer_z]>71.55} M104 S190 T0
; T tower floor 9
{if [layer_z]<=81.65}{if [layer_z]>81.55} M104 S185 T0
; T tower floor 10
{if [layer_z]<=91.65}{if [layer_z]>91.55} M104 S180 T0

,

Пожалуйста, какую прошивку вы используете, которая оценивает утверждения if?, @Davo

Прошивка? Я не уверен, что понимаю вопрос. Я создаю G-код с помощью Slic3r, затем проверяю код с помощью Atom, программного обеспечения для кодирования от людей на Github. А что касается проблем с температурой, то я наблюдаю за отображением температуры во время печати. Очевидно, что-то было не так., @zipzit

Я спрашиваю, какая прошивка, какой тип процессора на вашем 3d-принтере получает этот код и проводит эти оценки? Когда вы устанавливаете свои рецепты slic3r, что вы выбираете - повтор, марлин, парусник, перезвон ветра, что-то еще?, @Davo

Конечно, все эти детали содержатся here. Это более старый клон репликатора MakerBot, на самом деле создатель Flashforge 1. Прошивка обновлена до Sailfish. Настройки кода запуска/завершения см. ссылку выше. Набор рецептов? не уверен, что понимаю, о чем ты просишь. Вопрос.. почему ты спрашиваешь? Какая часть этого ответа вызывает у вас любопытство? (или это нечетное значение "31,599999999999999"?), @zipzit

Спасибо. Если вы посмотрите на https://manual.slic3r.org/expert-mode/printer-settings вы увидите, что в рецепте принтера указана настройка используемой прошивки., @Davo

Slic3r --> Настройки принтера -->> Общие -->>> Прошивка, G-Код, Ароматизатор: Sailfish Makerbot ., @zipzit