■中級 4.制御文字 | AutoCADマクロ屋本舗
メニューマクロでは
制御文字(ASCIIコントロール文字)が使用出来ます。

代表的な制御文字は、^C や^M のコトです。

【 制御文字一覧 】 ※無記入は動作無し
^A
^B
^C
^D
^E
^F
^G
^H
^I
^J
^K
^L
^M
^N
^O
^P
^Q
^R
^S
^T
^U
^V
^W
^X
^Y
^Z
グループ選択 オン/オフ
スナップ オン/オフ
現在のコマンドをキャンセル
座標表示 オン/オフ
等角面 切替
Oスナップ オン/オフ
グリッド オン/オフ
バックスペース([BackSpace])を発行
TABを発行
キャリッジ リターンを発行(;と同等)


キャリッジ リターンを発行(;と同等)

直交モード オン/オフ
MENUECHO オン/オフ


\(文字内コード用の\) ※旧バージョンは使用できない可能性有り
タブレット オン/オフ
極スナップ オン/オフ

Oスナップトラッキング
バックスペース

メニュー項目の終わりに対する[Spacerbar]の自動追加を抑止


ほとんどが理解できる内容ですが
【^H 】【^P 】【^X 】【^Z 】について、簡単に説明します。


■^H について
これは、単なる"バックスペース"と同意です。

「12345^H」この様に記述する事で、文字列等を1つ削除します。
また、2つ削除したい場合は「12345^H^H」この様に記述します。

一般的な使用例は、座標値の削除です。

2D座標で作図する場合
円弧"ARC"コマンドや、ポリライン"PLINE"コマンド等では
座標のZ値が不要な場合が有ります。


例えば・・・

ポリライン作成時
^C^C_id;\$M=_pline;\non;$(getvar,lastpoint);

円弧作成時のオプション[中心(C)]使用時
^C^C_id;\$M=_arc;\c;$(getvar,lastpoint);

上記の様なマクロの場合「2D 点が無効です」となります。
この様な場合に「^H」を使用します。

座標のZ値に、値を持たせてる場合は
その数値だけ「^H」を付加しないといけませんが
通常2D座標では、Z値の値は0ですので、座標(X,Y,Z)において
「^H」を2個付加すれば、対処出来ます。

●マクロ使用例
^C^C_id;\$M=_pline;\non;$(getvar,lastpoint)^H^H;
^C^C_id;\$M=_arc;\c;$(getvar,lastpoint)^H^H;


■^P について
通常、メニュー マクロから読み込んだ文字は、
キーボード入力の場合と同じようにスクリーンのコマンド領域に表示され、
メニュー マクロで応答する場合でも、プロンプトが表示されます。

このような表示は、システム変数 MENUECHO の設定によって
非表示にできます。

MENUECHO をオフにした場合は、メニュー マクロ内の ^P によって
エコーがオンに切り替えられます。


※ヘルプ「メニュー マクロでのエコーとプロンプトの使い方」より


●マクロ使用例
^C^C^P_copy^P;

この様に、^Pによってシステム変数"MENUECHO"の値を0⇔1に切替えます。
これによって、コマンドラインに表示されるコマンド文字列の表示等を
切り替える事が可能です。

マクロ作成時、ダミーコマンドとして使用する時に便利です。



■^X について
^Hはキーボードのバックスペース([BackSpace])を発行しますが
^Xの場合は、キャリッジリターンが発行されていない文字列を、
無視する働きがあります。

この時、「*削除*」がコマンドラインに表示されますが
^Xによるものであり、オブジェクト等が削除された訳ではありません。


●マクロ使用例
^C^C_offset;^X^Xオフセット間隔を数値で記入^x\

この様に、ダミーコマンドとして使用したコマンドの
説明文等を書き込む場合に便利です。



■^Z について
メニュー項目の後に ^Z を付けた場合は、
AutoCAD LT によってマクロ式の終わりに
キャリッジ リターンが挿入されることはありません。

注:メニュー項目での他のコントロール文字と同じように、
ここで使用されている ^Z は、カレット(^)と Z で構成される文字です。
これを[Ctrl]+[Z]と混同しないように注意してください。

※ヘルプ「メニュー マクロでの条件式の使い方」より。


●マクロ使用例
^C^C_copy^Z

通常マクロの最後に何も記入しない場合、半角スペースが挿入されますが
^Zによって、それを抑止する事が出来ます。

マクロを作成する上で、^Zの動作は覚えておきましょう。



又、これ以外にも、カレット(^)と文字列を組み合わせた制御文字が有ります。

アルファベット以外のコントロール文字を次に示します。 (※ヘルプより)
^@ (ASCII code 0)
^[ (ASCII code 27)
^\ (ASCII code 28)
^] (ASCII code 29)
^^ (ASCII code 30)
^_(ASCII code 31)



あまり使える機能は無さそうですが・・・^^;

^@」をマクロ中に使用すると
そのメニュー項目の「^@」以降の記述が無視されます
その他は、あまり意味は無いみたいです。

他には、「^{」をマクロ中に使用すると
「+改行」から「^{」までの記述が無視されます。

これは、"ツールバーのカスタマイズ"には使用出きません。
"メニューバーのカスタマイズ"にのみ使用出来ます。

●マクロ使用例
^C^C_select;\+
 #システム変数"CMDDIA"を一旦"0"へ  ^{_cmddia;0;+
 #寸法の文字を変更  ^{_dim1;newtext;+
 #寸法文字に( )付加  ^{(<>);p;;+
 #システム変数"CMDDIA"を"1"へ戻す  ^{_cmddia;1;



これらの制御文字の使用頻度は多く有りませんが
マクロ作成時に知っておくと、便利なものも有りますので
覚えておいて損は無いです。


【追記】 ※2016/12/2
旧バージョンでは使用できない可能性が大ですが

新しいバージョンで使用可能なのが

^S です。

掲示板で質問があり
マクロで文字を改行する内容が含まれていました。

自分は知らなかったのですが
マルチテキスト文字や寸法文字などに使えるみたいです。

^SK 取り消し線
^SL 下線
^SO 上線
^SP 改行
^ST 文字間縮小
^SW 文字幅縮小
^SX 改行


※テキスト文字は不可
テキスト文字の場合は「%%U」や「%%O」などを使用


現状分かっているのは、上記7つです。

●マクロ例
^C^C-mtext;\non;@;^SLAAA;^M
 ※文字に下線付加

お試しください。




はじめて学ぶAutoCAD LT 2011 作図・操作ガイド/鈴木 孝子

¥2,499
Amazon.co.jp