为随后的用户输入函数调用创建关键字
(initget [bits] [string])
能够接受关键字输入的函数有 getint、getreal、getdist、getangle、getorient、getpoint、getcorner、getkword、entsel、nentsel 和 nentselp。getstring 函数是唯一不接受关键字的用户输入函数。
在随后调用用户输入函数时,如果用户输入的不是相应的数据类型(例如与 getpoint 函数相对应的类型是一个点),该函数将检索关键字表来确定用户是否键入了一个关键字。如果用户的输入和表中的一个关键字相匹配,函数将以字符串的形式返回该关键字。应用程序可以对返回的关键字进行检测,并对每一个关键字执行相应动作。如果用户的输入不是相应类型且和表中任何一个关键字都不匹配,AutoCAD 将要求用户再次输入。initget 函数的位编码值与关键字表仅对紧随其后的那个用户输入函数有效。
如果 initget 函数设置了一个控制位,而该控制位对应用程序随后调用的那个用户输入函数来说没有意义,则忽略该控制位。
如果用户的输入不满足一个或多个指定条件(例如在不允许输入零值时输入了零值),AutoCAD 将显示信息要求用户再次输入。
参数
bits
按位编码的整数,用于控制是否允许某些类型的用户输入。这些控制位可以任意组合(即把各位加起来),构成 0 到 225 之间的值。如果没有指定 bits 参数,则假定它是 0。各位的值如下:
1 (位0) 禁止用户仅按 ENTER 键来响应输入请求。
2 (位1) 禁止用户输入零值来响应输入请求。
4 (位2) 禁止用户输入负值来响应输入请求。
8 (位3) 允许用户在当前图形界限之外输入一个点,即使 AutoCAD 的系统变量 LIMCHECK 当前被设置为开 (ON),本条件也照样对随后调用的用户输入函数有效。
16 (位4) (目前不使用)。
32 (位5) 用虚线绘制拖引线或拉伸方框。对于那些可以由用户在图形屏幕上通过选择位置来指定一个点的函数,设置该控制位将使拖引线和拉伸方框显示为虚线而不是实线(某些显示驱动程序用颜色醒目的线来代替虚线)。如果系统变量 POPUPS 设为 0,AutoCAD 将忽略该控制位。
64 (位6) 禁止输入 Z 坐标,以使应用程序确保该函数返回的是二维距离。
128 (位7) 在尊重任何其他的控制位和所列出的关键字的情况下,允许任意的输入,就好象它是一个关键字一样。该位的优先权高于位 0
:如果同时设置了位 7 和位 0,那么用户仅键入 ENTER 键时,将返回空字符串。
注意 AutoLISP 的后续版本中可能会使用其他 initget 控制位,所以不要设置此处未提及的位。
string
代表关键字表的字符串。关于定义关键字的信息,请参见关键字规范。
返回值
nil
可用的控制位
对特定的 getxxx 函数来说,只有特定的控制位才有意义,下表对此作了全面说明。
用户输入函数和可用的控制位 |
||||||||
---|---|---|---|---|---|---|---|---|
函数 |
关键字 |
控制位的值 |
||||||
非空 (1) |
非零 (2) |
非负 (4) |
非限 (8) |
使用虚线 (32) |
二维距离 (64) |
随机输入 (128) |
||
getint |
X |
X |
X |
X |
X |
|||
getreal |
X |
X |
X |
X |
X |
|||
getdist |
X |
X |
X |
X |
X |
X |
X |
|
getangle |
X |
X |
X |
X |
X |
|||
getorient |
X |
X |
X |
X |
X |
|||
getpoint |
X |
X |
X |
X |
X |
|||
getcorner |
X |
X |
X |
X |
X |
|||
getkword |
X |
X |
X |
|||||
entsel |
X | |||||||
nentsel |
X | |||||||
nentselp |
X |
关键字规范
string 参数按如下规则解释:
关键字有如下两种缩写办法:
“LType”和“LTYPE,LT”这两种关键字缩写方式是等价的。如果用户键入 LT(无论是大小写),都可以被识别为这个关键字。用户还可以输入关键字必需部分之后的字符,这样它们就不会与缩写规则相冲突了。在本例中,用户可以输入 LTY 或 LTYP,但只输入 L 是不够的。
如果 string 参数完全以大写或小写字符给出,其后没有逗号,也没有跟随必需部分,则只有用户完整输入这个关键字时 AutoCAD 才能识别。
initget 函数支持本地化的关键字。下列关键字字符串语法允许输入本地化的关键字,而返回与语言无关的关键字:
"local1 local2 localn_indep1 indep2 indepn"
在这里,local1 至 localn 是本地化的关键字,而从 indep1 到 indepn 是与语言无关的关键字。
本地化关键字和语言无关关键字的数目必须相同,而且第一个与语言无关的关键字的前面必须有一个下划线,如下例所示:
(initget "Abc Def _Ghi Jkl")
(getkword "\n输入选项 (Abc/Def): ")
输入 A 返回 Ghi,输入 _J 则返回 Jkl。
参阅
entsel、getangle、getcorner、getdist、 getint、getkword、getorient、getpoint、getreal、getstring、 nentsel 和 nentselp 函数。《Visual LISP 开发人员手册》中的 用户输入函数的条件控制。
明经通道 版权所有 未经许可 不得传播 | 评论 |