Wat is een AutoCAD add-in?
Een AutoCAD add-in is een .NET DLL die AutoCAD laadt bij het opstarten of op aanvraag. Daarmee kun je eigen commando's toevoegen, de interface aanpassen of taken automatiseren die anders handmatig zouden gaan.
In deze tutorial gebruiken we C# en Visual Studio om een eenvoudige add-in te bouwen die een eigen commando toevoegt aan AutoCAD.
Wat heb je nodig?
- Visual Studio 2022 (Community is gratis)
- AutoCAD 2025 of later (inclusief de SDK, te downloaden via de Autodesk Developer Network)
- Basiskennis C# (variabelen, classes, methods)
Stap 1: Nieuw Class Library project aanmaken
Open Visual Studio en maak een nieuw project aan:
- Kies Class Library (.NET Framework) — kies .NET Framework 4.8 voor AutoCAD 2024 en ouder, of .NET 8 voor AutoCAD 2025+.
- Geef het project een naam, bijvoorbeeld
MijnAutoCADAddin. - Klik op Maken.
Let op: Kies géén Console App of WinForms. Een add-in is altijd een Class Library (DLL), nooit een uitvoerbaar bestand.
Stap 2: AutoCAD references toevoegen
Je project heeft de AutoCAD API-bibliotheken nodig. Die zitten in de AutoCAD installatiemap, standaard onder:
C:\Program Files\Autodesk\AutoCAD 2025\
Voeg de volgende DLL's toe als referentie (Project ? Add Reference ? Browse):
AcMgd.dll— managed API voor AutoCAD-applicatiesAcCoreMgd.dll— core managed API (commando's, editor)AcDbMgd.dll— database API (objecten, lagen, entiteiten)
Stel voor elke referentie Copy Local = False in. Anders pakt de add-in zijn eigen kopieën mee in plaats van die van AutoCAD.
Stap 3: IExtensionApplication implementeren
Elke AutoCAD add-in heeft een klasse nodig die IExtensionApplication implementeert. AutoCAD roept deze aan bij het laden en sluiten van de add-in.
using Autodesk.AutoCAD.Runtime;
// Verplicht attribuut: vertelt AutoCAD welke klasse de applicatie-entry is
[assembly: ExtensionApplication(typeof(MijnAutoCADAddin.MijnApplicatie))]
namespace MijnAutoCADAddin
{
/// <summary>
/// Entry point van de add-in.
/// AutoCAD roept Initialize() aan bij het laden,
/// en Terminate() bij het afsluiten van AutoCAD.
/// </summary>
public class MijnApplicatie : IExtensionApplication
{
public void Initialize()
{
// Wordt uitgevoerd zodra AutoCAD de DLL laadt.
// Ideaal voor het registreren van event handlers of het
// initialiseren van services.
Autodesk.AutoCAD.ApplicationServices.Application
.DocumentManager.MdiActiveDocument
.Editor.WriteMessage("\nMijn add-in geladen!");
}
public void Terminate()
{
// Wordt uitgevoerd bij het afsluiten van AutoCAD.
// Ruim hier resources op (event handlers verwijderen, etc.).
}
}
}
Stap 4: Een commando registreren
Nu voegen we een eigen commando toe. Gebruik het attribuut [CommandMethod] om een methode als AutoCAD-commando te registreren:
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
namespace MijnAutoCADAddin
{
public class MijnCommando's
{
/// <summary>
/// Commando HELLOVAULT — verschijnt in AutoCAD als je
/// "HELLOVAULT" intypt in de commandoregel.
/// </summary>
[CommandMethod("HELLOKLEVERCAD")]
public void HelloKleverCAD()
{
// Haal de actieve document-editor op
Document doc = Application.DocumentManager.MdiActiveDocument;
Editor editor = doc.Editor;
// Schrijf een bericht in de AutoCAD commandoregel
editor.WriteMessage("\nHallo vanuit KleverCAD! AutoCAD C# add-in werkt.");
}
}
}
Stap 5: De add-in laden in AutoCAD
Compileer het project (Ctrl+Shift+B). Je krijgt een .DLL-bestand in de bin\Debug map.
Laad de add-in handmatig in AutoCAD:
- Open AutoCAD.
- Typ
NETLOADin de commandoregel en druk op Enter. - Blader naar je DLL-bestand en open het.
- Typ nu
HELLOKLEVERCAD— het bericht verschijnt in de commandoregel.
Stap 6: Automatisch laden via een .bundle
Voor een echte installatie gebruik je een bundle: een mapstructuur die AutoCAD automatisch laadt bij het opstarten.
MijnAddin.bundle/
Contents/
Windows/
MijnAutoCADAddin.dll
PackageContents.xml
Minimale PackageContents.xml:
<?xml version="1.0" encoding="utf-8"?>
<ApplicationPackage
Name="MijnAddin"
Description="Mijn eerste AutoCAD add-in"
Author="KleverCAD">
<CompanyDetails Name="KleverCAD" />
<RuntimeRequirements OS="Win64" Platform="AutoCAD" />
<Components>
<ComponentEntry
AppName="MijnAddin"
ModuleName="./Contents/Windows/MijnAutoCADAddin.dll"
LoadOnCommandInvocation="False"
LoadOnAutoCADStartup="True" />
</Components>
</ApplicationPackage>
Kopieer de hele MijnAddin.bundle map naar:
C:\ProgramData\Autodesk\ApplicationPlugins\
De volgende keer dat AutoCAD start, laadt het je add-in automatisch.
Conclusie
Met deze aanpak heb je een volledig werkende AutoCAD C# add-in gebouwd. Vanaf hier kun je uitbreiden: entiteiten aanmaken, lagen aanpassen, dialoogvensters toevoegen, of verbinding maken met een database. De AutoCAD .NET API geeft je toegang tot vrijwel alles wat je in AutoCAD kunt doen.
In een volgende post behandelen we hoe je je add-in kunt debuggen vanuit Visual Studio — inclusief breakpoints tijdens het draaien in AutoCAD.
Comments
No comments yet — be the first!
Leave a comment
Sign in to skip moderation — anonymous comments are reviewed before appearing.