小毛草 发表于 2025-1-16 17:58:09

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

<p>(defun c:sd (/ laylist)</p><p>;; 定义需要操作的图层列表</p><p>(setq laylist '("Defpoints" "PUB_VWPRT" "dote")) ; 添加更多图层名称</p><p>
</p><p>;; 对每个图层执行关闭或打开操作</p><p>(foreach layname laylist</p><p>    (bb_layon&off layname) ; 调用自定义函数关闭或打开图层</p><p>)</p><p>
</p><p>;; 提示用户操作完成</p><p>(princ "\n已关闭/打开以下图层:")</p><p>(princ laylist)</p><p>(princ)</p><p>)</p><p>
</p><p>;; 自定义函数:关闭或打开指定图层</p><p>(defun bb_layon&off (layname / laystate)</p><p>;; 获取图层的当前状态</p><p>(setq laystate (cdr (assoc 70 (tblsearch "layer" layname))))</p><p>
</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>(defun c:sd (/ laylist)

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

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



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

(foreach layname laylist

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

)



;; 提示用户操作完成

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

(princ laylist)

(princ)

)



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

(defun bb_layon&off (layname / laystate)

;; 获取图层的当前状态

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



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

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

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

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

)

)

moranyuyan 发表于 2025-1-17 01:51:51

谢谢分享

magicheno 发表于 2025-1-17 01:53:26

感谢大佬分享
页: [1]
查看完整版本: 关闭打开多个设定图层程序