欢迎光临散文网 会员登陆 & 注册

acedInitGet 的关键字详解

2023-08-03 18:23 作者:bili_17711389278  | 我要投稿

关键字规范

可选的 kwl 参数指定了一系列关键字,这些关键字将被下一次用户输入(acedGetXxx())函数调用或 acedDragGen()、acedEntSel()、acedNEntSelP() 或 acedNEntSel() 调用所识别。用户输入的关键字值可以通过随后调用 acedGetInput() 来获取。(如果用户输入函数是 acedGetKword(),则关键字值已经可用)。关键字的含义以及对每个关键字执行的操作由 ARX 应用程序负责。

kwl 参数是一个字符串,按照以下规则解释:

每个关键字与下一个关键字之间用一个或多个空格隔开。例如,"宽度 高度 深度 "定义了三个关键字。

每个关键字只能包含字母、数字和连字符 (-)。

每个关键字规范都可以指示 AutoCAD 按照以下两种方法之一识别缩写:

用大写字母输入关键字中构成所需部分(缩写)的字母,用小写字母输入关键字的其余部分。例如,如果希望用户能键入 LT 作为 ltype 的缩写,则使用关键字 "LType"。缩写的字母不必位于关键字的开头。例如,用户可以通过输入 exit 或 x 来选择关键字 "eXit"。

用大写字母输入整个关键字,紧接着输入逗号,然后输入缩写。例如,输入 LTYPE,LT。这种方法适用于为不使用罗马字母大小写字母的语言开发应用程序。

无论使用哪种方法,只要用户输入 LT(大写或小写字母),就足以识别关键字。用户可以输入关键字必填部分后面的字符,前提是这些字符不与规范冲突。在示例中,用户也可以输入 LTY 或 LTYP,但 L 并不足够,而且类似 LTSCALE 或 LTYPEX 的字符也不符合关键字的拼写。

如果 kwl 显示的关键字完全是大写或小写字母,后面没有逗号和缩写,那么 AutoCAD 只能识别用户输入的全部关键字。

acedGetInput()函数总是以相同的大小写返回 kwl 参数中的关键字(但不返回逗号后指定的可选字符)。无论用户如何输入关键字,应用程序只需进行一次字符串比较即可识别。

关键字全球化

kwl 参数可用于本地和全局语言关键词组合。要将本地关键词和全局关键词联系起来,kwl 参数必须由一个或多个本地关键词、下划线和相关的全局关键词组成。在本例中,Ja 与 Yes 配对,Nein 与 No 配对:

acedInitGet(RSG_NONULL, "Ja Nein _ Yes No");

下划线后面列出的关键字被定义为全局关键字,并将始终作为返回的关键字。

用户可以输入适当的字符来使用本地关键字。根据上例中的调用例子, J会返回 Yes, N会返回No. 要访问全局关键字,用户必须在下划线后输入相应的字符。同样,根据上例中的调用例子,_Y 将返回 "是",而 _N 将返回 "否"。

不过,本地关键字和全局关键字之间并不要求一一对应(也就是说,如果出现不匹配,函数调用也不会失败):

如果本地关键字(下划线前)多于全局关键字(下划线后),则会接受没有相应全局关键字的本地关键字,但会返回空字符串("")。

如果全局关键字(下划线后)多于本地关键字(下划线前),则会接受没有相应本地关键字的全局关键字(只要包含前导下划线),并返回全局关键字。

全局化机制对这两种关键字指定形式都有效,如下图所示:

acedInitGet(RSG_NONULL, "Ja NEIN,N _ YES,Y No");

该调用完全可以接受,并将返回 YES 或 No。

原文链接:

AutoCAD 2024 Developer and ObjectARX Help | acedInitGet | Autodesk

acedInitGet 的关键字详解的评论 (共 条)

分享到微博请遵守国家法律