G коды для 3d принтера

Введение

Вы приобрели долгожданный фрезерный станок с ЧПУ, и вам не терпится начать с ним работать? Пожалуйста, не спешите, чтобы дорогостоящий станок с ЧПУ не превратился в груду металлолома раньше, чем успеет хоть что-то сделать.

Сначала вам потребуется выбрать и тщательно настроить под ваш станок необходимое ПО CAM (Computer-aided manufacturing — система автоматизированного производства) — специальную программу, работающую с подготовленными в CAD проектами.

CAD (Computer-aided design — система автоматизированной разработки) — программное обеспечение для проектирования, позволяющая создавать трехмерные объекты на основе заданных данных и редактировать их. Созданные в CAD проекты используются в CAM непосредственно для работы с оборудованием.

CAM-программа конвертирует цифровые объекты в понятные станку команды в формате G-code. G-code это непосредственно управляющая программа для станков с ЧПУ — набор команд для оборудования.

Зачастую CAD/CAM поставляются в виде одного программного пакета, либо заранее подготовлены для простой интеграции в программно-аппаратные комплексы и совместной работы.

Самые популярные и функциональные CAD/CAM-программы отличаются сложностью и требуют серьезной подготовки оператора. Не стремитесь сразу установить себе «самый популярный CAM», попробуйте сначала сделать несколько деталей с более простым пакетом. То, что вы узнаете по ходу дела, значительно облегчит освоение более функционального и сложного ПО.

Для совместимости CAM-программы со станком и правильной обработки получаемого кода иногда необходимо применение программ-конвертеров «Post» или «Post Processor». Если не использовать соответствующий пост-процессор, то можно получить g-code, который выглядит хорошо, но дает странные результаты при его запуске на станке.

Прежде, чем выбрать какой-то определенный CAM, обязательно посмотрите учебные видео по работе с ним, чтобы освоить основные понятия. Чтобы работа на станке с ЧПУ была эффективной, нужно научиться «думать, как CAM». Это поможет лучше понять, какие действия совершает станок, когда изготавливает деталь, какие команды и в какой последовательности он должен получить для этого.

Стоит также заметить, что помимо CAM-программ существуют еще и программы прямого управления (machine controller) станком с ЧПУ, передающие, например, движение мышки или пера непосредственно на контроллер станка. Наиболее популярные из них:

Принципы работы со структурой

Чем объёмнее становится документация, тем сложнее поддерживать её актуальность. Изменение одного документа влечёт за собой каскадное изменение остальных, логическая целостность ломается, структура требует очередной переработки. К счастью, для программирования это стандартная проблема, и за прошедшие десятилетия выработались общие принципы написания легко поддерживаемого кода. Часть из них можно применять и к документам.

SRP — Single Responsibility Principle. Принцип единственной ответственности

То же самое справедливо и для документации. Например, в регламент регистрации обращения клиента не нужно впихивать что-то «заодно»: принципы вежливого общения с клиентами, краткое описание self-service портала и т. д.

Нельзя рассчитывать, что такая информация будет усвоена или сотрудники запомнят, к какому документу нужно обращаться, чтобы её получить. Зато это запутывает документ, лишает структуру чёткости и требует дополнительного времени для актуализации. Если вы действительно хотите напомнить о вежливости при общении с клиентом, вставьте в регламент ссылку на соответствующий документ (вспомните о DRY).

Соблюдение принципа позволяет делать документы короче. Их название соответствует назначению, а чтение не вызывает неприятных сюрпризов. Их проще прочитать за раз. И не забыть, с чего документ начинался.

SLAP — Single Level of Abstraction Principle. Принцип единого уровня абстракции

Является логичным продолжением принципа единственной ответственности (SRP).

Применение принципов KISS и SRP побуждает писать небольшие, простые и понятные документы. Но эти документы нужно собрать в такую же простую и понятную структуру. Здесь помогает выделение и соблюдение уровней абстракций.

Например, очевидно, что нет смысла пытаться поместить в один огромный документ объёмную документацию вроде описания системы менеджмента качества. Намного логичнее разбить его на уровни абстракций и сделать для каждого уровня разные документы — верхнеуровневое описание системы, описание каждого процесса и т. д.

При этом важно соблюдать принцип единого уровня абстракций и относить информацию только к нужному уровню. Если вы пишете верхнеуровневое описание, не надо вдаваться в детали работы конкретного процесса. Не тот уровень абстракции! Оставьте эту информацию для описания процесса

