У меня есть несколько приложений .arx для AutoCAD. Некоторые из этих приложений основаны на меню, а другие — на командной строке. Теперь то, что я пытаюсь сделать, это,
- Загрузите приложение .arx,
- запустить его, а затем
- выгрузите его, как только приложение .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").
Я не уверен, как подойти к этой проблеме. Любая помощь с тем же будет принята с благодарностью.
Код, который я сейчас использую, это ;
(
defun c:XYZ_program() (command) (command)
(arxload "C:/Example/Folder/XYZ.arx")
(command "XYZ_program")
ads_queueexpr( (arxunload "XYZ.arx") )
)