Grread

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(grread [track] [allkeys [curtype]])


機能
いずれかの入力デバイスから値を読み取る。
特殊なLISPルーチンのみが、この関数を必要とし、通常LISPへの入力は、getxxx 関数で取得する。


引数
  • track : nil 以外の値を与えると、ポインティング デバイスからリアルタイムに座標を取得することができる。
  • allkeys : grread に実行させる機能のコードを示す整数。allkeys はビットコード値で、値を加算して機能を組み合わせることができ、次の値を指定することができる。
1 (ビット 0) : ドラッグ モード座標を返す。このビットが設定されている時ユーザがボタンの選択やキーを押したりせずにポインティング デバイスを移動すると、1 番目のメンバーがタイプ 5で 2 番目のメンバーが現在のポインティング デバイス(マウスまたはディジタイザ)の(X,Y)座標であるリストを返す。これによって CADはドラッギングを実行。
2 (ビット 1) : 全てのキーの値を返す。ファンクションキーやカーソル キーのコードも含まれる。ユーザがカーソル キーを押してもカーソルは移動しない。
4 (ビット 2) : curtype 引数で渡された値を使用して、カーソル表示をコントロールする。
8 (ビット 3) : ユーザが[Esc]を押しても、「エラー:」コンソール ブレイク メッセージを表示しない。
128(ビット 7) : 拡張キーボード(Insert、Delete、Home、End、PageUp、PageDown)のキーコードを返す。(BricsCADのみの拡張。AutoCADでは無視される)
  • curtype :表示するカーソルのタイプを示す整数。allkeys 引数のビット 2 が設定されていないと、curtype 引数は効力を持たない。curtype 引数は、grread 関数が呼び出されている間のカーソル タイプにのみ影響する。
curtype 引数に次の値の 1 つを指定することができる。
0 : 通常のクロスヘア カーソル表示。
1 : カーソルは表示されない(クロスヘア カーソルなし)。
2 : オブジェクト選択のための ターゲット ボックス表示。


戻り値
grread 関数が返すリストの 1 番目の要素は、入力のタイプを示すコード。2 番目の要素は整数か点のどちらかで、入力のタイプで決定される。


戻り値の一覧を次に示す。

grread 関数の戻り値
1 番目の要素 2 番目の要素
入力のタイプ 説 明
2 キーボード入力 各種 文字コード
3 選択された点 3D 点 点の座標
4 スクリーン、プルダウン メニュー項目

(ポインティングデバイスからの)

0~999
1001~1999
2001~2999
3001~3999
-(中略)-
16001~16999 
スクリーン メニュー ボックス番号
POP1 メニュー ボックス番号
POP2 メニュー ボックス番号
POP3 メニュー ボックス番号
-(中略)-
POP16 メニュー ボックス番号 
5 ポインティング デバイス (トラッキング可能な場合のみ) 3D 点 ドラッグ モード座標
6 BUTTONS メニュー項目
0~999
1000~1999
2000~2999
3000~3999 
BUTTONS1 メニュー ボタン番号
BUTTONS2 メニュー ボタン番号
BUTTONS3 メニュー ボタン番号
BUTTONS4 メニュー ボタン番号 
7 TABLET1 メニュー項目 0~32767 デジタイズ ボックス番号
8 TABLET2 メニュー項目 0~32767 ディジタイズ ボックス番号
9 TABLET3 メニュー項目 0~32767 ディジタイズ ボックス番号
10 TABLET4 メニュー項目 0~32767 ディジタイズ ボックス番号
11 AUX メニュー項目
0~999
1000~1999
2000~2999
3000~3999 
AUX1 メニュー ボタン番号
AUX2 メニュー ボタン番号
AUX3 メニュー ボタン番号
AUX4 メニュー ボタン番号 
12 ポインタ ボタン(タイプ6 またはタイプ 11 の後に続く) 3D 点 点の座標


サンプル
; grread 関数を使用してユーザ入力を処理する 
; grread 関数がアクティブなときに [Esc] を入力すると、(allkeys 引数で禁止していなければ)AutoLISP プログラムはキーボード ブレークで中止される。 これ以外の入力は grread 関数に直接渡され、入力デバイスをアプリケーションで完全にコントロールできる。
; 
; スクリーン メニューまたはプルダウン メニュー ボックス内でユーザがポインタ ボタンを押すと、grread 関数はタイプ 6 またはタイプ 11 のコードを返すが、その後の呼び出しでタイプ 12 のコードを返さない。 図面領域内でポインタ ボタンを押した場合にのみ、タイプ 6 またはタイプ 1 1 の後にタイプ 12 のコードが続く。
; 
; ポインタ ボタンまたは AUX 補助ボタンで別の操作をしようとする前に、コード 12 のデータを必ずクリアする必要がある。
; これを行うには、次のよう に grread 関数をネストする。
 (setq code_12 (grread (setq code (grread))))

; この手順では、デバイスからのストリーム入力としてコード 12 リストの値を取得する。 

関連事項