Walkthrough: Hallo Welt

Verwenden Sie die Advance Steel-API und C#, um ein Hallo Welt-Programm zu erstellen, wobei Sie den bereitgestellten Anweisungen folgen.

Das Hallo Welt-Walkthrough deckt die folgenden Themen ab:

Erstellen eines neuen Projekts

Der erste Schritt beim Schreiben eines C#-Programms mit Visual Studio umfasst die Auswahl eines Projekttyps und das Erstellen einer neuen Klassenbibliothek.

  1. Wählen Sie im Menü Datei die Optionen Neu Projekt...
  2. Klicken Sie im Rahmen Installierte Vorlagen auf Visual C#\Windows Desktop.
  3. Klicken Sie im rechten Rahmen auf Klassenbibliothek (siehe unten Abbildung 1: Neues Projekt hinzufügen). Bei diesem Walkthrough wird angenommen, dass das Projekt in folgendem Verzeichnis gespeichert ist: C:\Samples.
  4. Geben Sie im Feld Name Hallo Welt als Projektnamen an.
  5. Stellen Sie sicher, dass .NET Framework 4.7 als .NET Framework ausgewählt ist.
  6. Klicken Sie auf OK.
  7. Navigieren Sie nach dem Erstellen des Projekts im Solution Explorer unter Eigenschaften Build zum entsprechenden Projekt
  8. Wählen Sie im Dialogfeld Build die Option Alle Konfigurationen aus der Dropdown-Liste Konfigurationen aus und ändern Sie das Plattformziel in x64 (siehe Abbildung 2: Plattformziel).

Abbildung 1: Neues Projekt hinzufügen

Abbildung 2: Plattformziel

Referenzen hinzufügen

Die Advance Steel-API umfasst mehrere Komponenten. Sie werden mit Advance Steel installiert und befinden sich in Unterverzeichnissen des Advance Steel 2024-Installationsordners. Der Advance Steel 2024-Installationsordner ist im Wert 'BinPath' des Registrierungsschlüssels HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R23.1\ACAD-3026 gespeichert. Sie müssen den folgenden Komponenten Referenzen hinzufügen, um das Projekt zu kompilieren.

Komponente Beschreibung

ASNetRuntime.dll

Erforderlich zum Kompilieren des Add-Ons

ASMgd.dll

Advance Steel-Hauptzugriff

ASCADLinkMgd.dll

CAD-bezogener Objektzugriff (Datenbank, Objekt-ID...)

ASGeometryMgd.dll

Advance Steel-Geometrie – für die Interaktion mit Advance Steel-Objekten erforderlich

ASProfilesMgd.dll

Zugriff auf Advance Steel-Profildatenbanken

ASModelerMgd.dll

Zugriff auf Advance Steel-Modeler

ASObjectsMgd.dll Hauptzugriff auf Advance Steel-Objekte

Führen Sie die folgenden Schritte durch, um den erforderlichen Komponenten Referenzen hinzuzufügen:

  1. Wenn das Solution Explorer-Fenster nicht geöffnet ist, wählen Sie den Solution Explorer über das Menü Ansicht aus.
  2. Klicken Sie im Solution Explorer mit der rechten Maustaste auf Referenzen, um ein Kontextmenü anzuzeigen.
  3. Klicken Sie im Kontextmenü auf Referenz hinzufügen. Das Fenster des Referenzmanagers wird angezeigt.
  4. Klicken Sie im Referenzmanager auf die Schaltfläche Durchsuchen. Ein Fenster wird geöffnet, in dem Sie Dateien auswählen können.
  5. Navigieren Sie zum Advance Steel 2024-Installationsordner.
  6. Klicken Sie zum Auswählen der DLL-Datei auf die Schaltfläche Hinzufügen und schließen Sie das Fenster.
  7. Die ausgewählte DLL-Datei sollte nun im Referenzmanager mit einem Häkchen gekennzeichnet sein.
  8. Wiederholen Sie die Schritte 4 bis 8, bis alle Komponenten in der obigen Tabelle hinzugefügt sind. Beachten Sie, dass beim Auswählen der hinzuzufügenden DLLs mehrere DLL-Dateien gleichzeitig ausgewählt werden können.
  9. Klicken Sie im Referenzmanager auf OK, um das Fenster zu schließen.
  10. Die ausgewählten Komponenten werden jetzt im Solution Explorer unter dem Ordner Referenzen angezeigt.
  11. Wählen Sie die neu hinzugefügten Referenzen aus und ändern Sie ihre Eigenschaft Lokale Kopie in Falsch.

