shiyan001 发表于 2014-2-9 15:21:16

如何获得外部参照中块的属性

选择外部参照中的一个属性块,将块中的属性提取出来。用nentsel好像不行。

shiyan001 发表于 2014-2-9 22:30:15

补充:这个块还是个匿名块

77077 发表于 2014-2-11 13:30:39

本帖最后由 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
)

闪电CAD 发表于 2016-1-24 15:41:47

多谢,学习学习
页: [1]
查看完整版本: 如何获得外部参照中块的属性