找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 786|回复: 7

[求助] [求助]:关于错误函数处理?

[复制链接]
发表于 2005-11-18 12:56:53 | 显示全部楼层 |阅读模式

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

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

×
(defun c;xxx()
(command"line" '(0 0) '(1 1) "")
(command"move" (entlast) "" '(0 0) )
)
程序执行move命令时会等待用户选择第二点,此时若不选点,而是直接按esc,我希望可以删除line,该怎样用错误函数处理?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-11-18 13:07:50 | 显示全部楼层
  1. [FONT=courier new](defun c:xxx (/ pt1)
  2.   (command "line" '(0 0) '(1 1) "")
  3.   (if (setq pt1 (getpoint '(0 0) "\n目标点 : "))
  4.     (command "move" (entlast) "" '(0 0) pt1)
  5.     (entdel (entlast))
  6.   )
  7. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-18 13:36:45 | 显示全部楼层
楼上的做法执行move是静态的,我希望有动态的效果(橡皮线)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-18 14:32:28 | 显示全部楼层
[PHP]
(DEFUN C:H (/ SS)
  (SETQ CMDOLD (GETVAR "CMDECHO"))
  (SETVAR "CMDECHO" 0)
  (PRINC "\n绘制固定长度横线!")
  (COMMAND "_.LINE" '(0 0 0) '(300 0 0) "")
  (SETQ SS (ENTLAST))
  (COMMAND "-BLOCK" "HLINE" '(150 0 0) SS "")
  (SETVAR "OSMODE" (+ 1 2 4 8 128 32 512))
  (COMMAND "-INSERT" "HLINE" PAUSE 1 1 0)
  (SETQ SS (ENTLAST))
  (COMMAND "_.EXPLODE" SS)
  (SETVAR "CMDECHO" CMDOLD)
  (PRINC)
  )
[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-18 15:13:35 | 显示全部楼层
举个例子
程序1:有动态移动效果,但按esc不能删除line。
(defun c:xxx (/ ss)
  (command "line" '(0 0) '(1 1) "")
  (setq ss (ssadd))
  (setq ss (ssadd (entlast) ss))
   (command "move" ss "" '(0 0) )
)

(defun *error* (msg)
  (if (= msg "Function cancelled")
    (command "_.erase" ss "")
  )
  (setq *error* olderror)
)

程序2:无动态移动效果,但按esc能删除line。
(defun c:xxx (/ ss a)
  (command "line" '(0 0) '(1 1) "")
  (setq ss (ssadd))
  (setq ss (ssadd (entlast) ss))
  (setq a (getpoint "2nd point"))
  (command "move" ss "" '(0 0) a)
)

(defun *error* (msg)
  (if (= msg "Function cancelled")
    (command "_.erase" ss "")
  )
  (setq *error* olderror)
)

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

使用道具 举报

已领礼包: 8157个

财富等级: 富甲天下

发表于 2005-11-18 16:23:32 | 显示全部楼层
(defun c:xxx (/ ss)
(command "line" '(0 0) '(1 1) "")
(setq ss (ssadd))
(setq ss (ssadd (entlast) ss))
(command "move" ss "" '(0 0)  Pause)  ; 這兒要加 Pause
)

(defun *error* (msg)

;; "Function cancelled"  中文版得换成"函数被取消" 或 其它您所捕捉到的系统返回讯息
;; (if (= msg "Function cancelled")
(if (= msg "函数被取消")
(command "_.erase" ss "")
)
;(setq *error* olderror)   ; 除非之前已设定
)

;======== Something like this about the *Error*
(defun c:test (/ TESTVALUE)
  (setq olderror *error*
         *error*  MyError) ; <--Changed
  (setq TESTVALUE "hello there")
  (getstring "\nHit excape key now to error the routine")
)


(defun MyError (MSG) ; <--Changed
  (princ "\nerror: ")
  (princ MSG)
  (setq testvalue nil) ; <--Added
  (setq *error* olderror)
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2005-11-18 23:37:20 | 显示全部楼层
呵呵,不知道楼主要实现什么功能,grdraw和grread组合一下也能做到你这一点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-19 10:53:15 | 显示全部楼层
借贵地问个问题,眼前在XD下的交线切断程序,发现一个BUG,如果调用程序后,不选线段,
直接回车,CAD2004死机,据说要加一个错误函数,请大家帮忙改一下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 20:00 , Processed in 0.186569 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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