Служебные функции и переменные
В системе имеется ряд вспомогательных предопределенных переменных и функций, использование которых позволяет облегчить процесс написания постпроцессоров.
<Регистры>. Каждому регистру в постпроцессоре соответствует переменная, имя которой совпадает с именем регистра. В переменной хранится текущее значение регистра. Тип регистровой переменной – вещественный.
<Старые значения регистров>. До вывода текущего кадра можно получить старые значения регистров из переменных, идентификаторы которых есть идентификаторы соответствующих регистровых переменных со знаком <@> в конце. Например, <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 на закладке <Технология>.
Сопутствующие ссылки: