In diesem Abschnitt erfahren Sie, wie Sie mit Visual Studio eine einfache Windows Forms-Benutzeroberfläche zur Ausführung in einem Inventor-Zusatzmodul erstellen. Da vorausgesetzt wird, dass Sie Erfahrung im Erstellen von Inventor-Zusatzmodulen haben, wird das Hauptaugenmerk auf die Verwendung der Steuerelemente der UI-Werkzeuge gelegt. Das Inventor-Zusatzmodul verfügt über eine Schaltfläche UI anzeigen. Über diese Schaltfläche wird ein Formular angezeigt, das die verschiedenen Steuerelemente der UI-Werkzeuge enthält.
Bevor Sie Steuerelemente der UI-Werkzeuge zu dem Zusatzmodul-Formular hinzufügen können, müssen Sie zunächst Referenzen auf die UI-Werkzeugbaugruppen zu dem Visual Studio-Projekt hinzufügen. Es gibt zwei DLL-Referenzen, die zur Verwendung der UI-Werkzeuge erforderlich sind: Autodesk.ETO.UI.dll und Autodesk.ETO.UI.Intent.dll. Außerdem sind Referenzen auf die Hauptbaugruppen Autodesk.Intent.API.dll und Autodesk.IntentBase.dll erforderlich. Schließlich wird noch eine Referenz auf Autodesk.Inventor.Interop.dll benötigt, da diese Benutzeroberfläche als Inventor-Zusatzmodul ausgeführt wird.
Nachdem diese DLL-Referenzen hinzugefügt wurden, fügen Sie die verschiedenen Steuerelemente der UI-Werkzeuge aus der Visual Studio-Toolbox hinzu. Diese Steuerelemente befinden sich in der Toolbox auf einer Registerkarte mit dem Namen ETO Intent UI-Steuerelemente.
Das IntentUIProject-Steuerelement dient als Steuerung für die UI-Werkzeuge. Es beinhaltet alle Informationen auf Projektebene und verwaltet alle UIParts. Um sicherzustellen, dass die anderen UI-Werkzeug-Steuerelemente funktionieren, ziehen Sie ein IntentUIProject-Steuerelement aus der Toolbox auf das Formular, um es der Benutzeroberfläche hinzuzufügen.
Vorgabemäßig veranlasst das IntentUIProject-Steuerelement keine automatische Aktualisierung von Grafiken, wenn eine Änderung am Intent-Modell stattfindet. Dieses Verhalten ermöglicht Ihnen, eine Reihe von Änderungen vorzunehmen, ohne dass es zwischen den einzelnen Änderungen zeitraubende Grafikaktualisierungen gibt. Allerdings ist das vorliegende Beispielprojekt so einfach, dass es nicht zu wesentlichen Leistungseinbußen führen würde, wenn automatische Aktualisierungen aktiviert würden. Gehen Sie zu dem IntentUIProject-Steuerelement, das dem Formular hinzugefügt wurde, und legen Sie unter Eigenschaften die Option Grafiken automatisch aktualisieren? auf True fest.
Bevor Sie die restlichen drei Steuerelemente zu der Benutzeroberfläche hinzufügen, fügen Sie einige Teilbereiche hinzu. Sie können die Steuerelemente dann einfach in dem Formular anordnen und ihre Größe ändern. In diesem Beispiel befindet sich das Steuerelement UIPartTree auf der linken Seite, während die Steuerelemente UIPropertyGrid und UIMessages auf der rechten Seite übereinander angeordnet sind.
Ziehen Sie nun die entsprechenden Steuerelemente auf ihre Positionen in den Teilbereichen, und legen Sie dann ihre Fixierungseigenschaften auf Fill fest.
Nun befinden sich die Steuerelemente auf dem Formular an den gewünschten Positionen. Verknüpfen Sie sie als Nächstes mit der ursprünglich hinzugefügten IntentUIProject-Komponente. Die einfachste Methode besteht darin, die PartProvider-Eigenschaften im Visual Studio-Designer festzulegen. Legen Sie den PartProvider für das UIMessages-Steuerelement und das UIPropertyGrid-Steuerelement auf das UIPartTree-Steuerelement fest:
Legen Sie den PartProvider für das UIPartTree-Steuerelement im Code auf das UIProject-Steuerelement fest:
PartProvider sind Komponenten, die die IPartProvider-Schnittstelle aus der Autodesk.ETO.UI.dll implementieren. Diese Schnittstelle verfolgt das aktuell ausgewählte UIPart in dieser Komponente. Beispielsweise implementiert das UIPartTree-Steuerelement den IPartProvider, und dessen ausgewähltes UIPart ist ein beliebiges in der Struktur ausgewähltes UIPart. Das IntentUIProject-Steuerelement ist ebenfalls ein PartProvider. Dessen ausgewähltes UIPart ist jedoch immer das Stammbauteil im Modell. Aus diesem Grund muss das Stammbauteil im Intent-Modell an UIPartMixin beteiligt sein.
Viele Komponenten akzeptieren PartProvider als Parameter. Sie können in ihrem referenzierten PartProvider die Informationen über das aktuell ausgewählte Bauteil auf dem neuesten Stand halten. UIPropertyGrid ist ein Beispiel für ein Steuerelement, das einen PartProvider akzeptiert. Sie können die PartProvider-Eigenschaft für UIPropertyGrid auf das UIPartTree-Steuerelement festlegen. Wenn Sie dann ein neues UIPart in der Baumstruktur auswählen, aktualisiert sich das UIPropertyGrid-Steuerelement automatisch selbst mit den Eigenschaften des neu ausgewählten Bauteils.
Einige Steuerelemente implementieren IPartProvider und akzeptieren ebenfalls einen PartProvider als Eigenschaft. Ein Beispiel dafür ist das Steuerelement UIPartTree. Legen Sie den Stammknoten im UIPartTree-Steuerelement fest, indem Sie seine PartProvider-Eigenschaft festlegen. Da in Ihrem Fall das UIPartTree-Steuerelement das gesamte Modell sein soll, legen Sie seine PartProvider-Eigenschaft auf das zuvor hinzugefügte IntentUIProject-Steuerelement fest. Dann ist der Stamm des UIPartTree-Steuerelements das Stamm-UIPart des Modells, da das ausgewählte UIPart des IntentUIProject-Steuerelements immer der Stamm ist.
Die folgende Abbildung zeigt die PartProvider-Beziehungen zwischen den verschiedenen Steuerelementen in der Benutzeroberfläche.
Sowohl für UIPropertyGrid als auch für UIMessages sind die PartProvider-Eigenschaften auf das UIPartTree-Steuerelement festgelegt. Für das UIPartTree-Steuerelement wiederum ist der PartProvider auf das IntentUIProject-Steuerelement festgelegt.
Zunächst erstellen Sie das UI-Formular für das Inventor-Zusatzmodul, platzieren alle UI-Werkzeug-Steuerelemente und verknüpfen sie mithilfe ihrer PartProvider mit dem Intent-Modell. Anschließend können Sie das Zusatzmodul erstellen und Inventor ausführen. Sobald Sie die Baugruppe Table ("Table.iam") öffnen, wird eine Multifunktionsleisten-Registerkarte "Autodesk ETO UI" angezeigt, die eine einzelne Schaltfläche "UI anzeigen" enthält. Über diese Schaltfläche zeigen Sie das weiter oben erstellte Formular an, und die UI-Werkzeug-Steuerelemente werden basierend auf den Intent-Designs ausgefüllt. Dieses Beispiel enthält einen Postbuild-Schritt, um das Zusatzmodul zu registrieren und an die korrekten Positionen zu kopieren. Informationen zur Problembehandlung finden Sie in der Readme-Datei zu dem Beispiel.