【问题标题】:Running a function when the routine is loaded through appload (autoLISP)通过 appload (autoLISP) 加载例程时运行函数
【发布时间】:2020-08-02 19:40:11
【问题描述】:

我正在尝试做的事情非常简单,我有一个例程,并且我想要这样,当有人将它加载到 AutoCAD 中时,屏幕上会出现一个弹出窗口,并解释它的作用。我知道如何弹出窗口,但我不知道如何让它在加载例程时专门运行,有什么建议吗?

【问题讨论】:

    标签: autocad autocad-plugin autolisp


    【解决方案1】:

    这实际上很容易实现:简而言之,您只需在 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

    【讨论】:

      猜你喜欢
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2017-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多