フォローする

マクロの終端処理について

更新 : 2016-04-18 01:18:11 UTC

対象製品: IJCAD 2013 以降 

 

マクロが実行される際に、IJCAD は処理を行う前にマクロの最後にスペース追加します。

IJCAD は、次のメニュー マクロを実行する場合、あたかも move とスペースキーが入力されたかのように処理します。

move

コマンドによってはこの処理が好ましくない場合もあります。たとえば TEXT[文字記入]や DIM[寸法記入]コマンドはスペースバーではなく[Enter]でなければ終了しません。

また、複数のスペース(または[Enter])で終了するコマンドもありますが、テキスト エディタによっては空白で終わる行の作成ができないものがあります。この問題を回避するために、AutoCAD と同様に 2つの特別ルールがあります。

  1. マクロ内にセミコロン(;)があった場合は、IJCAD はそれを[Enter]に置き換えます。
  2. 制御文字、円記号(¥)、プラス記号(+)、またはセミコロン(;)が行の末尾にあった場合、IJCAD はその後ろに空白を追加しません。

 

次のマクロを見てください。

erase ¥;

この項目が単純に 円記号”¥” (ユーザ入力の指示を表わします)で終わっていた場合は、IJCAD は円記号の後には空白を追加しないため、ERASE[削除]の実行は失敗します。このことから、マクロではセミコロン(;)を使用してユーザ入力の後に[Enter]を強制的に付加しています。

次に別の例を示します。

ucs
ucs ;
text \.4 0 IntelliJAPAN;;;愛知県;;;名古屋市;

最初の行のマクロは選択すると、コマンド プロンプトに対して ucs と入力されて[Spacebar]が押され、次の UCS コマンドのプロンプトが表示されます。(メッセージの内容はバージョンにより若干異なる事があります。)

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

2 行目のマクロを選択すると、ucs、[Spacebar]、そしてセミコロン(;)がコマンド プロンプトに対して入力され、既定値のワールド座標系が受け入れられます。画面上では最初の行のマクロと 2行目のマクロの違いは分かりません。当然、同じメニューに両方を配置する必要はないでしょう。

3 行目のマクロを選択すると、基点に対するプロンプトが表示され、そこから 3 行の文字列を描きます。

3 つのセミコロン(;;;)の意味は、最初のものは文字列を終了を意味し、2 つ目が TEXT[文字記入]コマンドを繰り返し、3 つ目が既定の文字の開始位置(直前の行の真下)を指定しています。

これは、キーボードで入力していく手順と同じです。

注意 : すべての特殊文字は、対応する ASCII コードを使用して入力しなければなりません。

 

参考記事

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください

コメント