只需一步,快速开始
请高手帮忙,我经常想把某一个层以外的层都冻结,只剩下我选的层,方便画图
使用道具 举报
我只见过 某一个层以外的层都关闭 只剩下我选的层,方便画图
(defun *$dyq-error$* (msg) ;(command ".undo" "") (setq *error* &olderr&) ;(princ))(defun c:sd (/ layerlist ss num n lname prinname) ;锁定所选图层以外的图层 (prompt "\n请选择不要锁定的图层,要解锁所有图层请直接按右键:" ) (setq &olderr& *error*) (setq *error* *$dyq-error$*) (setq layerlist (list "0")) (if (setq ss (ssget)) (progn (setq num (sslength ss)) (setq n 0) (repeat num (setq lname (cdr (assoc '8 (entget (ssname ss n))))) (if (not (member lname layerlist)) ;如果对象的图层名已经存在则不再加入列表 (setq layerlist (cons lname layerlist)) ) (setq n (+ n 1)) ) (command "-layer" "lo" "*" "") (setq num (length layerlist)) (setq prinname "") (setq n 0) (repeat (- num 1) (command "-layer" "u" (nth n layerlist) "") (if (= n 0) (setq prinname (nth n layerlist)) (setq prinname (strcat (nth n layerlist) "、" prinname)) ) (setq n (+ n 1)) ) (prompt (strcat "\n除" (itoa (- num 1)) "个图层外,其他均锁定了:" prinname ) ) ) (progn (princ "\n所有图层均解锁了!") (command "-layer" "u" "*" "") ) ) (setq *error* &olderr&) (princ))
程序也可以这样啊!冻结选定的层以外的所有的层,就是反向冻结层,只可看见所选择的层中的对象
dim ppsetmm as acadentity
....... '略 选择集操作
dim ppsetaa as acadlayer
for each ppsetaa in thisdrawing.layers
if ppsetaa.name<>ppsetmm.layer then
ppsetmm.freeze=true
end if
就这么简单
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2025-5-25 23:12 , Processed in 0.165584 second(s), 23 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.