Модальные команды собраны в наборы, названные "модальными группами", и только один член модальной группы может действовать в любой взятый момент времени. В общем модальные группы содержат команды, которые логически не могут применяться в одно время - как измерение в дюймах против измерения в миллиметрах. Станок может находиться одновременно во множестве режимов, с одним действующим режимом из каждой модальной группы. Модальные группы показаны на рисунке 10.3.
Рисунок 10.3 - Модальные группы
Для нескольких модальных групп, когда станок готов к приему комманд, один член группы должен действовать. Для этих модальных групп существуют настройки по умолчанию. Когда станок включается или ре-инициализируется, автоматически применяются значения по умолчанию.
Группа 1, первая группа в таблице, это группа G кодов для движения. Один из них всегда действует. Этот один называется текущим режимом движения.
Является ошибкой помещение G-кода из группы 1 и G-кода из группы 0 в одной строке если оба используют названия осей. Если G-код из группы 1 использующий название оси находится в действии на строке (тоесть был активирован в одной из предыдущих строк), и в строке появляется G-код из группы 0 использующий название оси, активность G-кода из группы 1 подразумевается для этой строки.
G-коды из группы 0 использующие названия осей это: G10, G28, G30 и G92.
Mach3 отображает текущий режим сверху каждого экрана.
10.7 G Коды
G коды языка ввода Mach3 показаны на рисунке 10.4 и описаны в подробностях.
Рисунок 10.4 - Таблица G кодов
Описания содержащие прототипы команд написаны другим шрифтом.
В прототипах команд, тильда (~) обозначает реальное значение. Как описано ранее, реальное значение может быть (1) явным числом, например 4.4, (2) выражением, например [2+2.4], (3) значением параметра, например #88, или (4) значением одиночной функции, например acos[0].
В большинстве случаев, если дано название оси (любой из них X~, Y~, Z~, A~, B~, C~, U~, V~, W~), то оно обозначает точку назначения. Номера осей по отношению к активной в данный момент координатной системе, если только не описано использование абсолютной системы координат. Там где названия осей необязательны, любые пропущенные оси будут иметь их текущие значения. Любые предметы в прототипах команд не явно описанных как необязательные требуются. Если требуемый предмет пропущен, то это ошибка.
U, V и W это синонимы A, B и C. Использование A с U, B с V и т.д. ошибочно (как использование А дважды в строке). В подробном описании кодов U, V и W не явно упоминаются каждый раз, но используются как A, B или С.
В прототипах, значения следующие за буквами зачастую даются как явные числа.
Если не указано другое, явные числа могут быть действительными значениями. Например G10 L2 может быть равнозначно заменено G[2*5] L[1+1]. Если значение параметра 100 равно 2, то G10 L#100 будет означать то же самое. Использование действительных значений которые не explicit числа как только что было показано в примере редко бывает полезным.
Если в прототипе написано L~, то зачастую "~" будет воспринято как "L число". Соответственно "~" в Н~ можно назвать "Н числом" и так далее для любой другой буквы.
Если фактор шкалы применен к любой оси то он будет применен к значению отвечающих X, Y, Z, A/U, B/V, C/W выражений и к относящимся I, J, K или R выражениям когда они используются.
10.7.1 Ускоренное линейное движение - G0
(а) Для ускоренного линейного движения, пишите G0 X~ Y~ Z~ A~ B~ C~, где все названия осей необязательны, за исключением того что хотя бы одно должно использоваться. G0 необязательно если текущий режим движения G0. Это создаст скоординирование линейное движение в точку назначения на текущем уровне пресечения (или медленне если станок не поедет так быстро). Ожидается что вырезание не начнется пока выполняется команда G0.
(b) Если было выполнено G16 для задания Полярного Начала, то для ускоренного линейного движения в точку описанную радиусом и углом может использоваться G0 X~ Y~. X~ это радиус линии из полярного начала G16 а Y~ это угол в градусах измеренный с увеличивающимся по направлению против часовой стрелки значением с направления на 3 часа.
Координаты текущей точки во время исполнения G16 это полярное начало.
Является ошибкой:
- все названия осей пропущены
Если компенсация радиуса резака активна, движение будет отличаться от описанного выше. Если G53 программируется в той же строке, движение также будет отличаться.
10.7.2 Линейное движение на уровне подачи - G1
(а) Для линейного движения на уровне подачи (неважно для резки или нет), пишите G1 X~ Y~ Z~ A~ B~ C~, где все названия осей необязательны, за исключением того что хотя бы одно должно использоваться. Писать G1 необязательно, если текущий режим движения это G1. Это даст скоординированное линейное движение в точку назначения на текущем уровне подачи (или медленне если станок не поедет так быстро).
(b) Если было выполнено G16 для задания Полярного Начала, то для ускоренного линейного движения в точку описанную радиусом и углом может использоваться G1 X~ Y~. X~ это радиус линии из полярного начала G16 а Y~ это угол в градусах измеренный с увеличивающимся по направлению против часовой стрелки значением с направления на 3 часа.
Координаты текущей точки во время исполнения G16 это полярное начало.
Является ошибкой:
- все названия осей пропущены
Если компенсация радиуса резака активна, движение будет отличаться от описанного выше. Если G53 программируется в той же строке, движение также будет отличаться.
10.7.3 Дуга на уровне подачи - G2 и G3
Круговая или эллипсная дуга описывается с помощью G2 (дуга по часовой стрелке) или G3 (дуга против часовой стрелки). Ось окружности или эллипса должна быть параллельна оси X, Y или Z координатной системы станка. Ось (или как вариант плоскость перпендикулярная оси) выбирается с помощью G17 (Z-ось, XY-плоскость), или G19 (X-ось, YZ-плоскость). Если дуга округлая, то она лежит на плоскости параллельной к выбранной плоскости. Если строка кода делает дугу и включает вращательное движение по оси, то вращательная ось включается на постоянном уровне так что вращательное движение начинается и оканчивается когда XYZ движение начинается и оканчивается. Строки такого типа врядли когда нибудь будут писаться.
Если компенсация радиуса резака активна, движение будет отличаться от описанного выше.
Для описания дуги допускается два формата. Мы будем называть их форматом центра и форматом радиуса. Для обоих G2 или G3 необязательно если это текущий режим движения.
10.7.3.1 Дуга формата радиуса
В формате радиуса, координаты конечной точки дуги в выбранной плоскости определяются вместе с радиусом дуги. Пишите G2 X~ Y~ Z~ A~ B~ C~ R~ (или G3 вместо G2). R это радиус. Все названия осей необязательны, за исключением того что хотя бы одно из двух выражения для осей в выбранной плоскости должно использоваться. Положительный радиус показывает что ось поворачивает на 180 градусов или меньше, а отрицательный радиус обозначает поворот от 180 до 359.999 градусов. Если ось эллиптическая, то значение точки окончания дуги на координатах оси параллельной к оси эллипса также указывается.
Является ошибкой:
- оба названия оси для осей выбранной плоскости пропущены
- точка окончания дуги та же, что и текущая точка
Программировать дуги формата радиуса которые являются почти полными окружностями или полукругами (лил почти полукругами) это плохая мысль, так как небольшое изменение в расположении точки окончания совершит намного большее изменение в положении центра окружности (и следовательно середины дуги). Эффект увеличения достаточно велик, чтобы ошибка в числе вращения сделала надрезы, выходящие за рамки допустимых. Почти полные окружности возмутительно плохи, полукруги (или почти) всего лишь очень плохи. Дуги другого размера (в пределах от небольшого до 165 градусов или от 195 до 345 градусов) вполне допустимы. Вот пример команды формата радиуса для вырезания дуги:
G17 G2 x 10 y 15 r 20 z 5
Это означает создание округлой или элиптической дуги по часовой стрелке (как видно из положительного значения оси Z), чья ось параллельна оси Z, оканчивающейся в точке X=10, Y=15 и Z=5 с радиусом 20. Если начальное значение Z равно 5, то это дуга окружности параллельной плоскости XY; если нет, то это эллиптическая дуга.
10.7.3.2 Дуга формата центра
В формате центра, координаты точки окончания дуги в выбранной плоскости определяются вместе с отступами центра дуги от текущего положения.
Является ошибкой:
- если когда дуга проэцируется на выбранную плоскость, расстояние от текущей точки к центру отличается от расстояния от точки окончания к центру более чем на 0.0002 дюйма (если используются дюймы) или 0.002 миллиметра (если используются миллиметры).
Центр определяется с использованием выражений I и J. Есть два пути их интерпретации. Обычный путь, это когда I и J являются центром по отношению к текущей точки в начале дуги. Это иногда называется режимом Инкрементации IJ. Второй путь, это когда I и J определяют центр как действительные координаты в текущей системе. Это называется Режимом Абсолютных IJ. Режим IJ задается из меню Настройка->Состояние при настройке Mach3. Выбор режимов нужен для обеспечения совместимости с промышленными контроллерами. Возможно Инкрементация будет лучшим выбором. В Абсолютном режиме обычно прийдется использовать оба выражения I и J если только по случайности центр дуги не окажется в начальной точке.
Когда выбрана плоскость XY, впишите G2 X~ Y~ Z~ A~ B~ C~ I~ J~ (или используйте G3 вместо G2). Все названия осей необязательны, за исключением того, что хотя бы одна из X или Y должна присутствовать. I и J это отступы от текущего положения или координат - в зависимости от режима IJ (направления X и Y) центра окружности. I и J необязательны, за исключением того, что хотя бы одна из них должна присутствовать.
Является ошибкой:
- X и Y обе пропущены
- I и J обе пропущены
Когда выбрана плоскость XZ, впишите G2 X~ Y~ Z~ A~ B~ C~ I~ K~ (или используйте G3 вместо G2). Все названия осей необязательны, за исключением того, что хотя бы одна из X или Z должна присутствовать. I и K это отступы от текущего положения или координат - в зависимости от режима IJ (направления X и Z) центра окружности. I и K необязательны, за исключением того, что хотя бы одна из них должна присутствовать.
Является ошибкой:
- X и Z обе пропущены
- I и K обе пропущены
Когда выбрана плоскость YZ, впишите G2 X~ Y~ Z~ A~ B~ C~ J~ K~ (или используйте G3 вместо G2). Все названия осей необязательны, за исключением того, что хотя бы одна из Y или Z должна присутствовать. J и K это отступы от текущего положения или координат - в зависимости от режима IJ (направления Y и Z) центра окружности. J и K необязательны, за исключением того, что хотя бы одна из них должна присутствовать.
Является ошибкой:
- X и Y обе пропущены
- I и J обе пропущены
Вот пример команды формата центра для окружности в режиме Инкрементации IJ:
G17 G2 x10 y16 i3 j4 z9
Это означает создание округлой или элиптической дуги по часовой стрелке (как видно из положительного значения оси Z), чья ось параллельна оси Z, оканчивающейся в точке X=10, Y=16, Z=9 с отступами центра в направлении Х на 3 единицы от текущего положения Х и отступом в направлении Y на 4 единицы от текущего положения Y. Если текущее положение Х=7 Y=7, то центр будет находиться в точке Х=10 Y=11. Если начальное значение Z равно 9, то это дуга окружности; если нет, то это эллиптическая дуга. Радиус этой дуги будет равен 5.
Эта дуга в режиме Абсолютных IJ будет выглядеть так:
G17 G2 x10 y16 i10 j11 z9
В формате центра радиус дуги не указывается, но может быть легко найден как расстояние от центра окружности до текущей точки либо до точки окончания дуги.
10.7.4 Сверление - G4
Для сверления напишите G4 P~. Это будет удерживать оси от движения на период времени в секундах или миллисекундах, определенный числом Р. Используемые единицы времени устанавливаются в диалоге Настройка->Логика. Например с единицами установленными как секунды, G4 P0.5 будет происходить сверление на протяжении половины секунды.
Является ошибкой:
- если значение Р отрицательно
10.7.5 Задание таблиц Данных Инструмента Координатной Системы и рабочих отступов - G10
Для задания значений отступов инструмента, напишите G10 L1 P~ X~ Z~ A~ B~ C~, где число Р должно быть целым в пределах от 0 до 255 - номер инструмента. Отступы инструмента определенного значением Р меняются на полученные. Значение А сменит значение радиуса инструмента. Только те значения, для которых указано название оси, будут заменены. Диаметр инструмента таким способом задать нельзя.
Чтобы задать значения координат для начала координатной системы креплений, напишите
G10 L2 P~ X~ Y~ Z~ A~ B~ C~, где значение Р должно быть целым в пределах от 0 до 255 - номер крепления - (Значения от 1 до 6 отвечают командам G54 до G59) и все названия осей необязательны. Координаты начала координатной системы определенные значением Р меняются на полученные значения координат (в рамках абсолютной системы координат). Только те координаты, для которых в строке указано название оси будут изменены.
Является ошибкой:
- если значение Р не равно целому числу в пределах от 0 до 255
Если отступы начала (сделанные командами G92 или G92.3) действовали перед использованием G10, они продолжат действовать.
Координатная система, чье начало задается командой G10 может быть активным или неактивным во время исполнения G10.
Набор значений не будет постоянным, если только таблицы инструмента или крепления не сохранены кнопкой на экране Таблиц.
Пример: G10 L2 P1 x3.5 y17.2 задает начало первой системы координат (той что выбирается командой G54) в точку, где X=3.5 Y=17.2 (в абсолютных координатах). Координата начала Z (и координаты для любых осей вращения) остаются такими же, какими были до выполнения строки.
10.7.6 Круговое создание отверстия по часовой стрелке/против часовой стрелки - G12 и G13
Эти команды кругового создания отверстия это тип цикла, позволяющего создать округлое отверстие большего размера чем используемый или подходящий инструмент, для вырезания внутренней части колец, "О" и т.д.
Напишите G12 I~ для движения по часовой стрелке и G13 I~ для движения против часовой стрелки.
Инструмент движется в направлении Х на значение указанное выражением I, и вырезает окружность в указанном направлении с координатами центра X и Y. После инструмент возвращается к центру.
Эффект неопределен если текущая плоскость не XY.