暂停符号可用于命令功能,以中断AutoCAD命令的执行,并让用户提供输入。 如果 AutoCAD 命令正在进行中,并且遇到预定义符号作为 的参数,则该命令将暂停以允许用户直接输入(通常是点选择或拖动)。这类似于为菜单提供的反斜杠暂停机制。PAUSEcommand 符号定义为由单个反斜杠组成的字符串。在字符串中使用反斜杠 ( \ ) 时,必须在其前面加上另一个反斜杠 ( \\ )。PAUSE 注意:您可以使用两个反斜杠 ( \\ ) 来代替符号。但是,建议您始终使用符号,而不是显式使用两个反斜杠。此外,如果从菜单项调用命令函数,则反斜杠将暂停对菜单项的读取,这会导致对 AutoLISP 表达式进行部分计算。PAUSEPAUSE
例如,以下代码开始 CIRCLE 命令,将中心点设置为 (5,5),然后暂停以允许用户拖动圆的半径。当用户指定所需的点(或所需半径中的类型)时,函数将恢复,并绘制一条从 (5,5) 到 (7,5) 的线,如下所示: (command "._circle" "5,5" pause "._line" "5,5" "7,5" "") 如果在命令需要输入文本字符串或属性值时遇到暂停,则仅当 AutoCAD TEXTEVAL 系统变量为非零时,AutoCAD 才会暂停输入。否则,AutoCAD 不会暂停用户输入,而是使用符号的值(单个反斜杠)。PAUSE 当命令函数暂停用户输入时,该函数被视为活动状态,因此用户无法输入另一个要计算的 AutoLISP 表达式。 以下示例代码使用符号允许用户指定块的插入点。在测试此代码之前,图NEW_LAY和块MY_BLOCK必须存在于图形中。PAUSE (setq blk "MY_BLOCK") (setq old_lay (getvar "clayer")) (command "._-layer" "set" "NEW_LAY" "") (command "._-insert" blk PAUSE "" "" PAUSE) (command "._-layer" "set" old_lay "") 前面的代码片段将当前图层设置为 NEW_LAY,暂停块MY_BLOCK的插入点(插入时 X 和 Y 比例因子为 1),然后再次暂停旋转角度。然后,当前图层将重置为上一层。 如果该函数指定了 AutoCAD SELECT 命令,并且 AutoCAD PICKFIRST 系统变量集处于活动状态,则 SELECT 命令将在执行该命令之前获取选定的对象,并且不会暂停以供用户选择对象。commandPAUSE 注意:在某些情况下,AutoCAD DIM 命令的“半径”和“直径”子命令会发出其他提示。这可能会导致在发行版 11 之前编写的使用这些子命令的 AutoLISP 程序失败。
使用透明命令如果在函数挂起时发出透明命令,则该函数将保持挂起状态。因此,用户可以在命令暂停时进行“缩放”和“PAN”。暂停将一直有效,直到 AutoCAD 获得有效输入,并且透明命令结束。commandcommand 下面显示了当命令功能允许用户为圆提供半径时透明地使用 ZOOM 命令的结果: 命令:(命令“._circle”“5,5”暂停“._line”“5,5”“7,5”) 圈 指定圆的中心点或 [3P/2P/Ttr(棕褐色半径)]:5,5 指定圆的半径或 [直径]:'zoom
>>指定窗口的一角,输入比例因子(nX 或 nXP)或 [All/Center/Dynamic/Extents/Previous/Scale/Window/Object]<实时>:
>>按 ESC 或 ENTER 退出,或右键单击以显示快捷菜单。
恢复 CIRCLE 命令。
指定圆的半径或[直径]: 命令:line 指定第一点:5,5 指定下一个点或[撤消]:7,5 指定下一个点或[撤消]: 命令:nil 接受菜单输入当函数使用时,菜单输入不会暂停。如果当功能暂停输入时菜单项处于活动状态,则菜单可以满足该输入请求。如果还希望暂停菜单项,则必须在菜单项中提供反斜杠。当提供有效输入时,功能和菜单项都将恢复。PAUSEcommandcommandcommand 相关概念 |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 14:32
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.