Abbildung 3: Festlegen von Lokale Kopie auf False für Advance Steel-Verweise

Da dieses Beispiel auch ein Windows MessageBox verwendet, müssen Sie der Assembly System.Windows.Forms eine Referenz hinzufügen. Vorgehensweise:
  1. Kehren Sie zum Fenster des Referenzmanagers zurück.
  2. Klicken Sie im linken Fensterbereich auf Assemblies.
  3. Führen Sie in der Liste im rechten Fensterbereich einen Bildlauf durch, bis Sie System.Windows.Forms finden.
  4. Aktivieren Sie das Kontrollkästchen neben System.Windows.Forms.
  5. Klicken Sie auf OK, um den Referenzmanager zu schließen.

Code hinzufügen

Um einem Advance Steel-Add-On Code hinzuzufügen, sind im Wesentlichen drei Schritte erforderlich:

IExtensionApplication implementieren

Mit dem neuen Projekt sollte eine Standardklasse mit der Bezeichnung Class1 erstellt worden sein.

  1. Klicken Sie im Solution Explorer mit der rechten Maustaste auf Class1.cs und wählen Sie im Kontextmenü Umbenennen.
  2. Benennen Sie die Datei Plugin.cs um (und wählen Sie 'Ja' aus, wenn Visual Studio Sie auffordert, in Ihrem Projekt eine Umbenennung aller Verweise auf das Code-Element 'Class1' durchzuführen).
  3. Ersetzen Sie den Text in der Datei Plugin.cs durch den nachfolgenden Beispielcode.

Code-Region: IExtensionApplication implementieren

using Autodesk.AdvanceSteel.Runtime;

namespace HelloWorld
{
    public sealed class Plugin : IExtensionApplication
    {
        void IExtensionApplication.Initialize()
        {
        }
        void IExtensionApplication.Terminate()
        {
        }
    }
}
Tipp: Tipp: Mit der Visual Studio Intellisense-Funktion können Sie das Skelett der Implementierung einer Schnittstelle erstellen und dabei Stubs für alle erforderlichen Methoden hinzufügen. Wenn Sie eine Klasse erstellen, mit der wie im Beispiel oben IExtensionApplication implementiert wird, können Sie mit der rechten Maustaste auf den IExtensionApplication-Text klicken und im Intellisense-Menü die Optionen Schnittstelle implementieren Schnittstelle implementieren wählen, damit Code für die IExtensionApplication-Methoden Initialize() und Terminate() hinzugefügt wird.


Abbildung 4: Intellisense zur Implementierung der Schnittstelle verwenden

Befehlsklasse erstellen

  1. Fügen Sie dem Projekt eine neue Klasse namens TestClass hinzu.
  2. Platzieren Sie den folgenden Code in TestClass.cs:

Code-Region: Befehlsklasse erstellen

using Autodesk.AdvanceSteel.CADAccess;
using Autodesk.AdvanceSteel.DocumentManagement;
using Autodesk.AdvanceSteel.Runtime;
using System.Windows.Forms;

namespace HelloWorld
{
    public class TestClass
    {
        [CommandMethodAttribute("TEST_GROUP", "HelloWorld", "HelloWorld", CommandFlags.Modal)]
        public void SayHelloWorld()
        {
            MessageBox.Show("Hello World!");
        }
    }
}

Ein Advance Steel-Add-On muss eine Methode mit dem CommandMethodAttribute enthalten, wie im Beispielcode oben gezeigt. Die Parameter für das CommandMethodAttribute lauten:

  • groupName: Der Name der Gruppe, der der Befehl hinzugefügt werden soll. Wenn die Gruppe nicht vorhanden ist, wird sie vor Hinzufügen des Befehls erstellt.
  • globalName: Der hinzuzufügende Befehlsname. Dieser Name steht für den globalen oder nicht übersetzten Namen.
  • localizedNameId: Der hinzuzufügende Befehlsname. Dieser Name steht für den lokalen oder übersetzten Namen.
  • flags: Dem Befehl zugewiesene Flags.

Beachten Sie, dass die Optionen für CommandFlags mit denen für die AutoCAD Managed .NET-API identisch sind. Die vollständige Liste der Optionen finden Sie hier.

AssemblyInfo.cs-Datei bearbeiten

