Общие определения
Макрос — это последовательность команд, которая выполняет конкретную задачу. Иногда мы будем использовать родственный термин — скрипт.
Для добавления, удаления и редактирования макросов воспользуйтесь пунктом меню Сервис → Настройки → Макросы.
Макрос в визуализаторе Inectra CNС представляет собой последовательность G-код команд со вставками кода на языке JavaScript. Вставки JavaScript-кода, которые включают в себя переменные, массивы, условные конструкции, циклы, обязательно должны быть заключены в фигурные скобки {}.
Объявление переменных
Переменные объявляются с помощью ключевого слова var, например:
{ var slow_f = 500 }
В этом примере переменная slow_f инициализируется значением 500. Переменные в JavaScript не имеют типа.
Объявление массива
{ var x_pos_list = [100, 200, 300, 400] }
Условные конструкции
{ if ($.tn < 1 || $.tn > 4) { $.message("Bad next tool number!"); $.exit() } }
В этом примере если переменная $.tn меньше 1 или больше 4, то нужно вывести текстовое сообщение и завершить макрос.
Циклы
{ while ($.status != 1) { $.wait() } }
В этом примере цикл крутится до тех пор, пока статус контроллера не изменится на Готов (код статуса 1), см. пояснения ниже).
Встроенные функции
$.wait() — команда холостого ожидания
$.input() — окно со списком полей для ввода входных параметров
$.message() — окно вывода списка значений
Встроенные переменные
$.wc.x — текущее значение рабочей координаты X
$.wc.y — текущее значение рабочей координаты Y
$.wc.z — текущее значение рабочей координаты Z
$.wc.a — текущее значение рабочей координаты A
$.wc.b — текущее значение рабочей координаты B
$.wc.c — текущее значение рабочей координаты C
$.mc.x — текущее значение машинной координаты X
$.mc.y — текущее значение машинной координаты Y
$.mc.z — текущее значение машинной координаты Z
$.mc.a — текущее значение машинной координаты A
$.mc.b — текущее значение машинной координаты B
$.mc.c — текущее значение машинной координаты C
$.prb.x — текущее значение координаты (машинной) зонда по оси X
$.prb.y — текущее значение координаты (машинной) зонда по оси Y
$.prb.z — текущее значение координаты (машинной) зонда по оси Z
$.prb.a — текущее значение координаты (машинной) зонда по оси A
$.prb.b — текущее значение координаты (машинной) зонда по оси B
$.prb.C — текущее значение координаты (машинной) зонда по оси C
$.tc — текущий номер инструмента
$.tn — следующий номер инструмента
$.status — статус контроллера
$.params.maxTravelValueX — размер рабочего поля по оси X
$.params.maxTravelValueY — размер рабочего поля по оси Y
$.params.maxTravelValueZ — размер рабочего поля по оси Z
$.params.maxTravelValueA — размер рабочего поля по оси A
$.params.maxTravelValueB — размер рабочего поля по оси B
$.params.maxTravelValueC — размер рабочего поля по оси C
$.params.axisTravelResolutionX — разрешение оси X (шаг/мм)
$.params.axisTravelResolutionY — разрешение оси Y (шаг/мм)
$.params.axisTravelResolutionZ — разрешение оси Z (шаг/мм)
$.params.axisTravelResolutionA — разрешение оси A (шаг/мм)
$.params.axisTravelResolutionB — разрешение оси B (шаг/мм)
$.params.axisTravelResolutionC — разрешение оси C (шаг/мм)
$.params.axisMaxRateX — максимальная скорость перемещения по оси X (командой G0)
$.params.axisMaxRateY — максимальная скорость перемещения по оси Y (командой G0)
$.params.axisMaxRateZ — максимальная скорость перемещения по оси Z (командой G0)
$.params.axisMaxRateA — максимальная скорость перемещения по оси A (командой G0)
$.params.axisMaxRateB — максимальная скорость перемещения по оси B (командой G0)
$.params.axisMaxRateC — максимальная скорость перемещения по оси C (командой G0)
$.params.axisAccelerationX — ускорение по оси X
$.params.axisAccelerationY — ускорение по оси Y
$.params.axisAccelerationZ — ускорение по оси Z
$.params.axisAccelerationA — ускорение по оси A
$.params.axisAccelerationB — ускорение по оси B
$.params.axisAccelerationC — ускорение по оси C
Cтатус контроллера (переменная $.status)
1 — Готов
2 — Авария
3 — Работа
4 — Домой
5 — Пауза
7 — Проверка
9 — Дверь
10 — Ручное перемещение (jogging)
Пример ввода пользовательских данных
Встроенная функция $.input() из макроса вызывает окно ввода пользовательских данных:
{ var p = $.input("Введите параметры", ["1", "2", "3"], [100, 200, 300]) }
Текст выше создаёт окно с заголовком «Введите параметры», в котором предлагается ввести значения трёх переменных. Эти значения заносятся в массив p:
Доступ к каждому введенному значению осуществляется через соответствующую ячейку массива (индексация массива начинается с 0):
{ var fast_f = parseFloat(p[0]) }
Здесь введенное значение параметра «1» извлекается из нулевой ячейки массива и преобразуется в число с плавающей точкой, а далее записывается в переменную fast_f.
Вывод значений переменных
Для вывода какой-либо информации служит встроенная функция $.message(). Например:
{ $.message(["Введенные значения: ", "1: " + p[0], "2: " + p[1], "3: " + p[2]]) }
Этот пример выводит следующее окно:
Использование переменных в команде запуска G-кода
Часто возникает необходимость запустить G-код команду, в которой значение какой-либо координаты нужно вставить из определенной переменной. В этом случае переменную необходимо заключить в фигурные скобки как вставку JavaScript-кода, например:
G38.2X{-search_dist}F{slow_f}
В этом примере дистанция поиска для команды G38.2 подставляется из переменной search_dist с противоположным знаком, а скорость поиска — из переменной slow_f.
Внутри фигурных скобок можно также помещать сложные арифметические выражения, например:
G0G91Y{(q - ($.prb.y + offset)) / 2}