CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2025 开发者帮助

关于 Break Loops (Visual LISP IDE)

2024-5-18 19:17| 发布者: admin| 查看: 23| 评论: 0|原作者: admin|来自: AutoCAD

关于 Break Loops (Visual LISP IDE)

表达式是 AutoLISP 的基本结构单元,Visual LISP 的工作原理是反复读取、计算和打印表达式。这在 LISP 编程中通常称为读取-评估-打印循环。

注意:Visual LISP IDE 仅在 Windows 上可用。

Visual LISP 在顶级读取-评估-打印循环中执行 AutoLISP 程序,除非该程序已被中断或挂起以允许调试。当您在控制台窗口提示符下计算表达式并显示正常提示时,您也在顶级工作。

当 AutoLISP 程序中断或挂起时,控制台窗口将传递控制权,并进入中断循环。中断循环是一个单独的读取-评估-打印循环,嵌套在原始读取-评估-打印循环的下面。可以中断中断循环,并在其下启动另一个读取-评估-打印循环。中断循环相对于顶层的嵌套级别称为中断级别

当您进入中断循环时,Visual LISP 会在控制台窗口提示符前加上一个数字,指示您所在的级别。

例如,当您第一次在程序中输入中断循环时,提示会用数字 1 指示这一点:

_1_$
注意:在中断循环中,无法切换到 AutoCAD 窗口。

在中断循环中,您可以对程序在中断发生位置执行的所有变量进行读写访问。例如,如果中断发生在包含多个局部变量声明的函数中,则可以访问这些变量和任何全局变量。可以通过在控制台窗口提示符下输入带有函数的表达式来更改变量的值。setq

Visual LISP 支持两种类型的中断循环

  • 连续中断循环允许您手动中断然后恢复程序的执行。
  • 当错误导致中断时,将激活不可连续的中断循环。程序无法恢复,但一旦退出中断循环,程序的执行就会终止。

连续断路循环

Continuable 是最常见的中断循环,当您想要单步执行和调试程序时使用。您可以通过以下任一方法在程序执行的第一个中断处进入连续中断循环:

  • 打开“停止一次”模式并访问具有调试信息的表达式(即从源代码加载的表达式,而不是从已编译的.exe文件加载的表达式)
  • 到达标记为“输入时调试”的函数
  • 达到您在程序中设置的断点
  • 按下暂停按钮进入中断循环
  • 从上一个中断循环状态继续执行“单步执行”、“单步执行”或“单步执行”命令

在断点处停止时,可以通过以下方式控制后续程序执行:

  • 重置为顶层。终止所有当前处于活动状态的中断循环,并返回到控制台顶级读取-评估-打印循环。
  • 退出当前级别。终止当前断路环路,并返回到上一级的断路环路。这可能是另一个中断循环或顶级读取-评估-打印循环。
  • 继续。从断点恢复正常程序执行。
  • 跨过去。查找与程序当前暂停的左括号匹配的右括号,并计算两者之间的表达式。
  • 步入。跳转到嵌套表达式(如果有)。如果没有嵌套表达式,它将按顺序跳转到下一个表达式。
  • 走出去。搜索程序当前暂停的函数的末尾,并计算到该点为止的所有表达式。

退出 all break 循环到顶层后,控制台窗口提示符将返回其原始形式(不带数字前缀)。

不可连续的断路回路

当错误导致程序中断并启用“出错时中断”选项时,将激活不可连续的中断循环。在不可连续的中断循环中,可以访问错误环境中的所有变量,但不能继续执行程序或执行任何 Step 命令。

如果在不可连续的中断循环中激活AutoCAD,则无法在命令窗口中输入任何内容;事实上,该窗口将不包含命令提示符。但是,如果您不小心尝试在 AutoCAD 命令窗口中键入任何内容,则键盘输入将排队,直到控制权返回到 AutoCAD 窗口(即,在退出中断循环并激活 AutoCAD 窗口之后)。此时,AutoCAD将评估您键入的任何内容,就像您刚刚在命令提示符下输入它一样。

注意:您可以通过检查“调试”菜单或工具栏上的“单步执行”和“继续”是否处于活动状态来区分可连续中断循环和非连续中断循环。

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-6-27 16:18

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部