找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3680|回复: 9

[分享]:(setvar "osmode" 0)关闭捕捉不合理,请看:

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

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

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

×
关闭捕捉

  1. (if (< (getvar "osmode") 16384)
  2. (setvar "osmode" (+ 16384 (getvar "osmode"))))
复制代码


打开捕捉

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

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-1-12 12:58:34 | 显示全部楼层
有问题吧,输入16383 是指定全部对象捕捉方式。那么(< (getvar "osmode") 16384)这个条件就永远成立,下面的一句不是超出范围了吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-1-12 13:35:27 | 显示全部楼层
不是的。当(getvar "osmode")大于16384时对象捕捉方式是关闭的。当用这种方式关闭对象捕捉方式后再用F3打开,你会发现你原来设置的对象捕捉方式还在。你再用F3关闭,用(getvar "osmode")查看,你会发现结果是大于16384的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-1-12 13:41:10 | 显示全部楼层

  1.   [FONT=courier new]
  2. 使用状态行的“对象捕捉”按钮关闭对象捕捉模式,除了返回 OSMODE 的普通值,还将返回位码 16384 (0x4000)。
  3. 这个附加值有助于开发人员编写 AutoCAD 应用程序并将此模式与“绘图设置”对话框关闭的对象捕捉模式区别开来。
  4. 设置此位码值将关闭对象捕捉。将 OSMODE 设置为其他值将打开对象捕捉。
  5.   [/FONT]
复制代码


看了帮助文件,感觉有点奇怪了,按CAD的意思是关闭对象捕捉模式,那关闭了怎么捕捉?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-1-12 14:25:55 | 显示全部楼层
前提是在Lisp中设置后,怎么让用户运行捕捉而即使错误也恢复原来的设置,先按F3打开吧,跟没加上16384是一样的,加上吧,不是关闭了吗,会出现捕捉框?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-1-12 15:34:46 | 显示全部楼层
加上出错机制:
如:

  1. (setq temp *error*)
  2. (setq *error* newerror)
  3. (defun newerror (err)
  4.       (setq *error* temp)
  5.       (setvar "osmode" a)
  6. )

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

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-1-12 16:03:47 | 显示全部楼层
已经搞定,自己编了个程序,即使第三方程序更改了捕捉设置也能自动的恢复过来。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-1-12 16:06:28 | 显示全部楼层
不过对于新建的图纸或者没有运行此程序进行设置的图纸不起作用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-1-12 16:26:45 | 显示全部楼层
我的方案:


  1. [FONT=courier new]
  2. ;;使用状态行的“对象捕捉”按钮关闭对象捕捉模式,除了返回 OSMODE 的普通,
  3. ;;还将返回位码 16384 (0x4000)。这个附加值有助于开发人员编写 AutoCAD 用
  4. ;;程序并将此模式与“绘图设置”对话框关闭的对象捕捉模式区别开来。设置位
  5. ;;码值将关闭对象捕捉。将 OSMODE 设置为其他值将打开对象捕捉。

  6. (defun qf-disable-osmode()
  7.     (setvar "osmode" (logior (getvar "osmode") 16384)) ; turn it off: 16384=0x4000
  8. )
  9. (defun qf-enable-osmode()
  10.     (setvar "osmode" (logand (getvar "osmode") 49151)) ; turn it on: 49151=0xBFFF
  11. )
  12. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 05:05 , Processed in 0.433077 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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