
initget 関数のオプションについて知りたい。

initget 関数の引数はフラグ値とキーワード文字列です。フラグ値の意味は次の通りです。
| 値 | 意味 |
| +1 が 0 | Enterのみの入力で nil 値を返す。 |
| +1 | Enterのみの入力は「整数が必要です。」などと表示し再入力になる |
| +2 | 0 を入力すると「ゼロ以外の値にしてください。」と表示し再入力になる。 |
| +4 | 負の数を入力すると「値は正の値でなくてはなりません。」と表示し再入力になる。 |
| +8 が 0 | システム変数LIMCHEK=1のときにLIMITSコマンドで設定した範囲の外を指定すると、「図面範囲の外側です」と表示し再入力になる。 |
| +8が1 | システム変数LIMCHEK=1のときにLIMITSコマンドで設定した範囲の外を指定しても再入力にならない。 |
| +64 | Z値を無視する。getdist 関数で2点を指定したときに同一平面上での距離を求める。 |
| +128 | 任意の文字入力を可能にする。getintやgetpoint関数でも数値にならない値を入力することが可能。 |
次のオプションは使用できません。
| 値 | 機能 |
| +32 | AutoLISP コマンドリファレンスにはgetpointやgetangle 関数のラバーバンドや、getcorner 関数のラバーボックスを表示だが、ARESでは2点目の入力では常にラバーバンドやラバーボックスを表示する。 |
| +256 | ARESのヘルプではオプションツールバーにキーワードを表示するとあるが、標準コマンドやinitgetで設定したキーワードはフラグ値に関わらず常に表示される。 |


フラグ値は複数指定できる。たとえば0と負の数を入力不可にするには、(initget 6) と指定する。
キーワード引数について
(initget 0 “Yes No”)
(setq p (getpoint “始点”))
と指定すると、[Enter]のみで nil、任意の座標値、Y[Enter]で “Yes”、N[Enter]で”No”をpに返す。
キーワードの大文字部分を入力すれば、大文字小文字が整えられたキーワードを返す。
たとえば、yes[Enter] と入力しても “Yes” とキーワード引数に指定された通りの文字列を返す。
(initget 0 “はい(Y) いいえ(N)”)
(setq p (getpoint “始点”))
カッコの中の大文字が短縮入力に使える。Y[Enter]とした時の戻り値が”はい(Y)”になってしまう。
(initget 0 “はい(Y) いいえ(N) _ Yes No”)
(setq p (getpoint “始点”))
画面に日本語を表示させて、Y[Enter]とした時の戻り値を”Yes”にするには _ 下線を使って前後で表示用のキーワードと、戻り値用のキーワードを指定する。
キーワード引数のクリア
(initget 0 “はい(Y) いいえ(N) _ Yes No”)
(setq p1 (getpoint “始点”))
(setq p2 (getpoint p1 “終点”))
このようにすると、p2の入力のときにもキーワードが表示されてしまう。

(initget 0 “はい(Y) いいえ(N) _ Yes No”)
(setq p1 (getpoint “始点”))
(initget 0 )
(setq p2 (getpoint p1 “終点”))
その都度 initget 関数を呼び出すことで、キーワード引数をクリアできる。
