CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

关于在 AutoCAD 命令期间暂停用户输入(AutoLISP)

2023-1-6 12:50| 发布者: admin| 查看: 894| 评论: 0|来自: AutoCAD

摘要: 可以在命令功能中使用暂停符号来中断 AutoCAD 命令的执行并让用户提供输入。

可以在命令功能中使用暂停符号来中断 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 表达式。

下面的示例代码使用 thesymbol 允许用户指定块的插入点。在测试此代码之前,图形中必须存在图层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的插入点(插入的XY比例因子为 1),然后再次暂停旋转角度。然后将当前图层重置为前一个图层。

如果该函数指定了 awith AutoCAD SELECT 命令,并且 AutoCAD PICKFIRST 系统变量集处于活动状态,则 SELECT 命令将在执行命令之前获取选定的对象,并且不会暂停供用户选择对象。commandPAUSE

注意:在某些情况下,AutoCAD DIM 命令的“半径”和“直径”子命令会发出其他提示。这可能会导致在版本 11 之前编写的使用这些子命令的 AutoLISP 程序失败。

使用透明命令

如果在函数挂起时发出透明命令,则该函数将保持挂起状态。因此,用户可以在命令暂停时进行缩放和平移。暂停将一直有效,直到 AutoCAD 获得有效输入并且透明命令结束。commandcommand

下面显示了当命令函数允许用户为圆提供半径时透明地使用 ZOOM 命令的结果:

命令:(命令“._circle”“5,5”暂停“._line”“5,5”“7,5”“”)

指定圆的中心点或 [3P/2P/Ttr(棕褐色半径)]:5,5

指定圆的半径或 [直径]:'缩放

>>指定窗口角,输入比例因子(nX 或 nXP),或 [全部/居中/动态/范围/上一个/缩放/窗口/对象] <实时>:

>>按 ESC 或 Enter 退出,或右键单击以显示快捷菜单。

恢复 CIRCLE 命令。

指定圆半径或 [直径]:

命令:行

指定第一个点:5,5

指定下一个点或 [撤消]:7,5

指定下一个点或 [撤消]:

命令:无

接受菜单输入

当函数使用菜单输入时,菜单输入不会挂起。如果当函数暂停输入时菜单项处于活动状态,则菜单可以满足该输入请求。如果希望菜单项也挂起,则必须在菜单项中提供反斜杠。提供有效输入后,函数和菜单项都将恢复。PAUSEcommandcommandcommand


路过

雷人

握手

鲜花

鸡蛋

最新评论

AutoCAD ObjectARX(VC)

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-7 00:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部