Прочитать параметры врезки в панель

Материал из K3-Macro
Макро | Мебельные команды и функции | Мебельная панель | Прочитать свойства | Чтение параметров | Материал и толщина | Материал кромки | Форма углов | Форма прогибов сторон | Обрезка сторон | Параметры врезки | Параметры положения врезки | Секция раскрашивания врезки | Материал кромки на врезку | Форма панели | Информация о фрезеровке | Информация о пропиле | Поворот текстуры | Информация о фрезеровке по номеру (старая) | Информация о крепеже (первая линия) | Тип панели | Торцевая обработка | Информация о крепеже (несколько линий) | Извлечение контура | Отделка (старая) | Чтение параметров панельного длинномера | Параметры результирующей полилинии | Параметры результирующей полилинии без учета кромок | Элементы полилинии несквозных вырезов, попавшие внутрь результирующего контура без учёта кромок | Элементы полилинии несквозных вырезов, попавшие внутрь результирующего контура с учётом кромок | Линии маркировки, попавшие внутрь результирующего контура без учёта кромок | Линии маркировки, попавшие внутрь результирующего контура с учётом кромок | Информация о фрезеровке по ID (старая) | Прочитать информацию о линейках крепежа | Информация о фрезеровке по номеру | Информация о фрезеровке по ID | Комментарий к врезке | Отделка (до 18.02.2020) | Отделка | Комментарий к пропилу | Завершение работы с панелью

Операция возвращает геометрию контура, задающего врезку, нарост или линию маркировки в панели.

Код операции <Command>: 7

Массив входных данных <Array>:

  • <Array>[1]входной параметр. ID врезки или 0. В последнем случае (<Array>[1]=0) функция возвращает количество врезок в панели, а остальные элементы массива содержат идентификаторы (ID) врезок по порядку (<Array>[2] - идентификатор первого выреза, <Array>[3] - идентификатор второго выреза и т.д.)
  • <Array>[2]выходной параметр. Тип врезки:
  • 1 - вырез;
  • 8 - нарост;
  • 0 - линия маркировки;
  • <Array>[3]выходной параметр. Код формы контура выреза, нароста или линии маркировки. Если вырез непараметрический , функция возвращает единицу.
  • <Array>[4]выходной параметр. Количество элементов в контуре врезки или 1, если врезка параметрическая.
  • <Array>[5]выходной параметр. Количество параметров врезки или 0 - для свободной врезки
  • <Array>[6] - <Array>[...] -параметры параметрического выреза

Возвращаемое значение: Ноль в случае удачного завершения операции, минус единица в случае ошибки.

Возможные значения форм вырезов, наростов или линий маркировки представлены в таблице:

Код формы
Название
Параметры
1

Произвольная полилиния


502

Окружность

Param 1: радиус выреза.

600

Дуга со скруглением (для «беременной панели»)

Param 1: ширина дуги;

Param 2: прогиб дуги;

Param 3: радиус скругления.

601

Прямоугольник со скруглением (для «беременной панели»)

Param 1: ширина прямоугольника;

Param 2: высота прямоугольника;

Param 3: радиус скругления.

603

Фигурный вырез

Param 1: длина;

Param 2: ширина;

Param 3: верхний радиус

Param 4: нижний радиус

В случае непараметрического выреза функция возвращает в <Array>[3] единицу, а в <Array>[4] - количество элементов в замкнутом контуре этого выреза

Пример:

defarr Arr[10], Arr2[10];
#Undo MacroMode Undo Off;
objident prompt "Выберите панель" : Arr[1];
if (GetPan6Par(1,Arr)<=0)
{
  exit;
}
Arr[1]=0;
nCut=GetPan6Par(7,Arr);
putmsg("Кол-во вырезов="+str(nCut));
i=1;
loop:
if (i<=nCut)
{
  Arr2[1]=Arr[i+1];
  putmsg("ID выреза="+str(Arr2[1]));
  if (GetPan6Par(7,Arr2)==0)
  {
    putmsg("Тип выреза="+str(Arr2[2]));
    putmsg("Код формы="+str(Arr2[3]));
    tt=Arr2[4];
    if (IsVarDef("tt")==16)
    {
      putmsg("Контур выреза извлечен");
      if (Undo==1)
      {
        select stayblink Arr2[4];
        MacroMode Undo On "Test" Arr2[4];
        Undo=2;
      }
    }
    else
    {
      n=Arr2[5];
      j=1;
      loop2:
      if (j<=n)
      {
        putmsg("Параметр["+str(j)+"]="+str(Arr2[5+j]));
        j=j+1;
        goto loop2;
      }

   }
  }
  if (GetPan6Par(8,Arr2)==0)
  {
    putmsg("Привязка="+str(Arr2[2]));
    putmsg("X="+str(Arr2[3]));
    putmsg("Y="+str(Arr2[4]));
    putmsg("A="+str(Arr2[5]));
    putmsg("Глубина="+str(Arr2[6]));
  }
  if (GetPan6Par(9,Arr2)==0)
  {
    putmsg("Секция="+str(Arr2[2]));
  }
  i=i+1;
  goto loop;
}
dummy=GetPan6Par(999,Arr);
if (Undo==1)
{
  MacroMode Undo On;
}

Макро | Мебельные команды и функции | Мебельная панель | Прочитать свойства | Чтение параметров | Материал и толщина | Материал кромки | Форма углов | Форма прогибов сторон | Обрезка сторон | Параметры врезки | Параметры положения врезки | Секция раскрашивания врезки | Материал кромки на врезку | Форма панели | Информация о фрезеровке | Информация о пропиле | Поворот текстуры | Информация о фрезеровке по номеру (старая) | Информация о крепеже (первая линия) | Тип панели | Торцевая обработка | Информация о крепеже (несколько линий) | Извлечение контура | Отделка (старая) | Чтение параметров панельного длинномера | Параметры результирующей полилинии | Параметры результирующей полилинии без учета кромок | Элементы полилинии несквозных вырезов, попавшие внутрь результирующего контура без учёта кромок | Элементы полилинии несквозных вырезов, попавшие внутрь результирующего контура с учётом кромок | Линии маркировки, попавшие внутрь результирующего контура без учёта кромок | Линии маркировки, попавшие внутрь результирующего контура с учётом кромок | Информация о фрезеровке по ID (старая) | Прочитать информацию о линейках крепежа | Информация о фрезеровке по номеру | Информация о фрезеровке по ID | Комментарий к врезке | Отделка (до 18.02.2020) | Отделка | Комментарий к пропилу | Завершение работы с панелью