(изменено: cookie, 18 апреля 2009г. 11:50:25)

Тема: Как сохранить текущий вид?

Решаю такую задачу: необходимо выбрать несколько групп объектов, расположеных в вершинах сетки квадратов. Осуществляю циклический переход между группами, опираясь на координаты левого нижнего угла сетки и ее шаг. Захватываю объекты "окошком", применяя метод sset.Select acSelectionSetWindow, pt1, pt2 объекта AcadSelectionSet. Обнаружил, что метод действует только вутри текущего вида, т.е. при выходе за пределы текущего вида он не работает. Пришлось применить команду ZoomExtents, т.е. раздвинуть текущий вид до пределов чертежа, но при этом теряется текущий вид. Это небольшая проблема, однако лучше было бы ее избежать. Как сохранить текущий вид? Или есть ли другие способы выбора объектов?

Re: Как сохранить текущий вид?

А если так?

ZoomExtents
sset.Select acSelectionSetWindow, pt1, pt2
ZoomPrevious

Re: Как сохранить текущий вид?

P.S.
Можно еще отбирать, вычисляя координты объектов.
Программисту мороки больше, зато у пользователя не будет дергаться экран...

(изменено: cookie, 24 апреля 2009г. 22:20:57)

Re: Как сохранить текущий вид?

;)

Re: Как сохранить текущий вид?

Спасибо за ZoomPrevious! Много я чего не знаю...

Можно еще отбирать, вычисляя координты объектов.

это как?

Re: Как сохранить текущий вид?

cookie пишет:

это как?

Ну, на уровне алгоритма:
- Создаешь набор из интересующих тебя объектов(графичесих примитивов AutoCAD).

Осуществляю циклический переход между группами, опираясь на координаты левого нижнего угла сетки и ее шаг. Захватываю объекты "окошком"
- Вычисляешь в каждой такой точке, какие из них попадают в расставленное "окошко", получая их координаты, например методом GetBoundingBox:

См. Help: Sub Example_GetBoundingBox()

- из попавшихся формируешь новый набор