■中級 8.ダミーでオブジェクト選択 | AutoCADマクロ屋本舗
オブジェクトを選択する際に、オブジェクトを単体で選ぶ場合
"SELECT"[オブジェクト選択]コマンドの
選択オプションである"SIngle"[単一(SI)]を使用し

^C^C_select;SI;\_copy;p;;

この様にマクロを作成するのが一般的です。

しかしこの場合・・・
マウスで選択する際に、1発で単体のオブジェクトを指定しなければ
通常の2点選択と同様に、BOX[ボックス(BOX)]選択となってしまいます。

また、結局複数のオブジェクトを選択したことになってしまう事も有る為
あまり実用的ではありません。


では、どの様にするかと言うと・・・
他コマンドをダミーとして用います。

これは、どう言う事かと言うと・・・

"SELECT"[オブジェクト選択]コマンドではなく
別のコマンドを使用し、単一オブジェクトを確実に選択する様に
マクロを作成するのです。



例えば・・・

自分が最も使用するのが、"OFFSET"[オフセット]コマンドです。


オフセットコマンドを実際に実行すると

コマンド: offset ←エンター

オフセット間隔を指定 または [通過点(T)] <通過点>: ←エンター

オフセットするオブジェクトを選択 または <終了>: ←オブジェクト選択
通過点を指定: ←エンター
(コマンド終了)


この様になりますね。


この「オフセットコマンド」の動作特性を利用します。


1)繰返し「*」を先頭に付け、OFFSET[オフセット]コマンドを実行
*^C^C_offset;

2)上記動作をマクロ化
*^C^C_offset;;\;

この後、オブジェクト選択していない(ミスピック)場合を
マクロで判断させます。

この場合、"SELECT"[オブジェクト選択]コマンドを使用します。
例えば、以下の様にマクロを作成します。

3)"SELECT"コマンドを実行
*^C^C_offset;;\;_select;

4)「non;@;」を実行し、"SELECT"コマンドを終了させる
*^C^C_offset;;\;_select;non;@;non;@;;

5)次に続くマクロを記述(例:COPYコマンド等)
*^C^C_offset;;\;_select;non;@;non;@;;_copy;p;;

実際に、↑このマクロを実行すると分かると思いますが、
オブジェクトにヒットした時のみ、"COPY"コマンドが実行されます。


これは、"SELECT"[オブジェクト選択]コマンドの
_select;non;@;non;@;;
の部分にて
・オブジェクトが選択された場合は、通常通りマクロが流れ
・オブジェクトが選択されていない場合は、マクロの流れが止まってしまう

以上の動作特性を利用したものです。

これは、実際にコマンドラインで試しても、上記の様な動作はしません。
「*」が付加されたマクロにする事でのみ、動作します。



最終的には、制御文字「^X」を使用して

*^C^C_offset;;^Xオブジェクト選択^X\;_select;non;@;non;@;;_copy;p;;

この様にしておくと、マクロ実行後の操作は分かりやすいでしょう。



では、他のコマンドを使った使用例を、いくつか紹介しておきます。

■"COPY"[複写]コマンド
*^C^C^P_copy^P;\non;@;;non;@;non;@;_erase;p;;_copy;L;;

■"MOVE"[移動]コマンド
*^C^C^P_move^P;\non;@;;non;@;non;@;_copy;P;;

■FILLET[フィレット]コマンド
*^C^C_fillet;\;$M=$(if,$(getvar,cmdactive),@;,list;;)_copy;L;;

■CHAMFER[面取り]コマンド
*^C^C_chamfer;\;$M=$(if,$(getvar,cmdactive),@;,list;;)_copy;L;;

■LENGTHEN[長さ変更]コマンド
*^C^C_lengthen;\;_select;non;@;non;@;;_copy;p;;

※IF文及びシステム変数"CMDACTIVE"に関しましては
【マクロ作成】■上級 1.DIESEL関数 ~IF~/2.CMDACTIVE を参照下さい。


これらのマクロは、どの様なオブジェクトも選択出来るものではありません。
ポリラインや線分で、選択出来ない場合も有ります。

作成する上で、上手に利用する事も大切です。


また、他にもマクロの作り方によって
"ダミー"として利用出来るコマンドが有ると思います。

色々なコマンドを使用し、そのコマンドの動作や特性を知る事が
マクロを作成する上で最も重要な事の1つだと思います。


AutoCAD 入門&実践バイブル/技術評論社

¥4,410
Amazon.co.jp