Этот принцип дополняет SRP, заставляя автора контролировать не только то, за что отвечает документ, но и на каком уровне в иерархии он находится

Не тот уровень абстракции! Оставьте эту информацию для описания процесса. Этот принцип дополняет SRP, заставляя автора контролировать не только то, за что отвечает документ, но и на каком уровне в иерархии он находится.

LoD — Law of Demeter (Don’t talk to strangers). Закон Деметры (Не разговаривай с незнакомцами)

Если применить закон к документации, то каждый документ:

  • Должен обладать ограниченным знанием о других документах, т. е. «знать» только тех, которые имеют к нему непосредственное отношение.
  • Должен взаимодействовать только с известными ему документами-«друзьями» и не «разговаривать» с незнакомцами.
  • Обращаться только к «друзьям».

Например, процесс управления IT-инцидентами взаимодействует с процессом управления проблемами напрямую, а с процессом управления изменениями — только через управление проблемами. Тогда в описании управления инцидентами можно ссылаться на описание управления проблемами. А вот ссылаться на описание управления изменениями не надо.

Как читать команды G-кода?

На первый взгляд, когда вы видите файл G-кода, он может показаться довольно сложным, но на самом деле его не так уж сложно понять если знать основные принципы его формирования.

Если внимательно посмотреть на код, то можно заметить, что большинство строк имеют одинаковую структуру. Кажется, что «сложная» часть G-кода — это все те числа, которые мы видим. На самом деле они являются просто декартовыми координатами.

Давайте посмотрим на одну такую строку и объясним, как она работает.

G01 X247.951560 Y11.817060 Z-1.000000 F400.000000

Строка имеет следующую структуру:

G## X## Y## Z## F##

  • во-первых, это команда G-кода, и в данном случае G01 означает «переместиться по прямой линии в определенное положение»;
  • далее мы объявляем позицию или координаты со значениями X , Y и Z;
  • наконец, с помощью значения F мы устанавливаем скорость подачи или скорость, с которой будет выполняться перемещение исполнительного механизма.

Подводя итог можно сказать, что строка G01 X247.951560 Y11.817060 Z-1.000000  F400  указывает станку с ЧПУ двигаться по прямой от текущего положения к координатам X247.951560, Y11.817060 и Z-1.000000 со скоростью 400 мм/мин. Единицей является мм/мин, потому что, если мы вернемся к примеру изображения G-кода, мы увидим, что мы использовали команду G21 (вверху рисунка), которая устанавливает единицы измерения в миллиметры. Если нам нужны единицы измерения в дюймах, вместо этого необходимо использовать команду G20.

Таблица основных команд

