コマンド定義(.NET)

コマンドを定義するときは、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 も使用して、コマンドが開始される前に選択されているオブジェクトをコマンドが使用できることを示します。

VB.NET

<CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet)> _
Public Sub CheckForPickfirstSelection()
 . . .
End Sub

C#

[CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet)]
public static void CheckForPickfirstSelection()
{
 . . .
}

VB.NET の + 演算子または C# の | 演算子を使用して、複数のフラグの使用を指定できます。

VB.NET

<CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet + _
                                             CommandFlags.NoBlockEditor)> _
Public Sub CheckForPickfirstSelection()
 . . .
End Sub

C#

[CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet |
                                             CommandFlags.NoBlockEditor)]
public static void CheckForPickfirstSelection()
{
 . . .
}