lisp - 顺序执行LISP中的多个命令

标签 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"))

The process that I need to execute is "LOAD the .arx"--> "Execute it fully" --> "UNLOAD .arx"

现在,当我为基于菜单的输入驱动的 .arx 运行它时,它工作正常,但是当某些程序需要从 AutoCAD 的命令行输入时,它会给出错误提示“卸载失败”。

我相信这里发生的过程是“加载 arx”-->“通过命令行运行”-->“在 arx 完全执行之前运行。因此给出错误。”

如有任何帮助,我们将不胜感激。

最佳答案

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

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

但是,如果某些程序采用命令行输入,这可能无济于事。上述问题专门针对 AutoCAD 和 .arx 应用程序,因此我们可以在 VC++ 程序中包含以下行。

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

希望这对您有所帮助。

关于lisp - 顺序执行LISP中的多个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17621896/

相关文章:

macros - Clojure:宏错误。 "No such var"

Lisp:TAGBODY 问题

lisp - 在满足谓词之前构建列表的替代方法?

c# - 在 AutoCAD (C#) 中绘制带网格的盒子

python - 玛雅Python : rename duplicated joint children

lisp - 通用 Lisp 编程

python - 接受 Python 中的 COM 错误

vba - 一个更好的 Autocad VBA 编辑器

javascript - 对 Viewer API 与示例感到困惑,将选项传递给扩展

python - 从 Maya 场景文件获取摄像机列表或渲染全局变量,而无需在 Maya 中打开场景