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

    Show / Hide Table of Contents

    CUTCOM - Компенсация инструмента

    Отображение команды

    Как команда отображается в списке команд CLData:

    CUTCOM ON(71)|OFF(72), LENGTH(9)|R(23) lr, X x, Y y, Z z,
    XY n, YZ m, XZ k, RIGHT(24)|LEFT(8)
    

    Команда CUTCOM используется для переключения режима компенсации на длину или радиус инструмента.

    Доступ из sppx

    Обработчик: program CutCom

    Параметр Массив CLD Имя CLD Описание
    ON(71)
    OFF(72)
    CLD[1] CLD.OnOff Тип команды: 71 - включение компенсации, 72 - выключение компенсации.
    LENGTH(9)
    R(23)
    CLD[2] CLD.Length Вид компенсации: 9 - компенсация на длину инструмента, 23 - компенсация на радиус инструмента.
    LR CLD[3] CLD.LR Значение компенсации на длину или радиус инструмента.
    x
    y
    z
    CLD[4]
    CLD[5]
    CLD[6]
    CLD.X
    CLD.Y
    CLD.Z
    Компенсация по осям.
    n
    m
    k
    CLD[7]
    CLD[8]
    CLD[9]
    CLD.N
    CLD.M
    CLD.K
    Значения компенсации в плоскостях.
    RIGHT(24)
    LEFT(8)
    CLD[10] CLD.RGT Направление компенсации на радиус инструмента: 24 - компенсация направо, 8 - компенсация налево.

    Для создания ISO-постпроцессора с помощью шаблонов используйте значения ISO.G, которые соответствуют параметрам CUTCOM:

    Параметр CLD Значение ISO
    CLD[1] = 72, CLD[2] = 9 ISO.G = 49
    CLD[1] = 71, CLD[2] = 9 ISO.G = 43
    CLD[1] = 72, CLD[2] = 23 ISO.G = 40
    CLD[1] = 71, CLD[2] = 23, CLD[10] = 24 ISO.G = 42
    CLD[1] = 71, CLD[2] = 23, CLD[10] = 8 ISO.G = 41

    Пример (из постпроцессора Fanuc (30i)_Mill):

    program CutCom
      if cld[2]=9 then begin                       ! LENGTH
        X = MaxReal; X@ = X
        Y = MaxReal; Y@ = Y
        Z = MaxReal; Z@ = Z
        if cld[1]=71 then begin ! Включение
          CoordSys = WCSNumber
          OutBlock
          if (NeedKorDl=0) and (OperationIsLathe=0) and
             ((WasLoadTool>0) or (H<>cld[3]))
          then begin
            NeedKorDl = 43
            H = cld[3]; H@ = H
          end
          OutBlock
        end else begin          ! Выключение
          KORDL = 49; !KORDL@ = MaxReal
          H = 0; H@ = H
          OutBlock
    
          call SwitchOffLocalCS
        end
      end else if cld[2]=23 then begin             ! RADIUS
        if cld[1]=72 then
          KorEcv = 40
        else begin
          if GFeed<>GFeed@ then OutBlock
          if cld[10]=24 then KorEcv=42 else KorEcv=41
          D = cld[3]
          D@ = MaxReal
        end
      end else begin
      end
    end
    

    Доступ из .NET

    Обработчики:

    public override void OnCutCom(ICLDCutComCommand cmd, CLDArray cld)
    public override void OnLengthCompensation(ICLDCutComCommand cmd, CLDArray cld)   // компенсация LENGTH(9)
    public override void OnRadiusCompensation(ICLDCutComCommand cmd, CLDArray cld)   // компенсация RADIUS(23)
    

    Наследование: ICLDCutComCommand : ICLDCommand.

    Читайте параметры из строго типизированного объекта cmd (рекомендуется); также доступны «сырой» массив cld[i] (те же индексы, что и в sppx) и именованные помощники cmd["..."]. В таблице перечислены члены команды, включая унаследованные от базовых интерфейсов; общие члены ICLDCommand (навигация, CLD, CLDFile, TechOperation, ...) описаны в разделе Модель доступа к CLData.

    Член Тип Описание
    cmd.IsOn bool Возвращает «True», если это команда включения компенсации, иначе возвращает «False».
    cmd.IsOff bool Возвращает «True», если это команда выключения компенсации, иначе возвращает «False».
    cmd.IsLength bool Возвращает «True», если это команда переключения компенсации LENGTH, иначе возвращает «False».
    cmd.IsRadius bool Возвращает «True», если это команда переключения компенсации RADIUS, иначе возвращает «False».
    cmd.IsRightDirection bool Определяет направление компенсации. «True» означает правое направление, «False» - левое.
    cmd.IsLeftDirection bool Определяет направление компенсации. «True» означает левое направление, «False» - правое.
    cmd.CorrectorNumber int Номер корректора инструмента в таблице корректоров станка.

    Пример - OnLengthCompensation (из постпроцессора Fanuc (30i)_Mill_DN):

    public override void OnLengthCompensation(ICLDCutComCommand cmd, CLDArray cld)
    {
        if (cmd.IsOn) {
            nc.GLCompens.Reset(43);
            nc.HLCompens.Reset(cmd.CorrectorNumber);
        } else {
            nc.GLCompens.Show(49);
            nc.HLCompens.Hide(0);
            nc.Block.Out();
        }
    }
    

    Пример - OnRadiusCompensation (из постпроцессора Fanuc (30i)_Mill_DN):

    public override void OnRadiusCompensation(ICLDCutComCommand cmd, CLDArray cld)
    {
        if (cmd.IsOn) {
            if (cmd.IsLeftDirection)
                nc.GRCompens.Show(41);
            else
                nc.GRCompens.Show(42);
            nc.DRCompens.Show(cmd.CorrectorNumber);
        } else {
            nc.GRCompens.Show(40);
        }
    }
    

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

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