Individuelles AutoCAD-Plugin zur Optimierung von Fertigungszeichnungen

Ein maßgeschneidertes ObjectARX-Plugin für AutoCAD, das ausgewählte Zeichnungselemente automatisch in optimierte, fertigungsgerechte Konturen für Laserschneiden, Gesenkbiegen und weitere Fertigungsanlagen umwandelt.

Individuelles AutoCAD-Plugin zur Optimierung von Fertigungszeichnungen hero background

Über unseren Kunden

Unser Kunde arbeitete mit AutoCAD-Zeichnungen, die vor der Übergabe an die Fertigungsanlagen manuell aufbereitet werden mussten. Dabei musste ein Bediener einzelne Zeichnungselemente zu Konturen zusammenführen, Kurven approximieren sowie Radien und Winkel auf die technischen Vorgaben der jeweiligen Maschine prüfen.

Gesucht war daher eine native AutoCAD-Erweiterung, die diesen Aufbereitungsprozess automatisiert und in einem einzigen AutoCAD-Befehl bündelt. Die erforderlichen Parameter sollten dabei flexibel über eine INI-Datei konfiguriert werden können.

  • Region: Europa
  • Branche: Fertigung / CAD & industrielle Automatisierung
  • Projektdauer: ca. 1 Monat
Über unseren Kunden

Herausforderung

Die zentrale Herausforderung bestand darin, eine native AutoCAD-Erweiterung zu entwickeln, die eine komplexe Aufbereitung der Zeichnungsgeometrie automatisiert und dabei präzise, konfigurierbar und mit mehreren AutoCAD-Versionen kompatibel bleibt.

  • Kombination nativer und verwalteter Technologien. Das Plugin sollte einen Verarbeitungskern auf Basis von ObjectARX und C++20 mit einer Benutzeroberfläche in C#/.NET verbinden. Dazu gehörten Steuerelemente im Ribbon, ein Kontextmenü und eine frei positionierbare Palette.
  • Unterstützung mehrerer AutoCAD-Versionen. Die Lösung musste mit AutoCAD 2021 bis 2025 kompatibel sein. Da jede Version ein eigenes ObjectARX SDK erfordert, sollte gleichzeitig eine gemeinsame Codebasis erhalten bleiben.
  • Rekonstruktion von Konturen aus einzelnen Zeichnungselementen. Das Plugin musste voneinander unabhängige Linien, Bögen, Polylinien und Splines ohne explizite Informationen über ihre Nachbarschaft zu durchgängigen Konturen zusammenführen.
  • Einhaltung fertigungstechnischer Geometrievorgaben. Die aufbereitete Geometrie musste maschinenspezifische Grenzwerte erfüllen, darunter Vorgaben zur Sehnenabweichung, zum minimalen Bogenradius und zu zulässigen Spitzenwinkeln.
Herausforderung

Unser Ansatz

Wir gliederten die Entwicklung in mehrere voneinander unabhängige Infrastruktur- und Algorithmusebenen, die jeweils separat getestet und weiterentwickelt werden konnten. Die native ObjectARX-Komponente übernahm die AutoCAD-Befehle und den direkten Zugriff auf die Zeichnungen. Eine separate C++-Bibliothek enthielt die Logik für Geometrieverarbeitung und Konfiguration, während eine C++/CLI-Brücke die Kommunikation zwischen nativem und verwaltetem Code ermöglichte. Die Benutzeroberfläche wurde in C#/.NET umgesetzt.

Durch diese Architektur konnten wir die zentrale Geschäftslogik von AutoCAD-spezifischen Abhängigkeiten trennen und mit Unit-Tests prüfen, ohne AutoCAD starten zu müssen. Gleichzeitig blieb die UI-Logik vollständig im verwalteten Code. Für unterstützende Funktionen wie das Einlesen von INI-Dateien, die Verarbeitung von Pfadangaben, den Vergleich von Koordinaten und die Fehlerbehandlung setzten wir auf schlanke Eigenentwicklungen. So blieb das Plugin vorhersehbar, kompakt und langfristig gut wartbar.

Unser Ansatz

Lösung

