「現在画層」へオフセット.2

 DESEL関数は「公式」です。公式というか・・・私としては「言語」だと思います。「言語」なので、「どうしてそうなるの?」と聞くのは、英語で「”have + 過去分詞”でどうして”完了形”になるの?」と聞くようなものです(・・・少々、強引ですが(笑))
 疑問を持つより、そういうものだと覚えてしまいましょう。

 と、言うことで、DESEL関数を使って「CLAYER」を入れてみました。

 「$M=」は、ここでマクロを一旦、停止して、後の$(・・・・)だけ先に処理させる為の 命令コマンドです。
 実際に世に出回っているマクロを見ると、$(・・・・)がいくつもあるような複雑なものがありますが、 それらも「$M=」が登場した時点で全て処理されます。


 で、$(・・・・)の中身の「getvar」は「,」の後ろものを取り出して代入する、という命令です。

 ・・・まぁ、ここで「深く考えても分からない」という方は、先に申し上げた通り、「$M=$(・・・・)」という形を丸呑みしましょう。

動きもご覧の通り。意図した通りに動作します。

実務で使いたいオフセットのマクロ

 さてさて。補足ですが、いずみさんのマニュアルでは上記の「現在層へオフセットマクロ」、さらにもう少し、記号がついていました。

一番最初に「*」(アスタリスク)が付いています。

 このように、マクロの最初に「*」をつけると、そのマクロは自動でくりかえされます。つまり、これさえつければ単発コマンドも ”連続コマンドもどき”にできちゃうんです(ただし、繰り返しには条件があるので、どんな場合でも・・・とはいかないらしいです)。

 まぁ、取り合えず、今回の場合はOK。で、この「*」の形をボタンに仕込んで、やってみてもらうと分かると思うんですが、 一回、マクロが完了するごとに「距離」を聞かれるので、等間隔でないオフセットが可能になっているんです。
 すなわちこれが、有名な「連続オフセットマクロ」というやつ。 実務で使う場合は、毎度、「現在画層」にオフセットしなくてもいいでしょうから、もっと単純なフツーの形の 「連続オフセット」ボタンも用意しておくと、ものすごく便利!です。

連続オフセット・単純形 *^C^C_offset;\\\;