vlax-add-cmd (AutoLISP/ActiveX)

コマンドを AutoCAD の組み込みコマンド セットに追加します。

サポートされているプラットフォーム: Windows のみ

構文と要素

(vlax-add-cmd global-name func-sym [local-name cmd-flags])
global-name

タイプ: 文字列

コマンドのグローバル名。

func-sym

タイプ: サブルーチンまたはシンボル

引数のない AutoLISP 関数の名前を示すシンボル。

local-name

タイプ: 文字列

コマンドのローカル名(既定は global-name)。

cmd-flags

タイプ: 整数型

数値(既定は ACRX_CMD_MODAL + ACRX_CMD_REDRAW)。

主なフラグは、次のとおりです。

ACRX_CMD_MODAL (0): 他のコマンドがアクティブなときは、コマンドを呼び出せません。

ACRX_CMD_TRANSPARENT (1): 他のコマンドがアクティブでも、コマンドを呼び出せます。

副次的なフラグは、次のとおりです。

ACRX_CMD_USEPICKSET (2): コマンドがピックファースト セットを取得すると、AutoCAD 内部のピックファースト セットをクリアします。コマンドは、ピックファースト セットを取得できます。コマンドは、グリップの取得および設定はできません。

ACRX_CMD_REDRAW (4): コマンドがピックファースト セットやグリップ セットを取得しても、AutoCAD 内部のピックファースト セットやグリップ セットをクリアすることはありません。コマンドは、ピックファースト セットとグリップ セットを取得できます。

ACRX_CMD_USEPICKSET と ACRX_CMD_REDRAW の両方を設定した場合、その効果は ACRX_CMD_REDRAW のみを設定したのと同じです。フラグの詳細は、『ObjectARX リファレンス』の「Command Stack」を参照してください。

戻り値

タイプ: 文字列または nil

成功した場合は、global-name 引数。acedRegCmds->addCommand(...) がエラーを返した場合は、nil を返します。

注意

vlax-add-cmd 関数を使用すると、名前の先頭が c: 以外の関数を、AutoCAD コマンドとして定義することができます。c: 関数では不可能な割り込み AutoLISP コマンドを定義することもできます。

注意: 割り込み定義された vlax-add-cmd 関数で、command 関数呼び出しを使用することはできません。使用すると、AutoCAD が異常終了する可能性があります。

vlax-add-cmd 関数は、現在の AutoCAD セッションの間、AutoCAD のコマンド プロンプトから AutoLISP 関数を、ObjectARX スタイルのコマンドとして使用できるようにします。この関数は、ObjectARX acedRegCmds マクロへのアクセスを提供します。これは、ObjectARX システム AcEdCommandStack オブジェクトへのポインタを提供します。

vlax-add-cmd 関数は、コマンドをコマンド グループに自動的に割り当てます。ドキュメント名前空間から実行した場合、vlax-add-cmd 関数はコマンドを doc-ID という名前のグループに追加します。doc-ID は、ドキュメントを識別する 16 進数の値です。独自の名前空間 VLX から実行した場合、vlax-add-cmd 関数はコマンドを VLC-Ddoc-ID:VLX-name という名前のグループに追加します。ここで VLX-name は、vlax-add-cmd 関数を呼び出したアプリケーションの名前です。

vlax-add-cmd 関数を独自の名前空間 VLX から使用することをお勧めします。VLX をスタートアップ LISP ファイルからロードするのではなく、AutoCAD の APPLOAD[アプリケーション ロード]コマンドを使用して明示的にロードしてください。

注: リアクタ オブジェクトを作成する関数や、リアクタ コールバックとして機能する関数を、vlax-add-cmd 関数を使用して定義することはできません。

次の例の hello-autocad 関数には接頭の c: がありませんが、vlax-add-cmd 関数を使用して、AutoCAD コマンド プロンプトから ObjectARX スタイルのコマンドとして使用できるようにします。

(defun hello-autocad () (princ "hello Visual LISP"))
HELLO-AUTOCAD

(vlax-add-cmd "hello-autocad" 'hello-autocad)
"hello-autocad"