AutoCAD コマンドを実行します。
サポートされているプラットフォーム: Windows および Mac OS
(vl-cmdf [arguments ...])
タイプ: 整数、実数、文字列、リスト、ads_name
AutoCAD コマンドとそのオプション。
vl-cmdf 関数の arguments 引数には、文字列、実数、整数、座標値を指定することができ、これらは実行するコマンドのプロンプト シーケンスの要求によって決まります。空の文字列("")は、キーボードで[Enter]を押すのと同じです。引数を指定せずに vl-cmdf 関数を呼び出すと、[Esc]を押したのと同様に、ほとんどの AutoCAD コマンドがキャンセルされます。
タイプ: T
常に T を返します。
vl-cmdf 関数は command 関数に似ていますが、渡された引数の評価方法が異なります。 vl-cmdf 関数は、AutoCAD コマンドを実行する前に、指定されたすべての引数を評価し、引数の評価中にエラーが検出された場合は、AutoCAD コマンドを実行しません。これに対して command 関数は、それぞれの引数を順に渡すので、エラーが検出される前に一部が実行される可能性があります。
独自に作成したコマンド呼び出しに他の関数の呼び出しが含まれている場合、vl-cmdf 関数は独自に作成されたコマンドを実行する前に、含まれている他の関数呼び出しを実行します。しかし、command 関数は、独自に作成されたコマンドの実行を開始した後に、その関数呼び出しを実行します。
AutoCAD コマンドの中には、vl-cmdf 関数から呼び出すと正常に動作し、command 関数から呼び出すと失敗するものがあります。command 関数内では getxxx 関数を使用することはできませんが、vl-cmdf 関数には、この制限がありません。
command 関数と vl-cmdf 関数の違いは、AutoCAD のコマンド プロンプトに対して次の呼び出しを入力すると、簡単に確認できます。
コマンド: (command "._line" (getpoint "point?") '(0 0) "")
LINE 1 点目を指定: point?
次の点を指定 または [元に戻す(U)]:
コマンド: nil
command 関数を使用すると、まず LINE[線分]コマンドが実行され、次に getpoint 関数が呼び出されます。
コマンド: (vl-cmdf "._line" (getpoint "point?") '(0 0) "")
point?LINE 1 点目を指定:
次の点を指定 または [元に戻す(U)]:
コマンド: T
vl-cmdf 関数を使用すると、まず getpoint 関数が呼び出され(getpoint のプロンプト「point?」に注目)、次に LINE[線分]コマンドが実行されます。
次の例は、上記と同じコードですが、LINE[線分]コマンドの最後の引数として無効な点を渡しています。 結果の違いに注目してください。
コマンド: (command "._line" (getpoint "point?") '(0) "")
LINE 1 点目を指定: point?
次の点を指定 または [元に戻す(U)]:
コマンド: ERASE nil
オブジェクトを選択: もう一方のコーナーを指定: *キャンセル*
認識された数: 0
command 関数は、各引数を評価せず、順に AutoCAD に渡すので、無効な点リストが検出されません。
コマンド: (vl-cmdf "._line" (getpoint "point?") '(0) "")
point?アプリケーション エラー: 図形/点リストが無効です.
nil
vl-cmdf 関数は、AutoCAD にコマンドを渡す前に各引数を評価するので、無効な点リストが検出され、コマンドは実行されません。