找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5766|回复: 34

[求助] [求助]:对象捕捉自动清除了,寻求解决?

[复制链接]
发表于 2005-8-23 10:35:41 | 显示全部楼层 |阅读模式

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

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

×
我使用的是王兆田的RJCAD,是热力设计方面的软件,在2002CAD版本上开发的,这个软件有个问题,就是打开时,对象捕捉总是空的,设置好对象捕捉后,然后再任意使用某一命令,对象捕捉又自动清除了,又变成空的的,然后再设置,问题总是重复出现,请问,有什么办法能够解决这个问题,使用太麻烦了,总是要重复设置对象捕捉
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-8-23 10:44:37 | 显示全部楼层
可以到LISP版块问一下。
据柔柔说,是LISP程序里面少了一句话,加上就行了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2005-8-23 19:10:45 | 显示全部楼层
我下载附件也有问题,我的是教育网,下载速度慢极了,经常掉。
你需要找到出问题的LISP,也就是用了捕捉就清零的那个,找到之后如下图加上这句。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-23 20:08:00 | 显示全部楼层
这是Lisp编程最容易犯的错误
cdhua001  长老说的是恢复,除此之外还得考虑出错
;;-------------------------------------------
(defun xxx_err        (s)
  (setvar "osmode" os)
  (command "_.UNDO" "_E")
)

;;===============  Main program  ============

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

使用道具 举报

发表于 2005-8-23 20:19:45 | 显示全部楼层
  柔柔长老能解释一下你的几句话的含义吗?

  LISP,我是彻底的门外汉。上面这个是我今天才发现的。
  我今天在演示标注坐标的时候,发现不能捕捉节点,于是我打开这个LISP慢慢看,结果什么都看不懂,不过有一个单词我认识“OSMODE”,于是我把几个有“OSMODE”的句子一个一个删除测试。最后发现是第四句“(setvar "osmode" 33)”造成的,又是由后面的那句“(setvar "osmode" os)”还原的。

  究竟是些什么意思,还是一无所知。毕竟一天也没有学过LISP。今天要不是看见这个帖子长时间没人回,我也没那么大的胆子回帖。谢天谢地,还算好,没说错。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-23 20:55:20 | 显示全部楼层
(defun xxx_err (s)--子程序,如果主程序出错(比如中断)便执行该子程序
(setvar "osmode" os) --让系统变量OSMODE取变量os之值,也就是恢复原来的值
(command "_.UNDO" "_E")--让程序结束
)

;;=============== Main program ============

(defun c:xxx (/ ...)
(setq *error* xxx_err)--出错函数,如果出错,让它转xxx_err子程序
(setq os (getvar "osmode")--先把原来的OSMODE的值保存在变量os内,以便最后恢复
)
(setvar "osmode" 0)--这是本程序需要,去掉全部捕捉
......
(setvar "osmode" os)--程序结束前,还原OSMODE值
(princ)
)
*-*5 *-*5 *-*5
多数人会考虑程序结束前恢复被程序修改的系统变量,但往往不知道进行出错处理,你在上面贴出的程序就是这样。不做出错处理不算好程序,因为程序出错是正常的,有程序本身的原因,也有用户中断(不想让程序继续下去)的原因。你上面贴出的程序,程序执行完毕,OSMODE会恢复,但如果程序执行过程中按Esc键中断程序,OSMODE值就无法恢复了,不信你可以试验一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-23 21:14:55 | 显示全部楼层
谢谢柔柔指教!
又算懂了一点点,知道很多程序在运行的时候需要将捕捉清除,最后再还原。
怪不得,我今天在“乱试”的时候,程序出错了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-23 21:21:15 | 显示全部楼层
最初由 柔柔 发布
[B](defun xxx_err (s)--子程序,如果主程序出错(比如中断)便执行该子程序
(setvar "osmode" os) --让系统变量OSMODE取变量os之值,也就是恢复原来的值
(command "_.UNDO" "_E")--让程序结束
)

;;===========... [/B]


谢谢柔柔长老,又学一招。明天回公司去试试看!
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-8-23 21:42:04 | 显示全部楼层
最初由 柔柔 发布
[B]你上面贴出的程序,程序执行完毕,OSMODE会恢复,但如果程序执行过程中按Esc键中断程序,OSMODE值就无法恢复了,不信你可以试验一下。[/B]

高手就是高手。
不用试验了,我手里面有几个程序都是如此——不能中断的。

你帮我改一下吧,就用上面这个程序为例进行修改。然后我对照你修改的程序自己改我其它的。

请贴出修改后程序的完整源文件,便于我对照哪些是你加的内容。谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 01:10 , Processed in 0.195196 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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