Besuche die neue Inventor FAQ!

Hier findest du die neue Inventor FAQ

Programmieren in Visual Basic – Eine Einführung – Teil 8

vb_prog.gifDas ist der achte Teil des VB-Kurses. Was bisher geschah (als Neueinsteiger bitte erstmal diese Teile durchlesen!):

Programmieren in Visual Basic – Eine Einführung – Teil 1
Programmieren in Visual Basic – Eine Einführung – Teil 2
Programmieren in Visual Basic – Eine Einführung – Teil 3
Programmieren in Visual Basic – Eine Einführung – Teil 4
Programmieren in Visual Basic – Eine Einführung – Teil 5
Programmieren in Visual Basic – Eine Einführung – Teil 6
Programmieren in Visual Basic – Eine Einführung – Teil 7

Inventor aus Visual Basic “ansteuern” 

Die Inventor FAQ ist keine Visual Basic Seite, sondern eine Inventor Seite. Deswegen wird es Zeit, dass der Inventor ins Spiel kommt. Wir wollen in diesem Teil unseres Kurses ein Windowsprogramm basteln und aus diesem Programm den Inventor “ansteuern”. Ich dachte bis vor kurzem, das wäre sicherlich sehr schwer, aber ich kann euch beruhigen, es war wesentlich einfacher als ich dachte :). Wie ihr euch vielleicht noch aus Teil 6 erinnern könnte, war da was mit Objekten und ihren Eigenschaften. Unser Programm soll ein in Inventor geöffnetes Bauteil schließen. Dafür brauchen wir bestimmte Voraussetzungen:

  • Das Programm muss bestimmte Inventorfunktionen beherrschen
  • Es muss sich den Inventor suchen
  • Es muss das aktive Dokument schließen

VB den “Inventordialekt” beibringen 

Egal welches Programm wir ansteuern wollen, Visual Basic muss mit diesem Programm kommunizieren und dazu muss es dessen Sprache sprechen. Wir würde ein Wörterbuch nehmen, in Visual Basic nimmt man dazu “Verweise”. Aber der Reihe nach. Lege, wie im Teil 7 beschrieben, eine neue Windowsform an und erzeuge darin einen Button den du dann benennst wie es dir beliebt. Das könnte dann so ausschauen:

vba8_1.gif

Nun geben wir dem VB das “Inventorwörterbuch” oder, in der VB-Terminologie, “Verweis”. Mache dazu rechts in der VB-IDE einen Doppelklick auf “My Project” und klicke dann im Register links auf “Verweise”. Nun unten auf “Hinzufügen” und dann, in der nächsten Dialogbox in das Register “COM” wechseln und dort die “Autodesk Inventor Object Library” auswählen.

vb8_2.gif

Jetzt kennt VB die Inventorbefehle. Easy oder?! Nun müssen wir dem Visual Basic aber noch ein Inventor- und ein Dokument-Objekt definieren. Das machen wir bei Public Class weil diese Objekte dann für alle Steuerelemente gelten. Würde wir das bei Privat Sub des Buttons machen, könnten wir die Objektdefinitionen nicht in einer weiteren Private Sub benutzen. Falls sich das alles “wirr” anhört hier 2 Screenshot dann wird es sicherlich klarer (Ich habe dazu einen zweiten Button ins das Form eingefügt, den Button1):

Objekte in Public Class deklariert (gut):

vb8_3.gif

Objekte in Private Sub deklariert (böse):

vb8_4.gif

Auch klar oder? OK, dann geht’s weiter. Wir müssen also die Objekte in Public Class definieren und zwar ein Inventor Anwendungsobjekt, weil wir mit dem “Reden” wollen und ein Dokumentobjekt, genauer ein Inventor Bauteildokument. Das machen wir mit diesen 2 Zeilen

Dim oInventorApp As Inventor.Application
Dim oDoc As Inventor.PartDocument

Wir definieren 2 Variablen vom Typ “Objekt” (ihr erinnert euch an die Sachen mit den Präfixen?). Die können heißen wie sie wollen, aber oInventorApp für “Objekt Inventor Applikation” sagt einfach mehr aus als “x”.

Wenn das erledigt ist, dann weisen wir dem “Bauteil schließen” Button die im angedachte Funktion zu. Dazu müssen wir den Objekten einen Inhalt zuordnen. So wie eine Variable vom Typ Integer den Wert 5 enthalten kann, kann eine Variable vom Typ Inventor.Application den ganzen Inventor enthalten. Jetzt kommt die Zeile, die der “Variable” oInventorApp den Inventor “als Wert” zuweist. Und diese Zeile sieht so aus:

oInventorApp = System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application")

Wenn du dich jetzt fragst, wie ich da drauf gekommen bin: Ich hab mir das in der Programmierhilfe bzw. ein Sample abgeschaut den da wäre ich selbst im Leben nicht draufgekommen ;). Im Prinzip lese ich das so: Das Systemobjekt soll mal schauen ob eine “Inventor Anwendung” läuft und diese dann dem Objekt oInventorApp zuweisen. Das heißt aber auch: Wenn kein Inventor gestartet ist, während wir auf den Button klicken, dann bekommen wir eine Fehlermeldung. Nun wollen wir ja nicht am ganzen Inventor “rummachen” sondern ein darin geöffnetes Bauteil schließen. Deswegen weisen wir dem oDoc jetzt das aktuelle Dokument in Inventor zu.

oDoc = oInventorApp.ActiveDocument

Also im Prinzip: Nimm den ganzen Inventor und davon das aktuelle Dokument. Was, wenn das aktuelle Dokument kein Part ist (Wir haben oDoc als Inventor.PartDocument definiert!). Auch dann bekommen wir eine Fehlermeldung. Also nachher beim probieren Inventor auf und ein neues Bauteil erstellen, sonst gibt ne Fehlermeldung!

Und jetzt machen wir was mit dem oDoc. Wir sagen dem Objekt, das es die Methode “Close” auf sich ausführen soll.

oDoc.Close()

Fertig ist das erste “Windows unterhält sich mit Inventor” Programm das fertig so aussieht:

Public Class Form1
  Dim oInventorApp As Inventor.Application
  Dim oDoc As Inventor.PartDocument
  Private Sub ivschliessen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ivschliessen.Click
  oInventorApp = System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application")
  oDoc = oInventorApp.ActiveDocument
  oDoc.Close()
  End Sub
End Class

Und, war doch wirklich nicht so schwer oder?
Das war’s für heute zum Thema VB. Bis demnächst!

Bisherige Artikel zum Thema “Programmieren in Visual Basic”:

Programmieren in Visual Basic – Eine Einführung – Teil 1
Programmieren in Visual Basic – Eine Einführung – Teil 2
Programmieren in Visual Basic – Eine Einführung – Teil 3
Programmieren in Visual Basic – Eine Einführung – Teil 4
Programmieren in Visual Basic – Eine Einführung – Teil 5
Programmieren in Visual Basic – Eine Einführung – Teil 6
Programmieren in Visual Basic – Eine Einführung – Teil 7

6 Kommentare zu Programmieren in Visual Basic – Eine Einführung – Teil 8

Einen Kommentar schreiben

 

 

 

Diese HTML-Tags können verwendet werden

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>