子恒 发表于 2013-1-30 21:37:37

请教高手 合并类似图层

本帖最后由 子恒 于 2013-1-30 21:52 编辑

已知CAD文件中有一下几个图层
hidden            (标准)
sheet_hidden
abc_hidden
bcd_hidden
cde_hidden



等等类似图层

现在要写一个程序把这些类似的图层都转换到标准图层hidden    中,而且线型颜色等也必须一起转换成hidden 图层一样的。


Andyhon 发表于 2013-1-30 22:05:16

(Command "chprop" (ssget "X" '((8 . "*_hidden"))) "" "LA" "MN" "C" "Bylayer" "Lt" "Bylayer" "")

xsso 发表于 2013-1-30 22:22:30

(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")

子恒 发表于 2013-1-30 22:37:36

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的图层。

xsso 发表于 2013-1-30 23:20:01

(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]
查看完整版本: 请教高手 合并类似图层