0

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 が完全に実行される前に実行され、エラーが発生する」であると思います。

これに関する任意の助けをいただければ幸いです。

4

1 に答える 1

3

私はいくつかのより多くの研究と助けから答えを得ました。

LISP では、コマンドを順番に実行する方法を使用できます。(progn expr ....)

ただし、一部のプログラムがコマンド ライン入力を受け取る場合、これは役に立たない可能性があります。上記の問題は特に AutoCAD および .arx アプリケーションで発生したため、VC++ プログラムに次の行を含めることができます。

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

お役に立てれば。

于 2013-07-15T20:39:16.207 に答える