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

    Show / Hide Table of Contents

    PLANE - Рабочая плоскость

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

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

    PLANE XY(33) | YZ(37) | XZ(41) | YX(133) | ZY(137) | ZX(141)
    

    Команда PLANE используется для задания активной плоскости обработки. Обычно эта команда транслируется в G-коды G17, G18, G19. Активная плоскость используется при круговой интерполяции (определяет плоскость дуг), для реализации коррекции на радиус инструмента, для задания циклов обработки отверстий и т. д.

    Доступ из sppx

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

    Параметр Массив CLD Имя CLD Описание
    XY(33)
    YZ(37)
    XZ(41)
    YX(133)
    ZY(137)
    ZX(141)
    CLD[1] CLD.Plane Код плоскости: 33 – XY, 37 – YZ, 41 – XZ, 133 – YX, 137 – ZY, 141 – ZX.

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

    Значение элемента CLD Значение ISO
    CLD[1] = 33 ISO.G = 17
    CLD[1] = 37 ISO.G = 19
    CLD[1] = 41 ISO.G = 18

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

    program Plane
      case cld[1] of
        33: Plane = 17;      ! XY
        37: Plane = 19;      ! YZ
        41: Plane = 18;      ! XZ
        133: Plane = -17;      ! XY
        137: Plane = -19;      ! YZ
        141: Plane = -18;      ! XZ
      end
      if (Plane<>Plane@) and (abs(Plane)=abs(Plane@)) then
        Plane@ = Plane
    !  if Plane<>Plane@ then
    !    OutBlock
      case abs(Plane) of
        17: begin
          regZPlane = Rgs["Z"].Num
          regZCycle = Rgs["ZCYCLE"].Num
        end
        18: begin
          regZPlane = Rgs["Y"].Num
          regZCycle = Rgs["YCYCLE"].Num
        end
        19: begin
          regZPlane = Rgs["X"].Num
          regZCycle = Rgs["XCYCLE"].Num
        end
        else begin
          regZPlane = Rgs["Z"].Num
          regZCycle = Rgs["ZCYCLE"].Num
        end
      end
    end
    

    Доступ из .NET

    Обработчик:

    public override void OnPlane(ICLDPlaneCommand cmd, CLDArray cld)
    

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

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

    Член Тип Описание
    cmd.Plane CLDPlaneType Содержит точный тип плоскости. Возможны 6 стандартных значений: XY, YZ, ZX, InvXY, InvYZ, InvZX.
    Возможные значения:
    XY (17) - Стандартная плоскость XY, или G17
    YZ (19) - Стандартная плоскость YZ, или G19
    ZX (18) - Стандартная плоскость ZX, или G18
    InvXY (-17) - Плоскость, противоположная плоскости XY (-17)
    InvYZ (-19) - Плоскость, противоположная плоскости YZ (-19)
    InvZX (-18) - Плоскость, противоположная плоскости ZX (-18)
    cmd.PlaneGCode int Содержит номер стандартного ISO G-кода для типа плоскости. Возможны 6 значений: 17, 18, 19, -17, -18, -19.
    cmd.PlaneSign int Возвращает "+1" для плоскостей XY, YZ, ZX. Возвращает "-1" для плоскостей InvXY, InvYZ и InvZX.

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

    public override void OnPlane(ICLDPlaneCommand cmd, CLDArray cld)
    {
        nc.GPlane.v = cmd.PlaneGCode;
        planeSign = cmd.PlaneSign;
        switch (cmd.Plane) {
            case CLDPlaneType.XY: 
            case CLDPlaneType.InvXY:
                planeZIndex = 3;
                nc.PlaneZReg = nc.Z;
                break;
            case CLDPlaneType.ZX: 
            case CLDPlaneType.InvZX:
                planeZIndex = 2;
                nc.PlaneZReg = nc.Y;
                break;
            case CLDPlaneType.YZ: 
            case CLDPlaneType.InvYZ:
                planeZIndex = 1;
                nc.PlaneZReg = nc.X;
                break;
        }
    }
    

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

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