CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

关于使用 *error* 函数(AutoLISP)

2023-1-6 13:00| 发布者: admin| 查看: 1102| 评论: 0|来自: AutoCAD

摘要: *error* 函数可以确保 AutoCAD 在发生错误后返回到特定状态。

该函数可以确保AutoCAD在发生错误后返回到特定状态。*error*

此用户可定义的函数可以评估错误条件并向用户返回适当的消息。如果AutoCAD在评估过程中遇到错误,它将以以下形式打印一条消息:

错误:文本

在此消息中,文本描述错误。但是,如果定义了函数(即,如果未定义),则执行 AutoLISP 而不是打印消息。该函数接收文本作为其单个参数。如果未定义或已定义,则 AutoLISP 计算将停止并显示调用函数及其调用方的回溯。在调试程序时,最好使此错误处理程序保持有效。*error*nil*error**error**error*nil

最后一个错误的代码保存在系统变量 ERRNO 中,您可以在其中使用函数检索它。getvar

在定义自己的函数之前,请保存当前内容,以便在退出时可以恢复以前的错误处理程序。当存在错误条件时,AutoCAD 将调用当前定义的函数并向其传递一个参数,该参数是描述错误性质的文本字符串。您的函数应设计为在 Esc(取消)或函数调用后静默退出。实现此目的的标准方法是在错误处理例程中包含以下语句。*error**error**error**error*exit

(if
  (or
    (= msg "Function cancelled")
    (= msg "quit / exit abort")
  )
 (princ)
 (princ (strcat "\nError: " msg))
)

此代码评估传递给它的错误消息,并确保用户被告知错误的性质。如果用户在命令或函数运行时取消命令或函数,则此代码不会返回任何内容。同样,如果将错误条件编程到代码中并调用该函数,则不会返回任何内容。假定您已经通过显示消息解释了错误的性质。如果您不希望在函数末尾打印返回值,请记住包含终止调用。exitprinc*error*

关于错误处理例程的主要警告是它们是正常的 AutoLISP 函数,可以由用户取消。保持它们尽可能短和快速。这将增加整个例程在调用时执行的可能性。

还可以通过显示警告框来警告用户错误情况,警告框是一个小对话框,其中包含程序提供的消息和单个“确定”按钮。若要显示警告框,请调用函数。alert

以下警报调用显示一个警报框,其中包含消息“找到文件注释”:

(alert "File not found")

路过

雷人

握手

鲜花

鸡蛋

最新评论

python对CAD二次开发

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

GMT+8, 2024-5-6 22:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部