水平垂直の放射線を作ってみる

 放射線っていうコマンドがあるのをご存知でしょうか?アイコンはなんですが、これがインストール時には出ていないので、案外にマイナーなコマンドですよね。(詳しい使い方は「構築線」の説明ページを参照)

 要は、始点側からの半分構築線なんですが、上手く使えば最初から”半分”なので、トリムが片方でよかったり (注/私は構築線って、補助線か、後でトリムするかで大抵使います)で、なかなか便利です。しかし、放射線には構築線のような、水平、垂直オプションが ついていないのが玉にキズ。そこで、せめてマクロを使って、動きを最初から水平、垂直に限定してみましょう。

マクロで直行モードを使う

 さて、放射線アイコンには、元々、コマンド名の「ray」だけ書かれています。

「は?rayだけって?何か余計なもの前にくっついてるけど?」って思われますよね。


 「^C^C」は、ラインのところで「消してもOK」としていましたが、実は「^C」は「=Escキー(キャンセル)」。 2回続けてるのって、2回キャンセルすれば、どんなコマンドでも大体、キレイにキャンセルできるからです(1回じゃダメなものがあるのは、 AutoCADユーザーなら、何となく体感で理解できると思いますが)。で、キレイにキャンセルできたところで、新しいコマンドを開始しますって訳で、 「ray」の前に付いている「_(アンダーバー)」は「これからこのコマンドを始めるよ」ってAutoCADに教えるものです。
 「^C^C」も「_(アンダーバー)」もあってもなくても大丈夫なんですが、AutoCAD的には、あった方がいいらしいです・・・。

 で、その二つの暗号(笑)を除けは、単純にコマンド名の「ray」だけなのが元々の放射線のアイコンです。

 さて、そのフツーの「ray」を実行してもらう分かると思うんですが、ラインと同じく、通常、連続コマンドなんですよ。
 私的にはこんなもんこそ、「単発」でいいので、先ほどのラインと同じように「;\\;」を付けて、まずは単発コマンドにします。

 で、今回は「動きを水平、垂直に限定したい」と言うことで、マクロに直行モードを付けます。←図の「ortho;on;」がそれです。
 普通に作図していたら、絶対に使いませんが、もし、コマンドラインから直行モードのon/offをやるなら、「orhto」→Enter→「on か off」→Enter で切り替えるんです。
 マクロでは「F8」キーなどのファンクションキーは使えませんので、この直行モードの正式なコマンド名を使うんですね。

 ついでなので、もうひと工夫。rayコマンド終了の後で、直行モードをはずすようにしました。 これで「直行モードをonにし、放射線を描き、終わったら直行モードを解除する」というマクロの出来上がりです。

実行してみましょう。

 ご覧の様に、上手く動きます♪

でも、途中でキャンセルすると・・・

 一見、成功したように見える上記のマクロ。でも実は問題をまだ含んでいるんです。

 それはこの通り。もしもアイコンを押して、 コマンドスター直後にキャンセルした場合でも、直行モードがOFFに戻らず、入りっぱなしになってしまうことです。

 これだと「途中でキャンセルしたら、自分でOFFする」ことになるので、ちょっと面倒じゃないですか? (まぁ、直行モードくらいなら大したことないんですが、例えばの場合、です)

 そこで、こんな風に変えてみました。直行モードって、普段、コマンド実行後でもONにできるので、 「rayの一点目指定後に直行モードON」です。

 しかし!これだと上手く動かないんです。AutoCAD的には「一点目の後にはちゃんと二点目を指定してよ。 orhtoじゃなくて。」となってしまうんですね。

 そこで、ちゃんとコマンドの途中でもorhtoを分かってくれるように、訂正しました。ただの「orhto」ではなく 「'orhto」としてやります。

 「'」を付けることでコマンドの途中でも割り込みすることが出来るんですが、 こういうパターンを「割込みコマンド」と言います。

 今度は、一点目を指定する前にキャンセルしてしまえは、直行モードはONにならず、コマンドの途中でもちゃんと直行モードに 入れるものが出来ました。

 割込みコマンドはどんなものでも「割込み」になる訳ではありません。直行モードの他にはズームに関するものや、グリッドなんかは 割込みになりますが、同じようにコマンドの途中で使えるオブジェクトスナップは割込みではないんです(そのかわり、いちいち「'」を付けなくても マクロの途中で使えます)。
 このへんはややこしいんですが、AutoCAD自身のヘルプを見れば、割込みコマンドの例や、そのコマンド自身の説明のところに「割込み形」が載って いたりしますので、そこで確認できます。

 ・・・なんだかちょっぴり、本格的なマクロになってきた気分(笑)ですね。次は、2004以下ではかなり実用性のあったマクロ、連続コピーを使って コマンドの途中でオブジェクトを「選択」するにはどうしたらいいか、をやっていきましょう。