运行例程通过appload加载时的一个函数(autoLISP)

Running a function when the routine is loaded through appload (autoLISP)

我想做的事情非常简单,我有一个例程,我想要这样,当有人将它加载到 autocad 中时,屏幕上会出现一个弹出窗口,其中会稍微解释一下它的作用。我知道如何弹出窗口,但我不知道如何制作它 运行 特别是在加载例程时,有什么建议吗?

这实际上很容易实现:简而言之,您只需在 AutoLISP 文件中的任何 defun 表达式之外包含一个 alert 表达式,这样 alert 表达式就是在加载时评估 AutoLISP 文件的内容时立即评估。

例如:

(defun c:test ( )
    (princ "\nThis is the main function.")
    (princ)
)

(alert "Type \"test\" to run the main function.") ;; This will be displayed on load
(princ)

加载上述 AutoLISP 文件后,解释器将读取 AutoLISP 文件的内容,并立即计算其中包含的所有 AutoLISP 表达式。

因此,defun 表达式将首先被求值并定义一个函数 c:test,然后作为 c: 的结果可以在 AutoCAD 命令行执行该函数前缀。

然后将计算 alert 表达式,并根据需要向用户显示一个消息框。

最后,关闭的(princ)表达式将被评估,并将return一个空符号传递给命令行,从而实现'clean load'.如果省略最后的 (princ) 表达式,则 alert 表达式将 return 命令行的值 nil