[求助]autolisp的延时函数是什么?
在一些语言里,要等上一步执行完成后才能进行下步,否则就可能出错(如c语言的sleep)近日我再用autolisp编程时出问题了,似乎是这个原因造成的,请问autolisp的延时函数是什么?或有什么方法解决?
谢谢
delay 命令 能讲具体点吗?
谢谢! delay是命令名称,输入1 就是停留1 毫秒 在程序中
(command "_.delay" 100) 这个delay好像不太好用.延时过程中并不会运行其它命令,恐怕楼主的问题不能解决. 记得以前有人写过一个程序,出现问题,是因为要在硬盘上生成一个文件,然后后面的程序要调用这个文件,由于文件生成可能需要一定时间,所以后面使用时文件还没生成,导致错误,这时DELAY命令就有用了,你还可以搜索一下内容的DELAY,还有别的用处的 (setq time0(getvar "cDATE"))
(while (< (cal-time (- (getvar "cDATE")time0) ) your-settedtime) )
;;;cal-time 是计算时间的。因为是60进制. 本帖最后由 sfzyr 于 2023-10-21 22:58 编辑
meflying 发表于 2005-2-27 09:44
记得以前有人写过一个程序,出现问题,是因为要在硬盘上生成一个文件,然后后面的程序要调用这个文件,由于 ...
高版本中的grread 读取鼠标点位置,来更新图块位置,做到拖动显示,如果不加入delay来延时,更笨无法看到拖动的效果,用其他的办法延时都不行。不知道怎么回事,在2004中,不需要delay。
(while (and entobj loop)
(setq code (grread T 8))
(command ".delay" 1)
;(vl-cmdf ".delay" 1)同command
;(acet-sys-sleep 1);能延时,但是没用
(cond
((= (car code) 5)(do_move))
;;;move
((or (= (car code) 3) (= (car code) 11) (= (car code) 25))
(setq loop nil)
)
;;;button-right
)
)
页:
[1]