找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 833|回复: 3

[求助] [求助]:很多小lisp都没有“中断处理”功能,程序虽小但应完善呀…

[复制链接]
发表于 2005-8-28 12:52:12 | 显示全部楼层 |阅读模式

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

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

×
(defun c:ff (/ OS pe1 p1 p2 dist2)
(setq os (getvar "osmode"))
(setvar "osmode" 128)
(setq pe1 (entsel)  
         p1 (osnap (last pe1) "nea")
         p2 (getpoint p1)
         p2 (list (car p2) (cadr p2))
         dist2 (/ (distance p1 p2) 2)
)
(command "_.offset"  dist2 pe1 p2 ^c)
(setvar "osmode" os)
(princ)
)

这是一个平行生线的程序,如果程序运行时,直接回车或者ESC取消的话,那么捕捉osmode就被设为128了,应该让它回到以前的状态呀。
编程好难啊,学习中。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 111个

财富等级: 日进斗金

发表于 2005-8-28 13:05:53 | 显示全部楼层
;作如下简单处理即可
(defun c:ff (/ OS pe1 p1 p2 dist2)
(setq os (getvar "osmode") odlerr *error*)
(defun *error*(msg)(setvar "osmode" os)(princ))
(setvar "osmode" 128)
(setq pe1 (entsel)
p1 (osnap (last pe1) "nea")
p2 (getpoint p1)
p2 (list (car p2) (cadr p2))
dist2 (/ (distance p1 p2) 2)
)
(command "_.offset" dist2 pe1 p2 ^c)
(setq *error* olderr)
(setvar "osmode" os)
(princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 208个

财富等级: 日进斗金

发表于 2005-8-28 23:28:54 | 显示全部楼层
论坛中好多这样的问题,发贴前最好搜索一下论坛。
[php]
例如
[求助]如何恢复被ESC中断的系统变量?
lisp程序的开始往往要改变系统变量,在程序结束前再恢复过来。但是,如果在程序执行过程中由于esc强行退出,则系统变量就无法恢复了。

我这里所说的"退出"是指在执行lisp语句时的强行退出,例如:
  (setq p0 (getpoint "\n指定第一点:"))
按ESC键强制退出。

不要直接重定义*error*函数,应该
自定义出错处理函数,按ESC时,系统会自动执行*error*函数


(defun err(msg)
  (setvar "osmode" os)    ;恢复系统的改变
  (setq *error* errtmp)   ;恢复原有*error*函数
)

(defun myapp( / pt)
  (setq errtmp *error*)   ;保存原有*error*函数
  (setq *error* err)      ;使用自己错误处理函数
  (setq os (getvar "osmode"))
  (setvar "osmode" 0)
  (setq pt (getpoint "\nabc:"))
  (setvar "osmode" os)
  (setq *error* errtmp)   ;恢复原有*error*函数
  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 14:10 , Processed in 0.166132 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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