如何限制一个程序(命令)重复运行的间隔时间?
在日常操作cad的时候,一不小心就连续按了两次或多次空格键(或回车键),又或者按下去太久,导致继续运行上一个命令(程序),比如以下程序 13(defun c:13()
(princ "\n 888888888")
)
因此,向大家请教一个问题:如何限制一个程序(命令)重复运行的间隔时间?比如两次运行的时间间隔必须大于3秒
本帖最后由 tryhi 于 2020-2-28 11:27 编辑
(defun c:13()
(and *time* (<(try-time-end *time* nil)3000) (exit))
(princ "\n 888888888")
(setq *time* (try-time-be))
(princ)
)
(defun try-time-be () ;计时器开始
(setq $try-timebe(getvar "TDUSRTIMER"))
)
(defun try-time-end (time p / tt) ;计时器结束
(if (not time)(setq time $try-timebe))
(setq tt(* 86400000(- (getvar "TDUSRTIMER") time)))
(if p (print(strcat"经历时间为:"(rtos tt 2 0)"毫秒")))
tt
) 这想法可以啊,要不要把所以命令都这样给你设置一下 每次运行完写一个注册表 谢谢各位大师的热情回复,我也在写,还没写好 (defun J计算时间差(jg / tx)
;(setq tx (atof(menucmd"M=$(edtime,$(getvar,date),mmss)")) ) ;YYMODDhhmmss
(setq tx (*(getvar "TDUSRTIMER")86400) ) ;86400000毫秒
(if (not jg) (setq jg 0))
(if t1
(if (< (- tx t1) jg) (vlax-invoke shell "SendKeys" "{esc}") (setq t1 tx))
(setq t1 tx)
)
(setq jg nil)
)
(defun c:13()
(J计算时间差 1)
(princ "\n 888")
)
请教一下,为什么 t1 不能作为局部变量? tryhi 发表于 2020-2-27 11:26
(defun c:13()
(and *time* (
大神,太牛了!
页:
[1]