Прочитать параметры врезки в панель
Операция возвращает геометрию контура, задающего врезку, нарост или линию маркировки в панели.
Код операции <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>[...]
— параметры параметрического выреза
Возвращаемое значение: Ноль в случае удачного завершения операции, минус единица в случае ошибки.
Возможные значения форм вырезов, наростов или линий маркировки представлены в таблице:
|
|
|
---|---|---|
|
Произвольная полилиния |
|
|
Окружность |
Param 1: радиус выреза. |
|
Дуга со скруглением (для «беременной панели») |
Param 1: ширина дуги; Param 2: прогиб дуги; Param 3: радиус скругления. |
|
Прямоугольник со скруглением (для «беременной панели») |
Param 1: ширина прямоугольника; Param 2: высота прямоугольника; Param 3: радиус скругления. |
|
Фигурный вырез |
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; }