xiaokk 发表于 2005-2-26 11:43:00

[求助]autolisp的延时函数是什么?

在一些语言里,要等上一步执行完成后才能进行下步,否则就可能出错(如c语言的sleep)


近日我再用autolisp编程时出问题了,似乎是这个原因造成的,请问autolisp的延时函数是什么?或有什么方法解决?


谢谢

spring 发表于 2005-2-26 12:18:00

delay 命令

xiaokk 发表于 2005-2-26 12:23:00

能讲具体点吗?


谢谢!

xazhji 发表于 2005-2-26 13:06:00

delay是命令名称,输入1 就是停留1 毫秒

meflying 发表于 2005-2-26 13:42:00

在程序中


(command "_.delay" 100)

alin 发表于 2005-2-26 17:29:00

这个delay好像不太好用.延时过程中并不会运行其它命令,恐怕楼主的问题不能解决.

meflying 发表于 2005-2-27 09:44:00

记得以前有人写过一个程序,出现问题,是因为要在硬盘上生成一个文件,然后后面的程序要调用这个文件,由于文件生成可能需要一定时间,所以后面使用时文件还没生成,导致错误,这时DELAY命令就有用了,你还可以搜索一下内容的DELAY,还有别的用处的

aeo000000 发表于 2005-2-27 16:17:00

(setq time0(getvar "cDATE"))


(while (< (cal-time (- (getvar "cDATE")time0) )        your-settedtime) )


;;;cal-time 是计算时间的。因为是60进制.

sfzyr 发表于 2023-10-21 22:50:42

本帖最后由 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]
查看完整版本: [求助]autolisp的延时函数是什么?