「Vlax-add-cmd」の版間の差分
編集の要約なし |
編集の要約なし |
||
(同じ利用者による、間の1版が非表示) | |||
25行目: | 25行目: | ||
:* local-name : 文字列 (既定値は global-name)。 | :* local-name : 文字列 (既定値は global-name)。 | ||
:* cmd-flags : 整数 (既定値は ACRX_CMD_MODAL + ACRX_CMD_REDRAW)。 | :* cmd-flags : 整数 (既定値は ACRX_CMD_MODAL + ACRX_CMD_REDRAW)。 | ||
{| class="wikitable mw-collapsible" | |||
|+cmd-flagsの内容 | |||
|cmd-flags | |||
|ビットフラグ | |||
|内容 | |||
|- | |||
|acrx_cmd_modal | |||
|0 | |||
|他のコマンドがアクティブなときは、コマンドを呼び出せない。 | |||
|- | |||
|acrx_cmd_transparent | |||
|1 | |||
|他のコマンドがアクティブでも、コマンドを呼び出せる。 | |||
|- | |||
|acrx_cmd_usepickset | |||
|2 | |||
|コマンドがピックファースト セットを取得すると、AutoCAD 内部のピックファースト セットをクリアする。 コマンドは、ピックファースト セットを取得できる。コマンドは、グリップの取得および設定はできない。 | |||
|- | |||
|acrx_cmd_redraw | |||
|4 | |||
|コマンドがピックファースト セットやグリップ セットを取得しても、CAD 内部のピックファースト セットやグリップ セットをクリアすることはない。 コマンドは、ピックファースト セットとグリップ セットを取得できる。 | |||
|- | |||
|acrx_cmd_noperspective | |||
|8 | |||
|パース表示では利用できない。 | |||
|- | |||
|acrx_cmd_notilemode | |||
|32 | |||
|タイルモードでは利用できない。 | |||
|- | |||
|acrx_cmd_nopaperspace | |||
|64 | |||
|ペーパー空間では利用できない。 | |||
|- | |||
|acrx_cmd_nooem | |||
|256 | |||
|OEM製品では利用できない。 | |||
|- | |||
|acrx_cmd_nohistory | |||
|8388608 | |||
|コマンド履歴なし。 | |||
|- | |||
|acrx_cmd_no_undo_marker | |||
|16777216 | |||
|アンドゥーマーカーなし。 | |||
|- | |||
|acrx_cmd_nobedit | |||
|33554432 | |||
|ブロック編集時は利用できない。 | |||
|} | |||
ACRX_CMD_USEPICKSET と ACRX_CMD_REDRAW の両方を設定した場合、その効果は ACRX_CMD_REDRAW のみを設定したのと同じ。 | ACRX_CMD_USEPICKSET と ACRX_CMD_REDRAW の両方を設定した場合、その効果は ACRX_CMD_REDRAW のみを設定したのと同じ。 | ||
43行目: | 84行目: | ||
; サンプル | ; サンプル | ||
; 次の例の hello-autocad 関数には接頭の c: がないが、vlax-add-cmd 関数を使用して、 | |||
; AutoCAD コマンド プロンプトから ObjectARX スタイルのコマンドとして使用できるようにしている。 | |||
(defun hello-cad () (princ "hello CAD LISP")) | |||
HELLO-CAD | |||
(vlax-add-cmd "hello-cad" 'hello-cad) | |||
"hello-cad" | |||
; コマンド hello-cad は ModelSpace でのみ実行され、PaperSpaceではブロックされる。 | |||
(vlax-add-cmd "hello-cad" 'hello-cad (+ acrx_cmd_transparent acrx_cmd_nopaperspace)) | |||
; BricsCADはcmd-flags が整数じゃなくて整数の文字列っぽい | |||
(vlax-add-cmd "hello-cad" 'hello-cad (itoa (+ acrx_cmd_transparent acrx_cmd_nopaperspace)) | |||
2024年9月3日 (火) 06:42時点における最新版
- 構文
- (vlax-add-cmd global-name func-sym [local-name cmd-flags])
- 機能
- コマンドを AutoCAD の組み込みコマンド セットに追加する。
- vlax-add-cmd 関数を使用すると、名前の先頭が c: 以外の関数を、AutoCAD コマンドとして定義することができる。 c: 関数では不可能な割り込み AutoLISP コマンドを定義することもできる。
-
- 警告 割り込み定義された vlax-add-cmd 関数で、command 関数呼び出しを使用することはできない。使用すると CAD が異常終了する可能性がある。
- vlax-add-cmd 関数は、現在の CAD セッションの間、CAD のコマンド プロンプトから 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 ファイルからロードするのではなく、 APPLOAD[アプリケーション ロード]コマンドを使用して明示的にロードする。
-
- 注 リアクタ オブジェクトを作成する関数や、リアクタ コールバックとして機能する関数を、vlax-add-cmd 関数を使用して定義することはできない。
- 引数
-
- global-name : 文字列。
- func-sym : 引数のない AutoLISP 関数の名前を示すシンボル。
- local-name : 文字列 (既定値は global-name)。
- cmd-flags : 整数 (既定値は ACRX_CMD_MODAL + ACRX_CMD_REDRAW)。
cmd-flags | ビットフラグ | 内容 |
acrx_cmd_modal | 0 | 他のコマンドがアクティブなときは、コマンドを呼び出せない。 |
acrx_cmd_transparent | 1 | 他のコマンドがアクティブでも、コマンドを呼び出せる。 |
acrx_cmd_usepickset | 2 | コマンドがピックファースト セットを取得すると、AutoCAD 内部のピックファースト セットをクリアする。 コマンドは、ピックファースト セットを取得できる。コマンドは、グリップの取得および設定はできない。 |
acrx_cmd_redraw | 4 | コマンドがピックファースト セットやグリップ セットを取得しても、CAD 内部のピックファースト セットやグリップ セットをクリアすることはない。 コマンドは、ピックファースト セットとグリップ セットを取得できる。 |
acrx_cmd_noperspective | 8 | パース表示では利用できない。 |
acrx_cmd_notilemode | 32 | タイルモードでは利用できない。 |
acrx_cmd_nopaperspace | 64 | ペーパー空間では利用できない。 |
acrx_cmd_nooem | 256 | OEM製品では利用できない。 |
acrx_cmd_nohistory | 8388608 | コマンド履歴なし。 |
acrx_cmd_no_undo_marker | 16777216 | アンドゥーマーカーなし。 |
acrx_cmd_nobedit | 33554432 | ブロック編集時は利用できない。 |
ACRX_CMD_USEPICKSET と ACRX_CMD_REDRAW の両方を設定した場合、その効果は ACRX_CMD_REDRAW のみを設定したのと同じ。
- 戻り値
- 成功した場合は、global-name 引数。 acedRegCmds->addCommand(...) がエラーを返した場合は、nil を返す。
- サンプル
; 次の例の hello-autocad 関数には接頭の c: がないが、vlax-add-cmd 関数を使用して、 ; AutoCAD コマンド プロンプトから ObjectARX スタイルのコマンドとして使用できるようにしている。 (defun hello-cad () (princ "hello CAD LISP")) HELLO-CAD (vlax-add-cmd "hello-cad" 'hello-cad) "hello-cad" ; コマンド hello-cad は ModelSpace でのみ実行され、PaperSpaceではブロックされる。 (vlax-add-cmd "hello-cad" 'hello-cad (+ acrx_cmd_transparent acrx_cmd_nopaperspace)) ; BricsCADはcmd-flags が整数じゃなくて整数の文字列っぽい (vlax-add-cmd "hello-cad" 'hello-cad (itoa (+ acrx_cmd_transparent acrx_cmd_nopaperspace))
関連事項
- vlax-add-cmd 関数
- vlax-remove-cmd 関数