Programmierung mit VBA in Autodesk Inventor

Transcrição

Programmierung mit VBA in Autodesk Inventor
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
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.
Vorbereitung
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.
Makros und die VBA Umgebung
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
Darstellung der Benutzeroberfläche für das Makro
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.)
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
Arbeiten mit VBA Steuerelementen
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
Symbolleiste aktivieren.
in der Visual Basic Editor
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
Zurück zum Seitenanfang
Kopieren und Einfügen der Bezeichnungsfelder
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
Zurück zum Seitenanfang
Rahmen hinzufügen
Als nächstes fügen wir einen Rahmen
zusammenzufassen.
ein, um die Kontrollkästchen der Original Geometrie
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
Kontrollkästchen hinzufügen
1. Fügen Sie drei Kontrollkästchen
Name
Caption
in den Rahmen. Definieren Sie die folgenden Eigenschaften:
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
Zurück zum Seitenanfang
Vervollständigung der Elemente
1. Fügen Sie jetzt noch ein Textfeld
folgenden Eigenschaften:
Name:
txtScale
Height:
15,75
Left:
200
Text:
1,0
Top:
62
in die untere rechte Ecke des UserForms ein. Definieren Sie die
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
Programmieren im Detail
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.
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 =
frmCog.Height =
cmdMore.Caption
Else
frmCog.Height =
cmdMore.Caption
End if
104 Then
63
= ">>"
104
= "<<"
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
Zurück zum Seitenanfang
Der Test
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.
Zusammenfassung
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
© Copyright 2002 Autodesk, Inc. Alle Rechte vorbehalten.

Documentos relacionados