天天看點

AutoCAD .Net 程式自動加載 AutoLoader

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="[email protected]">
    </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。

繼續閱讀