将指定的图层设置为不打印,可以选择多个图层!
(defun C:BDY (/ ss i ent layname laylist);; 提示用户选择对象
(prompt "\n请选择要设置为不打印的图层对象:")
(setq ss (ssget)) ; 选择对象
;; 如果选择了对象
(if ss
(progn
(setq i 0)
(setq laylist '()) ; 初始化图层名称列表
;; 遍历选择集,提取图层名称
(repeat (sslength ss)
(setq ent (ssname ss i)) ; 获取对象
(setq layname (cdr (assoc 8 (entget ent)))) ; 获取对象所在的图层名称
(if (not (member layname laylist)) ; 去重
(setq laylist (cons layname laylist)) ; 将图层名称加入列表
)
(setq i (1+ i))
)
;; 对每个图层执行不打印操作
(foreach layname laylist
(command ".layer" "p" "n" layname "") ; 不打印图层
)
(prompt (strcat "\n已不打印 " (itoa (length laylist)) " 个图层。"))
)
;; 如果没有选择对象
(prompt "\n未选择任何对象!")
)
(princ)
)
将指定的图层设置为不打印,可以选择多个图层!
这个有用!多谢分享 多谢分享 应该还能改回来啊
页:
[1]