在LISP中顺序执行多个命令

时间:2013-07-12 18:42:14

标签: lisp autocad autodesk autocad-plugin autolisp

我在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完全执行之前运行。因此会出错。”

对此的任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:3)

我确实得到了更多研究和帮助的答案。

在LISP中顺序执行命令的方式,我们可以使用(progn expr ....)

但是,如果某些程序采用命令行输入,这可能没有帮助。上面的问题特别适用于AutoCAD和.arx应用程序,因此我们可以在VC ++程序中包含以下行。

ads_queueexpr(_T("(arxunload \"XYZ\")") ); 

希望这有帮助。

答案 1 :(得分:2)

您需要在http://www.cadtutor.net上发帖 那里有更多的cad大师。

Lisp在该网站上受到高度支持并有详细记录。