 |
Programmierung mit VBA in
Autodesk Inventor - Teil 1
Microsoft's Visual Basic for Applications (VBA) ermöglicht in
Autodesk Inventor· 5 eine Programmierumgebung.. 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.
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.
| |
Folgende Bedingungen soll das zu erzeugende Makro erfüllen:
- Ermittlung des Massenschwerpunktes der Baugruppe.
- 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. 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:
Marker.ipt. |
|
Die Anforderungen an unser Makro bedeuten, daß wir
ein Benutzeroberfläche (User Interface = UI) erzeugen müssen. 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. 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.
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. 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. 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. 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.
- Der Programmiercode muß vor dem End Sub Anweisung
stehen.
- Die Klammer am Ende der Unterroutinen Beschreibung kann
Argumente beinhalten, die an eine andere Unterroutine
weitergegeben werden (oder von einer anderen Unterroutine kommen).
Um als Makro akzeptiert zu werden, darf die Unterroutine keine
Argumente enthalten.
Ein Beispiel einer Unterroutine ist nachfolgend dargestellt.
Public Sub
AddTwo (Int1 as Integer, Int2 as Integer, Ans as
Integer) Ans = Int1 + Int2 End
Sub
Ein anderer
Programmcode könnte diese Unterroutine mit folgendem Syntax
aufrufen:
Call AddTwo (5,
6, MyAns)
Den Argumenten
Int1 und Int2 sind die Werte 5 and 6 zugeordnet. Das Argument Ans
ist mit der Variable MyAns verknüpft. MyAns wird der Wert von Ans am
Ende der Unterroutine zugewiesen (in diesem Fall 11). Zurück
zum Seitenanfang |
Wir haben alles vorbereitet um das Makro zu definieren, und fügen
jetzt noch einige Instruktionen zur Darstellung von Aktionen hinzu.
Für das UI des Makros fügen wir jetzt den Programmiercode ein. Zuvor
erzeugen wir aber noch einen Container (UserForm).
1. Starten Sie im Projekt-Explorer Fenster auf dem
Benutzerprojekt1 das rechte Maustastenmenü und wählen Sie
Einfügen>UserForm. (Bild 5).
|
 |
Bild 5:
UserForm (mit fertigem UI) |
Das Editier Fenster zeigt nun ein leeres Formblatt an.
2. Wählen Sie im Eigenschaftenfenster den Namenstext UserForm1
aus, und ändern ihn auf frmCog ab (Bild 6). Bestätigen Sie mit
<return> (oder mit der TAB Taste) Ihre
Änderung. |
 |
Bild 6:
Umbenanntes Form. |
Damit ist der Container für das Makro vollständig. Wir arbeiten
jetzt am Makro für das UI.
1. Starten Sie im Visual Basic Editor Menü, Fenster >
Baugruppe1 · Modul1 (Code), um das Code Fenster wieder zu
öffnen.
Hinweis:
Man kann das Code Fenster ebenfalls durch einen Doppelklick
auf das Modul oder durch das rechte Maustastenmenü (>Code
anzeigen) im Projekt-Explorer aktivieren.
|
2. Klicken Sie im Code Fenster auf die leere Zeile oberhalb End
Sub und geben dort frmCog. ein (Achten Sie bitte darauf, den Punkt
nach frmCog. Einzugeben.)
Nach der Eingabe des Punktes erscheint eine Liste mit Optionen.
Diese Liste enthalten alle Eigenschaften und Methoden, die dem
Objekt zugeordnet werden können.
Objekte und ihre Eigenschaften und Methoden sind die Basis der
Autodesk Inventor Software Programmierung. Eine Kurzübersicht
folgt noch, ansonsten stehen die Information auch in der API
Übersicht in der Online Hilfe zur Verfügung.
- Objekte sind durch Programmiercode veränderte Elemente.
Autodesk Inventor bietet Dokumente, Teile Verfügbarkeit in
Baugruppen oder Funktionsobjekte innerhalb eines Teils als Objekte
an. VBA bietet zusätzlich UserForms und Steuerelemente für
UserForms (Textfelder, Listenfelder, Kontrollfelder usw) als
Objekte an.
- Eigenschaften gelten jeweils für ein spezielles Objekt. Ein
UserForm bietet viele einstellbare Eigenschaften, wie z.B.
BackColor, Height, Width, und Font. Man kann diese Eigenschaften
im Eigenschaftsfenster verändern oder durch direkten
Programmiercode (z.B. frmCog.Height =140) modifizieren.
- Methoden sind Aktionen, die das Objekt während der
Programmausführung verändern. Ein UserForm unterstützt eine Anzahl
von Methoden wie Move, Show und Hide.
Arbeiten wir jetzt weiter am Programmiercode zur Darstellung des
UI. Geben Sie nach dem Punkt sh ein. Die Liste der
Objekteigenschaften und Methoden wird dementsprechend eingeschränkt.
Dieses hilfreiche VBA Werkzeug wird als IntelliSense® bezeichnet. Zu
weiteren Anwendungen dieses Werkzeuges werden wir noch im Laufe des
Tutorials kommen.
4. Drücken Sie die Tab Taste um die aktuell gezeigte Methode
(Show ) zu übernehmen (Bild 7.)
|
 |
