Transcription of Programmieren mit vba Teil 3 - inventor.cad.de
1 Autodesk Inventor Programmierung mit vba in Autodesk Inventor - Teil 2. Daten herunterladen Autodesk Inventor Objekte Variablen und deren Geltungsbereich Deklaration von Form-Ebenen Variablen Dokumentation der Pr fung und Form Initialisierung Suche nach dem Bauteil Marker Vervollst ndigung des Form Setups Einf gen des Bauteils Marker Update der XYZ Label Testen des Makros Zusammenfassung Im vorherigen Tutorial haben wir die Benutzeroberfl che zum Auffinden des Schwerpunktes f r Autodesk Inventor Baugruppen aufgebaut. Jetzt erweitern wir das Programm, um das spezielle Schwerpunkt Bauteil Marker einzuf gen und positionieren zu k nnen, und die Koordinaten des Schwerpunktes in den aktuellen Ma einheiten darzustellen. Daten herunterladen Laden Sie als erstes die Datei (251 KB) herunter. Entpacken und speichern Sie die Dateien in einem Ordner in Ihrem aktuellen Projektverzeichnis.
2 Es ist wichtig, da die Datei in einem Verzeichnis innerhalb des aktiven Projektes gespeichert wird. Die gezippte Datei enth lt die folgenden Dateien: Hinweis: Sollten Sie Autodesk Inventor installiert haben, so k nnen Sie direkt mit dem weiterarbeiten. Haben Sie noch eine ltere Version von Autodesk Inventor 5 auf Ihrem Rechner, so l schen Sie bitte die Datei und benennen die Datei in um. Das Bauteil wurde speziell f r die Benutzung zur Kennzeichnung des Baugruppenschwerpunktes erzeugt. Das Teil hat die folgenden Eigenschaften: 1. Alle Bauteilfunktionen werden durch eine benutzerdefinierte Skalierungsvariable gesteuert. 2. Das Material des Bauteils hat die Dichte 0. Damit beeinflu t das Bauteil nicht die Schwerpunktsberechnung. 3. Das Bauteil ist symmetrisch um die Ursprungsgeometrie aufgebaut. Die Ursprungsebenen, -achsen und -mittelpunkt k nnen als Schwerpunkts-koordinatensystem in der Baugruppe benutzt werden.
3 Die Datei enth lt das Ergebnis des vorherigen Tutorials. Sie k nnen also entweder mit Ihren eigenen Programmierergebnissen, oder den Daten aus dieser Datei weitermachen (benennen Sie diese zu um). Die Daten aus k nnen Sie ber die Autodesk Inventor VBA IDE laden. 1. Starten Sie im Autodesk Inventor Men Werkzeuge>Makro>Visual Basic Editor. 2. Starten Sie Datei>Projekt laden aus dem VBA Men und browsen Sie zu dem Verzeichnis , welches die Datei enth lt und ffnen Sie diese. berblick und ein Tipp Im vorherigen Tutorial hatten wir uns auf den Aufbau der Benutzeroberfl che f r das Makro konzentriert. Es wurden Controls in einer Form plaziert, und anschlie end die Eigenschaften der Controls nach unseren Bed rfnissen angepa t. Zum Abschlu kam noch der Programmiercode hinzu, der durch den Anwenderklick auf den Abbrechen oder >> Button gestartet Die VBA IDE enth lt eine Anzahl von Tools zur Gr ensteuerung und Ausrichtung der Controls auf einem Form.
4 Per Grundeinstellung rasten die Controls in einem Raster ein. Die Rastergr e kann ber den Reiter Allgemein in den Optionen ver ndert werden. Eine Auswahl von Ausrichtungs- und Gr ensteuerungstools ist in der Symbolleiste UserForm verf gbar (Ansicht>Symbolleisten>UserForm im VBA Men ). Man kann Controls auf gleicher Ebene ausrichten und in der Gr sse ver ndern. Controls innerhalb eines Rahmenobjektes befinden sich gegen ber Controls au erhalb eines Rahmenobjektes auf einer anderen Ebene. Man kann jede beliebige Anzahl von Controls w hlen; das zuletzt gew hlte Control wird als Basis f r die Formatierung Gr e und Ausrichtung benutzt. In der oberen Abbildung von Bild 1sind die beiden Bezeichnungsfelder (Label) Controls selektiert. Das oberste Bezeichnungsfeld dient als Basis f r die Formatierung Gr e und Ausrichtung (wei e Griffpunkte).
5 In der mittleren Abbildung sind die Controls an dem linken Kanten ausgerichtet (Label2 ist zum Label1. ausgerichtet). In der unteren Abbildung sind zwei Controls in H he und Breite angepa t. Zus tzliche Abstands- und Gruppierungs-Controls sind in der Symbolleiste und dem Men Format verf gbar. Bild 1: Tools zur Gr ensteuerung und Ausrichtung Zur ck zum Seitenanfang Autodesk Inventor Objekte Falls Sie noch nicht den berblick ber die API Funktionalit t in der Autodesk Inventor Programmierhilfe gelesen haben, sollten Sie dies vor dem Weiterlesen machen. Sie m ssen nicht alle Details dort verstehen, aber die Hilfe gibt Ihnen ein Grundverst ndnis f r die in diesem Tutorial beschriebene Funktionalit t. Das Makro ben tigt Zugriff auf verschiedene Autodesk Inventor Objekte. Wir werden noch einige spezifische Objekte bei Bedarf im Detail betrachten.
6 Bild 2 zeigt eine Struktur aller Objekte, die f r das Programm ben tigt werden. Sie k nnen hier eine PDF Datei mit der kompletten Autodesk Inventor Objekt Struktur herunterladen (212 KB). Die Informationen sind ebenfalls als Autodesk Inventor Product Resources unter verf gbar Bild 2: Objekt Struktur der Massenschwerpunkt Baugruppenobjekte Der Objektbaum sieht nur auf den ersten Blick kompliziert aus. Die Objektnamen sind im Allgemeinen sehr beschreibend und die Beziehungen sind hnlich denen im Autodesk Inventor Browser. Lassen Sie uns kurz einen berblick ber die Objekte in Bild 2 verschaffen. Die zwei Objekte direkt unterhalb des Applikationsobjekts sind das AssemblyDocument und das TransientGeometry Objekt. TransientGeometry Objekte , wie Punkte und Matrizen, sind Platzhalter f r Geometrie Informationen, die ben tigt werden, um echte Geometrie zu plazieren oder zu bewegen.
7 Im Makro benutzen wir ein Matrix Objekt (beinhaltet Position- und Richtungsinformationen) um Informationen zum Verschieben des Marker Bauteils zum aktuellen Massenschwerpunkt der Baugruppe zu erhalten. Das AssemblyDocument Objekt stellt eine Baugruppendatei dar. Es gibt zwei Elemente erster Ebene dieses Objektes, die f r das Makro interessant sind: das UnitsOfMeasure Objekt und das AssemblyComponentDefinition Objekt. Alle Autodesk Inventor Parameter sind f r jedes Dokument Einheiten abh ngig. Das UnitsOfMeasure Objekt erm glicht es Einheitentypen und Genauigkeit zu finden und einzustellen. Das Programm stellt die Koordinaten des Massenschwerpunktes der Baugruppe in den aktuellen L ngeneinheiten f r das Dokument dar. W hrend das AssemblyDocument Objekt die Baugruppendatei repr sentiert, beinhaltet das Objekt erster Ebene AssemblyComponentDefinition die Geometrie innerhalb der Datei.
8 Mittels dieses Objektes ist es m glich die Masseneigenschaften der Baugruppe und die Informationen ber die Baugruppenteile zu erhalten. Das MassProperties Objekt ist das Schl sselobjekt in unserem Programm. Es beinhaltet die CenterOfMass Eigenschaft mit den X,Y und Z Koordinaten des Massenschwerpunktes der Baugruppe. Dadurch sind keine komplexen Berechnungen notwendig. Unser Ziel ist es einfach diese Informationen zu erhalten und dann das Marker Bauteil dorthin zu bewegen. Eine Baugruppe besteht aus Teilen und Unterbaugruppen, die mit Baugruppenabh ngigkeiten verkn pft sind. Baugruppenkomponenten k nnen ber die API angesprochen werden. Wir nutzen dies um das Marker Bauteil innerhalb verschiedener Autodesk Inventor Sitzungen zu finden. Man kann dann das Marker Bauteil in Position bringen, und neben dem Skalieren auch die Sichtbarkeit seiner Ursprungsgeometrie steuern.
9 Diese Objekte werden sp ter noch im Detail betrachtet. Variablen und deren Geltungsbereich Variablen sind benannte Speicherpl tze, deren Inhalt w hrend des Programmablaufes ver ndert werden kann. Es k nnen entweder einzelne Werte oder Reihen von Zahlen, Textstrings oder sogar Objekte gespeichert werden. Basis f r einen guten Programmierungsstil ist die Festlegung aller Variablen auf jeweils einen speziellen Typ wie Integer, String oder als CenterOfMass Objekt. Wenn Sie eine Variable als einen speziellen Objekttyp deklarieren, dann wird die IntelliSense Funktionalit t in VBA aktiviert. Es werden die mit dem Objekt verkn pften Eigenschaften und Methoden zur Verf gung gestellt, sobald diese im Programm benutzt werden. Fehler beim Definieren von Variablen enden meist in Programmfehlern. VBA bietet die M glichkeit nicht deklarierte Variablen optional zu pr fen.
10 Dazu mu unter Extras >Optionen im Editor Reiter die Option Variablendeklaration erforderlich" aktiviert sein (siehe Bild 3). Bild 3: Variablendeklaration Das Programm besteht aus verschiedenen Prozeduren (Unterroutinen und Funktionen), einige davon haben Variablen, die nur durch Programmiercode in der jeweiligen Prozedur ansprechbar sind. Andere Variablen sind ber verschiedene Prozeduren hinweg verf gbar. Man kann eine Variable au erhalb einer Prozedur definieren. Dadurch ist sie berall oder in bestimmten Bereichen des Programms verf gbar. Falls Sie mit dem Programmierkonzept nicht vertraut sind, sollten Sie sich die VBA Hilfe zu Visual Basic-Konzepte >. G ltigkeitsbereich (von Variablen und Prozeduren) ansehen. Zur ck zum Seitenanfang Deklaration von Form-Ebenen Variablen Gehen wir darauf detaillierter ein. Es werden einige Objekt Variablen deklariert, die von verschiedenen Prozeduren im Programm benutzt werden.