明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1132|回复: 4

请教高手 合并类似图层

[复制链接]
发表于 2013-1-30 21:37:37 | 显示全部楼层 |阅读模式
本帖最后由 子恒 于 2013-1-30 21:52 编辑

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



等等类似图层

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


发表于 2013-1-30 22:05:16 | 显示全部楼层
(Command "chprop" (ssget "X" '((8 . "*_hidden"))) "" "LA" "MN" "C" "Bylayer" "Lt" "Bylayer" "")
发表于 2013-1-30 22:22:30 | 显示全部楼层
  1. (defun qwe (la / *OBJ *DOC lay_list)
  2.   (SETQ  *OBJ (vlax-get-acad-object)
  3.   *DOC (vla-get-activedocument *OBJ)
  4.   ii   0
  5.   la1  (strcat "*" la)
  6.   ) ;_ 结束SETQ
  7.   (vlax-for nn (vla-get-layers *doc)
  8.     (if       ;_ 这里不太会过虑出图层表,所以省略了
  9.       (setq lay_list (cons (vla-get-name nn) lay_list)) ;_ 结束setq
  10.     ) ;_ 结束if
  11.   ) ;_ 结束vlax-for
  12.   (repeat (length lay_list)
  13.     (setq layer_X (nth ii lay_list))
  14.     (command "-laymrg" "n" layer_X "" "n" layer_目标 "y")
  15.     (setq ii (1+ ii))
  16.   ) ;_ 结束defun
  17. ) ;_ 结束defun
  18. ;;(QWE "hidden")

 楼主| 发表于 2013-1-30 22:37:36 | 显示全部楼层
Andyhon 发表于 2013-1-30 22:05
(Command "chprop" (ssget "X" '((8 . "*_hidden"))) "" "LA" "MN" "C" "Bylayer" "Lt" "Bylayer" "")

非常感谢,这个代码MN 应该改成 hidden 吧,还有如何把 已经转换完的类似图层删掉,保留hidden,不过不能删除其他 如dim,center 等不含hidden的图层。
发表于 2013-1-30 23:20:01 | 显示全部楼层
  1. (defun qwe (la / *OBJ *DOC lay_list)
  2.   (vl-load-com)
  3.   (SETQ        *OBJ (vlax-get-acad-object)
  4.         *DOC (vla-get-activedocument *OBJ)
  5.         ii   0
  6.         la   (STRCASE la)
  7.         la1  (strcat "*" la)
  8.   ) ;_ 结束SETQ
  9.   (vlax-for nn (vla-get-layers *doc)
  10.     (if        (and (vl-string-search la (STRCASE (vla-get-name nn)))
  11.              (/= (STRCASE (vla-get-name nn)) la)
  12.         )
  13.       (setq lay_list (cons (vla-get-name nn) lay_list)) ;_ 结束setq
  14.     ) ;_ 结束if
  15.   ) ;_ 结束vlax-for
  16.   (repeat (length lay_list)
  17.     (setq layer_X (nth ii lay_list))
  18.     (command "-laymrg" "n" layer_X "" "n" la "y")
  19.     (setq ii (1+ ii))
  20.   ) ;_ 结束defun
  21. ) ;_ 结束defun


终于搞清怎样过滤
输入
(QWE "hidden")
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-6-1 05:59 , Processed in 0.165886 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表