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