| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как с помощью lisp получить список всех состояний видимости динамического блока

Как с помощью lisp получить список всех состояний видимости динамического блока

Ответ
Поиск в этой теме
Непрочитано 07.04.2012, 00:00 #1
Как с помощью lisp получить список всех состояний видимости динамического блока
crosandr
 
Инженер-строитель
 
Санкт-Петербург
Регистрация: 09.07.2010
Сообщений: 1,988

Добрый день. Требуется программно получить список параметра "видимость" для динамического блока, когда известно только его эффективное имя (строка). При чем получить этот список нужно без явного указания конкретного вхождения блока в чертеж. Начинаю так:
Код:
[Выделить все]
 (setq blkref (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) blk_name)) 
  (if (and (vlax-property-available-p blkref "IsDynamicBlock")
       (= (vla-get-isdynamicblock blkref) :vlax-true)
       (setq tmp (vlax-variant-value (vla-getdynamicblockproperties blkref))) ; ругается
       (>= (vlax-safearray-get-u-bound tmp 1) 0)
       (setq lstProperties (vlax-safearray->list tmp))
      ) ;_ end of and
    (progn ...
Ругается на (vla-getdynamicblockproperties blkref). Как быть?
Просмотров: 4251
 
Непрочитано 10.04.2012, 09:09
#2
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 571


Цитата:
Сообщение от crosandr Посмотреть сообщение
Ругается на (vla-getdynamicblockproperties blkref)
Ругается, потому что у описания (определения) блока нет метода getdynamicblockproperties, такой метод есть как раз у вхождения блока.
Цитата:
Сообщение от crosandr Посмотреть сообщение
При чем получить этот список нужно без явного указания конкретного вхождения блока в чертеж
Ну так сделайте не явным, сформируйте набор вхождений блоков на чертеже по имени blk_name и всех с именем *U<число> (т. е. всех потенциально динамических). Перебирайте набор пока не найдете по EffectiveName нужное вам вхожднние блока и к нему уже применяйте getdynamicblockproperties
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 10.04.2012, 09:18
#3
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,988


Цитата:
Сообщение от TararykovDG Посмотреть сообщение
Ну так сделайте не явным, сформируйте набор вхождений блоков на чертеже по имени blk_name и всех с именем *U<число> (т. е. всех потенциально динамических). Перебирайте набор пока не найдете по EffectiveName нужное вам вхожднние блока и к нему уже применяйте getdynamicblockproperties
Примерно так и собирался делать, но такой способ показался не самым изящным и быстрым. Но, если других вариантов нет, то придется делать так. Спасибо

Последний раз редактировалось crosandr, 10.04.2012 в 09:27. Причина: орфография
crosandr вне форума  
 
Непрочитано 10.04.2012, 13:05
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Можно по имени блока узнать перечень всех его вариаций (те, которые с *U<число>)
AnonymousInstancesof
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 11.04.2012, 22:33
#5
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,988


VVA, спасибо, очень помог код отсюда
crosandr вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как с помощью lisp получить список всех состояний видимости динамического блока

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание дополнительных параметров Visibility Set в динамических блоках. Supermax Программирование 708 12.04.2021 14:54
Странное поведение динамического блока высотной отметки hwd Динамические блоки 12 08.09.2011 11:15
LISP получить список установленных в системе (векторных) шрифтов или хотя бы узнать, установлен ли указанный Ax3 LISP 9 08.02.2011 14:11
Как вывести список всех подпримитивов блока или др. элемента. Neo_ Программирование 16 25.01.2010 19:53
как получить список всех видов в чертеже Димас Программирование 12 22.02.2006 02:29