CADghost 发表于 2005-2-21 08:18:00

错误处理问题

本帖最后由 作者 于 2005-2-21 10:01:30 编辑 <br /><br /> 在连续运行



(点 pt1 0,0)


(点 pt2 5,0)


(command "line" 0,0 100,0 "")


(repeat 100


               (command "move" (entlast) pt1 pt2)


(setq pt1 pt2)


(Setq pt2 (polar pt2 pi 5))


想按ESC删除所有,用下面这样是不是不行呀


(Defun *error* ()<BR>       (princ "\n程序终止")<BR>       (command)<BR>       (Setq ss_get (ssget "X" '((8 . "ghost_1"))))<BR>       (command "erase" ss_get "")<BR>       (setvar "clayer" "0")<BR>       (princ)<BR>       )

lijiao 发表于 2005-2-21 08:52:00

setq pt1 0,0) (setq pt2 5,0)是不对的


在错误处理函数中,最好用UNDO命令,并且程序要短,要快,避免错误处理程序也被中断。

CADghost 发表于 2005-2-21 10:03:00

明白意思就行了,


我觉得不是在*error*中不能调用带参数的"command"函数呀

meflying 发表于 2005-2-21 11:20:00

可以使用的,你确认你的每一步都正确,并且已经调用了错误处理函数

zhanghong 发表于 2005-2-21 11:55:00

调用?


不是出错了就自动调用*error*函数了吗?

meflying 发表于 2005-2-21 13:41:00

可我从你楼顶给的代码中看不出会出错的地方,我让你保证调用,就是保证程序中途出错

CADghost 发表于 2005-2-21 13:59:00

zhanghong发表于2005-2-21 11:55:00static/image/common/back.gif调用?



不是出错了就自动调用*error*函数了吗?


<BR>                               没错,


                               回meflying


                               我的程序没有问题,只是这段动画有点长,我让它在一打开CAD时运行,有时如果想跳过动画,就在程序运行中按"ESC"键

无痕 发表于 2005-2-21 18:59:00

程序开始设 undomark, 出错就"u"回去.


如果是在开始的时候,undomark也不用做了,直接undo /b 回去

CADghost 发表于 2005-2-22 08:32:00

是undomarks变量吗?它是不是只读的吗?
页: [1]
查看完整版本: 错误处理问题