明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 485|回复: 2

关闭打开多个设定图层程序

[复制链接]
发表于 2025-1-16 17:58:09 | 显示全部楼层 |阅读模式
  1. <p>(defun c:sd (/ laylist)</p><p>  ;; 定义需要操作的图层列表</p><p>  (setq laylist '("Defpoints" "PUB_VWPRT" "dote")) ; 添加更多图层名称</p><p>
  2. </p><p>  ;; 对每个图层执行关闭或打开操作</p><p>  (foreach layname laylist</p><p>    (bb_layon&off layname) ; 调用自定义函数关闭或打开图层</p><p>  )</p><p>
  3. </p><p>  ;; 提示用户操作完成</p><p>  (princ "\n已关闭/打开以下图层:")</p><p>  (princ laylist)</p><p>  (princ)</p><p>)</p><p>
  4. </p><p>;; 自定义函数:关闭或打开指定图层</p><p>(defun bb_layon&off (layname / laystate)</p><p>  ;; 获取图层的当前状态</p><p>  (setq laystate (cdr (assoc 70 (tblsearch "layer" layname))))</p><p>
  5. </p><p>  ;; 根据图层状态执行操作</p><p>  (if (= (logand laystate 1) 1) ; 如果图层是关闭的</p><p>    (command ".layer" "on" layname "") ; 打开图层</p><p>    (command ".layer" "off" layname "") ; 关闭图层</p><p>  )</p><p>)</p>
  1. (defun c:sd (/ laylist)

  2.   ;; 定义需要操作的图层列表

  3.   (setq laylist '("Defpoints" "PUB_VWPRT" "dote")) ; 添加更多图层名称



  4.   ;; 对每个图层执行关闭或打开操作

  5.   (foreach layname laylist

  6.     (bb_layon&off layname) ; 调用自定义函数关闭或打开图层

  7.   )



  8.   ;; 提示用户操作完成

  9.   (princ "\n已关闭/打开以下图层:")

  10.   (princ laylist)

  11.   (princ)

  12. )



  13. ;; 自定义函数:关闭或打开指定图层

  14. (defun bb_layon&off (layname / laystate)

  15.   ;; 获取图层的当前状态

  16.   (setq laystate (cdr (assoc 70 (tblsearch "layer" layname))))



  17.   ;; 根据图层状态执行操作

  18.   (if (= (logand laystate 1) 1) ; 如果图层是关闭的

  19.     (command ".layer" "on" layname "") ; 打开图层

  20.     (command ".layer" "off" layname "") ; 关闭图层

  21.   )

  22. )


回复

使用道具 举报

发表于 2025-1-17 01:53:26 | 显示全部楼层
感谢大佬分享
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-23 04:33 , Processed in 0.160500 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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