SCAND entwickelte ein natives ObjectARX-Plugin für AutoCAD, das als mehrschichtige Lösung einen leistungsfähigen C++-Kern für die Geometrieverarbeitung mit einer verwalteten Benutzeroberfläche auf Basis von C#/.NET kombiniert. Das Plugin wird direkt in AutoCAD geladen, ergänzt die Anwendung um eine eigene Ribbon-Registerkarte, ein Kontextmenü und eine frei positionierbare WPF-Palette und registriert einen eigenen Befehl zur Verarbeitung ausgewählter Zeichnungselemente.

Dabei werden die Elemente nach Layer und Länge gefiltert, zu Konturen zusammengeführt und geometrisch vereinfacht. Kurven werden durch Bögen angenähert, bevor das optimierte Ergebnis auf einem separaten Layer PROCESSED ausgegeben wird.

Lösung

Zentrale Funktionen

  • Hybride C++/C#-Architektur: Das Plugin kombiniert einen nativen ObjectARX-/C++20-Kern mit einer Benutzeroberfläche auf Basis von C#/.NET. Die Kommunikation zwischen beiden Komponenten erfolgt über eine C++/CLI-Brücke.
  • Verarbeitung von AutoCAD-Zeichnungselementen: Die Lösung arbeitet direkt mit Linien, Bögen, Polylinien und Splines in AutoCAD und filtert Objekte anhand definierter Regeln.
  • Rekonstruktion von Konturen: Das Plugin fügt einzelne Zeichnungselemente zu durchgängigen Konturen zusammen, indem es deren Start- und Endpunkte analysiert.
  • Vereinfachung der Geometrie: Der Douglas-Peucker-Algorithmus reduziert die Komplexität der Konturen, wobei die Abweichungen innerhalb der zulässigen Sehnenabweichung bleiben.
  • Approximation durch Bögen: Die aufbereiteten Konturen werden unter Berücksichtigung des minimal zulässigen Radius und der Anforderungen an den Schließwinkel der Segmente in Bögen umgewandelt.
  • Konfiguration über INI-Dateien: Fertigungsparameter lassen sich anpassen, ohne Änderungen am Plugin-Code vornehmen zu müssen.
  • In AutoCAD integrierte Benutzeroberfläche: Anwender greifen über eine Ribbon-Registerkarte, ein Kontextmenü und eine frei positionierbare WPF-Palette auf die Funktionen des Plugins zu.
  • Testbare C++-Logik: Die Logik für Geometrieverarbeitung und Konfiguration ist in einer separaten Bibliothek gekapselt und durch Unit-Tests abgedeckt.
Zentrale Funktionen

Screenshots

Screenshot-1
Screenshot-2
Screenshot-3

Technologie-Stack

  • Programmiersprachen & Plattform: C++20, C# (.NET), ObjectARX SDK 2021–2025, Visual Studio 2022
  • AutoCAD-API: AcDbDatabase, AcDbLine / Arc / Polyline / Spline, acedRegCmds, AcApDocManagerReactor, acedGetCurrentSelectionSet
  • C++/.NET-Interoperabilität: C++/CLI-Assembly als Brücke zwischen C++ und .NET, dynamisches Laden über LoadLibrary und GetProcAddress
  • Benutzeroberfläche (.NET): Autodesk.Windows.Ribbon, PaletteSet, ContextMenuExtension, WPF über ElementHost
  • Geometrieverarbeitung: Konturrekonstruktion über eine Hash-Tabelle auf Basis von Punktcodes, Douglas-Peucker-Algorithmus, Bogenapproximation anhand von drei Punkten und der Methode der kleinsten Quadrate
  • Algorithmen: Zweistufiger Kettenaufbau für offene und geschlossene Konturen, Erkennung von Spitzenwinkeln und Glättung mit Bögen unter Einhaltung eines Mindestradius
  • C++-Standardbibliothek: std::filesystem, std::format, std::ranges, unordered_map/set, reference_wrapper, optional, unique_ptr
  • Konfiguration: Eigener INI-Parser, typsichere vorlagenbasierte Lese- und Schreibmethoden, Round-Trip-Tests
  • Tests: Visual Studio CppUnitTestFramework, Round-Trip-Tests und Negativtests für Parsing-Szenarien
  • Build & Versionsunterstützung: MSBuild, .props-Dateien für verschiedene AutoCAD-Versionen
Technologie-Stack

Zugehörige Fallbeispiele