Каким образом удалить слой с находящимися в нем граф. объектами

Автор NiСknАМe, 09.08.04, 13:50:01

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

NiСknАМe

Есть задачка. В фрагменте чертежа неск-ко слоев, в каждом свои объекты. Как средствами АПИ удалить слой вместе с присутствующими на нем объектами, при этом не захватывая объекты с других слоев? Вообще, как можно определить все объкты, присутствующие на заданном слое?


NiСknАМe

А можно ли занести все эти объекты (или указатели на них) в массив, а потом удалить все сразу? Ведь в Компасе, я так понимаю, слой не удаляется до тех пор, пока из него не удалены все объекты...

Sabahs

var
 Kompas:KompasObject;
 pView:Reference;
 Iter:ksIterator;

Iter:=ksIterator(Kompas.GetIterator);
if Iter=nil then Exit;
if Iter.ksCreateIterator(VIEW_OBJ, 0) then // создаем итератор для хождения по видам
 begin
   pView:=Iter.ksMoveIterator( ’F’ ); получить указатель на вид
   while pView  0 do
    begin
      //здесь делаете с видом свои действия

      pView:=Iter.ksMoveIterator ( ’N’ ); // получить указатель на следующий вид
    end;
   Iter.ksDeleteIterator;
 end;

Читайте справку Компас-мастер там все расписано.

NiСknАМe

Спасибо. Бум разбираться :)
А вот этого
ЦитироватьЧитайте справку Компас-мастер там все расписано.
можно было и не писать... вы же тоже учились когда-то...

Дмитрий22

Чтоб удалить слой со всеми объектами используйте функцию DeleteObj(rLayer);

Goran


Дмитрий22

Написал для других возможных участников, искал эту функцию, не нашел, потом сам разобрался, написал.