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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Выбор блоков по значению слоя атрибута

Выбор блоков по значению слоя атрибута

Ответ
Поиск в этой теме
Непрочитано 15.11.2006, 18:27 #1
Выбор блоков по значению слоя атрибута
Serge_Y
 
инженер-конструктор
 
Минск
Регистрация: 29.05.2004
Сообщений: 381

Возможно ли сделать программку для выбора блоков по значению слоя атрибута, входящего в этот блок? Причем имеется ввиду слой, на котором атрибут был вычерчен перед определением блока, а не тот, на который можно перенести атрибут командой eattedit.
Большое спасибо
Просмотров: 4318
 
Непрочитано 15.11.2006, 19:20
#2
VVA

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


Возможно
Код:
[Выделить все]
;_LayerList - список слоев ("Слой1" "Слой2")
;_Возвращает список имен блоков, у которых хотя бы 1 атрибут
;расположен на одном из перечисленных слоев
(defun _getBlockNameListbyLayers ( LayerList / ret)
  (setq LayerList (mapcar 'strcase LayerList))
  (vlax-for item (vla-get-Blocks(vla-get-ActiveDocument (vlax-get-acad-object)))
    (vlax-for sub_item item
      (if (and (= (vla-get-ObjectName sub_item) "AcDbAttributeDefinition")
               (member (strcase (vla-get-layer sub_item)) LayerList))
	(setq ret (append ret (list (strcase(vla-get-name item)))))
	)
      )
    )
ret      
  )
Пример использования
Код:
[Выделить все]
(setq lays '("Слой1" "Слой2"))              ;_Список слоев
(setq lst (_getBlockNameListbyLayers lays)) ;_Список имен блоков
(if lst (progn                              ;_Список не пустой
(setq bnames (apply 'strcat (mapcar '(lambda(x)(strcat x ",")) lst))) ;_Формируем строку фильтра вида Имя1,Имя2,
(setq flt (list '(0 . "INSERT")(cons 2 bnames)))                      ;_Список фильтра для ssget
(setq sset (ssget "_X" flt))                ;_Выбор объектов
(if sset                                    ;_Есть объекты
  (SSSETFIRST sset sset))                   ;_Подсвечиваем ручками
))
VVA вне форума  
 
Автор темы   Непрочитано 15.11.2006, 22:43
#3
Serge_Y

инженер-конструктор
 
Регистрация: 29.05.2004
Минск
Сообщений: 381


>VVA
Супер!!! Все работает!!!
Огромное спасибо и респект!
Serge_Y вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Выбор блоков по значению слоя атрибута

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

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