[求助]关于延时的方法
本帖最后由 作者 于 2008-12-23 12:42:19 编辑 <br /><br /> <p>关于延时的方法,在论坛里找了一下,有用</p><p>时间比较的,有用(command "_.delay" 1000)的</p><p>(command "_.delay" 1000)操作简单,但有些问题,嘿,它不能用在反应器里。</p><p>大家有没有别的好办法,我网上找了一个,用WScript.Shell有个sleep延时的,</p><p>不知道能不能用在CAD里?</p><p> set WshShell = WScript.CreateObject("WScript.Shell")<br/> WshShell.Run "calc"<br/> WScript.<b>Sleep</b> 100<br/> WshShell.AppActivate "Calculator"<br/> WScript.<b>Sleep</b> 100<br/> WshShell.SendKeys "1{+}"<br/> WScript.<b>Sleep</b> 500<br/> WshShell.SendKeys "2"<br/> WScript.<b>Sleep</b> 500<br/> WshShell.SendKeys "~"<br/> WScript.<b>Sleep</b> 500<br/> WshShell.SendKeys "*3"<br/> WScript.<b>Sleep</b> 500<br/> WshShell.SendKeys "~"<br/> WScript.<b>Sleep</b> 2500<br/></p> 本帖最后由 作者 于 2008-12-23 14:38:01 编辑 <br /><br /> <p>最常用的 (acet-sys-sleep 1000)</p><p>反应器里面可以试试这个(vl-cmdf "delay" 1000)</p><p>cpu占用高点:根据cdate系统变量循环</p><p>如果不是精确延时可以这样(repeat 10000 (princ))</p><p>或者呼叫一个VBA</p><p>上面那个好像不能用在lisp里面但是通过DOS调用也许可以</p><p>我也只知道这么几个 楼下的大侠们补充吧</p> 本帖最后由 作者 于 2008-12-23 14:14:06 编辑 <br /><br /> <p>刚研究一下</p><p>vl-cmdf 好像不行</p><p>但是通过DOS的方法很多的</p><p>刚研究出来一个 反应器里面测试通过</p><p>反应器里面的延时处理 by nonsmall @ mjtd 20081223 午后</p><p>(vlax-invoke (vlax-create-object "WScript.Shell") 'run "ping -n 2 -w 500 0.0.0.1>nul" 0 1)</p><p>;延时2秒的</p> <p>(vlax-invoke (vlax-create-object "WScript.Shell") 'run "ping -n <font style="BACKGROUND-COLOR: #ff0000;">5</font> 127.0.0.1" 0 1)</p><p>可自定义延时时间</p> <p>另外还查到资料说</p><p>ping ip的延时有不确定性(根据IP不同)</p><p>所以2楼使用了一个不可能的ip和扣掉500毫秒</p> <p>又想起来一个</p><p>根据cdate系统变量循环即可</p> <p>有这个系统变量也可以</p><p> ;加入延时<br/> (setq tert (+(* 8.64E7 (GETVAR "tdusrtimer")) fiu));现在的时间<br/> (SETQ Te (* 8.64E7 (GETVAR "tdusrtimer")))<br/> (while (< Te tert)<br/> (SETQ Te (* 8.64E7 (GETVAR "tdusrtimer")))<br/> (princ )<br/> )<br/> ;加入延时</p><p>但也有不确定性,在反应器里使用,会影响别的返回值,不知道为什么?</p><p>是的,用ping也可以,查了一下,好象也说有什么问题来着?</p><p>有没有更好的呀?</p>
页:
[1]