Bild 7:
IntelliSense Liste mit Objekteigenschaften und
Methoden |
5. Drücken Sie die Leertaste. Ein QuickInfo (Tooltip) zeigt die
für die Show Methode zur Verfügung stehende Option (Argumente) . Die
Form kann modal oder nichtmodal verwendet werden.. Modale Forms
verhindern den Zugriff auf andere Applikationen (in diesem Fall auf
Autodesk Inventor) solange sie sichtbar sind. Die Form für unser
Beispiel soll innerhalb der Autodesk Inventor Software zur Verfügung
stehen. Aus diesem Grund benötigen wir eine nichtmodale Form.
6. Vervollständigen Sie die Codezeile wie folgt:
FrmCog.Show
vbModeless
Dies genügt für die UI Definition unseres Makros. Beim Ausführen
des Makros wird das UI des Massenschwerpunktes (COG) der Baugruppe
dargestellt. Der Anwender kann dann die jetzt noch einzufügenden
Steuerelemente verwenden.
Zurück
zum Seitenanfang
|
Das UI benötigt die folgenden Steuerelemente:
- Bezeichnungsfelder (Label) zur Darstellung der X, Y, und Z
Koordinaten des Massenschwerpunktes der Baugruppe.
- Befehlsschaltflächen (Buttons) zum Einfügen und Aktualisieren
der Position des Marker Bauteils.
- Eine Befehlsschaltfläche zum Beenden des Makros (Abbrechen).
- Eine Befehlsschaltfläche zum Verändern der Formgröße
(>>Befehlsschaltfläche).
- Kontrollkästchen zum Ein/Ausschalten der Geometriedarstellung
des Marker Bauteils.
- Ein Textfeld zur Benutzereingabe der Skalierung des Marker
Bauteils.
Nach dem Einfügen dieser Elemente sieht das Resultat wie folgt
aus (Bild 8).Jetzt aber die detaillierten Anweisungen dazu.
|
 |
Bild 8:
Fertiges UI |
1. Doppelklicken Sie auf frmCog im Projekt-Explorer. Das leere
Form wird im Editier Fenster dargestellt.
2. Ändern Sie im Eigenschaften Fenster die Height Eigenschaft auf
105, und anschließend die Width Eigenschaft auf 285.
Im folgenden Schritt fügen wir Bezeichnungsfelder für die Darstellung der X
Koordinate ein.
3. Klicken Sie die leere Form an. Wählen Sie in der
Werkzeugsammlung Dialogbox das Bezeichnungsfeld aus. Falls die
Dialogbox nicht sichtbar ist, können Sie sie über das Icon in der Visual Basic Editor
Symbolleiste aktivieren.
4. Klicken Sie jetzt in die Form und halten die linke Maustaste
gedrückt, um die Grösse des Bezeichnungsfeldes mittels eines
Rechtecks ungefähr wie im Bild 9 gezeigt aufzuziehen. Lassen Sie
jetzt die Maustaste aus, um das Element abzuschließen.
|
 |