КомандаОписаниеПример
G00Ускоренное перемещение инструмента (холостой ход)G0 X0 Y0 Z100.
G01Линейная интерполяция, модальная команда. Инструмент перемещается по прямой линии от исходной точки в точку с заданными координатами, скорость перемещения задаётся здесь же или ранее модальной командой F.G01 X0. Y0. Z100. F200.
G02Круговая интерполяция по часовой стрелкеG02 X15. Y15. R5. F200.
G03Круговая интерполяция против часовой стрелкиG03 X15. Y15. R5. F200.
G04Задержка выполнения программы, способ задания величины задержки зависит от реализации системы управления, P обычно задает паузу в миллисекундах, X — в секундах.G04 P500 или G04 X.5
G10Переключение абсолютной системы координат. В примере начало координат станет в точке 10, 10, 10 старых координат.G10 X10. Y10. Z10.
G15Переход в полярную систему координат (X радиус Y угол)G15 X15. Y22.5
G16Отмена полярной системы координатG16 X15. Y22.5
G17Выбор рабочей плоскости X-YG17
G18Выбор рабочей плоскости Z-XG18
G19Выбор рабочей плоскости Y-ZG19
G20Режим работы в дюймовой системеG90 G20
G21Режим работы в метрической системеG90 G21
G22Активировать установленный предел перемещений (Инструмент не выйдет за их предел)G22 G01 X15. Y25.
G28Вернуться на референтную точкуG28 G91 Z0 Y0
G30Поднятие по оси Z на точку смены инструментаG30 G91 Z0
G40Отмена компенсации радиуса инструментаG1 G40 X0. Y0. F200.
G41Компенсировать радиус инструмента слева от траекторииG41 X15. Y15. D1 F100.
G42Компенсировать радиус инструмента справа от траекторииG42 X15. Y15. D1 F100.
G43Компенсировать длину инструмента положительноG43 X15. Y15. Z100. H1 S1000 M3
G44Компенсировать длину инструмента отрицательноG44 X15. Y15. Z4. H1 S1000 M3
G49Отмена компенсации длины инструментаG49 Z100.
G50Сброс всех масштабирующих коэффициентов в 1,0.G50
G51Назначение масштабов. В примере — уменьшение масштаба по оси X в 10 раз.G51 X.1
G53Переход в систему координат станка.G53 G0 X0. Y0. Z0.
G54—G59Переключиться на заданную оператором систему координатG54 G0 X0. Y0. Z100.
G61—G64Переключение режимов Точный Стоп/Постоянная скорость
G68Поворот координат на нужный уголG68 X0 Y0 R45.
G70Цикл продольного чистового точенияG70 P10 Q15.
G71Цикл многопроходного продольного чернового точенияG71 P10 Q15. D0.5 UO.2 W0.5
G80Отмена циклов сверления, растачивания, нарезания резьбы метчиком и т. д.G80
G81Цикл сверленияG81 X0 Y0. Z-10. R3. F100.
G82Цикл сверления с задержкойG82 X0. Y0. Z-10. R3. P100 F100.
G83Цикл прерывистого сверления (с полным выводом сверла)G83 X0. Y0. Z-10. R3. Q8. F100.
G84Цикл нарезания резьбыG95 G84 M29 X0. Y0. Z-10. R3 F1.411
G90Задание абсолютных координат опорных точек траекторииG90 G1 X0.5. Y0.5. F10.
G91Задание координат инкрементально последней введённой опорной точкиG91 G1 X4. Y5. F100.
G94F (подача) — в формате мм/мин.G94 G80 Z100. F75.
G95F (подача) — в формате мм/об.G95 G84 X0. Y0. Z-10. R3 F1.411
G99После каждого цикла не отходить на «проходную точку»G99 G91 X10. K4.

Основные команды языка

