Круговая интерполяция G02 и G03: центр через I, J, K, радиус R и частые ошибки
Как записать дугу в управляющей программе: направление G02 и G03, плоскости G17–G19, центр через I, J, K по ГОСТ 20999-83, радиус R и его знак, полная окружность, винтовое движение и почему стойка ругается на несовпадение радиусов. С разбором кадров.
Редакция MetalGuide9 мин чтения
Что задаёт кадр круговой интерполяции
Кадр дуги — это вид движения, конечная точка, центр или радиус и подача. Начальная точка в кадр не пишется: это место, где инструмент стоит после предыдущего кадра.
G17 G03 X50. Y40. I-10. J0. F400G17— плоскость XY. Модальная: её задают один раз, она действует до замены на G18 или G19.G03— дуга против часовой стрелки;G02— по часовой.X50. Y40.— конечная точка дуги в текущей системе размеров: абсолютной G90 или в приращениях G91.I-10. J0.— центр дуги: на сколько он смещён от начальной точки по X и по Y.F400— подача, мм/мин. В LinuxCNC дуга идёт на текущей подаче, а без заданной подачи стойка выдаёт ошибку.
Общий формат кадра — адреса, порядок слов, модальные и разовые функции — разобран в статье «Структура управляющей программы».
Направление: по часовой или против
ГОСТ 20999-83 «Устройства числового программного управления для металлообрабатывающего оборудования. Кодирование информации управляющих программ» действует с 01.07.1984. В его табл. 5 G02 — круговая интерполяция по часовой стрелке, G03 — против, при наблюдении со стороны положительного направления оси, перпендикулярной к обрабатываемой поверхности. LinuxCNC формулирует то же: направление видно с положительного конца оси, вокруг которой идёт круговое движение.
Плоскость | Код | Откуда смотреть | Центр задают |
|---|---|---|---|
XY | G17 | С плюса Z | I и J |
ZX | G18 | С плюса Y | I и K |
YZ | G19 | С плюса X | J и K |
Ось, с плюса которой смотрят, — это и ось винтового движения: Z для G17, Y для G18, X для G19.
На фрезерном станке в плоскости G17 это совпадает с видом сверху на стол. В G18 и G19 направление легко перепутать, потому что чертёж обычно смотрят с другой стороны. На токарном станке дуги лежат в плоскости ZX, и как стойка понимает «по часовой» при переднем и заднем расположении резцедержки, проверяйте по руководству программиста к своей стойке и на симуляции.
Центр через I, J, K
Параметры интерполяции I, J, K задают центр дуги: I — по оси X, J — по Y, K — по Z. По ГОСТ 20999-83 (п. 4.3.3) их рекомендуется задавать в приращениях от начальной точки к центру, независимо от того, заданы ли размеры в абсолютных значениях или в приращениях. Формулы — в приложении 3 стандарта:
I = Xц − X0; J = Yц − Y0
- I, J
- параметры интерполяции, мм
- Xц, Yц
- координаты центра дуги, мм
- X0, Y0
- координаты начальной точки дуги, мм
Знак ставят после адреса и перед цифрами; без знака число считается положительным (п. 4.1.5). Поэтому I-10. значит «центр на 10 мм левее начала», а не «центр в точке X = −10».
Некоторые стойки умеют читать I, J, K как абсолютные координаты центра. В LinuxCNC это переключается кодом G90.1, а по умолчанию действует G91.1 — приращения. Перепутанный режим — частая причина ошибки радиуса, разобранной ниже.
Пример: скругление угла R10
Пластина 60 × 40 мм, верхний правый угол скруглён радиусом 10 мм, центр скругления в точке (50; 30). Контур обходим против часовой стрелки, без коррекции на радиус — чтобы видеть геометрию.
G90 G17
G01 X60. Y0. F400
G01 X60. Y30.
G03 X50. Y40. I-10. J0.
G01 X0. Y40.Начало дуги — (60; 30), конец — (50; 40). I = 50 − 60 = −10, J = 30 − 30 = 0. Проверка: от центра до начала 10 мм, до конца √(0² + 10²) = 10 мм — радиусы совпадают. Если обойти тот же контур по часовой стрелке, дуга пойдёт из (50; 40) в (60; 30): это G02 X60. Y30. I0. J-10., потому что теперь начало — точка (50; 40), и J = 30 − 40 = −10.
Радиус R и его знак
Многие стойки, в том числе LinuxCNC, принимают вместо центра радиус: G03 X50. Y40. R10. для скругления выше. Это короче, но через две точки при заданном радиусе проходят две дуги одного направления — короткая и длинная. В LinuxCNC выбор делает знак:
- R больше нуля — дуга меньше 180°.
- R меньше нуля — дуга больше 180°.
Пример: инструмент в точке (20; 0), нужна дуга G02 в точку (0; 20) радиусом 20 мм. G02 X0. Y20. R20. даёт четверть окружности с центром в (20; 20). G02 X0. Y20. R-20. — три четверти с центром в начале координат (0; 0). Обе дуги проходят через одни и те же точки.
LinuxCNC предупреждает: дуги через R, близкие к полуокружности или к полной окружности, — плохая практика. Небольшая ошибка в конечной точке сильно смещает центр и всю дугу: по примеру документации, у дуги около 180° ошибка конечной точки в 1 % смещает середину дуги примерно на 7 %. Дуги примерно до 165° и от 195° до 345° через R задавать нормально; остальные — центром.
ГОСТ 20999-83 описывает дугу только через параметры интерполяции I, J, K. Адрес R — расширение конкретных систем ЧПУ, и как ваша стойка понимает его знак, проверяйте по руководству.
Полная окружность и квадранты
Полную окружность через R не задать: конечная точка совпадает с начальной, и стойка не может выбрать центр. LinuxCNC в этом случае выдаёт ошибку. Окружность пишут через центр: в LinuxCNC в режиме приращений I, J без координат конечной точки — G02 I-20. J0. из точки (20; 0) обходит окружность радиусом 20 мм вокруг (0; 0).
ГОСТ 20999-83 допускает программировать в одном кадре дугу, лежащую в одном квадранте (п. 4.3.5), и рекомендует задавать в одном кадре дугу, лежащую в одной из трёх координатных плоскостей (п. 4.3.1). LinuxCNC принимает в одном кадре и дугу через несколько квадрантов, и целую окружность. Если ваша стойка требует разбивки по квадрантам, это настраивают в постпроцессоре, а не правят руками в каждой программе. Как устроен постпроцессор — в статье «CAM и постпроцессор: как устроена цепочка».
Винтовое движение
Если в кадр дуги добавить перемещение по оси, перпендикулярной плоскости, получится винт: для G17 — слово Z. Так фрезеруют врезание по спирали в карман, отверстия большого диаметра концевой фрезой и резьбу резьбофрезой.
G17 G03 X0. Y20. Z-0.5 I-20. J0.Из точки (20; 0; 0) инструмент проходит четверть окружности против часовой стрелки вокруг (0; 0) и опускается на 0,5 мм. В LinuxCNC число полных витков в одном кадре задаёт слово P: каждая единица сверх P1 добавляет к дуге полный оборот.
ГОСТ 20999-83 называет такое движение линейно-круговой интерполяцией (приложение 4: кадр G03 G17 X Y Z I J K) и задаёт K иначе, чем современные стойки: как линейное перемещение на один радиан дуги (п. 4.3.4). В LinuxCNC K — это приращение центра по Z для дуг в плоскостях G18 и G19. Смысл адреса K в винтовом кадре проверяйте по руководству своей стойки.
Где винтовое врезание выгоднее прямого и наклонного — в статье «Фрезерование пазов и карманов»; резьбофрезерование — в статье «Нарезание резьбы: метчик, резьбофреза, накатка».
Ошибка радиуса: почему стойка не принимает дугу
Стойка считает два радиуса: от центра до начальной точки и от центра до конечной. Если они различаются больше допуска, кадр не выполняется. В LinuxCNC ошибка возникает, если разница больше 0,5 мм или если она больше 0,005 мм и одновременно больше 0,1 % радиуса. Допуски других стоек свои — смотрите руководство.
Типичный случай — I и J записаны как координаты центра, а стойка ждёт приращения. В примере со скруглением G03 X50. Y40. I50. J30. вместо I-10. J0. стойка поставит центр в (60 + 50; 30 + 30) = (110; 60). От него до начала (60; 30) — √(50² + 30²) ≈ 58,31 мм, до конца (50; 40) — √(60² + 20²) ≈ 63,25 мм. Разница 4,94 мм — кадр отклонён.
Причина | Как проявляется | Что сделать |
|---|---|---|
I, J как координаты центра | Ошибка радиуса на каждой дуге | Пересчитать как приращения от начала или включить режим абсолютного центра |
Округление координат | Ошибка на дугах малого радиуса, особенно из CAM | Выводить в мм не меньше трёх знаков после точки — так советует LinuxCNC |
Не та плоскость | Дуга в G18 или G19 вместо G17, ошибка или зарез | Явно писать G17, G18, G19 в начале программы и после подпрограмм |
Перепутаны G02 и G03 | Дуга идёт в другую сторону, центр на месте — радиус верен | Проверить направление с плюса перпендикулярной оси, прогнать симуляцию |
R с неверным знаком | Вместо короткой дуги — длинная, радиусы при этом совпадают | Для дуг около 180° и больше — центр I, J вместо R |
Две последние ошибки стойка не поймает: геометрия формально верна. Их ловит только графическая симуляция или проход по воздуху с увеличенным отступом.
Коррекция на радиус на дугах
Программу обычно пишут по контуру детали, а смещение на радиус фрезы добавляет коррекция G41/G42. Включать и отменять её на дуге нельзя — только на линейном перемещении; как устроены коррекции и нуль детали — в статье «Системы координат и коррекции инструмента».
Подачу на дуге задают так же, как на прямой, а обороты и подачу на зуб для своего инструмента и материала удобно подобрать в калькуляторе режимов резания.
Как проверить дугу до станка
- Найдите на чертеже начало, конец и центр дуги в системе координат детали.
- Посчитайте I, J как разность «центр минус начало» и сверьте с кадром.
- Посчитайте оба радиуса: от центра до начала и до конца. Они должны совпасть до тысячных миллиметра.
- Определите направление, глядя с плюса оси, перпендикулярной плоскости дуги.
- Проверьте плоскость G17, G18 или G19, режим центра и, если стоит R, его знак.
- Прогоните программу в графической симуляции стойки или CAM до первой детали.
Посчитать здесь: Режимы резания
Обороты шпинделя по скорости резания, минутная подача по подаче на зуб, съём материала и поправка подачи на утонение стружки — для фрезерования и точения.
Вопросы и ответы
Как понять, где G02, а где G03, если смотреть на чертёж?
Смотрите на плоскость дуги со стороны положительного направления оси, перпендикулярной к ней: для G17 — сверху, с плюса Z. Если инструмент идёт от начала дуги к концу по часовой стрелке — G02, против — G03.
Что лучше задавать — центр I, J или радиус R?
Центр однозначен и точнее, а окружность целиком задаётся только им. R удобен для коротких скруглений, но при одном радиусе через две точки проходят две дуги, и выбор между ними делает знак R. Дуги около 180° и почти полные окружности через R не задавайте.
I и J — это координаты центра?
По ГОСТ 20999-83 — нет: это приращения от начальной точки дуги к центру, и стандарт рекомендует задавать их так даже в абсолютной системе размеров. Некоторые стойки умеют читать центр в абсолютных координатах (в LinuxCNC это режим G90.1), но по умолчанию — приращения.
Почему стойка выдаёт ошибку радиуса на дуге из CAM?
Расстояние от центра до начала и до конца дуги различается больше допуска стойки. Чаще всего виноваты округление координат в постпроцессоре, неверный режим I, J (приращения или абсолютные) или не та плоскость G17–G19.
Источники
- ГОСТ 20999-83 Устройства числового программного управления для металлообрабатывающего оборудования. Кодирование информации управляющих программ · в реестре гида
- ГОСТ 20999-83 — карточка стандарта, статус «действует», введён 01.07.1984 взамен ГОСТ 20999-78 · в реестре гида
- LinuxCNC Documentation. G-codes — G2, G3 Arc Move
Посчитать
Читать также
G-код и CAM8 мин
Структура управляющей программы ЧПУ: кадр, слово, основные G- и M-коды
Из чего состоит программа для станка с ЧПУ, как читать кадр и слово, что делают основные G- и M-коды по ГОСТ 20999-83 и ISO 6983-1 и почему коды надо сверять с руководством к своей системе ЧПУ. С разбором короткой программы.
G-код и CAM7 мин
Системы координат станка и детали, G54 и коррекции инструмента
Нуль станка и нуль детали, смещения G54–G59, коррекция на длину G43/G49 и на радиус G41/G42/G40 — как это устроено в Fanuc-подобных системах, чем отличаются Sinumerik и Heidenhain и какие ошибки наладки чаще всего ведут к браку и столкновениям.
ЧПУ-фрезеровка9 мин
Фрезерование пазов и карманов: стратегии, радиусы углов, выход стружки
Как фрезеруют открытые и закрытые пазы, шпоночные пазы по ГОСТ 23360-78 и карманы: фреза по ширине паза или меньше, врезание рампой, по спирали и через отверстие, радиус внутреннего угла, глубина и вылет, отвод стружки и что указать на чертеже.
G-код и CAM6 мин
CAM и постпроцессор: как устроена цепочка от 3D-модели до станка
Путь от модели до управляющей программы — CAD, CAM, CLDATA, постпроцессор, проверка и станок. Что делает постпроцессор, почему «чужой» пост опасен, как проверяют программу до первой детали, какие CAM-системы есть на рынке и что передать программисту ЧПУ.