xinrstar 发表于 2014-4-6 21:02:07

怎么用反应器监视一个特定的命令

如题,请教老师

xinrstar 发表于 2014-4-8 09:21:15

找到一个有些复杂的方法:
(setvar "LOGFILEMODE" 1)
设置系统变量LOGFILEMODE的值为1 维护日志文件
(getvar "LOGFILENAME")
得到系统日志文件的地址和文件名
然后从日志文件中可以得到最近执行的命令

这样可以监视CAD已经执行完的命令,不过命令刚开始执行就不行了。
继续请教高手:怎么在命令开始执行时就可以得到命令名

阿然 发表于 2014-4-8 11:07:42

使用命令反应器

(vl-load-com)
(or *commandReactor*
(setq        *commandReactor*
       (VLR-Command-Reactor
           nil
           '
          (
             (:vlr-commandWillStart . test:command-will-start)
          )
       ) ;_ end of vlr-command-reactor
)
)

(defun test:command-will-start (reactor command-list / objlist)
(princ (strcat "\n您执行了 " (car command-list) "命令!"))
)

669423907 发表于 2014-4-8 12:00:35

你看看这个也许对你有帮助
http://bbs.mjtd.com/thread-86804-1-1.html

Gu_xl 发表于 2014-4-8 14:21:44

监视lisp命令:
(or *lispvlr*
    (setq *lispvlr* (vlr-lisp-reactor nil '((:vlr-lispWillStart . lispcallback))))
    )
(defun lispcallback (vlrobj data)
(princ "\n启动lisp命令是: ")
(princ (car data)) (princ)
)

xinrstar 发表于 2014-4-9 11:25:00

阿然 发表于 2014-4-8 11:07 static/image/common/back.gif
使用命令反应器

感谢阿然问题已解决 谢谢!!!

CAD_lso 发表于 2014-4-9 14:28:32

xinrstar 发表于 2014-4-9 11:25 static/image/common/back.gif
感谢阿然问题已解决 谢谢!!!

如何将问题设置为已解决?
页: [1]
查看完整版本: 怎么用反应器监视一个特定的命令