gpt4 book ai didi

visual-c++ - 使用 LISP 加载和卸载 .arx 文件

转载 作者:太空宇宙 更新时间:2023-11-03 18:59:21 25 4
gpt4 key购买 nike

我有几个用于 AutoCAD 的 .arx 应用程序。在这些应用程序中,很少有基于菜单的,而其他应用程序是命令行的。现在我要做的是,

  1. 加载 .arx 应用,
  2. 运行它然后
  3. 在 .arx 应用程序通过 LISP 命令运行后卸载它。.arx 应用程序在用户单击提供的选项卡后运行。.arx 应用程序是用 VC++ 编写的。

现在我有一个 lisp 文件,它会在用户启动 AutoCAD 时加载。在 lisp 文件中,我为各种 .arx 应用程序声明了这些函数;

(defun c:XYZ_program() (command) (command) (arxload "C:/ABC/XYZ.arx") (command "XYZ_program") (arxunload "XYZ.arx") )

对于需要从基于菜单的表单输入数据的程序,它工作正常,但对于需要命令行输入的程序,它说卸载 xyz.arx 时出错。

我想知道 LISP 中是否有任何命令可以确保 arxunload“XYZ.arx”仅执行一次(命令“XYZ_program”)。

我不确定如何解决这个问题。如有任何帮助,我们将不胜感激。

Code I am currently using is this ;

(
defun c:XYZ_program() (command) (command)
(arxload "C:/Example/Folder/XYZ.arx")
(command "XYZ_program")
ads_queueexpr( (arxunload "XYZ.arx") )
)

最佳答案

你的问题并不清楚,但听起来模块无法卸载,因为它正在主动执行等待用户输入的命令。所以,我想你是在问如何推迟卸载直到命令执行完毕。该问题的答案是使用 ads_queueexpr() 从命令本身对 (arxunload "XXX") 函数进行排队。

但是,您尝试卸载模块会给自己带来更大的问题。卸载需要时间,因此它肯定对性能没有帮助。解决您的问题的正确方法是不卸载您的模块并将卸载留给 AutoCAD。

关于visual-c++ - 使用 LISP 加载和卸载 .arx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17602443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com