请问如何获得嵌套块内的块名
请教如何能获得嵌套块内的某个块名,或者如何得到nentsel所选择对象所在块的块名?用参照编辑先命令后选择,可以定位到嵌套块块名,都是不知道用程序如何获得块名。例如点圆块得到块1(defun c:tt()
(setq p0(cadr(entsel)))
(command"-refedit" p0 "n" "o" "a" "n")
(setq n(getvar"REFEDITNAME"))
(command"_refclose" "D")
(command"_leader"p0 pause pause"" n "")
(princ n)
)
使用了参照编辑命令,退出参照编辑那一步卡顿时间很长,求直接获取嵌套块块名的方法
简单实用啊,嵌套块名提取 可以试试nentsel 楼主搞定了吗?我也被这个问题困扰。 52幕墙设计 发表于 2014-9-18 18:03
使用了参照编辑命令,退出参照编辑那一步卡顿时间很长,求直接获取嵌套块块名的方法
你这仅能用于一层嵌套,而且进出参照几乎是CAD最卡的操作了。请问现在有没有找到更好的办法。 (defun tt(blkname / blks a b)
(if(=(type(setq a(VL-CATCH-ALL-APPLY'vla-item(list(vlax-get-property(vlax-get-property(vlax-get-acad-object)'activedocument)'blocks)blkname))))'VLA-OBJECT)
(progn(vlax-for x a(if(=(vlax-get-property x 'ObjectName)"AcDbBlockReference")(setq b(cons(vlax-get-property x'name)b))))
(if b(List blkname(mapcar 'tt b))blkname))))
;;(TT"B1")
;;("B1" (("E" ("D")) ("B" ("A"))))
页:
[1]