概要 - getxxx 関数(AutoLISP)

ユーザ入力の各 getxxx 関数は、ユーザが特定のタイプのデータを入力するまで待機し、入力された値を返します。アプリケーションは、関数が入力待ち状態に入るときに表示されるプロンプトを指定します。次の表に、getxxx 関数と要求されるユーザ入力のタイプを示します。

getxxx ユーザ入力関数で可能な入力

関数名

ユーザ入力のタイプ

getint

整数(コマンド ラインから入力)。

getreal

実数または整数(コマンド ラインから入力)。

getstring

文字列(コマンド ラインから入力)。

getpoint

点の値(コマンド ラインから入力、またはスクリーン上で指定)。

getcorner

点の値(ボックスの対角コーナー) (コマンド ラインから入力、またはスクリーン上で指定)。

getdist

(距離の)実数または整数(コマンド ラインから入力、またはスクリーン上で点を指定して決定)。

getangle

角度の値(現在の角度形式) (コマンド ラインから入力、またはスクリーン上で点を指定して決定)。

getorient

角度の値(現在の角度形式) (コマンド ラインから入力、またはスクリーン上で点を指定して決定)。

getkword

定義済みキーワード、またはその省略形(コマンド ラインから入力)。

注: getvargetcfggetenv 関数は、get で始まっていますが、ユーザ入力関数ではありません。これらについては、「概要 - コマンドとサービスにアクセスする(AutoLISP)」で説明しています。

getintgetrealgetstring 関数は、ユーザが AutoCAD のコマンド ラインに入力するまで待機します。これらの関数は、要求された値と同じタイプの値だけを返します。

getpointgetcornergetdist 関数は、ユーザがコマンド ラインに値を入力するか、グラフィックス スクリーン上で点を指定するまで待機します。getpointgetcorner 関数は 3D 点の値を返し、getdist は実数値を返します。

getangle 関数と getorient 関数は、コマンド ラインに角度の値を入力するか、グラフィックス スクリーン上で点を指定することによって角度を定義するまで待機します。getorient 関数では、角度 0(ゼロ)は常に右方向、東、「3 時の方向」です。getangle 関数では、角度 0(ゼロ)は ANGBASE の値に等しく、どの角度にでも設定できます. getanglegetorient は、両方とも基点(角度 0(ゼロ))から反時計回りに計測した角度の値(実数)をラジアン単位で返します。基点は、getangle では ANGBASE に等しく、getorient では右方向です。

たとえば、ANGBASE を 90 度(北)に設定し、ANGDIR を 1 に設定するとします(角度の増加方向は時計回り)。 このときの代表的な入力値(度)に対する getanglegetorient の戻り値(ラジアン)を、次の表に示します。

getangle と getorient からの戻り値

入力

(度)

getangle

getorient

0

0.0

1.5708

-90

1.5708

3.14159

180

3.14159

4.71239

90

4.71239

0.0

getangle 関数は、入力を受け入れるときに ANGDIR と ANGBASE の設定を参照します。0(ゼロ)度を入力すると必ず 0(ゼロ)ラジアンが返されるため、たとえばブロック挿入の回転量を取得するために getangle を使用できます。getorient 関数は、ANGDIR だけを参照します. 文字オブジェクトの基準線の角度などを取得するには、getorient を使用します。たとえば、上記のように ANGBASE と ANGDIR を設定している場合、角度 0(ゼロ)で作成する 1 行文字に対し、getorient は角度の値として 90 を返します。

ユーザ入力関数は AutoCAD のエラー チェック機能を利用できます。小さなエラーは AutoCAD でトラップされ、ユーザ入力関数がそれを返すことはありません。先に initget を呼び出しておくとさらにフィルタ機能も行え、エラー チェックの必要性は少なくなります。

getkword 関数は、キーワードまたはその省略形の入力を待ちます。キーワードは、getkword を呼び出す前に initget 関数を使用して定義しておく必要があります。すべてのユーザ入力関数(getstring を除く)では、initget を呼び出してキーワードを定義しておくと、通常返す値の他にキーワードの値も指定できます。

すべてのユーザ入力関数には、 prompt 引数を指定できます。先に prompt 関数や princ 関数を呼び出すよりも、この引数を使用することをお勧めします。ユーザ入力関数の呼び出しに prompt 引数を指定すると、そのプロンプト メッセージはユーザ入力が無効な場合に再表示されます。 prompt 引数を指定しない場合は、ユーザが正しくない情報を入力すると、AutoCAD プロンプト行に次のメッセージが表示されます。

もう一度:

この場合、元のプロンプトはすでにスクロールされてコマンド プロンプト領域外にあるかもしれないため、どのような入力が求められているのかが分からなくなる可能性があります。

通常、AutoCAD ユーザは、AutoLISP の式を入力することによってはユーザ入力関数に応答することはできません。AutoLISP のルーチンで initget 関数が使用されていると、AutoLISP で実行されるコマンドへの応答として AutoLISP 文が使用できる関数に対して、キーボードから任意の入力を行えます。