AutoCAD has provided so called AutoLoader for a while. It is announced to be environment friendly (no need to mess up the Windows Registry anymore), support multiple versions, support both AutoCAD and its flavors (such as AutoCAD Mechanical and AutoCAD Architecture) at the same time in a single place, support various AutoCAD applications such as .NET, ARX, DBX, and AutoLISP, support multiple Operating Systems (such as Windows 64, Windows 32, and even Apple Mac), and more.
It sounds huge and complex, but in fact, it is nothing but an XML file that is supposed to specify what the application/addin/plugin is, what it does, and what it needs. That is about it in a single sentence.
Though simple, it has many subtle details for us to sort out due to lack of good documentation, not open at all the AutoLoader schema if any, and far from set yet at this time. Thus, mysteries about the AutoLoader are here and there in spite that the XML format itself is not a thing at all to most developers.
From this post on, let us look at those subtle matters about AutoCAD AutoLoader one by one.
In this post, let’s look at a simple working AutoLoader sample first. Please copy and paste the following XML content to a file and name it as PackageContents.xml first.
<?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="spiderinnet1.typepad.com"
Name="TestApp"
Description=""
Icon="./Application/app.ico"
Author="spiderinnet1">
<CompanyDetails Name="nss"
Url="http://spiderinnet1.typepad.com"
Email="[email protected]">
</CompanyDetails>
<Components>
<RuntimeRequirements OS="Win64" Platform="AutoCAD" SeriesMin="R18.0" SeriesMax="R18.2" />
<ComponentEntry
ModuleName=".\Application\TestApp.dll"
LoadOnAutoCADStartup="true"
LoadOnCommandInvocation="false"
AppDescription="This is assembly TestApp."
AppName="TestApp"
AppType=".NET">
<Commands GroupName="CmdGroup1">
<Command Local="Command1" Global="Command1" />
</Commands>
</ComponentEntry>
</Components>
</ApplicationPackage>
Then please create a folder and put the AutoLoader into it:
C:\Program Files\Autodesk\ApplicationPlugins\TestApp.bundle\
Next, copy the TestApp.dll assembly which has defined a command named Command1 in a command group named CmdGroup1 as specified in the AutoLoader to the following sub folder:
C:\Program Files\Autodesk\ApplicationPlugins\TestApp.bundle\Application\
Now we are ready to go. Launch AutoCAD 2012 and run the command:
Command: COMMAND1
Command1 ran.
By the way, the TestApp project and the sample command were all generated by the leading edge AutoCAD .NET Addin Wizard (AcadNetAddinWizard) automatically in a moment. AcadNetAddinWizard provides various project wizards, item wizards, coders including a Ribbon Creator, and widgets to help program AutoCAD .NET addins.
Hey Spider
there is a lack of documentation because the design is not yet finalized. Also, as you mention, there is no schema as yet, the idea being to allow developers to utilize the same XML package for their own App settings.
Finally, you should check out this link http://adndevblog.typepad.com/autocad/2013/01/autodesk-autoloader-white-paper.html
Posted by: Fenton Webb | 01/30/2013 at 08:14 PM
Fenton, thx for the link and the white paper. Surely a good start point.
As mentioned, this series would be about some subtle stuffs about the autoloader that we experienced but may or may not be covered by your article.
Posted by: Spiderinnet1 | 01/30/2013 at 09:34 PM