明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2428|回复: 8

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

[复制链接]
发表于 2005-2-26 11:43 | 显示全部楼层 |阅读模式
在一些语言里,要等上一步执行完成后才能进行下步,否则就可能出错(如c语言的sleep)


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


谢谢

发表于 2005-2-26 12:18 | 显示全部楼层
delay 命令
 楼主| 发表于 2005-2-26 12:23 | 显示全部楼层
能讲具体点吗?


谢谢!
发表于 2005-2-26 13:06 | 显示全部楼层
delay是命令名称,输入1 就是停留1 毫秒
发表于 2005-2-26 13:42 | 显示全部楼层
在程序中


(command "_.delay" 100)
发表于 2005-2-26 17:29 | 显示全部楼层
这个delay好像不太好用.延时过程中并不会运行其它命令,恐怕楼主的问题不能解决.
发表于 2005-2-27 09:44 | 显示全部楼层
记得以前有人写过一个程序,出现问题,是因为要在硬盘上生成一个文件,然后后面的程序要调用这个文件,由于文件生成可能需要一定时间,所以后面使用时文件还没生成,导致错误,这时DELAY命令就有用了,你还可以搜索一下内容的DELAY,还有别的用处的
发表于 2005-2-27 16:17 | 显示全部楼层
(setq time0(getvar "cDATE"))


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


;;;cal-time 是计算时间的。因为是60进制.
发表于 2023-10-21 22:50 | 显示全部楼层
本帖最后由 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
    )
  )

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-25 14:22 , Processed in 0.151296 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表