![]() |
Служебные функции и переменные |
|
В системе имеется ряд вспомогательных предопределенных переменных и функций, использование которых позволяет облегчить процесс написания постпроцессоров. •Функции и операторы работы с 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>). •1 – если происходит внутренний обход следующего пересечения; •0 – если внешний обход; •-1 – если тип обхода невозможно определить (например, совпадение направлений соседних кадров при линейной интерполяции). •<Cross> – возвращает значение 0, если текущий элемент сопрягается с последующим, и 1 если пересекаются. В общем случае две прямые всегда пересекаются, прямая и окружность могут сопрягаться, либо пересекаются. Эта переменная может быть использована для реализации коррекции. •<NextToolNum{(Mode)}> – возвращает номер следующего инструмента. Опциональный параметр Mode определяет поведение после последней команды смены инструмента. Если Mode равен 0 (значение по умолчанию, когда параметр пропущен) функция возвращает -1 после последней команды смены инструмента. Если Mode равен 1, то функция после последней команды смены инструмента возвращает номер первого инструмента, используемого в проекте. •<ToolChange> – возвращает признак смены инструмента (последует ли далее в файлах CLData команда <LOADTL>): •1 – смена инструмента ещё не была, но будет или в данный момент происходит; •0 – смена инструмента была и ещё будет или происходит в очередной раз; •-1 – смена инструмента происходит в последний раз и далее смены инструмента не будет. Работу функции можно продемонстрировать на следующем примере:
•<WorkingMode> – возвращает режим работы генератора постпроцессоров: •1 – генератор постпроцессоров запущен системой SprutCAM во время выполнения операции при включенном режиме "Моделирование обработки по тексту управляющей программы". Если в SprutCAM запущено выполнение сразу всех операций, <PARTNO> и <FINI> являются первой и последней технологическими командами соответственно. Если операции выполняются по одной, команды <PARTNO> и <FINI> не формируются; •0 – генератор постпроцессоров запущен как отдельное приложение или при генерации текста управляющей программы из SprutCAM на закладке <Технология>.
Сопутствующие ссылки: |
|
![]() |