Краткое руководство по G-Code. Круговая интерполяция G02 и G03.

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Круговая интерполяция G02 и G03 — это движение по круговой дуге

Закончив обсуждение линейной интерполяции или движения по прямой линии, мы переходим к круговой интерполяции G02 и G03 , которая представляет собой движение по дуге окружности. За исключением довольно экзотической способности следовать «NURBS-пути», большинство контроллеров G-кода поддерживают только два вида движения: линейное и круговое. Круговая интерполяция на вашем станке немного сложнее, так как две оси должны быть точно согласованы. Рисование полного круга включает не только скоординированное движение, но и изменение направления в каждой из четырех точек квадранта. Это будут точки, соответствующие 0, 90, 180 и 270 градусам. Если у станка вообще есть люфт, он будет очевиден при этих разворотах, потому что там будет сбой в разрезе.

Круговое движение — это режим, инициируемый через G02 и G03

Как и линейное движение (инициированное G00 и G01), круговое движение — это режим, инициированный через G02 и G03. G02 устанавливает режим для дуг окружности по часовой стрелке. G03 устанавливает режим для дуг окружности против часовой стрелки.

G02 и G03
G02 и G03

Определение дуги для контроллера ЧПУ

После того, как установлен режим G02 или G03, дуги определяются в G-коде путем идентификации двух конечных точек и центра, который должен быть равноудаленным от каждой конечной точки, в противном случае возникнет аварийный сигнал. 

Определение центра через относительные смещения IJK

Центр чаще всего идентифицируется с помощью I, J или K для определения  относительного смещения  от начальной точки дуги к центру. Вот типичная дуга по часовой стрелке:

G02 и G03  Определение центра дуги с помощью IJK
Определение центра дуги с помощью IJK

Буквы I и J указывают относительные координаты от начальной точки до центра. Другими словами, если мы добавим значение I к X начальной точки и значение J к Y начальной точки, мы получим X и Y для центра.

Определение центра через радиус с помощью «R»

Мы также можем определить центр, просто указав радиус круга. Допустим радиус нашего круга равен 2, поэтому g-код может быть простым:

G02

X2Y0 R2

Многие из вас прямо здесь и сейчас решат, что, поскольку R проще для понимания и короче для написания, вы просто собираетесь использовать R и забыть о IJK. Но мастера ЧПУ обработки советуют использовать команды IJK. Их аргумент состоит в том, что, используя IJK, вы дважды проверяете правильность дуги.

Почему?

Потому что контроллер может вычислить фактический набор координат для центра через IJK. Получив координаты центра, он может проверить, что он одинаково удален от обеих конечных точек. Проверка каждого из этих двух расстояний — это двойная проверка. В случае формата «R» контроллер не имеет такой двойной проверки. Он должен выбрать центр, который гарантирует равное расстояние.

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

Варианты синтаксиса Arc для различных диалектов и режимов G-кода

Это еще одно из тех мест, где происходит много непонятных вещей, например, что будет делать ваш контроллер. Обычно предполагается, что если у вас есть и IJK, и R в одном блоке, R имеет приоритет, а IJK игнорируется. Но есть контроллеры, которые работают не так, поэтому убедитесь, что вы знаете, что происходит.

Есть несколько параметров, которые определяют, как работают дуги. 

Давайте рассмотрим эти варианты:

—  Инкрементальный против абсолютного IJK : мы обсуждали IJK как представление координат относительно начальной точки для центра. Добавьте I к X, J к Y и K к Z начальной точки, и вы получите центр. Многие элементы управления также имеют возможность использовать IJK как абсолютные координаты центра.

—  Модальные центры IJK : когда IJK являются абсолютными координатами центра, некоторые контроллеры запоминают последний определенный центр, поэтому в этом случае IJK является модальным. При использовании такой настройки управления вы можете просто продолжать вводить команды XYZ для дуг без необходимости каждый раз определять новый центр. Однако не ясно, что вы сэкономите много — как часто вы хотите делать несколько дуг с одним и тем же центром?

—  Модальные центры R : Еще одна разновидность идеи модального центра состоит в том, чтобы позволить радиусу, определенному буквой «R», быть модальным. Каким бы ни был последний использованный R, контроллер запоминает и снова использует это значение, если R не задано. Это кажется более полезным, чем модальный IJK. Например, у кармана могут быть дуги для углов одинакового радиуса.

—  Приоритет R : как уже упоминалось, большинство контроллеров будут использовать «R», если «R» и «IJK» указаны в одном блоке. Н

—  Helical Interp. : Эта опция определяет, разрешает ли ваш контроллер спиральную интерполяцию.

Наиболее распространенная проблема при настройке постпроцессора CAM или симулятора ЧПУ: абсолютный и относительный IJK

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

Неверные настройки постпроцессора для дуг
Неверные настройки постпроцессора для дуг

Если вы видите такие вещи, первое, что нужно проверить, — это абсолютный IJK в сравнении с относительным IJK для дуг. Настройка должна соответствовать между тем, что выдает CAM, и тем, чтополучает контроллер или симулятор.

Дроби круга, квадранты и регуляторы

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

G01 X3.25 Y2.0

G02 X3.25 Y2.0 I-1.25 J0

Интересно, что вы не можете указать полный круг с помощью «R». Это связано с тем, что существует бесконечное количество кругов, которые начинаются и заканчиваются в одной и той же точке определенного радиуса, поэтому контроллер не знает, какой круг может быть правильным.

Есть еще более забавный ньюанс с «R» и более крупными дугами. Например, дуга все еще может иметь определенный радиус и по часовой стрелке (или против часовой стрелки), но центр будет разным, если вы перемещаетесь более чем на 90 градусов. Например:

Если R отрицательно, путь будет длиннее (желтым) Позитив получает более короткий путь
Если R отрицательно, путь будет длиннее (желтым).

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

Некоторые контроллеры еще более чувствительны и не будут программировать дугу, пересекающую линию квадранта. Следовательно, наибольший угол, по которому может следовать дуга, составляет 90 градусов, и этот угол не должен пересекать 0, 90, 180 или 270 градусов. Углы в 90 градусов, пересекающие линию квадранта, должны быть разбиты на две части, причем соединение между частями должно быть прямо на линии квадранта.

Полные круги без XYZ

Полные круги появляются, когда начальная и конечная точки идентичны, а центр указан через IJK (помните, что R ведет к бесконечному количеству кругов). Учитывая, что вы хотите, чтобы начальная и конечная точки были одинаковыми, возможно, вам не придется беспокоиться даже об указании конечной точки с помощью XYZ. Некоторым контроллерам это может потребоваться, но большинству — нет. Вот простая программа с g-кодом, которая таким образом создает 3 круга:

N45 G0 X-2. Y.75
N46 G1 Z-.5 F10.
N47 Y.5 F30. S2000
N48 G2 J-1.1
N49 G1 Y.75
N50 Z.2
N51 G0 X.75 Y-3.4
N52 G1 Z-.5 F10.
N53 X.5 F30.
N54 G2 I-1.1
N55 X.75
N56 Z.2
N57 G0 X-4.75 Y-3.4
N58 G1 Z-.5 F10.
N59 X-4.5 F30.
N60 G2 I1.1
N61 G1 X-4.75
N62 Z.2

А вот как выглядит визуализация:

визуализация кода полных дуг без xyz
Dизуализация кода полных дуг без xyz

Совет по упрощению программирования дуги: начните с сегментов

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

Спиральная интерполяция

Спираль — это дуга, которая непрерывно движется в третьем измерении, как винтовая резьба. При винтовой интерполяции мы указываем такую ​​дугу с помощью G02 / G03, чтобы резец перемещался по спирали. Это может быть сделано для фрезерования резьбы , интерполяции отверстия или для множества других целей. Вот диаграмма из программы резьбы 1/4 ″ NPT:

Спираль для нарезания резьбы
Спираль для нарезания резьбы

Вот пример кода программы фрезерования резьбы:

G01 G91 Z-0.6533 F100.
G01 G42 D08 X0.0235 Y-0.0939 F10.
G03 X0.0939 Y0.0939 Z0.0179 R0.0939
G03 X-0.1179 Y0.1179 Z0.0179 R0.1179
G03 X-0.1185 Y-0.1185 Z0.0179 R0.1185
G03 X0.1191 Y-0.1191 Z0.0179 R0 .1191 F16.
G03 X0.1196 Y0.1196 Z0.0179 R0.1196
G03 X-0.1202 Y0.1202 Z0.0179 R0.1202 F26.
G03 X-0.1207 Y-0.1207 Z0.0179 R0.1207
G03 X0.1213 Y-0.1213 Z0.0179 R0.1213
G03 X0.1218 Y0.1218 Z0.0179 R0.1218
G03 X-0.0975 Y0.0975 Z0.0179 R0 0,0975

Это формат «R» (радиус) для дуг, и обратите внимание, что есть координата Z, чтобы указать изменение глубины для конечной точки каждой дуги. В этом коде используется относительное движение (G91), поэтому каждый «Z0.0179» перемещает фрезу на 0,0179 дюйма глубже.

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

Создание траекторий движения инструмента понравится вашей машине

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

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован.