Die Inventor FAQ wird unterstützt von:

Inventor FAQ Logo

15.01.2017

Inventor automatisieren: Programmieren für Konstrukteure (Teil 2)

Vorheriger Beitrag: Inventor automatisieren: Programmieren für Konstrukteure (Teil 1)

Alle Beiträge der Serie

Hier der zweite Teil unseres kleinen Programmierkurses. Heute schauen wir uns das ThisApplicatin-Objekt an. Davor müssen wir natürlich den Inventor starten, den VBA-Editor öffnen (ALT+F11) und dann über File > Projekt laden unser in Teil 1 angelegtes Projekt (die IVB-Datei) laden.

image

So sollte es dann im Browser links aussehen:

image

Im Module1 ist unser erstes Programm aus dem Teil 1 enthalten, das die aktuelle Versionsnummer aus dem Inventorobjekt ausgelesen hat.

Wir machen jetzt ein zweites Programm, dass in die Titelleiste des Inventors einen lustigen Text schreibt. Wir brauchen wieder unser Standardgerüst, wie im Beispiel 1 und tippen dazu an das Ende des ersten Programms eine Leerzeile und dann Sub Titelleiste und dann ENTER. Der VBA-Editor vervollständigt die Struktur durch die 2 Klammern und das End Sub. Es sollte jetzt so aussehen.

image

Das Module1 enthält also jetzt 2 Programme. Einmal das Programm Hallo und einmal unser neues Programm Titelleiste.

Wir wollen etwas am Inventor verändern. Der gesamte Inventor ist in VBA das Objekt ThisApplication, das wir ja bereits in Teil 1 verwendet hatten. Wir tippen also This und dann STRG+Leertaste und wählen aus der Liste die erscheint ThisApplication und tippen dann einen Punkt und wählen dann aus der Liste Caption und drücken die Leertaste. Was wir bisher geschrieben haben bedeutet: aus dem gesamten Objekt ThisApplication wollen wir etwas mit der Eigenschaft Caption machen. Wenn wir beim Beispiel Auto bleiben wäre vergleichbar MeinAuto.Typenbezeichnung als Angabe.

Nun tippen wir dahinter = "Hallo CAD-Programmierer"

So schaut es jetzt aus:

image

Starten wir das Programm durch drücken von F5 scheint erstmal nichts zu passieren. Wenn wir aber zum Inventorfenster wechseln, und in die Titelleiste schauen, steht dort unser Text. Das ermöglicht ganz neue Späße in der Firma an den Rechnern der Kollegen :)

image

Keine Angst, nach einem Neustart des Inventors ist wieder alles beim alten.

Jetzt wollen wir uns das Objekt ThisApplication mal etwas genauer anschauen, denn woher soll einer wissen, was alles in dem Objekt steckt? Dazu nutzen wir die Halt-Funktion und die Watch-Funktion. Die Halt-Funktion legt einen Stop in der Programmausführung ein und die Watch-Funktion zeigt den Inhalt einer Variablen an. Wir wollen, das das Programm vor er Ausführung von End Sub, und somit dem Ende unseres Programmes eine Pause einlegt. Dazu den Eingabecorsor in diese Zeile stellen und F9 drücken. Ein roter Punkt und die rote Unterlegung kennzeichnet nun die Zeile als Halteposition.

image

Nun richtet wir eine Überwachung des Objektes ThisApplication ein. Dazu den Eingabecursor auf das Wort ThisApplication setzten, die rechte Maustaste drücken und aus dem Kontextmenü Add Watch wählen.

image

Die folgende Dialogbox einfach mit OK schließen. Nun brauchen wir noch das Fenster, das uns die überwachten Werte anzeigt, das Watch-Fenster. Das zeigen wir über das Menü View an.

image

Wenn wir nun das Programm starten, wird die Ausführung bei End Sub angehalten und der Inhalt des Objektes ThisApplication im Watch-Fenster angezeigt. Wir können das Watchfenster etwas größer ziehen um mehr zu sehen.

image

