cad关闭当前图层LISP?

希望实现通过快捷键打开/关闭任意图层。自己改了个程序,出现个问题:如果要关闭的图层是当前图层,则无法关闭程序如下(defunc:G11()(setqcmd(getvar"... 希望实现通过快捷键打开/关闭任意图层。
自己改了个程序,出现个问题:
如果要关闭的图层是当前图层,则无法关闭程序如下
(defun c:G11()
(setq cmd(getvar "cmdecho"))
(setvar "cmdecho" 0)
(command "layer" "off" "11" "" )
(setvar "cmdecho" cmd)
(prin1)
)
然后我将(command "layer" "off" "11" "" )
改为(command "layer" "off" "11" "Y" "" )
此时又出现了新的问题:
在关闭非当前图层时,会出现-layer的对话列表,需要再敲一次回车/空格。
请问如何解决?是否可以读取当前图层,然后按不同情况执行command layer?
最好可以将LISP程序贴上。
展开
 我来答
ldd_boy
2017-06-14 · TA获得超过287个赞
知道小有建树答主
回答量:192
采纳率:75%
帮助的人:124万
展开全部
(princ "\n当前图层的打开与关闭")
(defun c:abc()
  (setq layname (getvar "clayer"))
  (setq layen (tblobjname "layer" layname))
  (setq data (entget layen))
  (setq dxf62 (cdr (assoc 62 data)))
  (if (minusp dxf62)
    (progn
      (princ "\n打开当前层")
      (setq data (entmod (subst (cons 62 (- dxf62))(assoc 62 data) data)))
    )
    (progn
      (princ "\n关闭当前层")
      (setq data (entmod (subst (cons 62 (- dxf62))(assoc 62 data) data)))
    )
  )
  (setvar "cmdecho" 0)
  (command "redraw")
  (setvar "cmdecho" 1)
  (princ)
)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式