Ein Advance Steel-Add-On muss bestimmte Richtlinien für Informationsattribute enthalten. Diese gehören in die AssemblyInfo.cs-Dateien.

  1. Klicken Sie im Solution Explorer auf den Ordner Eigenschaften, um die Datei AssemblyInfo.cs anzuzeigen.
  2. Öffnen Sie die Datei AssemblyInfo.cs. Diese Datei enthält bereits einige Assembly-Attribute wie z. B. Titel und Copyright.
  3. Geben Sie am Anfang der Datei eine using-Anweisung für Autodesk.AdvanceSteel.Runtime ein.
  4. Fügen Sie wie unten gezeigt eine neue Richtlinie für Informationsattribute mit dem Namen ExtensionApplicationAttribute hinzu. Beachten Sie, dass als Parameter der Typ der Klasse akzeptiert wird, durch die IExtensionApplication implementiert wird. Aufgrund dieser Angabe wird die .NET Framework-DLL zu einem Advance Steel-Add-On.

    Code-Region: ExtensionApplicationAttribute hinzufügen

    [assembly: ExtensionApplicationAttribute(typeof(HelloWorld.Plugin))]
    
  5. Fügen Sie wie unten gezeigt eine neue Richtlinie für Informationsattribute mit dem Namen CommandClassAttribute hinzu. Beachten Sie, dass als Parameter der Typ der Klasse akzeptiert wird, durch die ein Befehl implementiert wird. Dies ist erforderlich, damit der Befehl in Advance Steel registriert werden kann.

    Code-Region: CommandClassAttribute hinzufügen

    [assembly: CommandClassAttribute(typeof(HelloWorld.TestClass))]
    

Nach Durchführen dieser Schritte sieht die Datei AssemblyInfo.cs etwa wie folgt aus:

Code-Region: Beispiel-AssemblyInfo.cs

using Autodesk.AdvanceSteel.Runtime;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("HelloWorld")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("HelloWorld")]
[assembly: AssemblyCopyright("Copyright ©  2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ExtensionApplicationAttribute(typeof(HelloWorld.Plugin))]
[assembly: CommandClassAttribute(typeof(HelloWorld.TestClass))]

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("85900596-22ee-4873-bbd6-7f970d32b5af")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

Add-On registrieren

Add-Ons von Drittanbietern werden entsprechend den Informationen aus einer Konfigurations-XML geladen, die im Add-On-Ordner abgelegt werden sollte: Der Add-On-Ordner muss ein direkter Unterordner des Advance Steel-Installationsordners sein. Wenn der Ordner Addons nicht vorhanden ist, muss er erstellt werden. Nachfolgend finden Sie eine XML-Beispieldatei (siehe MyAddons.xml):

<?xml version="1.0" encoding="utf-8"?>
<AddonsData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Addons>
	<Addon>
		<Name>HelloWorld</Name>
		<FullPath>C:\Samples\HelloWorld\HelloWorld\Bin\Debug\HelloWorld.dll</FullPath>
	</Addon>
	<Addon>
		<Name>MyAddon1</Name>
		<FullPath>C:Samples\MyAddon1.dll</FullPath>
	</Addon>
	<Addon>
		<Name>MyAddon2</Name>
		<FullPath>C:Samples\MyAddon1.dll</FullPath>
	</Addon>
</Addons>
</AddonsData>

Dieser Schritt muss pro addin.dll nur einmal ausgeführt werden. Neue Befehle, die der durch das Attribut CommandMethodAttribute bezeichneten Assembly hinzugefügt werden, werden automatisch als separater Befehl erkennt, der beim Laden von Advance Steel ausgeführt werden kann.

Add-On ausführen

Starten Sie Advance Steel, um den Add-On-Befehl auszuführen. Geben Sie dann einfach den Namen des Befehls ein, in diesem Fall Hallo Welt, und drücken Sie die Eingabetaste.

Wenn Sie Ihr Add-On debuggen müssen, können Sie die folgenden Schritte durchführen:

  1. Starten Sie Advance Steel.
  2. Geben Sie in Visual Studio einen Haltepunkt an der Stelle ein, an der Sie den Code in Ihrem Befehl unterbrechen möchten.
  3. Wählen Sie im Menü Debug An Prozess anhängen.
  4. Wählen Sie den Prozess acad.exe aus.
  5. Führen Sie den Befehl in Advance Steel durch, damit Ihr Haltepunkt in Visual Studio ausgelöst wird.