AutoCAD .Net 程序如何实现在 AutoCAD 启动时自动加载呢?
我们通过一个实例来讲解。
现有程序 HelloAcad2014.dll。包含命令HelloAcad
和HelloUI
。
一、组织如下形式的文件夹 HelloAcad.bundle
HelloAcad.bundle
….Application
……..HelloAcad2014.dll
….PackageContents.xml
步骤:
1. 创建文件夹 HelloAcad.bundle
2. 在文件夹 HelloAcad.bundle 下创建 PackageContents.xml
3. 在文件夹 HelloAcad.bundle 下创建文件夹 Application
4. 将程序 DLL 置于文件夹 Application 中
PackageContents.xml 内容在本文最后。
二、放置文件夹 HelloAcad.bundle 于插件自动加载目录
将 HelloAcad.bundle 文件夹放置在
%ProgramFiles%/Autodesk/ApplicationPlugins 或
%APPDATA%/Autodesk/ApplicationPlugins 中
其中:
%ProgramFiles%/Autodesk/ApplicationPlugins 在我本机的路径为
C:\ProgramFiles\Autodesk\ApplicationPlugins
%APPDATA%/Autodesk/ApplicationPlugins 在我本机的路径为
C:\Users\Hisin\AppData\Roaming\Autodesk\ApplicationPlugins
AutoCAD 启动时会自动读取 PackageContents.xml 加载程序。
PackageContents.xml
<?xml version="1.0" encoding="utf-8"?>
<ApplicationPackage
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
HelpFile="./Application/UsersGuide.chm"
OnlineDocumentation="caxdev.com"
Name="HelloAutoCAD"
Description="HelloAutoCAD"
Icon="./Application/app.ico"
Author="HisinWang">
<CompanyDetails
Name="CAXDEV"
Url="www.caxdev.com"
Email="wangyao1052@163.com">
</CompanyDetails>
<Components>
<RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD" SeriesMin="R19.0" SeriesMax="R19.1" />
<ComponentEntry
ModuleName=".\Application\HelloAcad2014.dll"
LoadOnAutoCADStartup="true"
LoadOnCommandInvocation="false"
AppDescription="HelloAutoCAD by Hisin Wang"
AppName="HelloAutoCAD"
AppType=".NET">
<Commands GroupName="TestCmds">
<Command Local="HelloAcad" Global="HelloAcad" />
<Command Local="HelloUI" Global="HelloUI" StartupCommand="True" />
</Commands>
</ComponentEntry>
</Components>
</ApplicationPackage>
<Command Local="HelloUI" Global="HelloUI" StartupCommand="True" />
中的 StartupCommand="True"
表示加载完成后自动运行该命令。
一般将初始化UI,比如挂载菜单的命令设置 StartupCommand 为 True。