|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
VBA Как узнать общее количество блоков ?
г. Самара
Регистрация: 12.07.2009
Сообщений: 2,437
|
||
Просмотров: 7734
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
В чертеже, в пространстве модели или в файле? Вхождений блоков или их описаний? Учитывать ли вложенные блоки? Как обрабатывать внешние ссылки?
И ради интересу сначала руками выполни команду _.qselect и посмотри на количество вхождений блоков в пространстве модели. --- Добавлено: Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 27.02.2013 в 21:49. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Я неверный код там написал... По логике: проходишь по всем примитивам пространства модели. Если примитив блок, то получить его описание, пройтись по всем его примитивам. Если внутри блока тоже блок, то...
Рекурсия чистой воды. Сейчас попробую нарисовать P.S. Гоняй, тестируй. Но откуда ты взял 30 штук, когда их у меня получилось 27 - не пойму. Что я сделал: разморозил и разблокировал все слои, выбрал все блоки (9 штук), разбил. Выбрал все блоки (12 штук), разбил. Выбрал все блоки (6 штук), разбил. 9+12+6=27. Или у меня с логикой что-то не то? Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 27.02.2013 в 21:59. |
|||
![]() |
|
||||
Вы правы ! Это я заработался. Там их 27.
Спасибо огромное ! А я то лез перебирать все внутри каждого блока.... Код:
Ещё раз спасибо ! Теперь буду пытаться считать атрибуты для каждого блока, хотя они у каждого вложения будут разные (хоть имя одинаковое) но надеюсь считаются как надо. |
||||
![]() |
|
||||
Цитата:
Цитата:
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 28.02.2013 в 08:05. |
||||
![]() |
|
||||
И Вам спасибо, но
Цитата:
Мои познания не настолько глубоки в .net Поэтому ответ Кулик Алексей aka kpblc полностью удовлетворил вопрос. |
||||
![]() |
|
||||
На VBA не проверял, но на .NET в данном случае компилировать отдельно под x86/x64 не нужно, достаточно "AnyCPU". Я же не предлагал использовать OldIdPtr, зависящий от разрядности ПО.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Цитата:
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
По указанной ссылке все изображения битые. Или это только у меня не отображаются?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Сейчас все равно ничего исправить не могу - дома посмотрю
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
А я разве писал, что сама ссылка битая?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Это где такое???
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Через DXF найти можно. Может быть, через .NET тоже - не знаю...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Смотрел BlockTableRecord.GetBlockReferenceIds? Возможно на VBA есть что-то подобное.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Цитата:
Код:
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 28.02.2013 в 12:01. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
hwd, еще раз скачай вложение и проверь, что должно получиться при ручном расчете / обработке.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
UPD Если выполнить прямую итерацию по базе данных, то получаю вообще 13 вхождений: Код:
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 28.02.2013 в 13:36. Причина: Добавил информацию. |
||||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Каким образом узнать длину нескольких динамических блоков | ie.spb | Динамические блоки | 40 | 10.08.2021 13:25 |
Где узнать на какое количество машин расчитан гараж? | sima | Прочее. Архитектура и строительство | 77 | 15.01.2009 13:43 |
VBA - как узнать закрытый ли контур | To Thuc | Программирование | 4 | 18.06.2007 16:55 |
как узнать сколько блоков в чертеже определенного имени? | ilka_t | AutoCAD | 11 | 22.07.2005 10:57 |
как узнать сколько layout в файле текущем DWG файле VBA | sf | Программирование | 1 | 09.03.2005 12:36 |