27012701 发表于 2008-12-23 11:50:00

[求助]关于延时的方法

本帖最后由 作者 于 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>&nbsp;set WshShell = WScript.CreateObject("WScript.Shell")<br/>&nbsp;&nbsp;&nbsp;WshShell.Run "calc"<br/>&nbsp;&nbsp;&nbsp;WScript.<b>Sleep</b> 100<br/>&nbsp;&nbsp;&nbsp;WshShell.AppActivate "Calculator"<br/>&nbsp;&nbsp;&nbsp;WScript.<b>Sleep</b> 100<br/>&nbsp;&nbsp;&nbsp;WshShell.SendKeys "1{+}"<br/>&nbsp;&nbsp;&nbsp;WScript.<b>Sleep</b> 500<br/>&nbsp;&nbsp;&nbsp;WshShell.SendKeys "2"<br/>&nbsp;&nbsp;&nbsp;WScript.<b>Sleep</b> 500<br/>&nbsp;&nbsp;&nbsp;WshShell.SendKeys "~"<br/>&nbsp;&nbsp;&nbsp;WScript.<b>Sleep</b> 500<br/>&nbsp;&nbsp;&nbsp;WshShell.SendKeys "*3"<br/>&nbsp;&nbsp;&nbsp;WScript.<b>Sleep</b> 500<br/>&nbsp;&nbsp;&nbsp;WshShell.SendKeys "~"<br/>&nbsp;&nbsp;&nbsp;WScript.<b>Sleep</b> 2500<br/></p>

nonsmall 发表于 2008-12-23 13:52:00

本帖最后由 作者 于 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>

nonsmall 发表于 2008-12-23 14:11:00

本帖最后由 作者 于 2008-12-23 14:14:06 编辑 <br /><br /> <p>刚研究一下</p><p>vl-cmdf 好像不行</p><p>但是通过DOS的方法很多的</p><p>刚研究出来一个 反应器里面测试通过</p><p>反应器里面的延时处理&nbsp;by nonsmall @ mjtd 20081223 午后</p><p>(vlax-invoke (vlax-create-object "WScript.Shell") 'run "ping -n 2 -w 500 0.0.0.1&gt;nul" 0 1)</p><p>;延时2秒的</p>

liminnet 发表于 2008-12-23 14:15:00

nonsmall 发表于 2008-12-23 14:18:00

<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>

nonsmall 发表于 2008-12-23 14:21:00

<p>另外还查到资料说</p><p>ping ip的延时有不确定性(根据IP不同)</p><p>所以2楼使用了一个不可能的ip和扣掉500毫秒</p>

nonsmall 发表于 2008-12-23 14:35:00

<p>又想起来一个</p><p>根据cdate系统变量循环即可</p>

27012701 发表于 2008-12-23 14:53:00

<p>有这个系统变量也可以</p><p>&nbsp; ;加入延时<br/>&nbsp; (setq tert (+(* 8.64E7 (GETVAR "tdusrtimer")) fiu));现在的时间<br/>&nbsp; (SETQ Te (* 8.64E7 (GETVAR "tdusrtimer")))<br/>&nbsp; (while (&lt; Te tert)<br/>&nbsp;&nbsp;&nbsp; (SETQ Te (* 8.64E7 (GETVAR "tdusrtimer")))<br/>&nbsp;&nbsp;&nbsp; (princ )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; ;加入延时</p><p>但也有不确定性,在反应器里使用,会影响别的返回值,不知道为什么?</p><p>是的,用ping也可以,查了一下,好象也说有什么问题来着?</p><p>有没有更好的呀?</p>
页: [1]
查看完整版本: [求助]关于延时的方法