Viele Konstrukteure verkennen bis heute den Sachverhalt, dass sie oftmals repetitiven Aufgaben gegenüber stehen die Zeit fressen und sich leicht automatisieren lassen. Sie verschwenden damit nicht nur ihre wertvolle Zeit, Arbeitskraft und Motivation, auch verkennen Sie dass im 21 Jahrhundert die Schnittstelle zwischen klassischer mechanischer Konstruktion und Programmierung mehr und mehr verschmelzen.

Diesem Post wird eine Serie zum Thema iLogics und der Inventor API folgen, die praxisnahe Beispiele aus dem Konstruktionsalltag und deren Automatisierung beinhaltet.

iLogic - Was ist das eigentlich?

Autodesk bezeichnet iLogic folgendermaßen:

iLogic ermöglicht eine regelgesteuerte Konstruktion und bietet eine einfache Möglichkeit zum Erfassen und Wiederverwenden Ihrer Arbeit. Verwenden Sie iLogic zur Standardisierung und Automatisierung von Konstruktionsprozessen und zur Konfiguration Ihrer virtuellen Produkte.

In iLogic werden Regeln als Objekte direkt in Bauteil-, Baugruppen- und Zeichnungsdokumente integriert. Mithilfe der Regeln werden die Parameter und Attributwerte für Ihren Entwurf festgelegt. Über diese Werte definieren Sie das Verhalten der Attribute, Elemente und Komponenten eines Modells. Die Informationen werden wie geometrische Konstruktionselemente direkt in den Dokumenten gespeichert.

iLogics können direkt aus Inventor heraus in einem bereitgestellten Editor erstellt und editiert werden. Als Programmiersprache kann VBA und VB.net verwendet werden. Letztere ist in jedem Fall zu bevorzugen, da deutlich bessere Werkzeuge, bspw. zum Errorhandling zu Verfügung stehen. VBA-Erfahrung haben Konstrukteure in der Regel bereits, dadurch dass sie im Studium auf dem Strafplaneten Excel den Dienstgrad Tabellenknecht erworben haben. Wer also bereits Excel-Macros schreiben oder ein Grundverständnis der Thematik besitzt, wird mit iLogic zügig zurechtkommen.

Neben den Standardfunktionalitäten von Basic bringt iLogic zusätzlich nützliche Shortcuts mit, die das Arbeiten mit Bauteilen und Zeichnungen vereinfachen.

iLogic Administration

iLogics werden im Idealfall im Zusammenspiel mit Autodesk Vault administriert und zentral durch einen Admin verwaltet und den Nutzern zur Verfügung gestellt. So können sie mittels Berechtigungskonzepten gegen manipulation gesichert werden. Gleichzeitig ist so garantiert, dass der User stets den aktuellen Code in Verwendung hat.

Dieses Konzept bringt für kreative Anwender auch Nachteile mit sich. Die ausgerollten iLogics und das übergeordnete Verzeichnis sind schreibgeschützt. Ein schnelles Testen und Ausprobieren ist somit nicht möglich. Unmöglich ist es aber nicht. Man kann einfach einen weiteren Pfad auf dem Nutzerrechner erstellen, die iLogics dort ablegen und dieses Verzeichnis zusätzlich zum Standardpfad hinzuladen. Zur Einbindung eines iLogic-Verzeichnisses muss im Inventor der Menüpunkt Tools > Options > iLogic Configuration geklickt werden:

Anschließend öffnet sich folgendes Fenster, in dem ein weiteres Verzeichnis hinzugefügt werden kann:

Warnung: Inventor benötigt für iLogics stets eindeutige Dateinamen. Wenn im lokalen iLogic-Verzeichnis und im Standardverzeichnis eine iLogic mit gleichem Dateinamen liegt, führt dies zu Problemen.

iLogic Browser

Inventor bietet - neben dem Modellbrowser - die Möglichkeit den iLogic Browser einzublenden. Dazu muss auf das + Symbol neben dem Modellbrowser geklickt und der Eintrag iLogic Browser selektiert werden. Anschließend werden alle iLogics gelistet, auch die aus dem zuvor vom Nutzer manuell hinzugefügten Verzeichnis:

Die Inventor API

API steht für Application Programming Interface. Über diese API können alle Tasks, die sonst ein Konstrukteur mit Hilfe der grafischen Oberfläche ausführt, programmatisch erledigt werden. Autodesk stellt eine Übersicht aller Objekte zur Verfügung, die über die API genutzt werden können. Es gilt in erster Linie nicht zu erschrecken, da diese Übersicht selbst auf A0 ausgedruckt immer noch sehr unübersichtlich ist. Die API von Inventor unterliegt konstantem Wandel und wird mit jedem Major Release erweitert.

Auf der Autodesk Webseite sind diverse Erläuterungen und Leitfäden zur API einsehbar.

Objekte

Betrachtet man das verlinkte PDF des Inventor Object Model genauer, erkennt man dass es unzählige Objekte gibt, auf die zugegriffen werden kann, bspw:

  • Dokumententyp: Bauteil, Baugruppe oder Zeichnung.
  • Units of Measurement: Welche Einheiten werden im Bauteil verwendet, z.B. Inch oder Zentimeter.
  • Materialien: Welches Material ist dem Bauteil zugewiesen.
  • Application: Welche Version von Inventor in Verwendung ist.

Enums

Neben Objekten können sogenannte Enums genutzt werden. Enums bieten hilfreiche Methoden, um mit Objekten und ihren Werten zu interagieren. In diesem Teil der Serie sollen sie erst einmal keine Rolle spielen. Im später folgenden Post iLogic: Units of Measurement werden sie anhand eines Beispiels mit Maßeinheiten (Units of Measure) erläutert.

Live Debugging der Inventor API

Inventor liefert einen VBA-Editor mit. Dieser kann mit der Tastenkombination ALT + F11 aufgerufen werden. In diesem Editor werden, neben dem aktuell geöffneten Dokument, das Standard Anwendungsprojekt gelistet. Dieses kann (und wird auch sicherlich) sogenannte VBA-Module enthalten. Jedes Modul hat einen Anwendungszweck und Code der diesen repräsentiert. Möchte man nun einen Blick in die Inventor API werfen gibt es 2 Möglichkeiten:

  1. Der nette Admin: Der Admin ist euch wohlgesonnen und integriert den anschließend folgenden VBA-Code direkt in einem Standard-Modul. Somit steht es global zur Verfügung und kann unabhängig des geöffneten Dokuments ausgeführt werden.
  2. Der uneinsichtige Admin Der Admin sieht nicht ein, dem User eine Spielwiese zum Optimieren seiner Arbeitsabläufe zu bieten und legt kein globales Modul an. In diesem Fall kann man ein Alibi-Dokument erstellen und den folgenden Code dort im DocumentProject unter ThisDocument einfügen. Dazu einen Doppelklick auf ThisDocument ausführen.

Der benötigte Code:

Sub HappyDebug()
    Dim oApp As Application
    Set oApp = ThisApplication

    Dim oDoc As Document
    Set oDoc = ThisApplication.ActiveDocument
End Sub

Dieser Code macht folgendes:

  1. Er deklaritert ein Objekt oApp vom Typ Application und weist diesem Objekt die Inventor Anwendung zu.
  2. Er deklariert ein Objekt oDoc vom Typ Document und das aktiv offene Dokument im Inventor zu.

Der Ausdruck Dim steht für Dimension, also den Platz den dieses Objekt im Speicher belegen wird. Dieser Code ermöglicht es also zum einen die Anwendung Inventor, wie auch das aktiv geöffnete Dokument zu bespielen.

Nun müssen drei finale Schritte erfolgen:

  1. Es muss jeweils ein Rechtsklick die Einträge oApp und oDoc ausgeführt und im Kontextmenü der Eintrag Add Watch gewählt werden. Damit wird es, während des Ausführens des VBA-Codes, ermöglicht live in diese zwei Objekt zu schauen.
  2. Es muss ein Stopppunkt in Zeile 4 gesetzt werden. Dazu muss in der linken grauen Leiste vor dem Eintrag End Sub mit der linken Maustaste geklickt werden. Mit dem Setzen des Stopppunkts wird erreicht, dass der Code nur bis zu dieser Zeile ausgeführt wird und somit vor der Terminierung in das Objekt oDoc geschaut werden kann.
  3. Nun muss lediglich noch der Code durch einen klick auf das Play Icon (run) ausgeführt werden.

Hat alles funktioniert erscheint nun unterhalb des Codefensters ein Menüfenster mit der Bezeichnung Watches, in dem die Objekte oApp und oDoc auftauchen und ausgeklappt werden können. Dieses Fenster ist ggf. nicht sofort sichtbar. Oftmals ist lediglich der Codebereich sichtbar und man muss den Objektbrowser erst weiter nach unten ziehen, da er soweit unten am Bildschirmrand platziert ist, dass man seinen Inhalt nicht sehen kann.

Diese Methode eignet sich hervorragend um das aktive Dokument oder die Anwendung zu inspizieren. Es werden anschaulich Endpunkte, Werte und Datentyp aufgelistet, die anschließend in einer iLogic verwendet werden können. Somit ist die Basis für eine gut geschriebene iLogic gesetzt.