块名称到层名称
你好谁能帮我制定一个lisp,将重命名块名以匹配其层名?
格茨,巴特 如果同一块的两个引用插入到不同的层上,会怎么样? 李·麦克,
从测量导出到dxf后,每个块都有一个块名“MEASURED”。每个街区都有一个存储在场地上的图层名称。现在,我需要将块名“MEASURED”更改为layername,就像它存储在字段中一样。 一个问题是dxf来自什么软件可能能够在那里设置更好的默认值。
发布带有几个点的样例dwg。 我只是碰巧需要一些东西来组织来自Revit导出的块(一堆falimlies)。
在Autodesk论坛上找到了一个良好的工作代码:
http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/lisp-to-move-blocks-to-their-own-layers-based-on-block-name/td-p/5331511
(defun c:bln2lan (/ blk ent hnd i name ss)
(if (setq ss (ssget ":L" '((0 . "INSERT"))))
(repeat (setq i (sslength ss))
(setq hnd(ssname ss (setq i (1- i)))
ent(entget hnd)
blk(vlax-ename->vla-object hnd)
name (vlax-get-property
blk
(if (vlax-property-available-p blk 'EffectiveName)
'EffectiveName
'Name
)
)
)
(entmod (subst (cons 8 name) (assoc 8 ent) ent))
)
)
(princ)
)
页:
[1]