|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Получить блок программно, не используя функцию entsel
Регистрация: 02.12.2010
Сообщений: 7
|
||
Просмотров: 5504
|
|
||||
Регистрация: 11.10.2010
Сообщений: 979
|
1, Код не обязательно будет работать корректно, если часть окна попала за пределы отображаемой графики.
2. Забыли про постоянные атрибуты 3. Все равно выполняется выбор блока. 4. Что значит "координаты"? Координаты точки вставки? Так это либо INsertionPoint, либо 10-я группа DXF-представления. Ну и не надо забывать про немировые системы координат...
__________________
(/= RegDate StartReadDate) |
|||
![]() |
|
||||
Регистрация: 02.12.2010
Сообщений: 7
|
Лиспер, нужные мне атрибуты он читает, а что значит постоянные? какие сейчас тогда читаются? о_О
Выбор блока я переопределил, чтобы он брал большой прямоугольник и в нем искал. Координаты это левая верхняя и правая нижняя точка границы блока, есть ведь такие? Нужно всё это в итоге для печати. Я так понял что мне и надо использовать десятую группу, вроде бы. |
|||
![]() |
|
||||
Регистрация: 11.10.2010
Сообщений: 979
|
Nextk, что такое "постоянное"? Правильно, неизменяемое. Можешь поверить, можешь проверить - такие атрибуты существуют.
Конечно есть. Получаются через метод vla-GetBoundingBox. Метод не без подводных камней, на форуме это дело кто-то разбирал (по-моему, VVA).
__________________
(/= RegDate StartReadDate) |
|||
![]() |
|
||||
Инженер СКС Регистрация: 21.08.2009
г. Домодедово МО
Сообщений: 72
|
Цитата:
есть функция, есть блок задача которого подсчитывать полилинии на слое указанном в атрибуте блока в точке вставки, но считает только видимые блоки. Код:
|
|||
![]() |
|
||||
Регистрация: 11.10.2010
Сообщений: 979
|
А блок гарантированно находится в видимой области экрана? А если блоков несколько?
В общем, в качестве одного из вариантов (поскольку образца файла нет, код не тестировал вообще)
__________________
(/= RegDate StartReadDate) Последний раз редактировалось Лиспер, 16.12.2010 в 11:50. |
|||
![]() |
|
||||
Инженер СКС Регистрация: 21.08.2009
г. Домодедово МО
Сообщений: 72
|
Цитата:
код не фурычит. выкладываю пример |
|||
![]() |
|
||||
Инженер СКС Регистрация: 21.08.2009
г. Домодедово МО
Сообщений: 72
|
|
|||
![]() |
|
||||
Регистрация: 11.10.2010
Сообщений: 979
|
Пример обработало примерно за секунду (AutoCAD 2008).
--- Добавлено: давай файл с 200 / 2 000 / 20 000 блоками, попробую погонять. Если время найдется. --- Добавлено 2: Ради интересу можно добавить в файл "мусора" - сторонних блоков, которые вообще никакого отношения к задаче не имеют. И попробовать уже с ними.
__________________
(/= RegDate StartReadDate) Последний раз редактировалось Лиспер, 16.12.2010 в 12:53. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Болеем за наших на Олимпиаде | T-Yoke | Разное | 472 | 28.04.2009 17:40 |
ADT. Программно получить значение храктеристики. | игорёк | Программирование | 10 | 25.08.2008 10:39 |
Как получить значение атрибута используя Diesel-выражение? | mental | Программирование | 1 | 12.04.2007 10:16 |