Bild 9:
Bezeichnungsfeld (Label) |
5. Ändern Sie im Eigenschaften Fenster für das
Bezeichnungsfeld folgende Eigenschaften ab (dazu muß das
Bezeichnungsfeld wie im Bild 9 markiert/aktiv sein).
Name: |
LBLX
|
Caption: |
0,00
|
Height: |
13,5
|
Left: |
18
|
SpecialEffect: |
Wählen Sie
2—fmSpecialEffectSunken aus dem Listenfeld aus (Bild 10).
|
TextAlign: |
Wählen Sie
3—fmTextAlignRight aus dem Listenfeld aus. |
Top: |
4,5
|
Width: |
72
|
Das Element sollte jetzt wie in Bild 11 gezeigt aussehen.
Hinweis:
Sie können den Eigenschaften Namen anklicken und dann per
Tastatur den gewünschten Wert eingeben. Der aktuelle Wert wird
dann automatisch überschrieben.
| |
 |
Bild 10:
SpecialEffect Auswahl |
 |
Bild 11:
Formatiertes Bezeichnungsfeld |
6. Fügen Sie jetzt ein zweites Bezeichnungsfeld direkt links an
das lblX Element an (auf gleicher Höhe wie das vorhergehende
Bezeichnungsfeld). Ändern Sie die Eigenschaften dieses
Bezeichnungsfeldes so ab, daß es der Darstellung im Bild 12 gleicht
(Height können Sie mit 13,5 und Top mit 4,5 des Bezeichnungsfeldes
übernehmen).
Hinweis: um ein weiteres Bezeichnungsfeld einfügen zu können, muß
die Form aktiviert sein. |
 |
Bild 12:
Zweites Bezeichnungsfeld |
|
Im Gegensatz zur Stand-alone Version Visual Basic, unterstützt
VBA keine Reihen von Elementen. Wir kopieren die 2
Bezeichnungsfelder und fügen sie ein, um 2 unabhängige
Bezeichnungsfelder für die Y und Z Koordinaten zu erhalten.
1. Wählen Sie die 2 Bezeichnungsfelder (Klicken Sie in die
UserForm und ziehen Sie ein Fenster um beide Elemente), kopieren Sie
dann mit Ctrl-C beide Elemente, klicken Sie wieder in die UserForm
und fügen Sie dann mit Ctrl-V beide Elemente in der Mitte der
UserForm ein.
2. Wählen Sie die beiden neuen Bezeichnungsfelder und plazieren
Sie sie rechts neben den beiden ersten Elementen.
3. Klicken Sie wieder in die UserForm und fügen mit Ctrl-V die
beiden Elemente erneut ein. Anschließend positionieren Sie diese
rechts neben den vorherigen Elementen..
4. Wählen Sie jetzt nacheinander jedes Element an, und ändern die
Eigenschaften nach den Informationen in Bild 13 (Top wird wie die
ersten 2 Bezeichnungsfelder auf den Wert 4,5
gesetzt). |
 |
Bild 13:
Anpassung der Bezeichnungsfelder
Eigenschaften |
Hinweis:
Wir verwenden eine allgemein gültige Namenskonvention für VBA
Objekte. Die ersten drei Buchstaben des Namens bezeichnen den
Elementtyp (lbl für Label, cmd für command button =
Befehlsschaltfläche), anschließend folgt noch der
beschreibende Name. Der Name darf keine Leerzeichen
beinhalten. |
Befehlsschaltflächen hinzufügen : Im nächsten Schritt
fügen wir eine Befehlsschaltfläche in die UserForm ein. Alle
weiteren Befehlsschaltflächen werden wie vorher mit Kopieren und
Einfügen plaziert und angepaßt.
1. Starten Sie aus der Werkzeugsammlung die
Befehlsschaltfläche.
2. Klicken Sie in die UserForm und ziehen Sie ein Rechteck auf,
um die Befehlsschaltfläche wie in Bild 14 gezeigt, zu
erzeugen. Ändern Sie die Eigenschaften wie in Bild 14 dargestellt
ab.
|
 |
Bild 14:
Befehlsschaltfläche plazieren |
3. Kopieren und fügen Sie die Befehlsschaltfläche
drei mal. Ändern Sie die Position und die Eigenschaften der
Befehlsschaltflächen wie im Bild 15 dargestellt (Top ist mit dem
Wert 22,5 bei allen gleich). Löschen Sie beim cmdMore >>
Button die Information aus der Accelerator
Zeile. |
 |
Bild 15:
Weitere Befehlsschaltflächen |
|
Als nächstes fügen wir einen Rahmen  ein, um die
Kontrollkästchen der Original Geometrie zusammenzufassen.
1. Starten Sie aus der Werkzeugsammlung die Funktion Rahmen.
2. Erzeugen Sie den Rahmen mit der selben Klick-und-Zieh-Technik
wie vorher bei der ersten Befehlsschaltfläche. Ändern Sie die
Eigenschaften wie in Bild 16 beschrieben ab.
|
 |
