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


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

Функции и операторы работы с 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>