Подскажите как получить имена примитивов находящихся в блоке.
Спасибо.
Просмотров: 3010
CooL
08.12.2004, 12:54
дополнение
#2
CooL
Сообщений: n/a
(entget (cdr (assoc -2 (entget (tblobjname "block" "text_in")))))
паказывает свойства первого примитива в блоке "text_in", а как получить остольные не доганяю.
(vl-load-com)
(defun nameprim-block (name / nameprim)
(if (not (equal (type name) 'STR))
(setq name (VL-PRINC-TO-STRING name))
) ;_ end of if проверочка что аргумент является
;строкой-можно опустить
(if
(tblsearch "block" name);если такого блока в базе нет , ругаемся
;алерткой и завешаем программу.
(progn
(vlax-for item
(vla-item
(vla-get-blocks
(vla-get-ActiveDocument
(vlax-get-acad-object)
) ;_ end of vla-get-ActiveDocument
) ;_ end of vla-get-blocks
name
) ;_ end of vla-item
(setq nameprim (cons item nameprim))
) ;_ end of vlax-for
(mapcar 'vlax-vla-object->ename nameprim);если вас не устраивают вла-объекты переводим их в имена примитивов-тоже
;можно опустить.
) ;_ end of progn
(alert "Block not found")
) ;_ end of if
) ;_ end of defun
В итоге получаем список с именами примитива блока.