Sie sind hier > Magazin> -





.NET und AutoCAD
Das .NET-Framework (seit Anfang 2002, aktuell Version 3.5) ist eine umfangreiche Sammlung von (Klassen-) Bibliotheken für alle .NET-Programmiersprachen. Was Programmiersprache und Betriebssystem-Plattform betreffen, ist es nicht an Windows gebunden.
von Jürgen Becker


Die heute gängigsten Programmiersprachen sind Visual Basic.Net und C# (sprich C Sharp). Weitere sind in Vorbereitung (etwa F#, J# usw.).
Der wichtigste Teil des .NET-Frameworks sind die Klassenbibliotheken, die aus tausenden Klassen bestehen. All diese in komplexen Hierarchien angeordneten Klassen lassen sich in allen .NET-Programmiersprachen (auf ein und dieselbe Art) einsetzen.
Bestandteil des .NET-Frameworks ist die Common Language Runtime (CLR), die sich alle .NET-Programmiersprachen teilen. Somit sind durch einfaches Installieren des CLRModuls sämtliche .NET-Anwendungen (egal, ob es sich um VB.NET-, C#-Anwen dungen usw. handelt) lauffähig. .NET-Framework hat seit seiner Veröffentlichung die Programmiertechniken nachhaltig verändert: Es ist ohne objekt orientiertes Denken bei der Programmierung nicht möglich, eine Anwendung zu erstellen. Ein „Quick-and-Dirty“-Programmieren gehört somit der Vergangenheit an.


Programmiersprachen in AutoCAD
AutoCAD ist seit seiner ersten Version individuell programmierbar. Als allererste Programmiersprache stand AutoLISP (heute Visual Lisp) zur Verfügung. Danach folgten C, C++ und mit späteren Versionen Visual- Basic for Application (VBA). Seit der Auto- CAD-Version 2004 und Inventor 11 hat Autodesk die Möglichkeit geschaffen, .NETAnwendungen zu integrieren.
Welche Programmiersprache der Einzelne nutzt, ist eine individuelle Vorliebe. Da C oder C++ nun wirklich nicht jedermanns Sache sind, wird häufig auf Visual-LISP oder VBA zurückgegriffen. Diese beiden Programmiersprachen entsprechen allerdings nicht unbedingt der objektorientierten Denkweise.
Hier möchte ich die „neue“ Möglichkeit – Nutzung des .NET-Frameworks – vorstellen. Wer schon häufig mit VBA programmiert hat, wird leicht auf VB.NET umsteigen können, denn die Syntax ist sehr ähnlich. Ist dieser Schritt gemacht, kann man auch schnell auf C# wechseln, denn auch hier ist die Syntax ähnlich. Man sollte keine Scheu vor dem kleinen Buchstaben C haben.


Werkzeuge
Bild 1: Die Visual-Studio-Express-Entwicklungsumgebung
Natürlich benötigt man, wie bei jeder anderen Programmiersprache auch, Werkzeuge, die das Erstellen der Programme ermöglicht.
Ich möchte hier zwei gängige Entwicklungsumgebungen vorstellen, die ich in meiner Arbeit selber nutze: Visual Studio Express Edition und Sharpdevelop. Diese Entwicklungsumgebungen sind frei verfügbar.
Die Visual Studio Express Edition von Microsoft ist sehr gut geeignet, .NET-Applikationen zu erstellen (http:// www. m i c r o s o f t . com/ express). Die Microsoft Express Edition steht für die Sprachen Visual-Basic.NET und C# zum freien Download zur Verfügung und muss in der entsprechenden Version installiert werden. Ein Wechseln ist nur durch Installation der jeweils anderen Sprache möglich. Laut Microsoft lassen sich diese Entwicklungsumgebungen auch für kommerzielle Projekte einsetzen.
Mit der Visual Studio Express Edition steht nicht nur ein einfacher Editor zur Verfügung, sondern auch einer, der über die IntelliSense-Funktion Namen von Variablen, Funktionen und Methoden ersetzt. Beim Editieren des Sourcecode wird dieser kompiliert, so dass Kompilierfehler sofort erkannt werden. Im Projektbrowser (siehe Bild 2) werden alle dem Projekt zugeordneten Dateien (Formulare, Klassen, Verweise und Ressourcen) sowie zusätzliche Projekte angezeigt. Die Eigenschaften und Ereignisse der Formularobjekte können im Eigenschaftsbrowser (siehe Bild 3) bearbeitet werden. Ein Ausgabeteil informiert über Kompilierfehler und Warnungen.
Ein ebenso wichtiger Bestandteil einer Entwicklungsumgebung ist der Debugger, der während der Laufzeit einer Anwendung über Variablenwerte usw. informiert. Dieser ist in Visual Studio Express Edition gut implementiert. Verweise, die zur Implementierung von AutoCAD wichtig sind, werden sehr gut verarbeitet.


Bild 2: Die Sharpdevelop-Entwicklungsumgebung.
Eine weitere Entwicklungsumgebung ist das Opensource-Projekt Sharpdevelop. Auch bei dieser Entwicklungsumgebung handelt es sich um eine freie Umgebung, die man per Download unter http://www.icsharpcode. net/OpenSource/SD/ beziehen kann. Zurzeit ist sie in der Version 2.0 mit .NETFramework 2.0-Unterstützung verfügbar; die Version 3.0 steht als Beta-Version bereit.
Sharpdevelop stellt ebenfalls einen sehr guten Editor (siehe Bild 1) bereit, der allerdings in der IntelliSense-Funktion Schwächen hat. Auch die Verwaltung von Verweisen weist Schwächen auf. Ein zusätzliches Feature ist der Reportgenerator, den die Visual Studio Express Edition nicht bereitstellt. Will man nicht auf die Microsoft-Entwicklungsumgebung verzichten, kann dieser Reportgenerator als eigenständige Anwendung auch separat aus dem Internet frei bezogen werden. Der Debugger informiert nicht so ausführlich wie die Visual Studio Express Edition über den Zustand des Programms.
Es bleibt zu hoffen, dass die Schwachpunkte in der Sharpdevelop-Entwicklungsumgebung in der Version 3.0 behoben sein werden.
Zuletzt sollten die weiteren Versionen des Visual Studio nicht unerwähnt bleiben. Diese sind allerdings kostenpflichtig. Ich werde hier die Beispiele mit Visual C# 2008 Express Edition erläutern.
Zuerst gilt es, die Verweise auf die AutoCAD-Objekte zu erstellen und das für jedes Beispiel. Die Beispiele gibt’s kostenlos per Download unter
http://blog.cad-becker.de/programmierung/ net-programmierung-fur-autocadbeispiele- fur-autocad-magazin/


Verweise auf die AutoCAD-Objekte
Bild 3: Objektverweise mit VSE einfügen.
Nachdem wir ein neues Projekt (clsACAD) erstellt haben, werden Verweise eingefügt, um mit den AutoCAD-Objekten arbeiten zu können. Die DLLs befinden sich im Installationspfad vom AutoCAD.


Bild 4: Klassenbibliothek im Objektbrowser.


Download von Visual Studio Express Edition: www.microsoft.com/express

Download von Sharpdevelop: www.icsharpcode.net/OpenSource/SD/

Download von SnippetCompiler (hier nicht vorgestellt): www.sliver.com/dotnet/SnippetCompiler/

AutoCAD Developer Center. Mit vielen Beispielen und Tutorials: http://usa.autodesk.com/

Download des Software Development Kit: ObjectARX SDK

Download der Beispiele dieser Serie: http://blog.cad-becker.de/

Through the Interface von Kean Walmsley: http://through-the-interface.typepad.com/


Bild 5: Sourcecode der Applikation.
1. AutoCAD.NET Managed Wrapper (acmgd.dll)
2. ObjectDBX.NET Managed Wrapper (acdbmgd.dll)

Der Objektbrowser stellt einen Überblick über die integrierten Klassen dieser Bibliotheken zur Verfügung.


Bild 6: Netload.


Beispiel 1: HalloWelt
Nachdem die Verweise erstellt sind, lassen sie sich mit using importieren: „using Autodesk. AutoCAD.ApplicationServices; using Autodesk.AutoCAD. Innerhalb der Klasse clsHalloWelt definieren wir eine Public-Methode, die mit Command- Method ([AutoCADBefehlsname]) als ein AutoCAD-Befehl registriert wird.
In dieser Methode erstellen wir eine Instanz des Editors des aktiven Dokuments, um Mitteilungen über die WriteMessage-Methode in der Befehlszeile anzuzeigen.ApplicationServices; using Autodesk.Auto- CAD.ApplicationServices“.
Nachdem das Projekt kompiliert wurde, steht eine Klassenbibliothek (DLL) zur Verfügung, die in AutoCAD mit dem Befehl NETLOAD geladen werden muss. Damit ist diese DLL schreibgeschützt. Da kein Entladebefehl existiert, muss AutoCAD geschlossen werden, um die DLL zu entladen. Dieses ist umso lästiger, da beim Testen häufig Laufzeitfehler entstehen, die es natürlich zu beheben gilt. Nach dem Laden steht der Befehl „ HALLO WELT“ zur Verfügung. Das Ergebnis ist eine Mitteilung in der Befehlszeile und eine kleine Message-Box.


Die .Net-Unterstützung im AutoCAD ist eine konsequente Weiterentwicklung der Programmierbarkeit von AutoCAD. Damit steht die weite Welt des .NET-Framework in AutoCAD im Gegensatz zu Visual-LISP und VBA zur Verfügung. Für den Programmierer im AutoCAD bedeutet diese Weiterentwicklung sicher einen Schritt zu mehr Professionalität.
In der nächsten Ausgabe geht’s rund um die Ein- und Ausgabemöglichkeiten sowie das Erstellen von Objekten und wie man eigene Anwendungen automatisch laden kann. Zugriff auf den Download zu diesem Beitrag ist ab 29. August möglich


Rainer Trummer,
Chefredakteur
sicher wird Ihnen bei unserer aktuellen Ausgabe das neue Titelbild aufgefallen sein. Anstelle des Schriftzugs „AUTOCAD Magazin“ sehen Sie nun das neue Logo „AUTOCAD...

[+] weiter lesen...




AAK_2010_Titel_120.jpg


Klicken Sie hier, um die Verzeichnisse herunterzuladen.

Applikationsverzeichnis
Dienstleisterverzeichnis
Schulungsanbieter
VAR-Verzeichnis
Veranstaltungskalender
Sonderheft 2009: AutoCAD für GIS, Bau und Architektur
AUTOCAD Magazin: Special CAD-Schulungen 2010
VECTORPIPE: Dreidimensionales Planen
Buchbesprechung: Handbuch für AutoCAD 2010



Autocad Magazin
Jahresabo / Studentenabo / Einzelheft / Probeabo
[+] Jetzt abonnieren!


 Anmelden
 Abmelden




 
Mediadaten | Job & Karriere | Impressum | AGB | Kontakt | Partnerlinks

© 2009 WIN-Verlag GmbH & Co. KG   Alle Rechte vorbehalten

powered by SeitWerk