Читается ли G-код строка за строкой?
Я пытаюсь добавить строку
G4 P4000 G1 F4000 E-50
приостановить и убрать печать, чтобы напечатанная строка высохла (печать в воздухе вертикально). Работает ли приведенный выше код, или я должен пропускать строки, или это вообще не имеет значения?
G4 P4000
G1 F4000 E-50
Будет ли следующая строка делать то же самое?
G4 P5000 E-50
2 ответа
Лучший ответ:
Да, G-код считывается строка за строкой. G-код-это язык программирования с числовым программным управлением. В основном он последовательно, строка за строкой, инструктирует машину выполнять определенную задачу. Принтер затем выполняет строки одну за другой, пока не дойдет до конца.
Если вы прикажете принтеру подождать (задержка G4), он сначала выполнит ожидание/задержку, а затем выполнит следующую команду для извлечения филамента. Таким образом, ваши примеры не будут работать, если вы хотите убрать нить во время паузы, вы изменили процесс, если хотите этого добиться.
Чтобы добавить паузу (простую), например, для смены филамента, вы должны проинструктировать головку перейти в определенное положение, извлечь нить и теперь вставить команду пауза/задержка. Дайте себе достаточно времени, чтобы вставить и загрунтовать насадку, а затем вернитесь в последнее место, чтобы продолжить печать.
Вы можете вставить что-то вроде (например, между сменой слоя, перед G1 Zx.xx
):
...
G1 X0 Y0 F2000 ; Переместите печатающую головку
G1 F4000 E-50 ; Втягивающая нить
G4 P40000 ; Подождите 40 секунд
G92 E50 ; Новая нить должна оставаться на этом значении
...
G1 Zx.xx
В зависимости от того, что произойдет после G1 Zx.xx
, вам может потребоваться вернуть головку в положение, предшествующее тому, где она была до G1 X0 Y0 F2000
.
Обратите внимание, что существуют сценарии/плагины для приостановки, доступные, например, для Ultimaker Cura, а также есть команда изменения нити филамент M600
, которая может быть включена для определенной прошивки (если это ваша конечная цель).
Используя плагин постобработки Ultimaker Cura, скрипт приостановки выглядит следующим образом:
... G0 X137.692 Y105 ;ИСТЕКШЕЕ ВРЕМЯ:707.873599 ;ТИП:ПОЛЬЗОВАТЕЛЬСКИЙ;добавлен код путем постобработки ;скрипт: PauseAtHeight.py ;текущий z: 5 ;текущая высота: 5,0 М83 G1 F300 Z6 G1 F9000 X190 Y190 G1 F300 Z15 M104 S0; температура в режиме ожидания M0;Сделайте фактическую паузу M109 S200; температура возобновления G1 F300 Z6 G1 F9000 X133.423 Y105 G1 F9000 М82 G92 E911.50045 ;СЛОЙ:24 G0 X137.692 Y105 Z5 ...
Обратите внимание, что G0
и G1
являются инструкциями по перемещению в местоположение (хотя и другим способом, быстрым перемещением и линейным перемещением соответственно). Если вы посмотрите внимательно, вы увидите, что после паузы принтер возвращается в положение X-Y, в котором он находился до паузы (X137.692 Y105
).
Примечание сбоку:
Некоторые варианты встроенного ПО допускают буферизацию, но каждая инструкция выполняется последовательно.
Как вы правильно заметили, " G0 " и " G01 " - это не совсем одно и то же... `G0 "означает линейную интерполяцию с высокой скоростью, тогда как" G01 " означает линейную интерполяцию со скоростью подачи. оператору потребуется " G01 " (при скорости подачи)., @user77232
Это должно быть в двух строках, как во втором примере:
G4 P4000
G1 F4000 E-50
Дополнительную информацию смотрите в вики-файле RepRap Gcode. https://reprap.org/wiki/G-code
ПРАВКА: если вы действительно хотите убрать, а ЗАТЕМ приостановить, измените его:
G1 F4000 E-50
G4 P4000
Это не сработает, " G1 " выполняется по истечении времени ожидания, поэтому теперь он ждет, извлекает нить и немедленно продолжает, вы должны сделать это наоборот., @0scar
Строго говоря, вы правы (подождите и уберите), но было бы бесполезно, если после этой процедуры принтер продолжит работу без филамента. Я предполагаю, что оператору нужно объяснить, какова цель этой последовательности и где она находится в его коде., @0scar
- Есть ли G-код для ожидания?
- Для чего используется G92 в G-коде
- Написание G-кода : проведите пальцем в начале печати
- Используя автоматическое выравнивание стола, нужно ли инициировать G29 перед каждой печатью?
- Cura: установить z-смещение
- Одновременный нагрев экструдера и стола при запуске печати
- В чем разница между M420 S и M420 S1?
- Код для перемещения вверх по оси Z после завершения печати
В принципе, только одна команда "Gx" в строке. Все, что ниже, является списком параметров, изменяющих команду., @Carl Witthoft
Может быть, вам следует обновить вопрос, чтобы объяснить, что именно вы хотите сделать, например, хотите ли вы перейти на другую нить накала, например, делаете ли вы паузу, чтобы убрать ее во время паузы? В нынешнем виде печать приостанавливается, вы убираете нить накала после паузы, а затем печать продолжается без филамента при вставке между строками кода. Пожалуйста, объясните, где происходит пауза., @0scar
Пожалуйста, [отредактируйте] свой вопрос, чтобы включить запрошенную информацию!, @0scar
Спасибо @0scar, я все прояснил., @Arthur Mamou-Mani