Bild 16: Rahmen
Element |
|
1. Fügen Sie drei Kontrollkästchen in den Rahmen. Definieren
Sie die folgenden Eigenschaften:
Name |
Caption |
Accelerator |
Width
|
chkPlanes |
Ebenen |
E |
45
|
chkAxes |
Achsen |
C |
45
|
chkCP |
Mittelpunkt |
M |
60
|
Die UserForm sollte jetzt wie in Bild 17 dargestellt, aussehen.
|
 |
Bild 17:
Kontollkästchen hinzugefügt |
|
1. Fügen Sie jetzt noch ein Textfeld in die untere rechte Ecke
des UserForms ein. Definieren Sie die folgenden Eigenschaften:
Name: |
txtScale
|
Height:
|
15,75
|
Left: |
200
|
Text:
|
1,0
|
Top: |
62
|
2. Fügen Sie jetzt noch ein Bezeichnungsfeld über das Textfeld.
Definieren Sie die Caption Eigenschaft als Skalierung und den
Accelerator auf S.
3. Klicken sie auf die Titelleiste der UserForm und geben als
Namen in der Caption Massenschwerpunkt Baugruppe ein.
Die vollständige Form sollte jetzt wie in Bild 18 dargestellt,
aussehen. |
 |
Bild 18:
Vervollständigte Form. |
Sehr gut. Sie haben jetzt die Benutzeroberfläche gestaltet, und
es fehlt jetzt noch der Programmiercode um auf die Anwendereingaben
und Aktionen in der Dialogboxfunktionen reagieren zu können.
- Die X,Y, und Z Bezeichnungsfelder sollen die
aktuellen Massenschwerpunkts Koordinaten der Zusammbauzeichnung
darstellen.
- Die Einfüge Befehlsschaltfläche soll das Marker Bauteil in die
Baugruppe einfügen.
- Die Aktualisieren Befehlsschaltfläche soll die Position und
den Status des Marker Bauteil aktualisieren (das Bauteil wird zum
aktuellen Massenschwerpunkt der Baugruppe bewegt) und die
XYZ-Koordinaten werden angezeigt.
- Die Abbruch Befehlsschaltfläche beendet das Makro.
- Die >> Befehlsschaltfläche erweitert oder reduziert die
Dialogbox. Normalerweise benötigen wir die Elemente im unteren
Bereich nicht .
- Die Kontrollkästchen überprüfen die Sichtbarkeit der Original
Geometrie des Marker Bauteils beim nächsten Update.
- Das Textfeld Skalierung prüft die Größenskalierung des Marker
Bauteils beim nächsten Update.
Die Accelerator Buchstaben erlauben die Benutzung von Shortcuts
mittels Alt + Accelerator Buchstabe.
Zurück
zum Seitenanfang
|
Im folgenden Tutorial wird der Programmiercode zum Arbeiten mit
Autodesk Inventor erzeugt. Starten wir aber erst mit dem Code der
sich hinter den Abbrechen und >> Befehlsschaltflächen
befindet.
VBA ist eine ereignisorientierte Programmierumgebung.
Programmiercode ist mit Events (benutzerdefinierte Ereignisse)
verbunden, die durch den Anwender gestartet werden. Beim Drücken
einer Befehlsschaltfläche wird der Programmiercode ausgeführt, der
sich hinter dem Event (ButtonName_Click) befindet.
1. Doppelklick auf den Abbrechen Button in der Form
Das Editierfenster zeigt den Code, der mit einem voreingestellten
Event für den Button (Klick) verknüpft ist (siehe Bild 19). Dieser
Programmiercode ist in der UserForm gespeichert (nicht in einem
separaten Modul). Man hat die Möglichkeit zu dem Programmiercode von
verschiedenen Controls und den Prozeduren des aktuellen Controls zu
navigieren. Dies erfolgt durch die Auswahl aus der Liste am Kopf des
Code Fensters (Bild 19). Die Auswahl eines Controls oder einer
Prozedur ohne existierenden Code erzeugt eine Unterroutine wie in
Bild 19 gezeigt. |
 |
