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

    Show / Hide Table of Contents

    PPFUN TECHINFO(58) - Команда технологических параметров

    Команда технологических параметров PPFUN TECHINFO(58) передаёт дополнительную технологическую информацию об операции CAM-системы. Команда PPFUN TECHINFO(58) генерируется в начале списка технологических команд операции.

    Параметры

    Массив CLD Параметр Описание переменной Группа
    1 SubCode 58 (TechInfo)
    2 2 Версия CLData
    3 3 Минимальное значение координаты X Габарит траектории
    4 4 Минимальное значение координаты Y
    5 5 Минимальное значение координаты Z
    6 6 Максимальное значение координаты X
    7 7 Максимальное значение координаты Y
    8 8 Максимальное значение координаты Z
    9 9 Уровень безопасной плоскости (уровень ускоренного перемещения для электроэрозионных операций) Уровни
    10 10 Верхний уровень обработки
    11 11 Нижний уровень обработки
    12 12 Припуск Заготовка
    13 13 Минимальное значение координаты X
    14 14 Минимальное значение координаты Y
    15 15 Минимальное значение координаты Z
    16 16 Максимальное значение координаты X
    17 17 Максимальное значение координаты Y
    18 18 Максимальное значение координаты Z
    19 19 Допуск CLData (число десятичных знаков) Допуск
    20 20 Единицы измерения: 0 – мм; 1 – дюймы.
    21 21 Минимальная длина дуги
    22 22 Отклонение от заготовки
    23 23 Отклонение в заготовку
    24 24 Припуск операции
    25 25 Тип инструмента: 0 – цилиндрическая 1 – сферическая 2 – тороидальная 3 – двухрадиусная 4 – ограниченная двухрадиусная 5 – коническая фреза 6 – ограниченная коническая фреза 7 – гравёр 8 – сверло 9 – составной инструмент 10 – фреза с отрицательным радиусом 11 – резец 12 – метчик 13 – центровочное сверло 14 – зенковка 15 – цековка 16 – развёртка 17 – резьбовое сверло 100 – наружный резец 101 – расточной резец 102 – наружный резьбовой резец 103 – внутренний резьбовой резец 104 – наружный канавочный резец 105 – внутренний канавочный резец 106 – торцовый канавочный резец Инструмент
    26 26 Номер инструмента
    27 27 Диаметр инструмента (диаметр проволоки для электроэрозионных операций)
    28 28 Длина рабочей части
    29 29 Угол рабочей части (угол конуса в радианах)
    30 30 Радиус скругления
    31 31 Номер коррекции на длину. Устанавливается в 0, если коррекция на длину выключена
    32 32 Номер коррекции на радиус. Устанавливается в 0, если коррекция на радиус выключена
    33 33 Значение коррекции на длину
    34 34 Значение коррекции на радиус
    35 35 Точка привязки осевого инструмента: 0 – Центр, 1 – Пользовательская, 2 – Торец. Точка привязки токарного инструмента: 0 – Слева, 1 – Справа, 2 – Сверху, 3 – Снизу, 4 – Сверху слева, 5 – Сверху справа, 6 – Снизу слева, 7 – Снизу справа, 8 – Центр, 9 – Пользовательская.
    36 36 Частота вращения шпинделя (об/мин) Скорость
    37 37 Ускоренная подача (мм/мин или дюйм/мин)
    38 38 Рабочая подача
    39 39 Подача врезания
    40 40 Подача подхода
    41 41 Подача отвода
    42 42 Следующая подача
    43 43 Подача возврата
    44 44 Длина траектории Свойства траектории
    45 45 Время обработки операции в минутах
    46 46 Общее время техпроцесса в минутах
    47 47 Верхний уровень направляющей электроэрозионного станка Уровни
    48 48 Нижний уровень направляющей электроэрозионного станка
    49 49 Рабочее время операции в минутах Свойства траектории
    51 51 Ось инструмента: 1 – X, 2 – Y, 3 – Z. (Точение – 2, Токарное сверление – 1, Фрезерование – 3)
    52 52 Координата X Точка смены инструмента
    53 53 Координата Y
    54 54 Координата Z
    55 55 Координата X Опорная точка
    56 56 Координата Y
    57 57 Координата Z
    58 58 Номер активного сопла: 0 – СОЖ выключена, 1 – полив, 2 – туман, 3 – через инструмент.
    60 60 Технологическая группа операции: 0 – не задана, 1 – фрезерование, 2 – точение, 3 – вспомогательная, 4 – электроэрозионная.
    61 61 0 – команда PPFUN не активирована 1 – команда PPFUN активирована
    62 62 Кинематика робота: 0 – положение 3-го сустава не зависит от положения 2-го сустава 1 – 2-й и 3-й суставы связаны параллелограммным механизмом Кинематика робота
    63 63 Номер детали, явно заданный пользователем в параметрах детали CAM-системы Деталь
    64 64 Код вектора направления смещения вершины токарного инструмента (0-8): 0: X=0, Y=0; 1: X=+1, Y=+1; 2: X=-1, Y=+1; 3: X=-1, Y=-1; 4: X=+1, Y=-1; 5: X=+1, Y=0; 6: X=0, Y=+1; 7: X=-1, Y=0; 8: X=0, Y=-1; Код вершины инструмента
    65 65 Номер системы координат заготовки (G54, G55, G54.2 и т. д.) операции Номер системы координат
    80 80 Шаг вдоль оси инструмента для многослойной обработки (только для операции 2D-контур) Слои
    81 81 Припуск чистового слоя вдоль оси инструмента (только для операции 2D-контур) Слои

    Параметры, доступные через оператор cmd

    Тип Описание Описание вложенного поля
    TCLDPPFun: ComplexType Команда, определяющая технологические параметры операции
    PPFun: Array, Key="RecordID" cmd.Ptr["PPFun"] - массив структур разных типов для хранения параметров команды PPFun
    TPPFunTechInfoParameters: ComplexType cmd.Ptr["PPFun"].Item[1] или cmd.Ptr["PPFun(TechInfo)"] - отдельный элемент массива PPFun. Содержит информацию о технологических параметрах операции. Доступ к элементам массива возможен как по индексу, так и по ключевому полю RecordID. Для команды определения технологических параметров операции всегда имеет значение "TechInfo".
    RecordID: String cmd.Str["PPFun(TechInfo).RecordID"] - идентификатор типа постпроцессорной функции. В данном случае всегда имеет значение "TechInfo".
    RecordCode: Integer cmd.Int["PPFun(TechInfo).RecordCode"] - код, идентифицирующий тип постпроцессорной функции. В данном случае всегда имеет значение "58".
    Operation: Array cmd.Ptr["PPFun(TechInfo).Operation"] - почти полный список параметров технологической операции. Дочерними элементами являются разнообразные параметры операции: тип операции, её имя, группа, свойства инструмента, припуски, допуски расчёта, методы подхода и отхода, уровни и шаг обработки и т. д. Конкретный набор параметров зависит от типа операции. Тип операции можно получить как cmd.Ptr["PPFun(TechInfo).Operation(1)"].Name.
    SetupStage: ComplexType cmd.Ptr["PPFun(TechInfo).SetupStage"] - информация об установе, в котором находится операция.
    Index: Integer Индекс установа в списке установов проекта CAM-системы
    Name: String Имя группы установа в проекте CAM-системы
    Tool: ComplexType cmd.Ptr["PPFun(TechInfo).Tool"] - параметры, относящиеся к инструменту, используемому в технологической операции.
    ID: Integer cmd.Int["PPFun(TechInfo).Tool.ID"] - идентификатор (номер) инструмента
    HolderID: Integer cmd.Int["PPFun(TechInfo).Tool.HolderID"] - идентификатор (номер) державки инструмента
    RevolverID: String cmd.Str["PPFun(TechInfo).Tool.RevolverID"] - строковый идентификатор револьверной головки.
    Workpiece: ComplexType cmd.Ptr["PPFun(TechInfo).Workpiece"] - параметры, относящиеся к заготовке, используемой в технологической операции.
    HolderID: String cmd.Str["PPFun(TechInfo).Workpiece.HolderID"] - строковый идентификатор державки заготовки.
    Part: ComplexType cmd.Ptr["PPFun(TechInfo).Part"] - информация о детали, обрабатываемой этой операцией
    Index: Integer Индекс детали в списке деталей проекта CAM-системы
    Number: Integer Номер детали, явно заданный пользователем в параметрах детали CAM-системы
    Name: String Имя детали (имя группы), заданное в CAM-системе

    Ниже приведён пример доступа к свойствам операции через оператор cmd.

    program PPFun
      if cld[1]=58 then begin ! TechInfo
        call AnalysePPFun
      end
    end
    sub AnalysePPFun
      OpType: String
      OpGroup: Integer
      ! Строковое имя типа операции: TSTRoughingWaterlineOp, TST2DContouringOp, TSTDrillOp, LatheRoughOp...
      OpType = cmd.Ptr["PPFun(TechInfo).Operation(1)"].Name
      ! OperationGroup:
      ! 1 - фрезерование
      ! 2 - точение
      ! 3 - вспомогательная
      ! 4 - проволочная электроэрозионная
      OpGroup = cmd.Int["PPFun(TechInfo).Operation(1).OperationGroup"]
      Output "; Operation type = " + OpType
      Output "; Operation comment = " + cmd.Str["PPFun(TechInfo).Operation(1).Comment"]
      if OpGroup=1 then begin ! фрезерование
        Output "; Tool overhang = " + Str(cmd.Flt["PPFun(TechInfo).Operation(1).ToolSection.Tools(1).AxialOverhang"])
        if OpType="TSTRoughingWaterlineOp" then begin
          Output "; Axial stock = " + Str(cmd.Flt["PPFun(TechInfo).Operation(1).Stocks.Axial"])
          Output "; Radial stock = " + Str(cmd.Flt["PPFun(TechInfo).Operation(1).Stocks.Radial"])
        end
      end else if OpGroup=2 then begin ! точение
        Output "; Tool X overhang = " + Str(cmd.Flt["PPFun(TechInfo).Operation(1).ToolSection.Tools(1).Overhang.Value.X"])
        Output "; Tool Y overhang = " + Str(cmd.Flt["PPFun(TechInfo).Operation(1).ToolSection.Tools(1).Overhang.Value.Y"])
        Output "; Tool Z overhang = " + Str(cmd.Flt["PPFun(TechInfo).Operation(1).ToolSection.Tools(1).Overhang.Value.Z"])
        Output "; Axial stock = " + Str(cmd.Flt["PPFun(TechInfo).Operation(1).LatheStock.AxialValue"])
        Output "; Radial stock = " + Str(cmd.Flt["PPFun(TechInfo).Operation(1).LatheStock.RadialValue"])
      end
    subend
    

    Доступ из .NET

    Помимо базового OnPPFun, этот подкод вызывает специальный обработчик OnStartTechOperation:

    public override void OnStartTechOperation(ICLDTechOperation op, ICLDPPFunCommand cmd, CLDArray cld)
    

    Общая модель .NET (члены, индексация 1-based и 0-based) описана в разделе Постпроцессорная функция (PPFUN).

    Чтение XML-свойств операции по имени

    Для TECHINFO/ENDTECHINFO, помимо фиксированных параметров выше, команда обеспечивает доступ к XML-свойствам операции по имени через помощники cmd:

    Предупреждение. Это прямое чтение внутренних структур данных CAM-системы. Их расположение и именование не гарантированно сохраняются между версиями. Используйте это только как крайнее средство, когда нужное значение не предоставляется через публичный API CLData выше. По возможности предпочитайте документированные параметры и типизированные члены.

    Индекс элемента массива различается между средами — 1-based в sppx, 0-based в .NET:

    • sppx: cmd.Ptr["PPFun(TechInfo).Operation(1)"]
    • .NET: cmd.Ptr["PPFun(TechInfo).Operation(0)"]

    Пример (из постпроцессора Heidenhain (iTNC530)_Mill — sppx, 1-based индекс элемента):

    ! глубоко вложенное свойство операции, доступное через команду TechInfo операции
    MinDepth = cmd.Flt["PPFun(TechInfo).Operation(1).ChipBreaking.DepthDegression.MinStepPercent"]
    

    Чтобы узнать точное имя свойства: откройте инспектор свойств операции, найдите свойство, нажмите кнопку ... справа в его строке и выберите «Скопировать имя свойства в буфер обмена»; либо изучите XML операции. Правила именования и полная модель доступа описаны в разделе Использование XML-свойств из кода.

    Пример — OnStartTechOperation (из постпроцессора Heidenhain_Mill_iTNC530_DN):

    public override void OnStartTechOperation(ICLDTechOperation op, ICLDPPFunCommand cmd, CLDArray cld)
    {
        nc.WriteLine();
        nc.OutText("; " + Transliterate(op.Comment));
    
        // 17 TOOL CALL 1 Z S159 DL+0 DR+0
        // 18 TOOL DEF 2
        // 19 L Z+0 FMAX M91            
        if (op.Tool.Command!=null && op.Tool.Command.ToolChanged) { // если у операции есть команда загрузки инструмента
            double s = 0;
            if (op.SpindleCommand!=null)
                s = Abs(op.SpindleCommand.RPMValue);
            nc.OutText($"TOOL CALL {op.Tool.Number} {GetToolPlaneName(op.Tool.Command)} {nc.S.ToString(s)} DL+0 DR+0");
    
            int nextTool = FindNextOpToolNumber(op);
            if (nextTool>0)
                nc.OutText($"TOOL DEF {nextTool}");
    
            if (firstToolNumber<0)
                firstToolNumber = op.Tool.Number;
            nc.OutText("L Z+0 FMAX M91");
        }
    
    }
    

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

    • Постпроцессорная функция (PPFUN)
    • Модель доступа к CLData
    • PPFUN ENDTECHINFO(59)
    • Использование XML-свойств из кода
    In this article