Работа с панельными длинномерами

Материал из K3-Macro
(перенаправлено с «EndPanel»)
Макро | Мебельные команды и функции | Длинномеры | Текущий тип | Текущий длинномер | Материал | Открыть диалог выбора типа и материала длинномера одного вида | Подрезка длинномеров | Длина | Прогибы по сторонам длинномера | Параметры гнутого длинномера | Кромка на длинномерах | Путь к файлу и габариты профиля для текущего типа длинномера | Имя текущего длинномера | Смещение конца линии установки длинномера при подрезке заданным углом | Создание длинномера | Как обрезать длинномер, чтобы он остался длинномером | Соединение длинномеров | Чертежи | Работа с панельными длинномерами | Работа с профильными длинномерами | Функции интерфейса длинномеров

I.png В K3 Мебель, начиная с версии v7.3, функции BeginPanel, GetNContPan, GetPanelEl, GetPanElWrk, EndPanel устарели. Рекомендуется пользоваться более мощными функциями работы с мебельной панелью (см. соответствующий раздел)

Начать работу с панельным длинномером[править | править код]

INT BeginPanel(Object <Object>[, INT<Flag>])

Функция BeginPanel инициализирует внутренние структуры для работы с длинномером <Object> и возвращает количество контуров в геометрии панели длинномера. Если задан необязательный параметр <Flag> и он равен единице, то возврашается количество контуров полотна панели.

Вернуть количество элементов в контуре панельного длинномера[править | править код]

INT GetNContPan(INT <NC>)

Функция GetNContPan возвращает количество элементов в контуре с номером <NC> панельного длинномера.

Вернуть параметры элемента контура панельного длинномера[править | править код]

INT GetPanelEl(INT <NE>, INT<NC>, LOGICAL <Flag>, DOUBLE ARRAY <Arr[9]>)

Функция GetPanelEl заполняет массив <Arr[9]> геометрическими параметрами элемента <NE> контура <NC> текущего панельного длинномера и возвращает тип элемента контура:

  • 0 – точка,
  • <Arr[1]> - координата X точки
  • <Arr[2]> - координата Y точки
  • <Arr[3]> - координата Z точки
  • 1 – отрезок,
  • <Arr[1]> - координата X начала отрезка
  • <Arr[2]> - координата Y начала отрезка
  • <Arr[3]> - координата Z начала отрезка
  • <Arr[4]> - координата X конца отрезка
  • <Arr[5]> - координата Y конца отрезка
  • <Arr[6]> - координата Z конца отрезка
  • 2 – дуга,
  • <Arr[1]> - координата X начала дуги
  • <Arr[2]> - координата Y начала дуги
  • <Arr[3]> - координата Z начала дуги
  • <Arr[4]> - координата X конца дуги
  • <Arr[5]> - координата Y конца дуги
  • <Arr[6]> - координата Z конца дуги
  • <Arr[7]> - координата X средней точки дуги
  • <Arr[8]> - координата Y средней точки дуги
  • <Arr[9]> - координата Z средней точки дуги
  • 3 – окружность,
  • <Arr[1]> - координата X центра окружности
  • <Arr[2]> - координата Y центра окружности
  • <Arr[3]> - координата Z центра окружности
  • <Arr[4]> - радиус окружности
  • <Arr[5]> - ориентация

Параметр <Flag> определяет систему координат, в которой даются геометрические параметры элемента контура:

  • 0 - в ЛСК панельного длинномера
  • 1 - в ГСК

Вернуть обработку элемента контура[править | править код]

INT GetPanElWrk(INT <NE>, INT <NC>, INT<Type>[, ARRAY <Arr[5]>])

Функция GetPanElWrk возвращает ID (из Прайс-листа расходных материалов) обработки элемента <NE> контура <NC> текущего панельного длинномера и заполняет массив <Arr[5]> параметрами обработки:
Параметр <Type> - тип возвращаемой обработки

  • 1 - фрезеровка,
  • 2 - кромка

<code<Arr> – параметры обработки

  • <Arr[1]> – код материала кромки
  • <Arr[2]> – код цвета кромки
  • <Arr[3]>– маска способа построения кромки:
  • 0 – не включена в размер панели без предварительной фрезеровки
  • 1 - включена в размер панели
  • 2 - с предварительной фрезеровкой
  • 3 - включена в размер панели с предварительной фрезеровкой
  • <Arr[4]> – коэффициент сдвига кромки по толщине панели (от 0 до 1)
  • <Arr[5]> – величина сдвига кромки вдоль толщины панели в мм

Пример:

// Пример получения информации о форме длинномера

defarr Rez1l[4] Rez1r[4] Cut1[4] Gab1[6];
defarr Rez2l[4] Rez2r[4] Cut2[4] Gab2[6];
defarr arr[11];

objident : pnt1 ;

nkont=beginpanel(pnt1);
  putmsg("kont="+str(nkont))
  i=0
  L1:
  i=i+1
  nelem=GetNContPan(i)
  putmsg("elem="+str(nelem))
  j=0;
  L2:
  j=j+1
  type=GetPanelEl(j,i,0,arr);
  putmsg("type="+str(type))
  band=GetPanElWrk(j,i,2);
  putmsg("band="+str(band))
  L3:
  if (band>0) 
  {  
    if (band>250) 
    { 
       band=band-250; 
       goto L3; 
    } 
    color band; 
  }
  else 
  { 
    color 0 ; 
  }
  if (type==1) // отрезок
  {    
     line arr[1] arr[2] arr[3] arr[4] arr[5] arr[6] ;
  }
  else 
  {
    if (type==2) // дуга
    {
      arc arr[1] arr[2] arr[3] arr[4] arr[5] arr[6] arr[7] arr[8] arr[9];
    }
  }

  if (j<nelem) 
  { 
    goto L2; 
  }
  if (i<nkont) 
  { 
    goto L1; 
  }

err=endpanel();
exit;

Завершить работу с панельным длинномером[править | править код]

INT EndPanel()

Функция EndPanel освобождает память, захваченную для работы с длинномером и возвращает 0.


Макро | Мебельные команды и функции | Длинномеры | Текущий тип | Текущий длинномер | Материал | Открыть диалог выбора типа и материала длинномера одного вида | Подрезка длинномеров | Длина | Прогибы по сторонам длинномера | Параметры гнутого длинномера | Кромка на длинномерах | Путь к файлу и габариты профиля для текущего типа длинномера | Имя текущего длинномера | Смещение конца линии установки длинномера при подрезке заданным углом | Создание длинномера | Как обрезать длинномер, чтобы он остался длинномером | Соединение длинномеров | Чертежи | Работа с панельными длинномерами | Работа с профильными длинномерами | Функции интерфейса длинномеров