Тема: Почему ".Select acSelectionSetCrossing" работает так ненадежно?

Смысл кода таков:
Выделяются все тексты, затем вокруг их точек вставки (insertionpoint) задается прямоугольная область выделения, которой выделяются все попадающие в область линии того же слоя:

 FType02(0) = 0
 FData02(0) = "Text"
 FType02(1) = 8
 FData02(1) = TLay
Set AllText = ThisDrawing.SelectionSets.Add("SS01")
Set Picket = ThisDrawing.SelectionSets.Add("SS02")
AllText.Select acSelectionSetAll, , , FType02, FData02
Set elem = Nothing
For Each elem In AllText
    Picoor = elem.InsertionPoint
    Pconer2(0) = Picoor(0) - 50: Pconer2(1) = Picoor(1) - 25: Pconer2(2) = 0
    Pconer1(0) = Picoor(0) + 50: Pconer1(1) = Picoor(1) + 25: Pconer1(2) = 0
    FData02(0) = "Line"
    Picket.Clear
    Picket.Select acSelectionSetCrossing, Pconer1, Pconer2, FType02, FData02
.
.
.
.
Next elem

Так вот на какой-то случайной итерации метод .Select acSelectionSetCrossing попросту не выделяет линии под областью выделения, хотя они ничем не отличаются от других таких же, уже обработанных в предыдущих итерациях. При чем, при последующем запуске, метод может спокойно сработать в этом месте и сбойнуть в другом.
Может кто-нибудь в курсе, откуда корни?.. Я все что мог передумал уже..

Re: Почему ".Select acSelectionSetCrossing" работает так ненадежно?

> Сидор Лютый
Фильтрация по DXF-кодам, работающая через объектную модель (а VBA работает именно так) имеет ряд глюков, поэтому, возможно, Вы споткнулись именно об этот камень. Результатом этого является урезанная функциональность команды FILTER (ФИЛЬТР). Например, в ней нет выбора по весу линий. Сочувствую.
Для сравнения - аналогичные операции (ssget) в LISP и ObjectARX работают нормально.

Re: Почему ".Select acSelectionSetCrossing" работает так ненадежно?

Я заметил что подобные глюки в АКАД2007 могут возникать если выбираемый обььект в момент выбора не целиком виден на ехкране. Также у меня, почемуто, етот выбор чуствителен к установленым в данныйй момент привязкам (OSNAP).Приходится сначала выключать все привязки и вызывать ZoomAll

Re: Почему ".Select acSelectionSetCrossing" работает так ненадежно?

Спасибо за помощь. С вашей подачи картина начала немного проясняться. Провел небольшие эксперименты. Чем больше "zoom", тем надежнее начинает работать область выделения. Зумирование объектов в неразборчивую точку в 100% приводит к отказу. Наверное, есть какая-то связь этого метода с разрешением и отображением на экране.
Off: Как ни странно, иногда программирование в автокаде напоминает шаманские танцы с бубнами. Кажется - и не совсем глюк, и объяснить тоже не получается:)
Надо бы осваивать лисп, да времени к сожалению не хватает пока. После VBA это действительно труднее.

Re: Почему ".Select acSelectionSetCrossing" работает так ненадежно?

А я бы сказал так. VBA использует технологию ActivX, которая содержит в себе целый набор регулярных и не очень ошибок. И этих ошибок особенно много в 3-х мерном моделировании. Конечно, можно перейти на чистый Лисп  но это будет большой шаг назад. Советую переходить на .Net managed code.

Re: Почему ".Select acSelectionSetCrossing" работает так ненадежно?

> Сидор Лютый
Не-а, не труднее. Я сам в лисп пришел с VB, так что сложно обратно бывает переключиться :)