明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1541|回复: 1

调用(*push-error-using-command*)前无法从 *error* 调用(command)问题解决方法

[复制链接]
发表于 2020-8-9 14:14:35 | 显示全部楼层 |阅读模式
本帖最后由 tianying307 于 2020-8-9 14:18 编辑

在使用插件时,按esc经常出现调用(*push-error-using-command*)前无法从 *error* 调用(command)提示,这是因为高版本cad(大概从2014或者2015版本有所变化吧,本人未考证,所以不确定)函数变化导致,高版本cad的error函数不允许使用command命令,但是可以用command-s命令代替
(defun c:tt ()  (setq        sysvarlst (mapcar (function (lambda (n) (list 'setvar n (getvar n)))) ;;先取改变前的变量名和值保存
                          '("osmode" "cmdecho" "orthomode" "osnapcoord" "textsize" "clayer")
                  )
  )
(clerrr)
  (setvar "osmode" 0)    ;改变变量值
     (alert "11")
     (getpoint "\n输入")
    )
  (mapcar 'eval sysvarlst) ;;恢复变量值
  (setq *error* olderr)
)


(defun clerrr()
  (defun *myerr* (msg)
    (mapcar 'eval sysvarlst) ;;恢复变量值 
   (alert "\n错误处理成功!")
    (princ msg)
    (setvar "qaflags" 0)
    (command-s "undo" "e");用command-s代替了command
    (setq *error* olderr)
  )
  (setq        olderr        *error*
        *error*        *myerr*
  )
)
感谢wen1235提供的解答

;借鉴于明经http://bbs.mjtd.com/forum.php?mo ... amp;highlight=error
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 12:42 , Processed in 0.160564 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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