Vla-getinput
- 構文
- (vla-getinput vla-object)
- 機能
- ユーザからの入力文字列をキーワード インデックスに変換する。
- 引数
-
- vla-object … Utility の VLAオブジェクト
- 戻り値
- nil
- MEMO : このメソッドは、ユーザ入力関数(Get* メソッド)を呼び出している間に、CAD ユーザによって入力されたキーワードを取り出す。
- キーワードの最大長は 511 文字です(512 番目の文字は NULL 文字のために予約されている)。
- GetInput メソッドの呼び出しは意味がなく、直前にユーザ入力関数の呼び出しがなければ異常終了する。ユーザ入力関数を呼び出した場合でも、「ユーザ入力がキーワードです」というエラー メッセージが返されたときのみ正常終了する。
- GetKeyword メソッドを呼び出した後で、GetInput メソッドを呼び出す必要はない。
- アプリケーションによって認識されるキーワードは、直前の InitializeUserInput メソッドの呼び出しで指定される。キーワードの解釈はアプリケーションに任されている。キーワードが、CAD のコマンド名と重複しないようにすること。
- ユーザはキーワードを短縮して入力することができるが、GetInput メソッドは、InitializeUserInput メソッドの呼び出しで定義された表記のままの完全なキーワードを返す。したがって、アプリケーションはキーワードごとに 1 つの文字列を比較するだけですむ。
- サンプル
(vl-load-com) (defun c:Example_GetInput() ;; ユーザのポイントを入力するよう求める。例は 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 "点の入力 [Line/Circle]: "))) (if (= (type returnPntOrErr)'VL-CATCH-ALL-APPLY-ERROR) (progn (if (= (vl-catch-all-error-message returnPntOrErr) "オートメーション エラー。ユーザーの入力がキーワード") (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 "WCS の点: " (rtos (nth 0 returnPnt) 2) ", " (rtos (nth 1 returnPnt) 2) ", " (rtos (nth 2 returnPnt) 2))) ) ) )
関連事項