请教,如何在lisp等待外部命令执行完后,再执行下一条lisp语句
本帖最后由 xiaoyingzi 于 2011-6-17 17:31 编辑想请教下,如何在lisp等待外部命令执行完后,再执行下一条lisp语句
例如
(startapp "notepad.exe" (findfile "xx.lsp"))
(load "xx.lsp")
我想达到等编辑完xx.lsp后,再执行它的效果,如何实现?
(startapp "notepad.exe" (findfile "xx.lsp"))
(command pause)
(load "xx.lsp")
pause不能这样用,参考
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=87168&page=2#pid466364
11和12楼的2种方法 另方
dos_exewait
(dos_exewait command )
Ref:
DOSLib
www.mcneel.com 本帖最后由 xiaoyingzi 于 2011-6-17 23:38 编辑
问题解决,谢谢楼上各位的热心解答,
四楼的也行,要用到doslib,另外加载doslib
现采用三楼所提到的方法之一:
(setq obj_wsh (vlax-create-object "wscript.shell"))
(setq text (strcat "notepad.exe " (findfile "xx.lsp")))
(vlax-invoke obj_wsh 'run text 5 1)
(load (findfile "xx.lsp"))
(vlax-release-object obj_wsh)
(princ)
不过感觉运行起来有点慢,有停顿感,在这之前,我采用的是很笨的方法:
(startapp(findfile "xx.bat"))
然后用xx.bat调用
notepad.exe x:\xx\xx.lsp
call x:\xx\xx.lsp.vbs"
........
最后再用xx.vbs接下来下面的
Set objCAD = GetObject(, "AutoCAD.Application")
Set ThisDrawing = objCAD.activedocument
ThisDrawing.SendCommand ("(load (findfile “"xx.lsp"”))" & vbCr)
就是这么复杂的过程,但是好像运行的速度反而还很快,没有停顿感,不知为什么
页:
[1]