Прочитать параметры врезки в панель
Операция возвращает геометрию контура, задающего врезку, нарост или линию маркировки в панели.
Код операции <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;
}