Основные команды языка начинаются с буквы G (отсюда и его название), это например: – перемещение рабочих органов оборудования с заданной скоростью (линейное и круговое,

– выполнение типовых команд (таких, как запуск вентиляторов, нагревателей и т.д.),

– управление параметрами, системами координат ( абсолютное или относительное исчисление).

Также существует большое количество команд, что начинаются с букв M и T, они относятся к вспомогательным и используются в фрезерных станках и фрезерных обрабатывающих центрах.

Каждая строка G-code содержит в себе конкретную команду и набор параметров, характеризующий само действие оборудования. Так, обычное перемещение во время печати может характеризоваться рядом параметров, таких как направление, время работы приводов, для перемещения на заданное расстояние, количество выдавленного пластика, скорость и ускорение.

Если раньше программировать действия станков приходилось вручную, то в наше время существует большое многообразие программ, что могут преобразовать загруженный 3D-объект в код управления, необходимый станку для создания этого объекта.

Для 3D-принтеров применяются программы, называющиеся слайсерами.

Такие слайсеры, как Cura, Simplify3D и множество подобных, помогают автоматизировать процесс написания кода управления, пользователю остается лишь использовать полученный с их помощью код. Возможная ручная корректировка сводится к коррекции одного или двух параметров, или поиску лишней команды. Теперь не требуется писать 100-200 строк кода, достаточно лишь сгенерировать код в слайсере и, если требуется, внести небольшие правки.

Для ручного внесения правок в G-code рекомендуем использовать бесплатную программу NotePad++. С её помощью можно найти вредоносную команду, пометить все её повторения в коде и удалить их.

Подробнее о командах читайте далее, в разделе “Популярные команды G-code”.

Запоминание положения

Если Вашему коду требуется изменить систему координат (G54) или указать смещение (G92) или ввести коррекцию на инструмент (G41 и G42) то перед вводом данных настроек — запомните текущее положение инструмента. Подразумевается, что это безопасная для оператора и инструмента позиция и Вы вернетесь в нее же по окончании части кода где нужно вводить ограничения.

Соответственно, очень желательно, чтобы вход в блок «запоминал» нужные параметры, а «выход» их восстанавливал.
Время на обработку переменных не тратится, а пользы уйма. Кроме всего прочего LinuxCNC дает нам массу подобных возможностей, взять, хотя бы, команду O.

Облёт заготовки

По-этой причине я разработал алгоритм “облёта” заготовки. Суть алгоритма такова:

  1. Задаем безопасную высоту, общую переменную, которуб будет использовать весь код и никогда не менять. На этой высоте “летать” можно сколь угодно. Для моего станка и жертвенного стола , а также, учитывая текущие задачи и заготовки, эта высота составляет 35мм над уровнем. Ибо смый высокий крепеж у меня имеет именно такую высоту;
  2. Перед выполнением любой обработки определяем границы заготовки “переезжаем” по периметру, останавливаясь на каждом шагу чтобы определить что границы в первом приближении ничего не ломают и станок ни обо что не ударится;
  3. На последнем этапе опускаемся на высоту 1мм над уровнем заготовки и повторяем процедуру. Повторение – мать учения и так мы куда более точно определеяем что никто ничего не поломает и в самом конце, когда программа отработает и будет переведено в стружку тьма хорошего материала, не окажется, что существовавшее ранее отверстие или брак в заготовке попадает на самое видное место.

В каких случаях использовать G-code?

В абсолютном большинстве случаев слайсеры составляют корректный G-code, который обеспечит отличный результат в процессе печати, но существует несколько сценариев, когда оправдана ручная правка G-code.

Случаи, когда целесообразно переписать G-код:

Специальные настройки — выполнение 3D-принтером определенных действий, таких как изменение температуры экструдера в конкретные моменты времени, при печати деликатных/тонких или просто важных областей модели, если слайсер не имеет такого функционала.

Решение проблемы — при печати крупной сложной детали могут возникнуть сложности на определенном этапе. Для устранения проблемы можно добавить специальную команду, например — включение или выключение обдува или добавление ряда своих команд.

G00, G01, G02 – пример программирования G-кода вручную

Давайте рассмотрим простой пример фрезерной обработки с ЧПУ, используя рассмотренные нами три основные команды G-кода: G00, G01 и G02.

Чтобы получить траекторию для формы, показанной на рисунке выше, нам нужно выполнить следующие команды G-кода:

G00 X5 Y5 ; point B
G01 X0 Y20 F200 ; point C
G01 X20 Y0 ; point D
G02 X10 Y-10 I0 J-10 ; point E
G02 X-4 Y-8 I-10 J0 ; point F
G01 X-26 Y-2 ; point B

1
2
3
4
5
6

G00 X5 Y5;pointB

G01 X0 Y20 F200;pointC

G01 X20 Y0;pointD

G02 X10Y-10I0J-10;pointE

G02X-4Y-8I-10J0;pointF

G01X-26Y-2;pointB

С помощью первой команды G00 мы быстро переводим исполнительный механизм из исходного положения в точку B(5,5). Отсюда мы начинаем с «резки» со скоростью подачи 200, используя команду G01 . Здесь мы можем отметить, что для перехода из точки B(5,5) в точку C(5,25) мы используем значения для X и Y относительно начальной точки B. Таким образом, +20 единиц в направлении Y приведут нас к точке C(5,25). На самом деле это зависит от того, выбрали ли мы машину для интерпретации координат как абсолютных или относительных. Мы объясним это в следующем разделе.

Как только мы достигаем точки C(5,25), у нас есть еще одна команда G01 для достижения точки D(25,25). Затем мы используем команду G02, круговое движение, чтобы добраться до точки E(35,15) с центральной точкой (25,15). На самом деле у нас есть та же самая центральная точка (25,15) для следующей команды G02, чтобы добраться до точки F(31,7). Однако мы должны отметить, что параметры I и J отличаются от предыдущей команды, потому что мы смещаем центр от последней конечной точки или точки E. Мы заканчиваем траекторию с помощью другой команды G01, которая доставит нас из точки F(31, 7) в точку B(5,5).

Итак, теперь мы можем вручную запрограммировать G-код для создания рассмотренной формы. Однако мы должны отметить, что это не полный G-код, потому что нам не хватает еще нескольких основных команд. Мы создадим полный G-код в следующем примере, так как сначала нам нужно рассмотреть еще ряд команд G-кода.

На какие принтеры можно загружать G-code?

Большинство популярных принтеров работает на G-code. Поскольку этот код можно генерировать в любых доступных слайсерах, таких как как Simplify3D, Cura, Chitubox, CreatWare, Slic3er, и легко редактировать в обычном блокноте или NotePad++, то пользователи самых доступных 3D-принтеров Anet A8, профессиональных 3D-принтеров Wanhao Duplicator 6 Plus и 3D-принтеров с двумя экструдерами Hercules Strong DUO могут перенастроить работу аппаратов для достижения оптимального результата.

Но бывают случаи, когда оборудование работает на зашифрованном G-code. Как пример — это Zortrax и их Слайсер Z-suite, что генерирует файл в расширении Z-code. Увы, такие файлы уже не открыть блокнотом и NotePad++, а сторонний слайсер с этим принтером использовать нельзя.

Какие бывают G-коды

Программы с G-кодом пишутся в виде текстового формата, каждую строчку называют кадром. Кадр состоит из буквенного символа – это адрес и цифра, в которой выражено числовое значение. Коды бывают основными и вспомогательными. На основе такой программы работает токарный и фрезерный станок с ЧПУ.

Команды группы G называют подготовительными. Они задают движение рабочих элементов на станке с определенной скоростью. Скорость может быть круговой или линейной. Также G-код используется для обработки отверстий и резьбы. Еще одной функцией является управление параметрами и координатными системами аппаратуры.

Основные команды программы направлены на выполнение следующих функций:

  • G00 – G04 функция позиционирования;
  • G17 – G19 осуществляют переключение рабочих параметров;
  • G40 – G44 компенсация длины и диаметра разных элементов аппарата;
  • G54 – G59 переключение координатных систем;
  • G71 – функция обработки отверстий;
  • G80 – G84 функция нарезания резьбы и сверления;
  • G90 – G92 переключение абсолютной и относительной систем координат.

Символы бывают разными: М выполняет вспомогательные функции, такая команда необходима для смены инструмента, вызова подпрограммы и ее завершения, S – это функция основного движения, F – подача, Т, D, Н являются выражением функций инструмента.

Значение символа зависит от вида станка с ЧПУ. Программирование осуществляется на основе этих кодов.

Популярные команды G-code

G28 — вернуться в исходное положение

Эта команда сообщает 3D-принтеру о необходимости вернуться в нулевую точку. С этой команды начинается работа 3D-принтера, а также этой командой заканчивается печать. Печатающая головка перемещается в дальний угол печатной камеры, чтобы пользователь мог легко извлечь деталь.

G1 — линейное движение

С этой команды начинается около 95% строк в файле для печати. Команда G1 задает и направление перемещения печатающей головки. В этой же строке может содержаться команда E, которая указывает, сколько филамента (в миллиметрах) необходимо протолкнуть в сопло. Также в строке можно указать команду F, которая задает скорость движения в миллиметрах в минуту.

Пример: G1 X30 E10 F1800 — протолкнуть 10 мм филамента в экструдер, пока печатающая головка перемещается на 30 мм по координате X со скоростью 1800 мм/мин.

G92 — установить текущее положение

Команда задает текущее положение осей. Одно из наиболее распространенных применений команды — это ось E (положение филамента). Если переопределить текущее положение нити, то все будущие команды будут определяться по новому значению. Обычно это делается в начале каждого слоя.

Пример: G92 E0 — установить текущее положение нити в качестве нулевого.

M104 и M109 — температура экструдера

Команды M104 и M109 задают температурные значения в градусах Цельсия (S) для экструдера (экструдеров). При использовании команды M104 3D-принтер может производить другие действия в процессе нагрева. Команда M109 указывает принтеру не предпринимать других действий, пока не будет достигнута заданная температура. При использовании 3D-принтера с двумя экструдерами используются команды T0 для установления температуры правого экструдера и T1 — для левого.

Пример: M104 S190 T0 — начать разогревать правый экструдер до температуры 190 °C.

M140 и M190 — температура рабочего стола

Эти команды указывают на необходимость нагреть рабочий стол до заданной температуры в градусах Цельсия (S). Аналогично примеру выше, команда M140 будет выполняться 3D-принтером одновременно с другими процессами, а команда M190 указывает на необходимость ожидания, пока рабочий стол не будет нагрет до заданной температуры.

Пример: M140 S50 — разогревать рабочий стол до 50 °C.

M106 — скорость вращения кулера

Эта команда задает скорость вращения кулера, который охлаждает изделие. Скорость вращения (S) устанавливается в диапазоне значений от 0 (выключен) до 255 (максимальная скорость).

Пример: M106 S128 — включить кулер на скорости 50%.

Рассмотрим использование станка с ЧПУ для создания несложного барельефа.

Недорогое решение вопроса G-кода для этой цели – простая и удобная программа Bmp2Cnc.

G-кодовую управляющую программу (УП G-кодов) Bmp2Cnc создает по полутоновому изображению. В программу также можно закачать и цветную фотографию: есть возможность конвертирования цветной картинки в полутоновую, но мы здесь для примера будем применять уже готовый черно-белый рисунок:

Разберём работу с программой по шагам.

Итак, загружаем картинку в программу
. Меняем размер изображения на тот, который соответствует размеру будущей барельефа. Вводим значение 100 мм в окошко “Ширина” и, если в чекбоксе ниже стоит птичка, высота картинки изменяется с тем же масштабом:

Далее выбираем ноль.
Проще всего за начало координат УП принимать левый нижний угол картинки. Почему? Удобство заключается в том, что габариты барельефа будут в дальнейшем понятнее отображаться в программе управления Mach3, легче далее будет манипулировать управляющей программой – масштабировать деталь, зацикливать, т.е. выполнять несколько одинаковых обработок одной управляющей программой на одной заготовке, и так далее:

Наступает самый интересный момент. Сейчас мы увидим деталь в объеме.
В секции “Глубина” мы задаем глубины для белого и черного цвета изображения. Для нашей барельефа размерами 100 на 100 устанавливаем глубину для самого темного оттенка черного сначала 10 мм, нажимаем кнопку “Применить”. Через секунду мы видим полученный рельеф в окне графической визуализации:

Нужно добавить еще объему? Задаем глубину
15 мм. Теперь деталь смотрится достаточно объемно:

В следующем диалоге bmp2cnc выбираем подходящий для нашей системы постпроцессор – Mach2-3 в миллиметрах и переходим к выбору инструмента
:

Подбираем подходящую фрезу
с острым носиком, которая будет достаточно чисто обрабатывать нашу деталь:

Выбирая диаметр инструмента
– фрезы и иту параллельных проходов, не стоит увлекаться и задавать слишком высокие параметры – иначе обработка растянется на часы или даже сутки! Здесь лучше пойти на компромисс, пусть деталь получится слегка шершавой, в конце концов, пройтись шкуркой, в любом случае, придется (так как исходная картинка была невысокого качества), зато станок выполнит обработку гораздо быстрее:

Число проходов по глубине можно задать любое в зависимости от твердости материала, качества инструмента и т.д.

Здесь в шестом диалоге программы есть очень полезная функция, которая, кстати, в других маститых программах и реализуется “со скрипом”. Нажатием одной кнопки можно отсечь лишние для обработки плоскости, чем существенно укоротить время обработки. Мы отсекаем нижнюю плоскость – и наша модель принимает окончательный вид
:

Нажатие кнопки “Вычислить”
– и мы видим полученные траектории обработки. В отдельном окошке – готовая управляющая программа:

Далее можно запустить имитацию обработки
. Анимированный инструмент-фреза на экране программы будет перемещаться по созданным в Bmp2Cnc траекториям, предоставляя нам прекрасную визуализацию работы станка:

Вот и всё
. Файл УП G-кодов можно отдавать на станок, а результаты работы можно сохранить как Bmp2Cnc-проект для последующих обращений и изменений, или как Stl или Dxf модель.

Готовая УП G-кодов загружена в Mach3:

Управляющая программа для ЧПУ станка состоит из последовательности кадров и обычно начинается с символа начало программы (%) и заканчивается М02 или М30.

Каждый кадр программы представляет собой один шаг обработки и (в зависимости от ЧПУ) может начинаться с номера кадра (N1…N10 и т.д.), а заканчиваться символом конец кадра (;).

Кадр управляющей программы состоит из операторов в форме слов (G91, M30, X10. и т.д.). Слово состоит из символа (адреса) и цифры, представляющее арифметическое значение.

Адреса X, Y, Z, U, V, W, P, Q, R, A, B, C, D, E являются размерными перемещениям, используют для обозначения координатных осей, вдоль которых осуществляются перемещения.

Слова, описывающие перемещения, могут иметь знак (+) или (-). При отсутствии знака перемещение считается положительным.

Адреса I, J, K означают параметры интерполяции.

G – подготовительная функция.

M – вспомогательная функция.

S – функция главного движения.

F – функция подачи.

T, D, H – функции инструмента.

Символы могут принимать другие значения в зависимости от конкретного УЧПУ.

На исполнение G-код запускается в программах управления станком

Программы оптимизации раскроя (nesting sowtfare)

В основе каждого пакета программного обеспечения для автоматического раскроя лежит алгоритм раскроя, который ориентирует несколько изготавливаемых деталей таким образом, чтобы уместить их как можно больше на одном листе материала. Благодаря программному обеспечению для оптимизации раскроя, пользователь может использовать различные стратегии вложения, такие как временное вложение, вложение набора или пакетное вложение, чтобы получить экономию материала, уменьшение времени работы станка, сокращение времени программирования и т.п.

Например, оптимально разместив вырезаемые детали, вы можете выточить 2 кромки за один проход инструмента, или изготовить сначала более мелкие детали на тех участках более крупных изделий, которые в ином случае пошли бы в отходы.

SVGnest

Полностью бесплатная программа с открытым кодом. Если есть какие-то детали, которые нужно вырезать из куска металла/пластика/дерева и т. п., необходимо расположить детали так, чтобы они использовали как можно меньше материала. Это типичная задача, когда вы используете лазерный резак, плазменный резак или станок с ЧПУ. Программа будет постоянно искать лучшее решение, пока вы не нажмете кнопку «Стоп». После этого можно загрузить файл SVG с результатами.

Deepnest

Приложение для раскроя с открытым исходным кодом, которое отлично подходит для лазерных, плазменных и других станков с ЧПУ. Deepnest компактно упаковывает ваши детали в одну область, чтобы сэкономить материал и время. Он автоматически объединяет общие линии, поэтому лазер не пересекает один и тот же путь дважды. Это не только экономит время, но и улучшает качество деталей, уменьшая тепловые деформаций от нескольких проходов лазера. Использует современный механизм компоновки деталей, с размещением деталей по частям и возможностью вложения растровых изображений для лазерной гравировки. Поддерживает файлы форматов DXF, SVG, Corel CDR.

Подбор типа шейпера

В случае, если предыдущие шаги не дали достаточно хорошего результата, следует повторить калибровку с шейперами, убирающими вибрации в более широком спектре частот. Градация по ширине спектра: . При этом шейпер является слишком узким и практически никогда не даёт нормального результата. Поэтому с ним можно даже не пробовать.

, хоть формально шире, чем , но совсем немного. Так что для него не имеет большого смысла заново проводить калибровку, можно просто поставить вместо с теми же частотами в и сделать проверочную печать.

Тесты с 2hump_ei и 3hump_ei

Частота шейпера с помощью предыдущих методик подбирается так, чтобы загасить вибрации на какой-то одной частоте и немного вокруг неё. В случае, если вибрации происходят на двух, трёх и т.д. разных частотах, то применяются шейперы или даже , которые гасят очень широкий спектр частот. Ввиду этого не имеет большого смысла проверять их работу на частотах ниже 50 Гц, так как они будут захвачены работой шейпера на 50 Гц. Также не имеет смысла подбирать частоту с точностью до 1-5 Гц, точности до 10 Гц хватит для нормальной работы шейпера.

Подбор частоты шейпера 2hump_ei для оси Y

  1. Введите команду

  2. Введите команду

  3. Запустите печать ранее нарезанной модели

  4. Интерпретируйте как раньше, но с одним изменением. Если результат вас устраивает на каком-то спектре частот, то выбирайте не среднее, а максимальное значение, чтобы избежать излишнего скругления углов

Подбор частоты шейпера 2hump_ei для оси Х

  1. Введите команду

  2. Введите команду

  3. Запустите печать ранее нарезанной модели

  4. Интерпретируйте как раньше, но с одним изменением. Если результат вас устраивает на каком-то спектре частот, то выбирайте не среднее, а максимальное значение, чтобы избежать излишнего скругления углов

  5. Сохраните параметры и сделайте

  6. Сделайте проверочную печать

Последний шанс

Если на проверочной модели всё еще остаются значимые вибрации, то повторите подбор для , но с шейпером . Если и так не получается добиться хорошего результата, то у вашего принтера явно сильные проблемы с механикой. Попробуйте закрепить всё, что может шататься на печатающей голове и балке, увеличить жесткость рамы, заменить ремни на более жёсткие (например, на более широкие) и т.д.

G02 — круговая интерполяция по часовой стрелке

Команда G02 указывает машине двигаться по часовой стрелке по круговой схеме. Принцип тот же что и у команды G01, и она используется при выполнении соответствующего процесса обработки. В дополнение к параметрам конечной точки здесь нам также необходимо определить центр вращения или расстояние начальной точки дуги от центральной точки дуги. Начальная точка фактически является конечной точкой предыдущей команды или текущей точкой.

Для лучшего понимания мы добавим команду G02 после команды G01 из предыдущего примера.

Итак, в первом примере у нас есть команда G01, которая перемещает машину в точку X5, Y12. Теперь это будет отправной точкой для команды G02. С помощью параметров X и Y команды G02 мы устанавливаем конечную точку. Теперь, чтобы добраться до этой конечной точки, используя круговое движение или дугу, нам нужно определить ее центральную точку. Мы делаем это с помощью параметров I и J. Значения I и J относятся к начальной или конечной точке предыдущей команды. Итак, чтобы получить центральную точку по X5 и Y7, нам нужно сделать смещение  по оси X и смещение -5 по оси Y.

Конечно, мы можем установить центральную точку в любом другом месте, таким образом мы получим другую дугу, которая заканчивается в той же конечной точке. Вот пример этого:

G02 — круговая интерполяция по часовой стрелке

Итак, здесь у нас все еще есть та же конечная точка, что и в предыдущем примере (X10, Y7), но теперь центральная точка находится в другом положении (X0, Y2). Благодаря этому мы получили более широкую дугу по сравнению с предыдущей.

G00, G01, G02 Пример — ручное программирование G-кода

Давайте посмотрим на простой пример фрезерования с ЧПУ с использованием этих трех основных команд G-кода: G00, G01 и G02.

Чтобы получить траекторию для формы, показанной на изображении выше, нам нужно выполнить команды G-кода:

С помощью первой команды G00 мы быстро переводим станок из исходного положения в точку B (5,5). Отсюда мы начинаем с «резки» со скоростью подачи 200 с помощью команды G01 . Здесь можно отметить, что для перехода из точки B (5,5) в точку C (5,25) мы используем значения X и Y относительно начальной точки B. Итак, +20 единиц в направлении Y приведет нас к точке C (5,25). Фактически, это зависит от того, выбрали ли мы машину для интерпретации координат как абсолютных или относительных. Мы объясним это в следующем разделе.

Как только мы достигаем точки C (5,25), у нас есть еще одна команда G01 для достижения точки D (25,25). Затем мы используем команду G02, круговое движение, чтобы добраться до точки E (35,15) с центральной точкой (25,15). На самом деле у нас есть такая же центральная точка (25,15) для следующей команды G02, чтобы добраться до точки F (31,7). Однако мы должны отметить, что параметры I и J отличаются от предыдущей команды, потому что мы смещаем центр от последней конечной точки или точки E. Мы завершаем траекторию инструмента другой командой G01, которая выводит нас из точки F (31, 7) вернуться к пункту Б (5,5).

Итак, вот как мы можем вручную запрограммировать G-код для создания этой формы. Однако мы должны отметить, что это не полный G-код, потому что нам не хватает еще нескольких основных команд. Мы сделаем полный G-код в следующем примере, так как сначала нам нужно объяснить эти команды G-кода.

Алгоритмический подход

Возможно я еще начинающий Gкодер, но наука о программировании не менялась с момента ее появления. И она требовала составлять алгоритмы и избегать больших линейных блоков кода.

Так например, я достиг цели и обработал свой Жертвенный стол получив код программы на сайте, где был предоставлен доступ к on-line генератору кода. И это был файл размером в мегабайт. Читать не возможно. Одни и теже коды повторяли “зиг-заги”. Включить в него что-либо, например замедление когда фреза доходит до вкрученной в стол футорки – невозможно.

Куда проще и понятнее выглядит функция, приведенная в статье про Жертвенный стол . В ней все наглядно и понятно. Для чего же еще нужен компьютер, если не для генерации кода по мере необходимости?

Иными словами, я испробовал и “прямой” подход с генерацией миллиона линейных команд и алгоритмический, требующий приложения мозга. Второй вариант мне подходит, а первый – постараюсь избегать.

Поделитесь в социальных сетях:FacebookX
Напишите комментарий