明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 907|回复: 4

[提问] 遍历含有关键字的图层,以实现文件保存

[复制链接]
发表于 2019-10-20 12:03 | 显示全部楼层 |阅读模式
5明经币
本帖最后由 dakui 于 2019-10-20 12:13 编辑

下面是 ZZXXQQ版主的源码,希望朋友帮忙修改一下。
实现目的:遍历含有特定文字的图层,以实现保存文件。
比如:
某个文件中含有图层名字 0,1G,2G,3G,1T,2T,3T,5F,6,F7...
遍历含有”G”图层,按层保存文件。

;按层存文件 明经 ZZXXQQ 2011.1.6
(defun c:tt ()
(setvar "CMDECHO" 0)
(setq lnm nil)
(while(setq lnm (tblnext "LAYER" (not lnm)))  ;这个部分如何修改?
(if (setq ss (ssget "X" (list (cons 8 (cdr(assoc 2 lnm))))))
   (command ".WBLOCK" (strcat "NewLayer=" (cdr(assoc 2 lnm))) "" "0,0" ss "")
  )
)
(setvar "CMDECHO" 1)
(princ)
)


最佳答案

发表于 2019-10-20 12:03 | 显示全部楼层
  1. (defun c:tt ()
  2. (setvar "CMDECHO" 0)
  3. (setq lnm nil)
  4. (while (setq lnm (tblnext "LAYER" (not lnm)))  ;这一句不用改
  5. (if (and (wcmatch (cdr (assoc 2 lnm)) "*G*")(setq ss (ssget "X" (list (cons 8 (cdr(assoc 2 lnm)))))));改这一句
  6.    (command ".WBLOCK" (strcat "NewLayer=" (cdr(assoc 2 lnm))) "" "0,0" ss "")
  7.   )
  8. )
  9. (setvar "CMDECHO" 1)
  10. (princ)
  11. )
回复

使用道具 举报

 楼主| 发表于 2019-10-20 14:10 | 显示全部楼层

这种修改方式的话,会遍历所有图层
回复

使用道具 举报

 楼主| 发表于 2019-10-20 14:22 | 显示全部楼层

测试了一下,提升了不少速度,谢谢朋友把问题解决了。
回复

使用道具 举报

发表于 2020-2-16 23:18 | 显示全部楼层
又学一招哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-1 04:57 , Processed in 0.373430 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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