概要 - コマンド マクロ

コマンド マクロには、コマンド、特殊文字、DIESEL 式、または AutoLISP プログラミング コードを含めることができます。

[ユーザ インタフェースをカスタマイズ]エディタ(Windows)または[カスタマイズ]ダイアログ ボックス(Mac OS)でコマンドの[マクロ]プロパティを修正することにより、マクロを定義してコマンドに割り当てることができます。

注: AutoLISP は、AutoCAD LT ではサポートされていません。

マクロの基本

マクロは、ユーザ インタフェース要素が使用されたときに実行するアクションを定義します。コマンド(circleなど)と同様に単純にでき、特殊文字(^C^C など)を含めることができます。

たとえば、^C^C_.circle ¥1 というマクロは、半径が 1 単位の円を描きます。このマクロを定義するコンポーネントを、次の表に示します。

CIRCLE マクロの構成要素

構成要素

要素のタイプ

結果

^C^C

特殊制御文字シーケンス

[Esc]キーを 2 回押すことに相当するシーケンス。

_

特殊制御文字

後続のコマンドの名前がグローバル コマンド名であり、ローカライズされたコマンド名ではないことを示します。

.

特殊制御文字

後続のコマンドが、コマンドの標準定義であり、存在するかもしれない再定義されたコマンドではないことを示します。

CIRCLE

コマンド名

CIRCLE[円]コマンドを開始します。

特殊文字

スペースは、コマンドの使用中に[Spacebar]を押すのと同じです。

\

特殊制御文字

ユーザ入力要求を作成します。この例は、円の中心点に対する入力要求です。

1

値を入力

円の半径を求めるプロンプトへの応答です。この例では、1 単位です。

実行中のコマンドをキャンセルする

ユーザ インタフェースのボタンをクリックすると、割り当てられているマクロが現在の状況下で実行されます。つまり、このマクロは、現在のプロンプトに応答しようとします。マクロが実行されるときに確実に現在どのコマンドも実行されていない状態にするには、^C コマンド シーケンスをマクロの先頭に置きます。^C 1 つで大部分のコマンドがキャンセルできますが、寸法コマンドからコマンド プロンプトに戻るには、^C^C が必要になり、^C^C^C は -LAYER[画層管理]コマンドの現在のオプションから戻るために必要です。^C^C によってほとんどのコマンド シーケンスをキャンセルでき、使用推奨のシーケンスです。

マクロの文字を検証する

マクロの文字にはすべて意味があり、空白スペースでさえも意味を持っています。マクロの最後にスペースを記入すると、[Spacebar]または[Enter]が押されたと解釈され、コマンドが完了します。

標準コマンドをマクロで使用する

AutoCAD または AutoCAD ベースの製品の一部であるコマンドは、前にピリオド(.)を付ける必要があります。ピリオドを使用することにより、UNDEFINE[コマンド定義解除]コマンドで定義解除した標準コマンドも使用できるようになります。この予防措置は、同じカスタマイズ(CUI/CUIx)ファイルを共有する他のコンピュータで使用したとき、マクロを確実に動作させます。

注: AutoCAD LT でコマンドを再定義することはできません。

マクロの国際サポート

マクロを最初に作成するとき、通常は、使い慣れた製品の言語のコマンド名およびオプション値を使用して作成します。各コマンドおよびオプションにはローカル名とグローバル名があり、これにより製品の他の言語でも使用することができます。英語版以外のサポートに対して、追加の作業は必要ありませんが、各コマンドまたはオプションの前にアンダースコア文字(_)を記入します。アンダースコア(_)文字は、プログラムに対して、コマンド名またはオプション値を実行する前に、製品のローカル言語に翻訳する必要があることを示します。

単一オブジェクト選択モードを使用する

単一オブジェクト選択モードは、編集コマンドの「オブジェクトを選択」プロンプトで行われる通常の対話を禁止して、1 回のオブジェクト選択で、選択したオブジェクトを返すようにします。1 つのオブジェクトを選択した後に別のプロンプトに応答すると、コマンドは終了されます。

これは、次のマクロに示すように、メニューでは非常に便利です。

^C^C._erase single 

このマクロは、現在実行中のコマンドを終了させ、ERASE[削除]コマンドを実行し、単一オブジェクト選択モードを指定します。マクロを開始した後に、単一のオブジェクトを選択するか、作図領域の何もない部分をクリックして窓/交差選択を指定します。これらの方法を使用して選択したすべてのオブジェクトが削除されます。

マクロでコマンドを繰り返す

マクロを作成した後、他のコマンドを使用する前に、そのマクロを続けて何度か繰り返したい場合があります。マクロ内のコマンドが、[Esc]を押すか ^C で始まる他のマクロを開始するまで繰り返されるように指定するには、先頭にアスタリスク(*)を使用します。

次に、コマンドの繰り返し方法の例を示します。

*^C^C._move Single 
*^C^C._copy Single 
*^C^C._erase Single 
*^C^C._stretch Single Crossing 
*^C^C._rotate Single 
*^C^C._scale Single 
注: この機能は、オプションを選択する場合や、イメージ タイル メニューのマクロには使用できません。

マクロを終了する

特別な終止記号が必要なマクロもあります。たとえば、TEXT[文字記入]コマンドを終了するには、[Spacebar]ではなく[Enter]を押す必要があります。いくつかのコマンドは、終了するために複数の[Spacebar]または[Enter]を押す必要があります。

このような問題は、次に示す 2 つの規則によって回避できます。

いくつかの例を示します。

ucs 
ucs ;

最初の例は、UCS[UCS 管理]コマンドが開始され、行がスペースで終わるため、[Spacebar]が押された状態になります。次のプロンプトが表示されます。

UCS 原点を指定 または [面(F)/名前の付いた UCS(NA)/オブジェクト(OB)/直前(P)/ビュー(V)/ワールド(W)/X/Y/Z/Z 軸(ZA)] <ワールド>:

2 番目の例では、UCS[UCS 管理]コマンドが開始され、[Spacebar]が押された状態になり、次に[Enter]が押された状態になって、既定値の[ワールド]が受け入れられます。

マクロでエコーとプロンプトを非表示にする

マクロ文字は、コマンド プロンプトに対してキーボードから入力したものとして表示されます。このように重ねて表示されることを「エコー」と言います。システム変数 MENUECHO を使用すると、マクロのエコーをオフにすることができます。項目入力のエコーとプロンプトがオンになっている場合、マクロの先頭に ^P と記述すると、エコーとプロンプトが一時的にオフに切り替わります。マクロ内で ^Q を使用することによって、すべてのプロンプトと入力がコマンド ライン履歴に表示されないようにすることができます。