找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1685|回复: 12

[求助] [求助]:如何让lisp程序中途退出后,恢复捕捉

[复制链接]
发表于 2007-12-12 11:04:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我编了一些小程序,每个小程序开头部分都会加入这样一行代码:
(setvar "cmdecho" 0)
(setq osn (getvar "osmode"))
(setvar "osmode" 0)
......
......
在结尾再恢复:
(setvar "osmode" osn)

但有时,程序执行了一半时按ESC退出了,这时所有的捕捉都被取消了,还要重新设置捕捉,这样非常麻烦,请教各位能不能在其中加点东西,让程序在非正常退出时能自动恢复原来的捕捉设置?
    望赐教!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-12-12 11:24:07 | 显示全部楼层
(defun *error*()
(setvar "osmode" osn)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-12-12 13:54:10 | 显示全部楼层
这个问题真是太好了,这困扰了我好长时间,请版主给予关注
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-12 14:07:11 | 显示全部楼层
2楼的你好,这是个子程序吧,那么应该把这个子程序放在主程序什么位置呢?调用时用(*error*())就行吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-12-12 14:15:17 | 显示全部楼层
请二楼楼主说明一下用法!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-12-12 18:05:27 | 显示全部楼层
用法。。我也说不清楚。
论坛里面搜索一下,错误处理,应该相关主题多得很
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-12-12 18:46:31 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-12-14 16:44:12 | 显示全部楼层
能否举个简单的例子啊
楼上说的那个太复杂了,不太容易看懂
比如下面的程序:
;;;
;;;选取数字文本求和
;;;
(defun c:js_jia()
  (setvar "cmdecho" 0)
  (setq ooe (getvar "osmode"))
  (setvar "osmode" 0)
  (setq en (ssget (list (cons 0 "text"))))
  (setq i 0
        j 0
        n (sslength en))
  (repeat n
          (setq endate (entget (ssname en i)))
          (setq wb (atof(cdr (assoc 1 endate))))
          (setq j (+ j wb))
          (setq i (+ 1 i))  
  );end repeat
   (setq pt (getpoint "\n插入点"))
   (command "text" "m" pt 3 "" (rtos j 2 3) )   
  (setvar "osmode" ooe)
  (prin1)
)
;;; end defun

如何在程序运行中按esc后 恢复捕捉
该加上那些程序
高手解答下 谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-12-15 00:32:17 | 显示全部楼层
好像得使“vl-catch-all-apply”,大概如下:
[php]
(defun C:foo ()
  (defun OVal (@:1) (SetVar 'osmode 0) (vl-catch-all-apply 'Proc) (SetVar 'osmode @:1))
  (defun Proc ()
    ()
    ;;往下看情況隨意
    )
  (OVal (GetVar 'osmode))
  (Prin1)
  )
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-12-15 08:56:47 | 显示全部楼层
自定义error函数即可。

例子:http://zml84.blog.sohu.com/57639898.html
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-12-15 18:49:09 | 显示全部楼层
执行“u”命令即可恢复原来的捕捉设置。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-12-16 23:05:38 | 显示全部楼层
先getvar  ,再setvar
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-12-17 16:44:49 | 显示全部楼层
学会了 呵呵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 03:03 , Processed in 0.442140 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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