Initget

提供:GizmoLabs - だいたい CAD LISP なサイト
2009年11月15日 (日) 18:53時点におけるGizmon (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(initget [bits] [string])


機能
次のユーザ入力関数の呼び出しで使用するキーワードを設定する。
キーワードを指定できる関数には、getint、getreal、getdist、getangle、getorient、getpoint、getcorner、getkword、entsel、nentsel、nentselp がある。キーワード指定できないユーザ入力関数は、getstringのみ。
次のユーザ入力関数の呼び出しで、予期されるタイプの入力(たとえば getpoint 関数に対しては点の指定)をユーザが行わないと、キーワードがチェックされる。ユーザの入力がリストに存在するキーワードのいずれかと一致した場合、関数はそのキーワードを文字列として返す。アプリケーションは、キーワードを調べ、それぞれに対応する動作を行うことができる。 ユーザ入力が予期したタイプではなくキーワードとも一致しない場合、CAD はもう一度入力するようユーザに要求する。initget 関数のビット値とキーワードは、次回のユーザ入力関数の呼び出しのみに適用される。
initget 関数でコントロール ビットを設定した後で、設定されたビットが意味を持たないユーザ入力関数をアプリケーションが呼び出すと、そのビットは無視される。指定された状態についてユーザの入力が正しくない場合(たとえば、0が許可されていないときに0を入力する等)、CAD はメッセージを表示して、もう一度入力するようユーザに要求する。
引数
  • bits : ビットコード化された整数で、特定のタイプのユーザ入力を許可または禁止する。ビットは、値を加算して0から255の範囲で自由に組み合わせることができる。bits 引数を指定しなかった場合は、0とみなされる。
ビット値には次のものがある。
  • 1 (ビット 0) 要求に対して[Enter]のみ入力することを禁止。
  • 2 (ビット 1) 要求に対して 0 を入力することを禁止。
  • 4 (ビット 2) 要求に対して負の値を入力することを禁止。
  • 8 (ビット 3) ユーザが現在の図面範囲の外側に点を入力することを許可。システム変数 LIMCHECKは無視する。
  • 16 (ビット 4) (現在は使用されてない)
  • 32 (ビット 5)破線を使用して、ラバーバンド線またはラバーバンドボックスを描く。作図領域内の位置を指定することによってユーザが点を指定できる関数の場合、このビットの値によってラバーバンド線またはラバーバンド ボックスを、実線ではなく破線で表示できる (ディスプレイ ドライバによっては、破線の代わりに独自の色が使用される)。システム変数 POPUPS が 0の場合、このビットを無視。
  • 64 (ビット 6) getdist 関数への Z 座標の入力を禁止する。getdist 関数が 2D 距離を返すことをアプリケーションに対して保証する。
  • 128 (ビット 7) キーワードかどうかに関係なく、任意の入力ができるようにする。このビットは、ビット 0より優先される。ビット 7 とビット 0が設定されているときにユーザが[Enter]を押すと、空の文字列が返される。
注: initget 関数のコントロール ビットは今後のバージョンで 追加される可能性がある為、ここに示されている以外のビットは設定しない。
  • string : 一連のキーワードを示す文字列。キーワードの規則は、下記「キーワードの詳細」の通り。
戻り値
nil


キーワードとコントロールビット

関数に適用できるコントロール ビット
コントロール ビットは、次の表に示すように、それが意味を持つ getxxx 関数にのみ有効。
ユーザ入力関数と適用可能なコントロール ビット
コントロール ビットの値
関 数 キーワードが
有効
null 不可
(1)
ゼロ不可
(2)
負数不可
(4)
範囲なし
(8)
破線使用
(32)
2D距離
(64)
任意入力
(128)
直接距離
(256)
UCS 面トラッキング
(512)
Z トラッキング無効
(1024)
getint X X X X X
getreal X X X X X
getdist X X X X X X X X X
getangle X X X X X X X
getorient X X X X X X X
getpoint X X X X X X X X
getcorner X X X X X X X X
getkword X X X
entsel X
nentsel X
nentselp X
キーワードの詳細
string 引数は、次の規則に従って解釈される。
  • 各キーワードは、1 つまたは複数のスペースによって他のキーワードと区切る。たとえば、"Width Height Depth" によって 3 つのキーワードが定義される。
  • 各キーワードには、半角英数字とハイフン(-)のみを含めることができる。
キーワードの短縮形を指定する方法には、次の 2 つがある。
  • 入力が必要な部分を大文字で、その他の部分を小文字で指定する。大文字による短縮形の指定は、キーワード内のどの部分でも行える(たとえば、"LType"、"eXit"、"toP" など)。
  • キーワード全体を大文字で指定し、その直後にカンマと入力が必要な文字を続ける(たとえば "LTYPE,LT")。この場合、キーワード文字はキーワードの先頭の文字でなければならない。つまり、"EXIT,X" は無効。
以下は、IJCAD のみで有効
  • IJCADでは、キーワードをプロンプトメニューから選択できるようになっているが、プロンプトメニューに表示させたくない場合は、キーワードの先頭に ~ を付ける。(たとえば、"~LType"、"~eXit"、"~_toP" など)
サンプル
2 つの簡単な例、"LType" と "LTYPE,LT" は同じ。 ユーザが LT(大文字と小文字のどちらも可)と入力するとキーワードとして認識される。キーワードのスペルどおりなら、ユーザは入力が必要な部分の後にも文字を入力できる。 この例では、LTY や LTYP も認識されるが、L は認識されない。
string 引数全体が大文字か小文字のどちらかのみで、カンマとその後の文字列が存在しない場合、CAD はユーザがキーワード全体を入力したときのみ、キーワードを認識する。
initget 関数は、英語以外の言語に翻訳されたキーワードをサポートしている。キーワード文字列に対する次の構文は、英語以外の言語に翻訳されたキーワードの入力が可能で、言語に依存しないキーワードを返す。
"local1local2localn_indep1indep2indepn"
ここで、local1 から localn は、英語以外の言語に翻訳されたキーワード。 indep1 から indepn は、言語に依存しないキーワード。
英語以外の言語に翻訳されたキーワードと、言語に依存しないキーワードの順序は常に同じでなければならない。 また、最初の言語に依存しないキーワードの先頭には、アンダースコアが必要。
次に例を示す。
(initget "Abc Def _Ghi Jkl")
(getkword "¥nオプションを入力 (Abc/Def): ")
A と入力すると "Ghi" が返され、_J と入力すると "Jkl" が返される。



関連事項