Работа с панельными длинномерами
В 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.