| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: IPT / IAM: Prüfen, ob Skizzierumgebung aktiv ist? (376 / mal gelesen)
|
mb-ing Mitglied F&E-Mangement, MB-Ing. (u)
Beiträge: 772 Registriert: 06.09.2012 Inventor 2021 WIN 10 (64bit), Dell Precision T1650, 16GB (Pro.File 8.7)
|
erstellt am: 07. Okt. 2021 14:03 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, wie kann man in einem VB.NET Add-In prüfen, ob im aktiven Dokument (IPT / IAM) die Skizzierumgebung aktiv ist? Ich habe einfach geprüft, ob RibbonTab "Skizze" aktiv ist, aber dies ist nicht zuverlässig. Befindet man sich im Skizziermodus des 3D-Modells und klickt beispielsweise auf den RibbonTab "Prüfen", ist zwar der Skizziermodus noch aktiv, aber das Active-Attribut des RibbonTabs "Skizze" ist False! (Was natürlich auch logisch ist ) Ein kurzer Codeausschnitt, wie ich aktuell prüfe:
Code: ... Dim Ribbons As Inventor.Ribbons Ribbons = UserInterfaceManager.Ribbons Dim sktechActive As Boolean = False If Ribbons.Item("Part").RibbonTabs.Item("id_TabSketch").Active = True Then sktechActive = True End If ...
Bei dieser (siehe Screenshot) Konstellation versagt die Prüfung: Vielen Dank im Voraus für Euren Input. Danke und Grüße MB-Ing. ------------------ Wissen ist Macht. Nichts wissen macht auch nichts Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 07. Okt. 2021 18:57 <-- editieren / zitieren --> Unities abgeben: Nur für mb-ing
Hallo Mindestens drei Möglichkeiten 1. ThisApplication.ActiveEditObject = PlanarSketch oder Sketch3D 2. ThisApplication.ActiveEnvironment.InternalName = "PMxPartSketchEnvironment" oder "PMxPartSketch3dEnvironment" oder "AMxAssemblySketchEnvironment" 3. ThisApplication.ActiveEditDocument.ActivatedObject = PlanarSketch oder Sketch3D ------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mb-ing Mitglied F&E-Mangement, MB-Ing. (u)
Beiträge: 772 Registriert: 06.09.2012 Inventor 2021 WIN 10 (64bit), Dell Precision T1650, 16GB (Pro.File 8.7)
|
erstellt am: 08. Okt. 2021 07:54 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von rkauskh: HalloMindestens drei Möglichkeiten 1. ThisApplication.ActiveEditObject = PlanarSketch oder Sketch3D 2. ThisApplication.ActiveEnvironment.InternalName = "PMxPartSketchEnvironment" oder "PMxPartSketch3dEnvironment" oder "AMxAssemblySketchEnvironment" 3. ThisApplication.ActiveEditDocument.ActivatedObject = PlanarSketch oder Sketch3D
Hallo Ralf, super, vielen herzlichen Dank für Deine Hilfe! ... nicht optimal, aber läuft erst mal für Tests :) Code: ... Dim sktechActive As Boolean = False Dim avtivatedObject As Object = g_inventorApplication.ActiveEditDocument.ActivatedObject If avtivatedObject IsNot Nothing Then If avtivatedObject.Type = Inventor.ObjectTypeEnum.kPlanarSketchObject Or avtivatedObject.Type = Inventor.ObjectTypeEnum.kSketch3DObject Then sktechActive = True End If End If ...
Unschön ist aktuell, dass avtivatedObject Nothing ist, wenn ein Dokument geöffnet wird. Deswegen die Prüfung auf IsNot Nothing am Anfang... Danke und Grüße MB-Ing. ------------------ Wissen ist Macht. Nichts wissen macht auch nichts Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 08. Okt. 2021 18:12 <-- editieren / zitieren --> Unities abgeben: Nur für mb-ing
Hallo Ich würde das aktuelle Environment bevorzugen. Da gibt es immer eines. Code:
Dim bSketchActive As Boolean = False Dim oActiveEnvironment As Inventor.Environment = g_inventorApplication.ActiveEnvironmentSelect Case oActiveEnvironment.InternalName Case "PMxPartSketchEnvironment" : bSketchActive=True Case "PMxPartSketch3dEnvironment" : bSketchActive=True Case "AMxAssemblySketchEnvironment" : bSketchActive = True End Select
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |