明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1326|回复: 7

[提问] 图层,只保留选中图层,关闭其它图层

[复制链接]
发表于 2016-10-29 18:48 | 显示全部楼层 |阅读模式
  1. (defun c:2 (/ es en el i fl clay )
  2. (princ "关闭其他")
  3. (setq es nil)
  4. (setq es (ssget)
  5.     i 0
  6.     en ""
  7.     el nil
  8.     fl nil)
  9. (while (/= en nil)
  10.    (setq en (ssname es i)
  11.        el (cons en el)
  12.        i (1+ i)
  13.     )
  14. )
  15. (setq el (cdr el)
  16.      fl (cdr (assoc ' 8 (entget (car el))))
  17.      clay fl
  18.      el (cdr el))   
  19. (repeat (- i 2)
  20.    (setq en (cdr (assoc ' 8 (entget (car el))))
  21.        fl (strcat en "," fl)
  22.        el (cdr el)
  23.     )
  24.   )
  25. (command "layer" "off" "*" "Y" "on" (eval fl) "")
  26. (setvar "clayer" clay )
  27. (princ))
这个是别人写的代码,自己也都读懂了,也在用。但用的时候经常会出现问题,出现问题后重启AutoCAD就又正常了。
出现的问题提示是“无效的选项关键字”。调试的时候是在 (command "layer" "off" "*" "Y" "on" (eval fl) "")这句出问题,在AutoCAD出问题后,在Command命令行里输入-layer   off   *  但在Y这里就出现问题了,没有Y这个选项。

将"Y"移出后,插件又正常工作。
但重新启动后修改的插件不能正常工作。


能否有人帮忙看一下是哪里出的问题?应该如何解决问题,谢谢!!!
发表于 2016-10-29 19:29 | 显示全部楼层
呼叫命令之后逐一看清提示再作回应
想必能厘清卡点...
发表于 2016-10-29 21:22 | 显示全部楼层
Ok You might check  EXPERT (System Variable)
...
1
Suppresses 「About to regen, proceed?」 and 「Really want to turn the current layer off?」 (-LAYER)
...
发表于 2016-10-31 16:35 | 显示全部楼层
难道都是古代cad版本?我08的就有图层隔离了,命令 layiso
发表于 2016-11-1 11:03 | 显示全部楼层
试试CAD自带命令:LAYISO
发表于 2016-11-1 13:59 | 显示全部楼层
YY有这个功能啊
发表于 2016-11-1 16:42 | 显示全部楼层
我也发一个,是以前别人发给我的。
(defun c:1111(/ s1 dnm)
(setvar "cmdecho" 0)
(setq s1 (car (entsel "\n 选择基准对象: "))
     dnm (cdr (assoc 8 (entget s1))) )
(setq tbdata ( tblnext "layer" T ))
(while  tbdata
   (setq lname (strcase (cdr (assoc 2 tbdata))))
   (if (/= t ( wcmatch lname dnm))
      (progn
         (setq data (entget (tblobjname "layer" lname)))                               
         (setq c70 4)
         (setq c62 (- (abs (cdr (assoc 62 data)))))
         (setq q70 (cons 70 c70))
         (setq q62 (cons 62 c62))
         (setq data (subst q70 (assoc 70 data) data ) )
         (setq data (subst q62 (assoc 62 data) data ))
         (entmod data)
      )
   )
   (setq tbdata ( tblnext "layer"))
)
(setvar "cmdecho" 1)
(PRINC)
)
 楼主| 发表于 2016-11-1 18:25 | 显示全部楼层
zkq1212 发表于 2016-11-1 16:42
我也发一个,是以前别人发给我的。
(defun c:1111(/ s1 dnm)
(setvar "cmdecho" 0)

谢谢!问题应该已经解决了,不过还是谢谢你!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-28 15:11 , Processed in 0.246605 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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