运行例程通过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
。
我想做的事情非常简单,我有一个例程,我想要这样,当有人将它加载到 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
。