任意の長さ”をマクロで表現するには?

 さて。水平線を描く場合、もちろん直行モードを使ってもいいんですが、座標入力でやると上図のように・・・当然、 「X方向の数値,Y方向の数値」と、両方、入力しなければなりません。しかし、どうせY方向は 「0」なんだから、X方向の数値だけ入力すれば描いてくれるようにならないかな〜、という 怠慢なマクロ(笑)で、さらにDESEL関数を勉強していってみましょう。

 まずは先のコマンドラインの図通りのマクロ・・・これですと当然、「300」の水平線しか描けないですから DESEL関数を使って、どんな長さを入力しても対応できるように変更しましょう。

 前のページまでで使った$M=$(・・・)とは、ちょっと違う関数を使います。


 これです。
今度は「setenv」と「getenv」。 この2つはセットで覚えて下さい。簡単に言うと、「setenv」で文字を入力し、 「getenv」でそれを取出して代入します。

 これですと、X方向の数値を最初に入力し、「getenv」でそれを代入、その後の「,0」でY軸方向は 「0」に固定しているので、どんな数値を入れても「水平線」が描けます。

 実際に動きを見てみましょう。この通り、ちゃんと意図どおり動きます。

<重要!>
「setenv」と「getenv」はLT限定の関数です。上位版では使えませんのでご注意を!

 「setenv」と「getenv」の使用例をもうちょっと。同様の要領で四角形を描くマクロです。

 さらにもう少し、実務的なマクロに発展させました。何をしているのか分かりますか?