外部コマンドは、AutoCAD または AutoCAD ベースの製品の動作中に他のプログラムやユーティリティを起動します。
AutoCAD または AutoCAD ベースの製品を実行中に、次のような他のプログラムやユーティリティを呼び出すことができます。
コマンド定義は、ASCII テキスト エディタで acad.pgp ファイルを編集することで追加できます。acad.pgp の最初のセクションでは、外部コマンドが定義されています。acad.pgp には、コマンド エイリアス以外にも、セミコロン(;)で始まるコメント行も含まれています。このコメント行により、ファイルまたはコマンド エイリアスに関する文字情報を追加できます。
外部コマンドを定義するときは、オペレーティング システムのプロンプトに対して入力するコマンド名と、オペレーティング システムに渡される実行可能なコマンド文字列を指定します。外部コマンド セクションの各行は、次のように 5 つのフィールドで構成され、各フィールドをカンマ(,)で区切ります。
command,[executable/shell request],bit flag[,[*]prompt[,return_code]]
オペレーティング システムのプロンプトに対して入力するコマンドです。この名前が AutoCAD 組み込みコマンド名のときは無視されます。大文字と小文字は区別されません。
コマンド名を入力すると、この文字列がオペレーティング システムに送られます。オペレーティング システムのプロンプトで実行できる任意のコマンドを指定できます。文字列には、コマンド ライン スイッチやパラメータを含めることができます。この文字列の大文字と小文字が区別されるかどうかは、実行するアプリケーションによって異なります。
省略できないビットコード パラメータです。必要な結果が得られるように、次の整数値を任意の組み合わせで加算します。
0 アプリケーションを起動し、終了するまで待機します。
1 アプリケーションの終了を待ちません。
2 アプリケーションを最小化して実行します。
4 アプリケーションを表示せずに実行します。
8 引数の文字列をクォーテーション(")で囲んで使用します。
ビット値 2 と 4 は排他的な関係にあり、両方のビットをセットすると、ビット 2 だけが使用されます。ビット値 1 をセットしないでビット値 2 か 4 をセットするのは避けてください。アプリケーションが完了するまでプログラムが使用できなくなるためです。
ビット値 8 をセットすると、del のようなコマンドを実行したときに、スペースが含まれているファイル名に対して適切に動作させることができます。これにより、スペースで区切られたファイル名のリストをこのようなコマンドに渡せなくなります。複数のファイルをサポートする場合は、ビット値 8 をセットしないでください。
これは、オプション フィールドです。プログラムのコマンド プロンプトに表示されるプロンプトを指定します。このプロンプトに対する応答は、実行文 フィールドに指定する文字列の後ろに追加されます。プロンプト フィールドの最初の文字をアスタリスク(*)にすると、応答にスペースを含めることができるようになります。この場合、応答を終了するには[Enter]を押します。アスタリスク(*)を含めないときは、[Spacebar]または[Enter]を入力して応答を終了します。プロンプトを指定しないと、入力は要求されません。しかし、リターンコードを指定するときやプロンプトの後ろにスペースを表示したいときは、後ろにカンマ(,)を指定する必要があります。
省略可能なビットコード パラメータです。必要な結果が得られるように、この整数値を任意の組み合わせで加算できます。たとえば、値 1 と 2 が必要なときは、リターン コードに 3 を指定します。値は、次のように定義されています(コード 0 と 4 はウィンドウ環境では無意味であるため、含まれません)。
1 DXB ファイルをロードします。AutoCAD または AutoCAD ベースの製品は、コマンドの終了後に、$cmd.dxb という名前の DXB ファイルを図面にロードします。DXB ファイルがロードされると、$cmd.dxb ファイルは削除されます。この動作は、DXBIN[DXB 読み込み]コマンドと同じ結果になります。
2 DXB ファイルからブロック定義を作成します。$cmd.dxb という名前のファイルからブロック定義が作成されます。プロンプト フィールドへの応答はブロック名に使われます。この名前は、現在の図面に存在しない有効なブロック名でなければなりません。したがって、このモードでは既に定義されているブロックを再定義できません。DXB ファイルがロードされると、$cmd.dxb ファイルは削除されます。INSERT[ブロック挿入]コマンドの既定のブロック名は、新しく定義されたブロックの名前になります。
オペレーティング システのコマンドの start と cmd は、外部コマンドを定義するとき、非常に役に立ちます。start や md コマンドを使用しなで実行可能文字列を指定すると、そのウィンドウを閉じるまではプログラムを使用できません。
start コマンドは、新しいウィンドウを開き、指定したプログラムやコマンドを実行します。パラメータを指定しないで start コマンドを使用すると、オペレーティング システムの新しい コマンド プロンプト ウィンドウが開きます。start コマンドには、多くの新しいウィンドウの表示に影響する多くのコマンド ライン スイッチを指定できます。スタンドアロン アプリケーションを起動するには、どのコマンド ライン スイッチも指定しないで start コマンドを使用してください。start コマンドは、アプリケーションに関連付けられたドキュメントを開く場合も非常に役に立ちます。たとえば、ワード プロセッサで作成したドキュメントや HTML ファイルを、start を使用して直接開くことができます。
cmd コマンドは、AutoCAD または AutoCAD ベースの製品のシェルとして動作する、オペレーティング システムのコマンド プロンプト ウィンドウを開きます。このウィンドウは、オペレーティング システムのプロンプトにコントロールを戻す前に閉じなければなりません。/c および /k コマンド ライン スイッチが、外部コマンドに対して役に立ちます。/c コマンド ライン スイッチは、指定したコマンドを実行して、終了します(ウィンドウが閉じます)。/k コマンド ライン スイッチは、指定したコマンドが実行された後も継続します(ウィンドウは開いたままです)。/k コマンド ライン スイッチを使用した場合は、コマンド ウィンドウを(exit コマンドを使用して)閉じなければなりません。
一般的に、プログラムとは別の処理を行う新しいウィンドウを作成したり、このようなアプリケーションを起動するには、start を使用してください。新しいウィンドウを作成しないバッチ ファイルやコマンド スクリプトを実行する場合や、プログラムにコントロールを戻す前に閉じなければならないウィンドウを作成するには、cmd を使用してください。これらのコマンドとスイッチの詳細は、オペレーティング システムのコマンドに関するマニュアルを参照してください。
次の例では、新規に 3 つのコマンド RUN、LISTSET、DXB2BLK を定義します。
RUN, cmd /c,0,*Batch file to run: , LISTSET,cmd /k SET,0 DXB2BLK,cmd /c DXBCOPY,0,DXB file: ,2
RUN コマンドは、バッチ ファイルやコマンド スクリプトを実行します。cmd コマンドの後に /c コマンド ライン スイッチを指定しているため、コマンド ウィンドウを開き、バッチ ファイルを実行し、その後ウィンドウを閉じます。
LISTSET コマンドは、オペレーティング システムの現在の環境変数の設定を表示します。この例では start ではなく cmd /k を使用しているため、プログラムに戻る前にコマンド ウィンドウを閉じなければなりません。このウィンドウをアクティブなままにしたい場合は、start /realtime を使用してください。これらのコマンドとスイッチの詳細は、オペレーティング システムのコマンドに関するマニュアルを参照してください。
DXB2BLK コマンドは、指定された DXB ファイルからブロック定義を作成します。DXB ファイルでは、すべてのオブジェクトが線分に変換されます。この処理に付随するメリットは、文字オブジェクトを線分に簡単に分解できることです。
DXB2BLK は指定された DXB ファイル名を dxbcopy バッチ ファイルに渡します。このバッチ ファイルは渡されたファイル名をファイル名 $cmd.dxb にコピーします。その後プログラムは指定された DXB ファイルからブロックを作成します。DXB ファイル プロンプトに対して指定した名前が、新しいブロック名として使用されます。dxbcopy.cmd ファイルを作成するには、オペレーティング システムのプロンプトに次のように入力します。
echo copy %1.dxb $cmd.dxb > dxbcopy.cmd
これにより、現在のフォルダ内に dxbcopy.cmd ファイルが作成されます。このファイルをユーザの DOS のパス定義で指定されているフォルダに移動するか、ファイルの場所を acad.pgp ファイルに明示的に指定します。たとえば、dxbcopy.cmd ファイルが D:¥cad にある場合は、acad.pgp ファイルの外部コマンド セクションに次のように入力します。
DXB2BLK, cmd /c D:\CAD\DXBCOPY,0,DXB file: ,2