zjsru_18_505 发表于 2016-6-13 20:01:37

对本论坛的《防止捕捉丢失》,进行了修改

论坛里搜索到的防止捕捉丢失,使用效果很好,就是在命令执行过程中,捕捉模式改变后,比如:在绘图过程中,通过 草图设置 对象捕捉 界面人工更改捕捉模式后,命令结束时仍为最初的捕捉方式,这里觉得有点不方便,现在修改成可记住中途捕捉模式的改变。

原防止捕捉丢失代码:<blockquote>(or *osmodemonitor* (setq *osmodemonitor*修改后的代码:(defun C:TT ()
;;
;
;
;(vlr-remove-all :vlr-sysvar-reactor)
;(vlr-remove-all :vlr-lisp-reactor)
(vl-load-com)
(or *OSMODEMONITOR*
   (setq *OSMODEMONITOR* (vlr-lisp-reactor NIL
               '( ;(:vlr-lispwillstart . SAVEOSMODE)
               (:vlr-lispended . RESETOSMODE)
               (:vlr-lispcancelled . RESETOSMODE)
                )
         )
   *OSMODEMONITOR* (vlr-sysvar-reactor NIL '((:vlr-sysvarwillchange . SAVEOSMODE) (:vlr-sysvarchanged . SAVEOSMODE)))
   )
) ;反应器构造
;;回调函数
(defunSAVEOSMODE (V1 V2 / OSN)
(if (and (setq OSN (getvar 'OSMODE)) (/= OSN 0) (/= OSN 16384) (= (car V2) "OSMODE"))
   (setq *LASTOSMODE* (rem OSN 16384))
)
)
(defunRESETOSMODE (V1 V2)
(if (and *LASTOSMODE* (/= (getvar "osmode") *LASTOSMODE*))
   (setvar "osmode" *LASTOSMODE*)
)
)
(princ)
)输入TT开始防丢失
每次命令之后捕捉一直是打开状态

尘缘一生 发表于 2018-11-6 19:52:05

本帖最后由 尘缘一生 于 2018-11-6 20:02 编辑

程序有点错误,看是不是这样。。。


(defun C:TT ()
;;

(vl-load-com)
(or *OSMODEMONITOR*
(setq *OSMODEMONITOR* (vlr-lisp-reactor NIL
            '((:vlr-lispwillstart . SAVEOSMODE)
                (:vlr-lispended . RESETOSMODE)
                (:vlr-lispcancelled . RESETOSMODE)
               )
             )
   *OSMODEMONITOR* (vlr-sysvar-reactor NIL
            '((:vlr-sysvarwillchange . SAVEOSMODE)
            (:vlr-sysvarchanged . SAVEOSMODE)
            
             )
         )
)
) ;反应器构造
;;回调函数
(defunSAVEOSMODE (V1 V2 / OSN)
(if (and (setq OSN (getvar 'OSMODE)) (/= OSN 0) (/= OSN 16384) (= (car V2) "OSMODE"))
   (setq *LASTOSMODE* (rem OSN 16384))
)
)
(defunRESETOSMODE (V1 V2)
(if (and *LASTOSMODE* (/= (getvar "osmode") *LASTOSMODE*))
   (setvar "osmode" *LASTOSMODE*)
)
)
(princ)
);;;输入TT开始防丢失


zjsru_18_505 发表于 2016-6-16 19:49:54

水洗可口可乐 发表于 2016-6-13 23:39 static/image/common/back.gif
试试了下 没反应..

看不出什么反应,没运行前,捕捉是否有丢失现象,运行之后,是否还有丢失现象。

zjsru_18_505 发表于 2016-6-16 19:49:03

水洗可口可乐 发表于 2016-6-13 23:39 static/image/common/back.gif
试试了下 没反应..

看不出什么反应,没运行前,捕捉是否有丢失现象,运行之后,是否还有丢失现象。

zjsru_18_505 发表于 2016-6-16 19:46:44

maiko 发表于 2016-6-13 23:41 static/image/common/back.gif
其实没啥意义,用个错误处理功能,这些都不要了用反映器,CAD都慢了

自己写的当然可以加错误处理,如果用的不是自己写的,别人的程序不一定处理的好,我想原来写这个命令人的初衷也是这么考虑的。

zjsru_18_505 发表于 2016-6-16 19:44:12

maiko 发表于 2016-6-13 23:41 static/image/common/back.gif
其实没啥意义,用个错误处理功能,这些都不要了用反映器,CAD都慢了

自己写的当然可以加错误处理,如果用的不是自己写的,别人的程序不一定处理的好,我想原来写这个命令人的初衷也是这么考虑的。

maiko 发表于 2016-6-13 23:41:44

其实没啥意义,用个错误处理功能,这些都不要了用反映器,CAD都慢了

水洗可口可乐 发表于 2016-6-13 23:39:46

试试了下 没反应..
页: [1]
查看完整版本: 对本论坛的《防止捕捉丢失》,进行了修改