关于请求关键字 (ActiveX)
该方法在AutoCAD命令提示符下提示用户输入关键字。GetKeyword
此方法仅接受一个参数,即提示字符串。关键字和输入参数是通过调用该方法来定义的。InitializeUserInput
在AutoCAD命令提示符下从用户处获取关键字
下面的示例通过将第一个参数设置为 1 来强制用户输入关键字,这将不允许 NULL 输入(按 Enter)。第二个参数建立有效关键字列表。InitializeUserInput
- AutoLISP
-
(vl-load-com)
(defun c:Ch3_KeyWord()
(setq acadObj (vlax-get-acad-object)
doc (vla-get-ActiveDocument acadObj)
utilityObj (vla-get-Utility doc))
(vla-InitializeUserInput utilityObj 1 "Line Circle Arc")
(setq keyWord (vla-GetKeyword utilityObj "\nEnter an option [Line/Circle/Arc]: "))
(alert (strcat "Keyword: " keyWord))
)
- VBA(仅限 AutoCAD)
-
Sub Ch3_KeyWord()
Dim keyWord As String
ThisDrawing.Utility.InitializeUserInput 1, "Line Circle Arc"
keyWord = ThisDrawing.Utility.GetKeyword(vbCrLf & "Enter an option [Line/Circle/Arc]: ")
MsgBox "Keyword: " & keyWord, , "GetKeyword Example"
End Sub
更用户友好的关键字提示是在用户按 Enter(NULL 输入)时提供默认值的关键字提示。请注意对以下示例的细微修改:
- AutoLISP
-
(vl-load-com)
(defun c:Ch3_KeyWord2()
(setq acadObj (vlax-get-acad-object)
doc (vla-get-ActiveDocument acadObj)
utilityObj (vla-get-Utility doc))
(vla-InitializeUserInput utilityObj 0 "Line Circle Arc")
(setq keyWord (vla-GetKeyword utilityObj "\nEnter an option [Line/Circle/Arc] <Arc>: "))
(if (= keyWord "")(setq keyWord "Arc"))
(alert (strcat "Keyword: " keyWord))
)
- VBA(仅限 AutoCAD)
-
Sub Ch3_KeyWord2()
Dim keyWord As String
ThisDrawing.Utility.InitializeUserInput 0, "Line Circle Arc"
keyWord = ThisDrawing.Utility.GetKeyword(vbCrLf & "Enter an option [Line/Circle/Arc] <Arc>: ")
If keyWord = "" Then keyWord = "Arc"
MsgBox "Keyword: " & keyWord, , "GetKeyword Example"
End Sub
|