Проблемы настройки 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 для печати температурной башни?
@zipzit, 👍2
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
- G-код для сброса до 100% скорости
- Грязный верхний слой с нитью PETG?
- Почему некоторые модели кажутся сломанными в программном обеспечении для нарезки?
- Что такое команда M73 Q17 S43 G-code?
- Slic3r недоэкструзия
- Странная недоэкструзия в режиме вазы?
- Где найти координату z в G-коде для delta printer
- Не могу заставить печать работать в режиме ожидания, пока я вставляю слайсер nut - Prusa Slicer и Tronxy XY2 pro
Пожалуйста, какую прошивку вы используете, которая оценивает утверждения 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