Служебные функции и переменные

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

  • Функции и операторы работы с CLData.

  • <Регистры>. Каждому регистру в постпроцессоре соответствует переменная, имя которой совпадает с именем регистра. В переменной хранится текущее значение регистра. Тип регистровой переменной – вещественный.

  • <Старые значения регистров>. До вывода текущего кадра можно получить старые значения регистров из переменных, идентификаторы которых есть идентификаторы соответствующих регистровых переменных со знаком <@> в конце. Например, <X@> – старое значение регистра <X>.

  • Оператор <RGS>. Массив <RGS> позволяет получить доступ к регистру по его индексу в списке. Это может быть полезно в некоторых случаях (например внутри многоканальных постпроцессоров где вы можете иметь отдельный набор регистров для каждого канала и хотите быстро переключаться между ними) вместо использования имен регистров.

  • <Массив CLD>. Имеется предопределенный массив вещественных чисел <CLD>. Он предназначен для хранения числовых параметров текущей обрабатываемой технологической команды CLData.

  • В переменной <RecNum> хранится количество параметров текущей технологической команды, которые содержатся в массиве <CLD>. То есть, при вызове программы обработки технологической команды в переменную заносится максимальный номер значащего элемента массива <CLD>.

  • <Массив GMA> для работы с параметрами команды многокоординатного перемещения <MULTIGOTO>.

  • Переменная <CLData$>. Если параметром технологической команды является не массив вещественных данных, а текстовая строка, то при вызове соответствующей программы обработки строка передается через переменную <CLData$>. Строка хранится до тех пор, пока не будет переопределена новой командой. Тип – строковый.

  • Переменная <OutStr$>. В переменной содержится текст текущего кадра управляющей программы после команд <FORMBLOCK> или <OUTBLOCK>. Тип – строковый.

  • Переменная <BlockStep> содержит значение приращения, используемого при автоматическом формировании номера кадра. Автоматическая нумерация кадров настраивается в окне <Общие параметры>. При включенной автоматической нумерации перед формированием каждого следующего кадра к номеру кадра прибавляется величина <BlockStep>. Если присвоить данной переменной значение 0, то автоматическая нумерация кадра отключается.

  • В строковой переменной <NCName$> содержится имя файла управляющей программы без расширения и без пути к файлу.

  • Строковая переменная <NCPath$> содержит имя файла управляющей программы с расширением и полным путём к файлу.

  • В строковой переменной <SPPName$> содержится имя файла постпроцессора без расширения и без пути к файлу.

  • Строковая переменная <SPPPath$> содержит имя файла постпроцессора с расширением и полным путём к файлу.

  • <CurDate> – возвращает строку, содержащую текущую дату.

  • <CurTime> – возвращает строку, содержащую текущее время.

  • Переменная <Error> – целочисленная переменная. Если при выполнении программы произошли какие-либо ошибки, то номер ошибки содержится в переменой <Error>.

  • Переменные <Xt>, <Yt>, <Zt> – текущее положение инструмента. Тип – вещественный (переменные заполняются автоматически перед вызовом программ <CIRCLE>, <FROM>, <ABSMOV>, <GOHOME>).

  • Переменные <Xp>, <Yp>, <Zp> – предыдущее положение инструмента. Тип – вещественный (заполняются автоматически перед вызовом программ <CIRCLE>, <FROM>, <ABSMOV>, <GOHOME>).

  • Переменные <Xc>, <Yc>, <Zc> – координаты центра окружности (заполняются автоматически перед вызовом программы <CIRCLE>).

  • Переменная <Interp> – текущая интерполяция (значение заносится автоматически перед вызовом программ <CIRCLE>, <FEDRAT>, <ABSMOV>, <RAPID>, <GOHOME>). Возможные значения:

  • 0 – быстрый ход,

  • 1 – линейная интерполяция,

  • 2 – круговая интерполяция по часовой стрелке,

  • 3 – круговая интерполяция против часовой стрелки.

  • Переменная <ToolRad> – радиус инструмента (значение заносится автоматически перед вызовом программы <LOADTL>).

  • Переменная <ArcPlane> – текущая плоскость круговой интерполяции (значение заносится автоматически перед вызовом программы <PLANE>), возможные значения:

  • 33 – XY,

  • 37 – YZ,

  • 41 – XZ,

  • 133 – YX,

  • 137 – ZY,

  • 141 – ZX.

  • Переменная <Feed> – текущее значение подачи (значение заносится автоматически перед вызовом программы <FEDRAT>).

  • Переменные <TlComp>, <TrComp> – номер корректора на длину и на радиус соответственно (заполняется перед вызовом программы <CUTCOM> и <LOADTL>).

  • Переменные <FromX>, <FromY>, <FromZ> – координаты исходной точки (заполняется перед вызовом программы <FROM>).

  • <FlagIn> возвращает:

  • 1 – если происходит внутренний обход следующего пересечения;

  • 0 – если внешний обход;

  • -1 – если тип обхода невозможно определить (например, совпадение направлений соседних кадров при линейной интерполяции).

  • <Cross> – возвращает значение 0, если текущий элемент сопрягается с последующим, и 1 если пересекаются. В общем случае две прямые всегда пересекаются, прямая и окружность могут сопрягаться, либо пересекаются. Эта переменная может быть использована для реализации коррекции.

  • <NextToolNum{(Mode)}> – возвращает номер следующего инструмента. Опциональный параметр Mode определяет поведение после последней команды смены инструмента. Если Mode равен 0 (значение по умолчанию, когда параметр пропущен) функция возвращает -1 после последней команды смены инструмента. Если Mode равен 1, то функция после последней команды смены инструмента возвращает номер первого инструмента, используемого в проекте.

  • <ToolChange> – возвращает признак смены инструмента (последует ли далее в файлах CLData команда <LOADTL>):

  • 1 – смена инструмента ещё не была, но будет или в данный момент происходит;

  • 0 – смена инструмента была и ещё будет или происходит в очередной раз;

  • -1 – смена инструмента происходит в последний раз и далее смены инструмента не будет.

Работу функции можно продемонстрировать на следующем примере:


Последовательность команд CLData

Значение, возвращаемое функцией <ToolChange>

PARTNO

1

...

1

...

1

...

1

LOADTL

1

...

0

...

0

...

0

LOADTL

0

...

0

...

0

...

0

LOADTL

-1

...

-1

...

-1

...

-1

FINI

-1


  • <WorkingMode> – возвращает режим работы генератора постпроцессоров:

  • 1 – генератор постпроцессоров запущен системой SprutCAM во время выполнения операции при включенном режиме "Моделирование обработки по тексту управляющей программы". Если в SprutCAM запущено выполнение сразу всех операций, <PARTNO> и <FINI> являются первой и последней технологическими командами соответственно. Если операции выполняются по одной, команды <PARTNO> и <FINI> не формируются;

  • 0 – генератор постпроцессоров запущен как отдельное приложение или при генерации текста управляющей программы из SprutCAM на закладке <Технология>.

Сопутствующие ссылки:

Предопределенные переменные и функции

Предопределенный массив <GMA>