Converts a user's input string into a keyword index.
Supported platforms: Windows only
Type: String
The index specifying which keyword was entered.
This method retrieves a keyword entered by the AutoCAD user during a call to one of the user-input functions (Get* methods).
The maximum length of the keyword is 511 characters (with the 512th character reserved for the NULL character).
A call to GetInput is meaningless and will fail unless it immediately follows a call to one of the user-input functions. Even then, the call will be successful only if the user-input function has returned the error description "User input is a keyword."
It is not necessary to call GetInput after a call to the GetKeyword method.
The keywords recognized by the application are specified by a prior call to the InitializeUserInput method. The interpretation of the keywords is entirely up to the application. Keywords should not duplicate the names of AutoCAD commands.
The user can abbreviate a keyword, but GetInput always returns the full keyword as it was defined in the InitializeUserInput call with the original capitalization, so the application needs to do only one string comparison for each keyword it defines.
VBA:
Sub Example_GetInput() ' This example prompts for user input of a point. By using the ' InitializeUserInput method to define a keyword list, the example can also ' return keywords entered by the user. AppActivate ThisDrawing.Application.Caption On Error Resume Next ' Define the valid keywords Dim keywordList As String keywordList = "Line Circle" ' Call InitializeUserInput to set up the keywords ThisDrawing.Utility.InitializeUserInput 128, keywordList ' Get the user input Dim returnPnt As Variant returnPnt = ThisDrawing.Utility.GetPoint(, vbLf & "Enter a point [Line/Circle]: ") If Err Then If StrComp(Err.Description, "User input is a keyword", 1) = 0 Then ' One of the keywords was entered Dim inputString As String Err.Clear inputString = ThisDrawing.Utility.GetInput MsgBox "You entered the keyword: " & inputString Else MsgBox "Error selecting the point: " & Err.Description Err.Clear End If Else ' Display point coordinates MsgBox "The WCS of the point is: " & returnPnt(0) & ", " & returnPnt(1) & ", " & returnPnt(2), , "GetInput Example" End If End Sub
Visual LISP:
(vl-load-com) (defun c:Example_GetInput() ;; This example prompts for user input of a point. By using the ;; InitializeUserInput method to define a keyword list, the example can also ;; return keywords entered by the user. (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; Define the valid keywords (setq keywordList "Line Circle") ;; Call InitializeUserInput to set up the keywords (vla-InitializeUserInput (vla-get-Utility doc) 128 keywordList) ;; Get the user input (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 "You entered the keyword: " inputString)) ) (alert "User pressed ESC or unknown input was provided.") ) ) ;; Display point coordinates (progn (setq returnPnt (vlax-safearray->list (vlax-variant-value returnPntOrErr))) (alert (strcat "The WCS of the point is: " (rtos (nth 0 returnPnt) 2) ", " (rtos (nth 1 returnPnt) 2) ", " (rtos (nth 2 returnPnt) 2))) ) ) )