Transcription of Programmieren mit vba Teil 3 - inventor.cad.de
1 Autodesk Inventor Programmierung mit vba in Autodesk Inventor - Teil 1 Vorbereitung Darstellung der Benutzeroberfl che f r das Makro Arbeiten mit vba Steuerelementen Kopieren und Einf gen der Bezeichnungsfelder Rahmen hinzuf gen Kontrollk stchen hinzuf gen Vervollst ndigung der Elemente Programmieren im Detail Der Test Zusammenfassung Microsoft's Visual Basic for Applications (VBA) erm glicht in Autodesk Inventor 5 eine Das nachfolgende Tutorial zeigt Ihnen die erweiterte Funktionalit t von VBA Makros in Autodesk Inventor. Zus tzlich lernen Sie, wie Sie mit einem kleinen Makro den Massenschwerpunkt einer Baugruppe ermitteln k nnen.
2 Hinweis: Sie k nnen diese Tutorials jederzeit ohne Programmier-Vorkenntnisse beginnen. Allerdings sollten Sie sich vorher den API berblick in der Programmierhilfe durchlesen. Die Programmierhilfe steht Ihnen allerdings nur bei einer benutzerdefinierten oder vollst ndigen Installation von Autodesk Inventor 5 zur Verf gung. Grundkenntnisse ber VBA helfen Ihnen nat rlich die verschiedenen Funktionen einfacher zu verstehen, sind aber keine Grundvoraussetzung. Ein gutes Verst ndnis von Autodesk Inventor Funktionalit t ist die beste Voraussetzung eigene Anpassungen vorzunehmen. Vorbereitung Folgende Bedingungen soll das zu erzeugende Makro erf llen: Ermittlung des Massenschwerpunktes der Baugruppe.
3 Erzeugung eines Objektes, mit dem die Autodesk Inventor Software den Abstand zwischen den Hauptpunkten der Baugruppe (Rotationsachse, Verbindungspunkten, usw.) und dem Massenschwerpunkt ermitteln kann. Keine Beeinflussung der Massenschwerpunktsberechnung. Kontinuierliche Darstellung der Massenschwerpunktskoordinaten der Baugruppe. Die Autodesk Inventor API (application programming interface) erm glicht Ihnen sogenannte Custom Objects zu erzeugen, die die obigen Anforderungen erf llen. Dies w rde allerdings den Rahmen dieses Tutorials sprengen. Aus diesem Grund verwenden wir das vordefinierte Marker Bauteil (Bild 1) um den Massenschwerpunkt der Baugruppe zu ermitteln.
4 Dem Bauteil wird ein Material mit Dichte Null zugewiesen, um es von den Massen und Massenschwerpunktsberechnungen auszuschlie en. Da es sich um ein Bauteil handelt, ist es m glich die vorhandene Original Geometrie als Hilfsobjekt zur Entfernungsmessung f r den Massenschwerpunkt der Baugruppe zu verwenden. Zus tzlich dienen die 3 orthogonalen Zylinder durch die Kugel zur Ausrichtung mit den X,Y und Z Achsen der Baugruppe. Um das Teil in Baugruppen mit unterschiedlichen Skalierungen zu verwenden zu k nnen, f gen wir noch die Option der schnellen Teilskalierung an. Bild 1: Makros und die VBA Umgebung Die Anforderungen an unser Makro bedeuten, da wir ein Benutzeroberfl che (User Interface = UI) erzeugen m ssen.
5 Um dies einfach zu halten, wird das Marker Bauteil seine gemessene Position zum Massenschwerpunkt der Baugruppe nur durch den Befehlsaufruf des Anwenders updaten. Die Darstellung der Original Geometrie und die Skalierung des Massenschwerpunktes sind ebenfalls nderungen die eine Benutzerinteraktion ben tigen. Abschlie end wird die Darstellung der aktuellen Massenschwerpunktskoordinaten ebenfalls durch einen Dialog gestartet. Nat rlich ist das UI unseres Makros kein Muss, es ist auch jederzeit m glich komplexe und hilfreiche Makros ohne Anwendereingaben zu erstellen. Autodesk Inventor Makros k nnen an 3 Stellen gespeichert werden: Eingebettet in ein Dokument In einem voreingestellten VBA Projekt definiert In einem externen VBA Projekt definiert Der API berblick in der Programmierhilfe zeigt diese Optionen detailliert auf.
6 In unserem Fall greifen wir auf ein externes VBA Projekt zur ck, um die Wiederverwendbarkeit des Makros zu erh hen. Zur ck zum Seitenanfang Erzeugung eines neuen VBA Projekts: 1. Starten Sie im Autodesk Inventor Men Werkzeuge>Makro>Visual Basic Editor (Es sollte keine Zeichnung ge ffnet sein). Die VBA IDE (integrierte Entwicklungsumgebung) wird gestartet (Bild 2). Bild 2: VBA integrierte Entwicklungsumgebung 2. Starten Sie im Visual Basic Editor Men Extras > Optionen. 3. Aktivieren Sie im Editor Reiter die Option Variablendeklaration erforderlich und verlassen Sie den Dialog mit OK . Die Details dazu werden sp ter erl utert.
7 4. Starten Sie Datei > Neues Projekt. Ein neues Projekt (Benutzerprojekt1) wird im Projekt Explorer gestartet. Dieses Projekt endet auf .ivb und kann jederzeit wieder geladen werden. Beim Verlassen der VBA Oberfl che wird die Datei noch nicht gespeichert, dies erfolgt erst beim Verlassen von Autodesk Inventor. Aktuell sind in dem Projekt noch keine Makros definiert. Wir m ssen unser Makro hinzuf gen und dann das UI dazu aufbauen. Ein Makro kann Aktionen aus einer Reihe von einfachen Bedingungen bishin zu komplexen Abl ufen durchf hren. Ein Makro wird durch das Hinzuf gen einer Unterroutine (subroutine) in einem Modul innerhalb eines Projektes erzeugt.
8 Was bedeuten Modul und Unterroutine im Detail? Ein VBA Modul ist ein Container f r Programmiercode (Details folgen sp ter). Eine Unterroutine ist ein Abschnitt mit Programmanweisungen zur Durchf hrung einer Aufgabe. Unterroutine k nnen innerhalb eines Moduls erzeugt werden, und falls die Unterroutine keine Argumente hat, wird sie als Makro erkannt. Falls Sie jetzt verwirrt sind, keine Bange, in den folgenden Schritten wird es klarer. 5. Expandieren Sie Benutzerprojekt im Projekt-Explorer (klicken Sie auf das + Symbol vor Benutzerprojekt . 6. Expandieren Sie Module unterhalb des Benutzerprojekt, um Modul1 sichtbar darzustellen 7.)
9 Doppelklicken Sie auf Modul1. Das Editier Fenster zeigt jetzt das Modul1 (siehe Bild 3). Bild 3: Modul Bearbeitung Sehen wir uns das neu dargestellte Element im Detail an. Die Liste der Prozeduren erm glicht einen schnellen Zugriff auf eine speziell benannte Prozedur innerhalb eines Moduls (Es k nnen beliebig viele Prozeduren innerhalb eines Moduls definiert werden.) Innerhalb des Code-Fensters werden die Prozedur-abh ngigen Instruktionen eingegeben (eine Unterroutine ist einer der verf gbaren Prozeduren). Die Bedeutung von Option Explicit erkl ren wir sp ter. Hinzuf gen einer Unterroutine zu einem Modul Wir erzeugen jetzt eine Unterroutine im Modul1.
10 Autodesk Inventor erkennt diese als Makro und wir werden diese zum Start unseres Baugruppen Massenschwerpunkt ermittlers nutzen. 1. Starten Sie im Visual Basic Editor Einf gen>Prozedur 2. Geben Sie CogTool als Namen ein. Beachten Sie, da die Voreinstellungen eine Public Unterroutine erzeugen. Verlassen Sie den Dialog mit OK. Der Programmiercode sollte mit der Darstellung in Bild 4 bereinstimmen. Bild 4: CogTool Unterroutine Eine Unterroutine enth lt Programmiercode um eine bestimmte Aufgabe auszuf hren. Diese Unterroutine kann auch aus anderen Unterroutinen heraus aufgerufen werden. Weitere wissenswerte Punkte ber Unterroutinen sind: Um eine Unterroutine als Makro zu verwenden, mu sie public definiert sein.