在宏中暂停以等待用户输入 (概念)

AutoCAD 2008

 
在宏中暂停以等待用户输入
概念 快速参考
 
 
 

要在命令执行过程中接受来自键盘或定点设备的输入,请在宏中需要进行输入的位置添加反斜杠 (\)。

circle \1 

在 Circle 样例中,\1 将使宏暂停以等待用户指定圆心,然后读取半径 1。请注意在反斜杠后面没有空格。

-layer off \; 

在此样例中,宏将在命令提示 (-layer) 下启动 LAYER,输入“关”选项 (off),然后暂停以等待用户输入图层名 (\)。然后宏将关闭该图层并退出 LAYER 命令 (;)。

注意LAYER 通常提示进行另一操作,并仅当用户按空格键或 ENTER 键时退出。在该宏中,分号 (;) 的作用相当于按 ENTER 键。

宏通常会在用户输入(例如单个点位置)后恢复执行。因此,不能构造接受不确定个数的输入(在对象选择中)然后继续执行的宏。但是,SELECT 是一个例外情况:反斜杠 (\) 将挂起 SELECT 命令直到完成对象选择。请看下面的样例:

select \change previous ;properties color red ; 

在该宏中,SELECT 将创建包含一个或多个对象的选择集 (select \)。然后,该宏将启动 CHANGE 命令 (change),然后使用“上一个”选项来引用创建的选择集 (previous;),并将所有选定对象的颜色改为红色 (properties color red ;)。

注意反斜杠字符 (\) 将使宏暂停以等待用户输入。不能在宏中将反斜杠用于其他任何目的。当需要指定文件目录路径时,可使用正向斜杠 (/) 作为路径分隔符:例如 /direct/file。

以下情况会延迟宏在暂停后的恢复:

  • 如果要输入点位置,在指定点之前可以使用对象捕捉模式。
  • 如果使用 X/Y/Z 点过滤器,命令将保持挂起状态,直到输入了整个点。
  • (仅适用于 SELECT),在完成对象选择之前,宏将不会恢复执行。
  • 如果用户以透明命令响应,挂起的宏将保持挂起状态,直到完成透明命令并已接收到最初请求的输入。
  • 如果用户通过选择其他命令(用以提供选项或执行透明命令)来响应,原来的宏将会被挂起,并且新选择的项目将会被处理完。然后才会恢复执行挂起的宏。
注意如果命令输入来自命令,则 PICKADDPICKAUTO 系统变量将分别假定设置为 1 和 0。这保持了与 AutoCAD 早期版本的兼容性,并且由于不需要检查这些变量的设置而简化了自定义过程。