「Grread」の版間の差分
編集の要約なし |
編集の要約なし |
||
102行目: | 102行目: | ||
<pre class="brush:autolisp;"> | <pre class="brush:autolisp;"> | ||
; grread 関数を使用してユーザ入力を処理する | ; grread 関数を使用してユーザ入力を処理する | ||
; grread 関数がアクティブなときに [Esc] を入力すると、(allkeys 引数で禁止していなければ)AutoLISP プログラムはキーボード | ; grread 関数がアクティブなときに [Esc] を入力すると、(allkeys 引数で禁止していなければ)AutoLISP プログラムはキーボード ブレークで中止される。 これ以外の入力は grread 関数に直接渡され、入力デバイスをアプリケーションで完全にコントロールできる。 | ||
; | ; | ||
; スクリーン メニューまたはプルダウン メニュー ボックス内でユーザがポインタ ボタンを押すと、grread 関数はタイプ 6 またはタイプ 11 のコー | ; スクリーン メニューまたはプルダウン メニュー ボックス内でユーザがポインタ ボタンを押すと、grread 関数はタイプ 6 またはタイプ 11 のコー ドを返すが、その後の呼び出しでタイプ 12 のコードを返さない。 図面領域内でポインタ ボタンを押した場合にのみ、タイプ 6 またはタイプ 1 1 の後にタイプ 12 のコードが続く。 | ||
; | ; | ||
; ポインタ ボタンまたは AUX 補助ボタンで別の操作をしようとする前に、コード 12 のデータを必ずクリアする必要がある。 | ; ポインタ ボタンまたは AUX 補助ボタンで別の操作をしようとする前に、コード 12 のデータを必ずクリアする必要がある。 |
2023年8月28日 (月) 07:58時点における版
- 構文
- (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 リストの値を取得する。
関連事項