Nun klicken wir auf das + vor ThisApplication und der Inhalt des Objektes wird angezeigt. Dort finden wir u.a. unsere veränderte Caption.

image

Durch drücken von F5 kann die Programmausführung fortgesetzt werden, d.h. die Anweisung End sub wird ausgeführt und das Programm ist somit beendet und das Objekt ThisApplication leer.

Jetzt schauen wir uns das Ganze mal an, wenn wir eine Inventordatei geöffnet haben. Wir öffnen dazu eine Baugruppe. Ich nutze die Arbor Press aus den Sample Files, es kann aber auch jede andere Baugruppe sein, solange sie nicht schreibgeschützt ist.

Sobald die Baugruppe geladen ist, starten wir unser Programm ein weiteres mal und schauen uns das ThisApplication-Objekt nochmals an, d.h. wir klappen ThisApplication mit dem Plus auf und dann den Baumzweig ActiveDocument, d.h. das im Moment im Inventor aktive Dokument. In ActiveDocument sind wiederrum Eigenschaften enthalten, nämlich alle der eben geöffneten Baugruppe, z.B. der DocumentType der eben kAssemblyDocumentObject ist.  

image

Dann gibt es dort den Eintrag ReferencedDocuments der alle in der Baugruppen enthaltenen Komponenten anzeigt. In meiner Baugruppe sind es 15 Stück (Count) und jede Komponente hat einen Item-Eintrag.

image

Jetzt wollen wir uns die Anzahl der Referenzierten Dokumente anzeigen. Dazu merken wir uns den "Weg" dorthin.

ThisApplication > ActiveDocument > ReferencedDocuments > Count

Oder auf Deutsch:

Im Inventor > aktuelle Datei > enthaltene Dateien > Anzahl

Wir brauchen eine Dialogbox (Befehls Msgbox) und dort geben wir die Eigenschaft Count an. So sieht unser Programm dann aus. (Daran denken, das mittels STRG+Leertaste und drücken der Punkt-Taste weitere Vorschläge kommen!).

image

Wird das Programm gestartet, während eine IAM geöffnet ist, wird der Wert der Eigenschaft Count angezeigt,

image

Den Dialog schließen und das VBA-Projekt im VBA-Editor speichern nicht vergessen!

Hausaufgabe bis zum nächsten mal: Schau dir den Inhalt des Objektes ThisApplication einmal genau (das kann ruhig eine halbe Stunde dauern!) an. Welche Eintrage kommen dir bekannt vor? Klappe auch die Untereintrage auf und schau dir an, was alles in ThisApplication und in ActiveDocument drin steckt. Dieses Prinzip zu verstehen ist für den weiteren Verlauf von elementarer Wichtigkeit!

Weiter zu Teil 3

6 Kommentare:

  1. Sehr schön Jürgen! Weitere Tutorials bitte :) Sehr schön auch mit Hausaufgaben!

    AntwortenLöschen
  2. Super weiter so Jürgen
    Warum kann die Programmiersprache nicht einfach auf Deutsch sein :-)
    Bis wann muss wir unsere Hausaufgaben den gemacht haben?
    MFG

    AntwortenLöschen
    Antworten
    1. Die Hausaufgaben kontrolliere ich am nächsten Montag :)

      Löschen
  3. Super, da kommt man gut mit, bitte weiter so :)
    Gruß
    Micha

    AntwortenLöschen
  4. Herzlichen Dank für das tolle Tutorial, wenn etwas neues lernen doch immer so einfach sein könnte.
    Hoffe es folgen noch viele weitere solche Tutorials, ich freue mich drauf.
    Beste Grüsse
    Raphael

    AntwortenLöschen
  5. Danke für den zweiten Teil.
    Hoffe Du machst weiter mit dieser Anleitung.

    schönes we

    AntwortenLöschen

War der Beitrag hilfreich oder hast du eine Ergänzung dazu?
Ist noch eine Frage offen?
Ich freue mich auf deine Rückmeldung!

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.

Related Posts Plugin for WordPress, Blogger...
Inventor FAQ Newsletter. Emailadresse: