AutoCAD 用の .arx アプリケーションはほとんどありません。これらのアプリケーションでは、メニュー ベースのものはほとんどなく、その他はコマンド ラインです。今、私がやろうとしていることは、
- .arx アプリをロードし、
- それを実行してから
- .arx アプリケーションが LISP コマンドを実行したら、アンロードします。提供されたタブをユーザーがクリックすると、.arx アプリケーションが実行されます。.arx アプリケーションは VC++ で記述されています。
これで、ユーザーが AutoCAD を起動するとロードされる Lisp ファイルができました。Lisp ファイルで、さまざまな .arx アプリケーションに対してこれらの関数を宣言しました。
(defun c:XYZ_program() (コマンド) (コマンド) (arxload "C:/ABC/XYZ.arx") (コマンド "XYZ_program") (arxunload "XYZ.arx") )
メニューベースのフォームからの入力データが必要なプログラムでは問題なく動作しますが、コマンドライン入力が必要なプログラムでは xyz.arx のアンロード中にエラーが発生します。
LISP に、arxunload "XYZ.arx" が 1 回だけ実行されるようにするコマンド (コマンド "XYZ_program") が実行されるかどうか疑問に思っていました。
この問題にアプローチする方法がわかりません。同じことで助けていただければ幸いです。
私が現在使用しているコードはこれです;
(
defun c:XYZ_program() (command) (command)
(arxload "C:/Example/Folder/XYZ.arx")
(command "XYZ_program")
ads_queueexpr( (arxunload "XYZ.arx") )
)