STRUCTURE - Структура траектории
Отображение команды
Как команда отображается в списке команд CLData:
STRUCTURE ON(71)|OFF(72), TYPE(Level), Comment(Level: -65)
Команда STRUCTURE позволяет представить древовидную структуру команд CLData в виде линейного списка команд.
Доступ из sppx
Обработчик: program Structure
В CAM-системе траектория каждой операции представлена в виде дерева, разделённого на группы и подгруппы, внутри которых размещаются обычные команды перемещения инструмента, включения шпинделя или подачи и т. д. Внутри генератора постпроцессоров траектория представлена линейным списком команд, не разделённым на группы. Команда STRUCTURE предназначена для сохранения исходной информации о том, в какой группе изначально находилась команда CLData. Каждая группа преобразуется в две команды: STRUCTURE ON(71) и STRUCTURE OFF(72). Первая команда определяет начало группы, а вторая - её конец. Все элементы, размещённые внутри группы, будут находиться между этими двумя командами. Группы также могут быть вложены друг в друга: внутри блока STRUCTURE ON(71)... STRUCTURE OFF(72) может быть вложено несколько других блоков STRUCTURE ON(71)... STRUCTURE OFF(72).
| Параметр | Массив CLD | Описание |
|---|---|---|
| ON(71) OFF(72) |
CLD[1] | Признак того, что данная команда является началом или концом группы: ON(71) - команда определяет начало группы, OFF(72) - команда определяет конец группы. |
Параметры, доступные через оператор cmd
| TCLDStructure: ComplexType | Команда, определяющая структуру |
|---|---|
| IsClose: Integer | cmd.Int["IsClose"] - Признак того, что данная команда является началом или концом группы: 0 - команда определяет начало группы, 1 - команда определяет конец группы. |
| NodeType: String | cmd.Str["NodeType"] - Строка, определяющая тип группы. Например, Approach - группа перемещений подвода, Level - слой обработки и т. д. Эта строка не переводится на локальные языки. |
| Comment: String | cmd.Str["Comment"] - Имя группы, отображаемое в дереве траектории CAM-системы. Может быть переведено на локальные языки и содержать произвольные символы. |
Пример (из постпроцессора робота KUKA):
program Structure
str1, str2: string
str1 = Cmd.Str["NodeType"]
! str2 = Cmd.Str["Comment"]
if CLD.OnOff=71 and drilling = 10 then begin
cdis = ""
end
if CLD.OnOff=72 and drilling = 10 then begin
cdis = " C_DIS"
end
!----------------------------------------------------------------------------
if CLD.OnOff=71 and drilling=1 and pos("BodySection", str1)>0 then !только для обработки отверстий
drilling = 10
if CLD.OnOff=72 and drilling=10 and pos("BodySection", str1)>0 then !только для обработки отверстий
drilling = 0
end
Доступ из .NET
Обработчик:
public override void OnStructure(ICLDStructureCommand cmd, CLDArray cld)
Наследование: ICLDStructureCommand : ICLDCommand.
Читайте параметры из строго типизированного объекта cmd (рекомендуется); также доступны «сырой» массив cld[i] (те же индексы, что и в sppx) и именованные помощники cmd["..."]. В таблице перечислены члены команды, включая унаследованные от базовых интерфейсов; общие члены ICLDCommand (навигация, CLD, CLDFile, TechOperation, ...) описаны в разделе Модель доступа к CLData.
| Член | Тип | Описание |
|---|---|---|
cmd.IsOpen |
bool |
Содержит "true", если команда является началом новой группы. Иначе содержит "false". |
cmd.IsClose |
bool |
Содержит "true", если команда является концом группы. Иначе содержит "false". |
cmd.NodeType |
string |
Текстовый атрибут, определяющий тип группы. Существует несколько стандартных типов групп, таких как "Approach", "String", "Level" и т. д. Но может содержать и любое произвольное значение. |
cmd.Comment |
string |
Произвольный текстовый комментарий или имя группы. |
Пример:
public override void OnStructure(ICLDStructureCommand cmd, CLDArray cld)
{
if (cmd.IsOpen)
nc.OutWithN("(>>> " + cmd.NodeType + ": " + cmd.Comment + ")"); // начало группы
else if (cmd.IsClose)
nc.OutWithN("(<<< " + cmd.NodeType + ")"); // конец группы
}