コマンドを定義するときは、CommandMethod 属性を使用します。CommandMethod 属性には、定義するコマンドのグローバル名として使用する文字列値を指定します。グローバル コマンド名と共に、CommandMethod 属性には次の値を指定できます。
次の表では、コマンドの動作を定義するために使用できるフラグの一覧を示します。
| 列挙値 | 説明 |
|---|---|
| ActionMacro | コマンドはアクション レコーダでアクションとして記録できます。 |
| Defun | コマンドは LISP 関数として呼び出すことができます。したがって、acedGetArgs() を使用してLISP から引数を取得したり、acedRetXxx() 関数を使用して LISP に値を返すことができます。このフラグは、Visual LISP エンジンによってのみ設定することができます。 |
| DocExclusiveLock | コマンドが呼び出されると、ドキュメントは排他的にロックされます。 |
| DocReadLock | コマンドが呼び出されると、ドキュメントは読み込み専用になります。 |
| Interruptible | ユーザ入力を要求するとき、コマンドは中断できます。 |
| Modal | 他のコマンドがアクティブな間はコマンドを呼び出せません。 |
| NoActionRecording | コマンドはアクション レコーダでアクションとして記録できません。 |
| NoBlockEditor | コマンドは、ブロック エディタでは使用できません。 |
| NoHistory | コマンドは、最終コマンド反復履歴リストに追加されません。 |
| NoInferConstraint | コマンドは、推測拘束時に使用することはできません。 |
| NoInternalLock | ドキュメントは、内部的にロックできません。 |
| NoMultiple | コマンドは、コマンド マクロの一部としてアスタリスク(*)で始まる場合は、複数の動作をサポートしません。 |
| NoNewStack | コマンドは、スタック上に新しい項目を作成しません。 |
| NoOEM | コマンドは、AutoCAD OEM からアクセスできません。 |
| NoPaperSpace | コマンドはペーパー空間では使用できません。 |
| NoPerspective | コマンドは、PERSPECTIVE が 1 に設定されている場合は使用できません。 |
| NoTileMode | コマンドは TILEMODE が 1 に設定されている場合は使用できません。 |
| NoUndoMarker | コマンドは元に戻す操作のためのマーカーをサポートしていません。これは、このデータベースを修正しないコマンドに対するもので、元に戻す操作用のファイルには含まれません。 |
| Redraw | 事前選択セットまたはグリップ セットを取得するとき、それらはクリアされません。 |
| Session | コマンドは、現在のドキュメント コンテキストではなくアプリケーションのコンテキストで実行されます。 |
| TempShowDynDimension | コマンドは、図形が選択されたときに、ダイナミック寸法を一時的に表示することができます。 |
| Transparent | 他のコマンドがアクティブな間もコマンドを使用できます。 |
| Undefined | コマンドは、グローバル名によってのみ使用できます。 |
| UsePickSet | 事前選択セットが取得されるとクリアされます。 |
CheckForPickfirstSelection という名前のコマンドを定義する CommandMethod 属性の作成方法を次に示します。属性はコマンド フラグ UsePickSet も使用して、コマンドが開始される前に選択されているオブジェクトをコマンドが使用できることを示します。
<CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet)> _
Public Sub CheckForPickfirstSelection()
. . .
End Sub
[CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet)]
public static void CheckForPickfirstSelection()
{
. . .
}
VB.NET の + 演算子または C# の | 演算子を使用して、複数のフラグの使用を指定できます。
<CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet + _
CommandFlags.NoBlockEditor)> _
Public Sub CheckForPickfirstSelection()
. . .
End Sub
[CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet |
CommandFlags.NoBlockEditor)]
public static void CheckForPickfirstSelection()
{
. . .
}