【发布时间】:2020-08-02 19:40:11
【问题描述】:
我正在尝试做的事情非常简单,我有一个例程,并且我想要这样,当有人将它加载到 AutoCAD 中时,屏幕上会出现一个弹出窗口,并解释它的作用。我知道如何弹出窗口,但我不知道如何让它在加载例程时专门运行,有什么建议吗?
【问题讨论】:
标签: autocad autocad-plugin autolisp
我正在尝试做的事情非常简单,我有一个例程,并且我想要这样,当有人将它加载到 AutoCAD 中时,屏幕上会出现一个弹出窗口,并解释它的作用。我知道如何弹出窗口,但我不知道如何让它在加载例程时专门运行,有什么建议吗?
【问题讨论】:
标签: autocad autocad-plugin autolisp
这实际上很容易实现:简而言之,您只需在 AutoLISP 文件中的任何 defun 表达式之外包含一个 alert 表达式,这样当 AutoLISP 的内容时立即计算 alert 表达式文件在加载时进行评估。
例如:
(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,然后可以在 AutoCAD 命令行中执行 c: 前缀。
然后将评估alert 表达式,并根据需要向用户显示一个消息框。
最后,结束的(princ)表达式将被求值并返回一个空符号到命令行,从而实现'干净加载'。如果要省略最后的 (princ) 表达式,alert 表达式将向命令行返回值 nil。
【讨论】: