我在AutoCAD中运行.arx应用程序。当我们点击AutoCAD中的自定义选项卡时,它会在AutoCAD的命令行中运行该程序。我们执行的LISP函数如下:
(defun c:XYZ_program()
(command)
(command)
(arxload "C:/ABC/XYZ.arx")
(command "XYZ_program")
(arxunload "XYZ.arx"))
我需要执行的过程是“加载.arx” - > “完全执行” - > “卸载.arx”
现在当我为基于菜单的输入驱动的.arx运行它时,它工作正常,但是当某些程序需要从AutoCAD的命令行输入时,它会出现“卸载失败”的错误。
我相信这里发生的过程是“加载arx” - > “通过命令行运行” - > “在arx完全执行之前运行。因此会出错。”
对此的任何帮助都将受到高度赞赏。
答案 0 :(得分:3)
我确实得到了更多研究和帮助的答案。
在LISP中顺序执行命令的方式,我们可以使用(progn expr ....)
但是,如果某些程序采用命令行输入,这可能没有帮助。上面的问题特别适用于AutoCAD和.arx应用程序,因此我们可以在VC ++程序中包含以下行。
ads_queueexpr(_T("(arxunload \"XYZ\")") );
希望这有帮助。
答案 1 :(得分:2)
您需要在http://www.cadtutor.net上发帖 那里有更多的cad大师。
Lisp在该网站上受到高度支持并有详细记录。