grread (AutoLISP)
从任何 AutoCAD 输入设备读取值
支持的平台:Windows 和 Mac OS
签名
(grread [track] [allkeys [curtype]])
-
跟踪
-
类型:T 或 nil
如果提供 而不是 ,则此参数允许在移动指针设备时从指针设备返回坐标。nil
-
所有键
-
类型:整数
告知要执行哪些功能的代码。所有键位代码值可以相加以实现组合功能。可以指定以下值:grread
1(bit 0) -- 返回拖动模式坐标。如果设置了此位,并且用户移动指针设备而不是选择按钮或按键,则返回一个列表,其中第一个成员是类型 5,第二个成员是当前指针设备(鼠标或数字化器)位置的 (X,Y) 坐标。这就是AutoCAD实现拖动的方式。grread
2(位 1) -- 返回所有键值,包括函数和光标键代码,并且在用户按光标键时不移动光标。
4(位 2) -- 使用在 curtype 参数中传递的值来控制光标显示。
8 (bit 3) -- 当用户按 Esc 键时,不显示错误:控制台中断消息。
-
Curtype
-
指示要显示的游标类型的整数。必须设置位 2 的 allkeys 值才能使 curtype 值生效。curtype 参数仅影响当前函数调用期间的游标类型。您可以为 curtype 指定以下值之一:grread
0 -- 显示正常十字准线。
1 -- 不显示光标(无十字准线)。
2 -- 显示对象选择“目标”光标。
返回值
类型:列表
该函数返回一个列表,其第一个元素是指定输入类型的代码。列表的第二个元素是整数或点,具体取决于输入的类型。下表列出了返回值:grread
grread 返回值
|
第一个元素
|
第二个元素
|
价值
|
输入类型
|
价值
|
描述
|
2
|
键盘输入
|
不同
|
字符代码
|
3
|
选定点
|
3D点
|
点坐标
|
4
|
屏幕/下拉菜单项(来自指针设备)
|
0 到 999
1001年至1999年
2001年至2999年
3001 到 3999
...以此类推,以
16001 到 16999
|
屏幕菜单框编号
POP1 菜单框编号
POP2 菜单框编号
POP3 菜单框编号
...以此类推,以
POP16 菜单框编号
|
5
|
指针设备(仅当启用跟踪时返回)
|
3D点
|
拖动模式坐标
|
6
|
BUTTONS 菜单项
|
0 到 999
1000 到 1999
2000 到 2999
3000 到 3999
|
BUTTONS1菜单按钮编号
BUTTONS2菜单按钮编号
BUTTONS3菜单按钮编号
BUTTONS4菜单按钮编号
|
7
|
TABLET1菜单项
|
0 到 32767
|
数字化盒号
|
8
|
TABLET2菜单项
|
0 到 32767
|
数字化盒号
|
9
|
TABLET3菜单项
|
0 到 32767
|
数字化盒号
|
10
|
TABLET4菜单项
|
0 到 32767
|
数字化盒号
|
11
|
AUX 菜单项
|
0 到 999
1000 到 1999
2000 到 2999
3000 到 3999
|
AUX1 菜单按钮编号
AUX2 菜单按钮编号
AUX3 菜单按钮编号
AUX4 菜单按钮编号
注意:SHORTCUTMENU 必须设置为值 0。
|
12
|
指针按钮(跟随 6 或 11 型返回)
|
3D点
|
点坐标
|
25
|
指针辅助按钮
|
0 或更大
|
沿 X 轴的屏幕坐标值
注意:SHORTCUTMENU 必须设置为大于 0 的值。
|
言论
只有专用的 AutoLISP 例程需要此函数。AutoLISP 的大多数输入应该通过各种函数获得。getXXX
在 a 处于活动状态时输入 Esc 会中止带有键盘中断的 AutoLISP 程序(除非 allkeys 参数不允许这样做)。任何其他输入都直接传递给 ,使应用程序能够完全控制输入设备。grreadgrread
如果用户按下屏幕菜单或下拉菜单框中的指针按钮,则返回类型 6 或类型 11 代码,但在后续调用中,它不会返回类型 12 代码:仅当指针按钮位于绘图区域时,类型 12 代码才跟随类型 6 或类型 11。grread
在尝试使用指针按钮或辅助按钮进行其他操作之前,从缓冲区中清除代码 12 数据非常重要。为此,请执行如下嵌套操作:grread
(setq code_12 (grread (setq code (grread))))
此序列捕获代码 12 列表的值作为来自设备的流式输入。
|