CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2024 开发者帮助

关于请求关键字 (ActiveX)

2024-5-18 19:06| 发布者: admin| 查看: 155| 评论: 0|原作者: admin|来自: AutoCAD

关于请求关键字 (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

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-3-14 08:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部