如何获得外部参照中块的属性
选择外部参照中的一个属性块,将块中的属性提取出来。用nentsel好像不行。补充:这个块还是个匿名块 本帖最后由 77077 于 2014-2-11 13:32 编辑
这是别人写的函数,可以借用
如果成功,别谢我,谢明经各位同仁~
(getattnamelst (car (entsel "\n 选择块属性<退出>:")))
;;;取得块所属性
(defun getattnamelst (entblock / attname attnamelst entdata entname test)
(setq attnamelst '()
entname entblock
test t
)
(while (and
test
(setq entname (entnext entname))
)
(setq entdata (entget entname))
(cond
((not (= (cdr (assoc 0 entdata)) "ATTRIB"))
(setq test nil)
)
((= "SEQEND" (cdr (assoc 0 entdata)))
(setq test nil)
)
(t
(setq attname (cdr (assoc 2 entdata))
attnamelst (cons attname attnamelst)
)
)
)
)
attnamelst
)
;;;取得块属性值
(defun getattvalue (entblock attname / entdata entname test value)
(setq entname entblock
test t
)
(while (and
test
(setq entname (entnext entname))
)
(setq entdata (entget entname))
(cond
((not (= (cdr (assoc 0 entdata)) "ATTRIB"))
(setq test nil)
)
((= "SEQEND" (cdr (assoc 0 entdata)))
(setq test nil)
)
((= (cdr (assoc 2 entdata)) attname)
(setq value (cdr (assoc 1 entdata)))
)
)
)
value
)
多谢,学习学习
页:
[1]