请教高手 合并类似图层
本帖最后由 子恒 于 2013-1-30 21:52 编辑已知CAD文件中有一下几个图层
hidden (标准)
sheet_hidden
abc_hidden
bcd_hidden
cde_hidden
。
。
。
等等类似图层
现在要写一个程序把这些类似的图层都转换到标准图层hidden 中,而且线型颜色等也必须一起转换成hidden 图层一样的。
(Command "chprop" (ssget "X" '((8 . "*_hidden"))) "" "LA" "MN" "C" "Bylayer" "Lt" "Bylayer" "") (defun qwe (la / *OBJ *DOC lay_list)
(SETQ*OBJ (vlax-get-acad-object)
*DOC (vla-get-activedocument *OBJ)
ii 0
la1(strcat "*" la)
) ;_ 结束SETQ
(vlax-for nn (vla-get-layers *doc)
(if ;_ 这里不太会过虑出图层表,所以省略了
(setq lay_list (cons (vla-get-name nn) lay_list)) ;_ 结束setq
) ;_ 结束if
) ;_ 结束vlax-for
(repeat (length lay_list)
(setq layer_X (nth ii lay_list))
(command "-laymrg" "n" layer_X "" "n" layer_目标 "y")
(setq ii (1+ ii))
) ;_ 结束defun
) ;_ 结束defun
;;(QWE "hidden")
Andyhon 发表于 2013-1-30 22:05 static/image/common/back.gif
(Command "chprop" (ssget "X" '((8 . "*_hidden"))) "" "LA" "MN" "C" "Bylayer" "Lt" "Bylayer" "")
非常感谢,这个代码MN 应该改成 hidden 吧,还有如何把 已经转换完的类似图层删掉,保留hidden,不过不能删除其他 如dim,center 等不含hidden的图层。 (defun qwe (la / *OBJ *DOC lay_list)
(vl-load-com)
(SETQ *OBJ (vlax-get-acad-object)
*DOC (vla-get-activedocument *OBJ)
ii 0
la (STRCASE la)
la1(strcat "*" la)
) ;_ 结束SETQ
(vlax-for nn (vla-get-layers *doc)
(if (and (vl-string-search la (STRCASE (vla-get-name nn)))
(/= (STRCASE (vla-get-name nn)) la)
)
(setq lay_list (cons (vla-get-name nn) lay_list)) ;_ 结束setq
) ;_ 结束if
) ;_ 结束vlax-for
(repeat (length lay_list)
(setq layer_X (nth ii lay_list))
(command "-laymrg" "n" layer_X "" "n" la "y")
(setq ii (1+ ii))
) ;_ 结束defun
) ;_ 结束defun
终于搞清怎样过滤
输入
(QWE "hidden")
页:
[1]