Тема: Неккоректная работа метода Select!?

Проблема в следующем. Пытаюсь создать набор объектов (полилиний) в точке вставки блока. Для этого использую строку: objSelSet.Select acSelectionSetCrossing, corner1, corner2, fCode, fData. Размер рамки 0.2x0.2. Если запускать программу при разном увеличении размеров изображения (Zoom), то оказывается, что при разных размерах изображения в набор может попадать, а может и не попадать полилиния. При этом блок стоит точно на полилинии. Кто- нибудь сталкивался с такой проблемой?

Re: Неккоректная работа метода Select!?

Да, вот еще... сам блок с точкой вставки и полилинии при зуммировании остаются видны на экране.

Re: Неккоректная работа метода Select!?

Вот результаты небольшого эксперимента, думаю разберешься что к чему.
ACAD2008

Command: insert
Command: (entget(entlast))
((-1 . <Entity name: 7efc04d0>) (0 . "INSERT") (330 . <Entity name: 7efbec10>)
(5 . "10A") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
"AcDbBlockReference") [b](66 . 1)[/b] (2 . "Q-11") (10 14431.9 6792.11 0.0) (41 .
10.0) (42 . 10.0) (43 . 10.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 .
0.0) (210 0.0 0.0 1.0))
********************************************************************************
Command: _xattach
Attach Xref "05-05-3": F:\DWG-Samples\05-05-3.dwg
"05-05-3" loaded.
Xref "+3.90": C:\MyProj\2005\????05-05\ARCH\work\+3.90.dwg
"+3.90" is unloaded.
Command: (entget(entlast))
((-1 . <Entity name: 7efc0708>) (0 . "INSERT") (330 . <Entity name: 7efbec10>)
(5 . "151") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
"AcDbBlockReference") (2 . "05-05-3") (10 0.0 0.0 0.0) (41 . 10.0) (42 . 10.0)
(43 . 10.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0
1.0))
********************************************************************************
Command: minsert
Enter block name or [?] <A$C12485B9F>: Q-11
Units: Unitless   Conversion:   10.0000
Specify insertion point or [Basepoint/Scale/X/Y/Z/Rotate]:
Enter X scale factor, specify opposite corner, or [Corner/XYZ] <1>:
Enter Y scale factor <use X scale factor>:
Specify rotation angle <0>:
Enter number of rows (---) <1>: 10
Enter number of columns (|||) <1>: 10
Enter distance between rows or specify unit cell (---): 10
Specify distance between columns (|||): 10
Enter attribute values
enter o.k.:
Command: (entget(entlast))
((-1 . <Entity name: 7efc0710>) (0 . "INSERT") (330 . <Entity name: 7efbec10>)
(5 . "152") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") [b](100 .
"AcDbMInsertBlock")[/b] (66 . 1) (2 . "Q-11") (10 14582.3 7115.69 0.0) (41 . 10.0)
(42 . 10.0) (43 . 10.0) (50 . 0.0) (70 . 10) (71 . 10) (44 . 10.0) (45 . 10.0)
(210 0.0 0.0 1.0))

Re: Неккоректная работа метода Select!?

> Anchur
Прошу прощения, вставил ответ не в ту ветку.

Re: Неккоректная работа метода Select!?

Если запускать программу при разном увеличении размеров изображения (Zoom), то оказывается, что при разных размерах изображения в набор может попадать, а может и не попадать полилиния. При этом блок стоит точно на полилинии. Кто- нибудь сталкивался с такой проблемой?

Все с этой проблемой рано или поздно сталкиваются)) Стабильность работы экранного выбора зависит от зума..
Пробуйте другие варианты.))

Re: Неккоректная работа метода Select!?

Стал разбираться дальше с проблемой, оказалось:
При увеличении объектов, которые нужно влючить в набор, на весь экран, метод Select acSelectionSetCrossing работает как надо. Если сделать уменьшение размеров экрана в несколько раз, в набор начинают попадать объекты, которые отстоят от рамки на 0,05мм. Если уменьшать изображение дальше, в набор попадают объекты, которые отстоят от рамки на расстояние 2мм. Есть мысль, что Autocad при уменьшении изображения на экране, начинает загрублять точность координат