Bild 19: Code
Fenster |
2. Geben Sie die folgende Zeile Code oberhalb der
End Sub Linie ein.
Unload frmCog
Der Code entlädt die Form, und beendet somit das Makro. Nochmals
der Hinweis, daß ein Tooltip erscheint, sobald Sie nach dem
Eintippen von ·unload· ein Leerzeichen eingeben.
3. Wählen Sie cmdMore aus der Liste der Controls am oberen Rand
des Code Fensters. Es wird eine Unterroutine für den Klick Event der
Befehlsschaltfläche wird hinzugefügt.
Dieser Button dient als Schalter um die Form zu verkleinern und
zu vergrößern. Folgende Logik steht dahinter:
Falls die Form aktuell verkleinert ist:
- Die Eigenschaft height wird auf 104 geändert.
- Die Eigenschaft Caption wird auf << geändert (dies dient
als Hinweis, daß ein zweiter Klick die Form wieder verkleinert).
Falls die Form aktuell vergrößert ist:
- Die Eigenschaft height wird auf 63
- Die Eigenschaft Caption wird auf >> geändert
Der Code muß den Status der Form erkennen und darauf basierend
Aktionen starten. Es gibt verschiedene Methoden um dies zu
erreichen, in diesem Fall wird das If Statement verwendet. Das VBA
If Statement bietet folgende Logik:
If (Bedingung) = True then Do
This Else Do something else End if
Hinweis:
Die Zeilen Else und Do something else aus sind optional
in dem If Statement. |
4. Geben Sie den folgenden Code in die cmdMore_Click
Unterroutine ein:
If frmCog.Height
= 104 Then frmCog.Height =
63 cmdMore.Caption =
">>" Else frmCog.Height =
104 cmdMore.Caption = "<<" End
if
Beachten Sie daß >> und << in Anführungszeichen
gefaßt sind. Die Eigenschaft Caption benötigt eine Texteingabe.
Benutzen Sie die IntelliSense Funktionalität um die Eigenschaft
auszuwählen. Rücken Sie den Code ein, um ihn einfacher lesen zu
können.
Ein Code Segment fehlt noch, und Sie können mit dem Testen
beginnen. Wenn die Form am Anfang geladen wird, hat das
Dialogfenster die gleiche Höhe wie im Editier Fenster. Die Form soll
verkleinert erscheinen. Dazu muß noch eine Zeile Code eingefügt
werden.
5. Wählen Sie UserForm aus der Liste der Controls am oberen Rand
des Code Fensters. Der voreingestellte Click Event wird im Code
Fenster hinzugefügt.
6. Wählen Sie den Initialize Event aus der Prozeduren Liste.
Markieren und löschen Sie jetzt die Unterroutine für den Click
Event der UserForm. (Diese war nur nötig um die User Form Initialize
auszuwählen).
7. Fügen Sie den folgenden Code zu der Unterroutine
UserForm_Initialize: |
 |
Bild 20:
Vollständiger Code |
|
Testen ist ein andauernder Prozeß während der Entwicklung eines
Programms. Eine gute Strategie ist das Testen von kleinen Teilen des
Codes um mögliche Fehler direkt ausbessern zu können. Man kann sich
dann beruhigt dem nächsten Bereich des Programms zuwenden.
1. Starten Sie Visual Basic Editor Menü Extras > Makros
2. Wählen Sie in der Makros Dialogbox das Makro CogTool und
starten Sie Ausführen.
3. Der Dialog des Massenschwerpunktes der Baugruppe wird in
verkleinert dargestellt.
4. Klicken Sie den Button >>. Der Dialog wird expandiert
und alle Controls werden gezeigt und der Button ändert sich auf
<<.
5. Klicken Sie den Button > nochmals. Der Dialog verkleinert
sich wieder und der Text des Buttons ändert sich wieder auf
>>.
6. Klicken Sie den Abbrechen Button. Der Dialog wird geschlossen
und Sie kommen wieder auf die VBA IDE Oberfläche zurück.
|
Eine Form in VBA zu erzeugen ist einfacher drag und
drop Prozeß. Das Form Layout wird dann durch das Modifizieren der
Control Eigenschaften vervollständigt. Zum Abschluß fügt man noch
den Programmiercode für die verschiedenen Events ein.
Im nächsten Tutorial erfahren Sie wie man die erstellte
Benutzeroberfläche innerhalb der Autodesk Inventor API
integriert.
Zurück
zum Seitenanfang |
|