CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2024 开发者帮助

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

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

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

该函数可以确保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 note found:

(alert "File not found")

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部