Удалить объект с ТЕКУЩЕГО вида

Автор prog1, 29.06.09, 17:43:01

« назад - далее »

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

prog1

Перед удалением объекта обычно проверяем его существование:
If Doc.ksExistObj(L12)=1 then Doc.ksDeleteObj(L12);
но мне нужно ещё проверить принадлежность его ТЕКУЩЕМУ виду, т.к. если объект существует на предыдущих видах, то "не тронь" его.
Делаю через итератор "по виду". К сожалению, эти самые несколько объектов, которые надо удалять разнородные: LINESEG_OBJ, ARC_OBJ, BEZIER_OBJ, поэтому или итераторов несколько требуется, или использовать ALL_OBJ в ksCreateIterator. Работает, конечно. Вроде даже не заметно по времени...
Но хочется как-то естесственнее, человечнее (проще)! Может кто сталкивался с подобной задачей и имеет креативные идеи? Заранее выражаю признательность.
2D - API 5 - KOMPAS V9 

Bordes

Цитата: prog1 от 29.06.09, 17:43:01
...но мне нужно ещё проверить принадлежность его ТЕКУЩЕМУ виду, т.к. если объект существует на предыдущих видах, то "не тронь" его.
Делаю через итератор "по виду". К сожалению, эти самые несколько объектов, которые надо удалять разнородные: LINESEG_OBJ, ARC_OBJ, BEZIER_OBJ, поэтому или итераторов несколько требуется, или использовать ALL_OBJ в ksCreateIterator. Работает, конечно. Вроде даже не заметно по времени...
Но хочется как-то естесственнее, человечнее (проще)! Может кто сталкивался с подобной задачей и имеет креативные идеи? Заранее выражаю признательность.
2D - API 5 - KOMPAS V9 


Может быть так будет удобнее:
// Проверить, принадлежит ли объект к активному виду
// refObj - reference проверяемого объекта
inline bool Is_obj_in_current_view(reference refObj) { return ( GetViewNumber(0) ==  GetViewNumber(refObj) ); }




prog1

О!  Совсем не вспомнился GetViewNumber(refObj) - (туплю, значит)
Спасибо!
P.S. Админ-у:Тема закрыта