明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4339|回复: 11

发现捕捉丢失就自动打开设置好捕捉!

[复制链接]
发表于 2013-3-18 21:28:45 | 显示全部楼层 |阅读模式
3明经币
本帖最后由 ︶ㄣ与狼共舞 于 2013-3-18 21:32 编辑

如题:写个LSP程序,发现捕捉丢失就自动打开设置好捕捉,前提是不要影响正在执行的命令或其他操作!请求大师帮忙!在此谢过了!

最佳答案

查看完整内容

其实有个帖子也许可以很好解决你这个问题 [转贴]防止捕捉丢失 By free-Lancer http://bbs.mjtd.com/forum.php?mo ... 7586&fromuid=202795
发表于 2013-3-18 21:28:46 | 显示全部楼层
︶ㄣ与狼共舞 发表于 2013-11-10 13:16
谢谢你的回答!

其实有个帖子也许可以很好解决你这个问题
[转贴]防止捕捉丢失 By free-Lancer
http://bbs.mjtd.com/forum.php?mo ... 7586&fromuid=202795
回复

使用道具 举报

发表于 2013-3-20 13:32:19 | 显示全部楼层
捕捉丢失是什么意思?

点评

可能描述不够清析!  发表于 2013-12-12 11:32
回复

使用道具 举报

发表于 2013-3-20 14:51:56 | 显示全部楼层
回复

使用道具 举报

发表于 2013-3-24 08:20:17 | 显示全部楼层
本帖最后由 1993063 于 2013-3-23 14:22 编辑

(defun c:命令 ( / *Error* usercmd userosm)
  (defun *Error* (msg)                ; 异常退出处理
    (if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,*EXIT*,")))(princ))
    (and usercmd (setvar "CMDECHO" usercmd) userosm (setvar "OSMODE" userosm))
    (vla-EndUndoMark (vla-get-ActiveDocument (vlax-get-acad-object)))
  )
  (setq *DOC (vla-get-ActiveDocument (vlax-get-acad-object)))(vla-StartUndoMark *DOC)
  (setq usercmd (getvar "CMDECHO") userosm (getvar "OSMODE"))
  (setvar "CMDECHO" 0)(setvar "OSMODE" 0)
  代码...................................
(*error* nil)
(princ)
)
回复

使用道具 举报

 楼主| 发表于 2013-4-6 10:47:16 | 显示全部楼层
本帖最后由 ︶ㄣ与狼共舞 于 2013-4-6 10:51 编辑
1993063 发表于 2013-3-24 08:20
(defun c:命令 ( / *Error* usercmd userosm)
  (defun *Error* (msg)                ; 异常退出处理
   ...

非常感谢你的回答,这个不符合我的要求,我的意思是不用输入命令,让这个命令随时发现捕捉异常关闭(F3正常关闭除外,有活动命令执行时除外,)就自动执行并恢复到设置好的捕捉。如有合适程序可面议价格!
回复

使用道具 举报

发表于 2013-4-6 16:46:12 | 显示全部楼层
本帖最后由 wowan1314 于 2013-4-6 17:01 编辑

估计你还得输入命令。 不然真不知道该怎么弄。
关于丢失捕捉处理:
  1、修正要加载的程序,使其在任何情况下都不会丢失捕捉(即对程序进行出错处理)
  2、再加个程序,如果发现丢失捕捉,手动按下命令就恢复到想要的捕捉。
  3、我还不知道的处理方法?!

最好是第一种。这样永绝后患。 就算有你说的那样,估计对CAD也是多了一种负担,速度必然有影响。
回复

使用道具 举报

 楼主| 发表于 2013-4-6 18:05:06 | 显示全部楼层
wowan1314 发表于 2013-4-6 16:46
估计你还得输入命令。 不然真不知道该怎么弄。
关于丢失捕捉处理:
  1、修正要加载的程序,使其在任何情 ...

谢谢了!
回复

使用道具 举报

发表于 2013-11-10 01:40:35 | 显示全部楼层
      如果只是捕捉,就算你平时开得再多,哪怕一个个的去点好象也点不了多少下
    还有要完全防止它丢失除了没必要之外,也不现实,虽然我们自己写程序时可以考虑种种办法,对数据有效性检查减少程序中断的可能性,通过出错处理恢复系统变量等等。但是对于加载别人打好包的程序基本上前边的方法都行不通了,比如有一个版本的南方CASS软件,在运行一个命令时(具体是哪上忘了,汗),它就把捕捉给清空了,虽然最后它恢复了,但我们用那个命令时是需要捕捉的,类似这种情况除了自己把它打开进行设置外,我真不知道有什么好招,当然也有人说过自定义透明命令可以界入。
    最后一点其实还是最先说的,真没必要为这个纠结。当然如果是想研究怎么在别人的程序运行中让自己的程序去干涉它来实现恢复捕捉等那是不一样的。
回复

使用道具 举报

 楼主| 发表于 2013-11-10 13:16:07 | 显示全部楼层
llsheng_73 发表于 2013-11-10 01:40
如果只是捕捉,就算你平时开得再多,哪怕一个个的去点好象也点不了多少下
    还有要完全防止它丢失 ...

谢谢你的回答!
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 12:39 , Processed in 0.177746 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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