【问题标题】:What is the order of load AutoCAD plugins?加载 AutoCAD 插件的顺序是什么?
【发布时间】:2018-07-16 06:07:12
【问题描述】:

在 AutoCAD 启动时自动加载应用程序 - 插件的方法很少。我知道那些:

  • 启动套件 - 由 GUI 附加
  • 列表项%appdata%....\support\zwcad2018.lsp(我用的是ZWCAD,可能在Acad,还有一条路。很久以前我在Acad工作的时候是acad.lsp,但那是Windows UAC功能之前的时代)。
  • *.mnl 在加载相应的 *.mnu 时加载(旧方式,但 ZWCAD 可能)Acad 呢?
  • 按需加载:HKEY_CURRENT_USER\Software\ZWSOFT\ZWCAD\2018\en-US\Applications\MyApplicationName
  • zwcaddoc.lsp 如果我的应用程序的路径在选项/文件/支持文件搜索路径中
  • 使用/ld开关的应用程序快捷方式
  • acad.rx

加载应用程序的顺序是什么? 如果这里没有列出其他方法,请告诉我。 可能 ARX 或 .Net 应用程序也可能以另一种方式加载。

【问题讨论】:

    标签: .net autocad autocad-plugin autolisp objectarx


    【解决方案1】:

    以下对支持文件加载顺序的描述(针对 AutoCAD)摘自我在 CADTutor 论坛上围绕 Dangers of the ACADDOC.lsp 发布的帖子。


    acad.rx

    此文件在 AutoCAD 启动时加载各种 ObjectARX 应用程序。

    acad20##.lsp

    此文件在不会自动加载此类文件的版本中加载acad20##doc.lsp 文件。不应修改此文件。

    acad.lsp

    这个文件的加载依赖于ACADLSPASDOC系统变量的设置:

    • ACADLSPASDOC = 0(默认)

      仅将acad.lsp 加载到在 AutoCAD 会话中打开的第一个图形中,并且不会为随后打开的每个图形加载。

    • ACADLSPASDOC = 1

      acad.lsp 加载到每个打开的绘图中。

    此文件保留用于用户自定义,旨在用于特定于应用程序的启动例程,因为在 acad.lsp 文件中定义的所有函数和变量仅在第一个图形中可用。

    如果所有图形都需要函数,而不是更改 ACADLSPASDOC 的值,函数和程序应该从 acad.lsp 文件移动到 acaddoc.lsp 文件中。

    acad20##doc.lsp

    每次打开图形时都会自动加载此文件,并加载 autoload 函数定义和 AutoCAD 所需的其他实用程序函数。不应修改此文件。

    acaddoc.lsp

    如上所述,如果找到此文件,则会自动将其加载到在 AutoCAD 会话中打开的每个图形中。此文件可用于加载 AutoLISP 函数库,以便在每次打开图形时都可用。

    无论ACADLSPASDOC 系统变量的设置如何,acaddoc.lsp 文件始终随每个图形一起加载。

    由于 AutoCAD 将在支持路径之前搜索工作目录并加载找到的第一个 acaddoc.lsp 文件,因此用户可以在每个绘图目录中拥有不同的 acaddoc.lsp 文件,这将为某些类型的绘图加载特定的 AutoLISP 例程或工作。

    acad.dvb

    此文件将自动加载启用 VBA 的版本的 VBA 项目。

    主 CUI/CUIX 及相关文件

    一个 CUIx 文件包含多个基于 XML 的文件和图像文件,每个文件都包含可自定义的用户界面元素的数据。 CUIx 文件替换了以前版本中用于定义菜单的 CUI、MNU、MNS 和 MNC 文件。

    主 CUIx 文件定义了 AutoCAD 中的大部分界面元素。

    企业 CUI/CUIX 及相关文件

    Enterprise CUIx 文件通常由 CAD 管理员控制并由许多用户访问,通常从共享网络位置访问。

    此文件对用户是只读的,以防止文件中的数据被更改。 CAD 管理员将通过修改主 CUIx 文件然后将文件保存到共享网络位置来创建企业 CUIx 文件。

    有关如何创建此文件的信息,请参见此处。

    acetmain.mnl

    此文件加载 Express Tools 菜单组。

    Express Tools LISP 和 MNL 文件

    Express Tools 程序所需的各种 LISP 和 Menu 文件都在这里加载。

    启动套件程序

    现在加载位于 Startup Suite 中的程序文​​件,按照它们在 AppLoad 对话框中出现的顺序。

    众所周知,启动套件在某些版本的 AutoCAD 中是不稳定的,因此我建议使用 acaddoc.lsp 来加载绘图会话期间所需的功能和程序。

    (S::STARTUP)

    此初始化后功能可用于在绘图编辑器中初始化绘图后执行操作。

    由于 acad.lsp 和 acaddoc.lsp 文件是在绘图初始化过程的早期加载的,因此在运行时从这些文件发出的命令可能不成功,因为命令行可能未在绘图中初始化。

    acad.exe 命令行开关 /b

    命令行开关/b 可用于在启动 AutoCAD 应用程序时运行脚本。以这种方式调用的任何脚本操作都将在绘图初始化完成后执行。

    命令行开关可以在 AutoCAD 应用程序快捷图标的属性中,在 Target 编辑框中进行设置。

    有关命令行开关的更详细说明,请参阅here

    【讨论】:

      【解决方案2】:

      在 AutoCAD(和垂直领域)上加载应用程序的最佳方式是 Autoloader。总之,创建一个带有.bundle 后缀的文件夹,将其粘贴到/Application Plugins/ 文件夹下,然后它将按照PackageContents.xml 上的说明加载。它适用于LispVBA.NETC++。这种格式也兼容Autodesk Exchange AppStore (see details)。

      this link 有一个有趣的材料。

      【讨论】:

      • 感谢您的回答。乍一看很有希望。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 2015-06-21
      • 2012-03-25
      • 1970-01-01
      相关资源
      最近更新 更多