Inhalt Dokument Beschreibung... 1 Erstes Projekt anlegen... 1 Verweise hinzufügen... 2 Imports setzen... 5 Public Class vorbereiten... 6 Mehrere Tools programmieren... 7 Dokument Beschreibung Nach der Installation von Visual Basic Express wird nun das erste Projekt angelegt und alle Voreinstellungen getroffen um auf Autocad und ProSteel Befehle zuzugreifen. Erstes Projekt anlegen Nach dem Start von Visual Basic Express oben links auf Neues Projekt klicken. 1
Bentley Technical Support Aus den möglichen Vorlagen Klassenbibliothek wählen und dem Projekt einen Namen geben. Verweise hinzufügen Als erstes müssen die für Autocad und ProSteel benötigten Referenzen geladen werden. Dafür im Projektmappen-Explorer als erstes alle Dateien anzeigen lassen. 2
Beim Unterpunkt Verweise über das Kontextmenü folgende Verweise hinzufügen. Basierend auf Ihrer Autocad und ProStructures Version: C:\Program Files\Autodesk\AutoCAD 2012 - Deutsch\AcCui.dll C:\Program Files\Autodesk\AutoCAD 2012 - Deutsch\acdbmgd.dll C:\Program Files\Autodesk\AutoCAD 2012 - Deutsch\acmgd.dll C:\WINDOWS\assembly\GAC_MSIL\Autodesk.AutoCAD.Interop\18.2.0.0 eed84259d7cbf30b\autodesk.autocad.interop.dll (gegebenenfalls C:\ nach der Datei durchsuchen) C:\Program Files\Bentley\ProStructures\V8i_S4\AutoCAD 2012\Prg\ProStructuresNet.dll 3
Bentley Technical Support Danach sollten die Dateien unter Verweise angezeigt werden. Nun die Eigenschaften der einzelnen Verweise öffnen und die Verweise Lokale Kopie auf False stellen. Dadurch wird beim Erstellen des fertigen Programms (kompilieren) keine Kopie der Verweisdatei erstellt. Für ProStructuresNet die Lokale Kopie auf TRUE belassen, das vereinfacht später das Debugging. 4
Imports setzen Die Vorbereitungen sind noch nicht ganz abgeschlossen. Im eigentlichen Programmierfenster Class1.vb* wird im Moment nur Public Class angezeigt. Falls Sie diesen Bereich nicht sehen, können Sie diesen über einen Doppelklick im Projektmappen-Explorer öffnen. Nun ganz am Anfang, noch vor der Public Funktion folgende Import Einträge setzen: Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.DatabaseServices Imports Autodesk.AutoCAD.Interop Imports Autodesk.AutoCAD.Geometry Imports Autodesk.AutoCAD.EditorInput Imports Bentley.ProStructures Imports System Imports System.Collections.Specialized 5
Bentley Technical Support Das wird später die Arbeit erleichtern und den eigentlichen Programmtext verkürzen. Hier ein Bespiel. Folgende Variablendeklaration funktioniert nur, weil Imports Bentley.ProStructures am Anfang verwendet wurde: Dim ApplicationPS As New CadSystem.PsApplication Ohne diesen Import muß die Funktion ausgeschrieben werden: Dim ApplicationPS As New Bentley.ProStructures.CadSystem.PsApplication Public Class vorbereiten Als nächstes muß die Public Class für Autocad Befehlsaufrufe vorbereitet werden. Hier bitte einfach Public Class bis End Class mit folgendem Code ersetzen. Public Class BsgStarter Implements Autodesk.AutoCAD.Runtime.IExtensionApplication Dim ed As Editor Dim acaddoc As Autodesk.AutoCAD.ApplicationServices.Document Sub Initialize() Implements IExtensionApplication.Initialize ed = Application.DocumentManager.MdiActiveDocument.Editor 'ed.writemessage("loading the DotNet Dll\n") End Sub Sub Terminate() Implements IExtensionApplication.Terminate End Sub <CommandMethod("Mein_Programm")> _ Public Sub Mein_Programm() 'Hier beginnt das eigentliche Tool End Sub End Class Die Zeile CommandMethod steht für den späteren Befehlsaufruf in Autocad. Hier also einen eindeutigen Befehl, ohne Leerzeichen vergeben, der nicht schon in Autocad oder ProSteel verwendet wird. Günstig ist es immer dieselben Initialen voranzustellen. So benutzen wir für unsere ProSteelTools immer PST_. 6
Mehrere Tools programmieren Wenn Sie mehrere Tools programmieren möchten haben Sie zwei Möglichkeiten. Zum Ersten können Sie das eben erstellte Projekt als Vorlage ablegen. Und anhand dieser Vorlage später ein neues Projekt erstellen. Verweise und Imports müssen so nicht noch einmal eingerichtet werden. Einfacher ist es aber alle Tools in einem Projekt zu verwalten. Dazu brauchen Sie nur den Bereich CommandMethod kopieren, erneut einfügen und natürlich einen neuen Namen vergeben. Je nach dem an welchem Tool Sie dann arbeiten können Sie die anderen über das Minus Symbol schließen. 7