Vla-initializeuserinput
- 構文
- (vla-initializeuserinput vla-object Bits Keyword)
- 機能
- GetKeyword メソッドを初期化する。
- 引数
-
- vla-object … Utility の VLAオブジェクト
- Bits … キーワードのビット和を示す整数
- 一度に複数の条件を設定するには、値を自由に組み合せて加算する。この値が含まれない場合、または 0 に設定されている場合は、コントロール条件は適用されない。
- 1 : NULL 入力を認めない。ユーザが要求に対して、[Enter]またはスペースだけの入力で応答できないようにする。
- 2 : ゼロ(0)の入力を認めない。ユーザが要求に対して、0 の入力で応答できないようにする。
- 4 : 負の値を認めない。ユーザが要求に対して、負の値の入力で応答できないようにする。
- 8 : システム変数 LIMCHECK がオンに設定されていても、図面範囲をチェックしない。したがって、現在の図面範囲の外側にある点を入力することができる。この条件は、CAD のシステム変数 LIMCHEK が現在設定されている場合でも、次に呼び出されるユーザ入力関数に適用される。
- 16 : 現在使用されていない。
- 32 : ラバーバンド線またはボックスを描く際に破線を使用する。これによって、グラフィックス画面上の点の位置を選択することによってユーザが点を指定できるメソッドでは、ラバーバンド線またはボックスが実線ではなく破線で表現される(ディスプレイ ドライバによっては、破線の代わりに独自の色が使用される)。CAD のシステム変数 POPUPS が 0(ゼロ)の場合、CAD はこのビットを無視する。
- 64 : 3D 点の Z 座標を無視する(GetDistance メソッドのみ)。このオプションは、GetDistance メソッドから返される 3 次元の Z 座標を無視するので、確実に 2 次元の距離だけが返されるようにする。
- 128 : ユーザは何でも入力できる。
- Keyword … 次のユーザ入力メソッドが認識するキーワード。文字列の配列
- 戻り値
- nil
- 注意 : GetKeyword メソッドを呼び出す前に、このメソッドでキーワードが定義されていなければならない。ユーザ入力メソッドの中には、通常の戻り値だけでなくキーワード値を受け取るものがある。ただし、InitializeUserInput メソッドを呼び出してキーワードを定義しておかなければならない。キーワードを受け取ることができるユーザ入力メソッドは、GetKeyword、GetInteger、GetReal、GetDistance、GetAngle、GetOrientation、GetPoint、GetCorner。
- AutoLISP では、同様の関数として initget がある。
- サンプル
(vl-load-com) (defun c:Example_InitializeUserInput() ;; 点の入力を求めるプロンプトを表示して ;; ユーザが入力したキーワードを返すサンプル。 (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; キーワードの設定 (setq keywordList "Line Circle") ;; InitializeUserInput を呼び出してキーワードをセット (vla-InitializeUserInput (vla-get-Utility doc) 128 keywordList) ;; ユーザの入力を取得 (setq returnPntOrErr (vl-catch-all-apply 'vla-GetPoint (list (vla-get-Utility doc) nil "Enter a point [Line/Circle]: "))) (if (= (type returnPntOrErr)'VL-CATCH-ALL-APPLY-ERROR) (progn (if (= (vl-catch-all-error-message returnPntOrErr) "Automation Error. User input is a keyword") (progn (setq inputString (vla-GetInput (vla-get-Utility doc))) (alert (strcat "貴殿の指定したキーワード : " inputString)) ) (alert "ESC を押したか、不明なキーワードです。") ) ) ;; 指示点の座標を表示 (progn (setq returnPnt (vlax-safearray->list (vlax-variant-value returnPntOrErr))) (alert (strcat "ワールド座標の点 : " (rtos (nth 0 returnPnt) 2) ", " (rtos (nth 1 returnPnt) 2) ", " (rtos (nth 2 returnPnt) 2))) ) ) )
関連事項