Разработка постпроцессоров
  • Разработка постпроцессоров
v20.0.1
Search Results for

    Show / Hide Table of Contents

    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 + ")");                        // конец группы
    }
    

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

    • Модель доступа к CLData
    In this article