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

Материал из 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.


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