| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Ipt in IDW öffnen (2263 mal gelesen)
|
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 08. Mai. 2014 08:58 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich möchte ein mit der Maus selektiertes Bauteil in einer IDW öffnen (In der IDW sind mehrere Bauteile, eventuell auch Baugruppen) Mit diesem Code kann ich nur das erste Bauteil auf der Zeichnung öffnen, wie kann ich ein selektiertes Bauteil öffnen? Code:
Public Sub open_ipt_in_idw()Dim oDrawDoc As DrawingDocument Set oDrawDoc = ThisApplication.ActiveDocument Dim oReferencedPartDoc As PartDocument Set oReferencedPartDoc = oDrawDoc.ReferencedDocuments.Item(1) Dim oPropValue As String oPropValue = oReferencedPartDoc.FullDocumentName Set opart = ThisApplication.Documents.Open(oPropValue, True) End Sub
Hier wird das erste Bauteil der Zeichung genommen Code: Set oReferencedPartDoc = oDrawDoc.ReferencedDocuments.Item(1)
Bye Berno Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 08. Mai. 2014 10:01 <-- editieren / zitieren --> Unities abgeben: Nur für BernoAn
Hallo Geh über oDrawDoc.SelectSet.Item(1). Das müßte ein DrawingCurveSegment sein, von dem aus du dich entweder über die Parent-Eigenschaft stückweise bis zum referenzierten Document nach oben hangeln kannst. Oder du versuchst mal ob das DrawingCurveSegment die GetNativeObject-Funktion (oder so ähnlich) unterstützt. Dann müßtest du direkt auf der Edge deines Bauteiles landen und kannst über Parent noch oben zum Document. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 08. Mai. 2014 13:38 <-- editieren / zitieren --> Unities abgeben: Nur für BernoAn
|
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 08. Mai. 2014 14:15 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 08. Mai. 2014 14:46 <-- editieren / zitieren --> Unities abgeben: Nur für BernoAn
Hallo Dann lies bitte nochmal die Frage in deinem ersten Beitrag. Die Lösung mit selektiertem DrawingView hat Paul dir gegeben. Code aus dem Kopf geschrieben, könnte Unschärfen enthalten.
Code: Public Sub OpenRefedDocDim oApp as Application Set oApp=ThisApplication Dim oDrawDoc as DrawingDocument Set oDrawDoc=oApp.ActiveDocument Dim oDoc as Document Set oDoc=oDrawDoc.SelectSet.Item(1).ReferencedDocumentDescriptor Call oApp.Documents.Open(oDoc.FullDocumentName) End Sub
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 08. Mai. 2014 15:09 <-- editieren / zitieren --> Unities abgeben:
Hallo Hm mit dem Code komme ich auch nicht weiter? Ich habe es aber jetzt mit CommandManager.Pick und ReferencedDocumentDescriptor.FullDocumentName hinbekommen, gefällt mir nicht aber es funktioniert Danke für eure Hilfe Gruß Berno
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 08. Mai. 2014 16:07 <-- editieren / zitieren --> Unities abgeben: Nur für BernoAn
Hallo Die möglichst präzise Fragestellung erhöht die Wahrscheinlichkeit einer passenden Antwort. 1. Wolltest du eine bereits selektierte Auswahl nutzen, nicht innerhalb des Makros erst wählen. 2. Wolltest du ein selektiertes Bauteil nutzen, nicht einen selektierten DrawingView. Du brauchst dich im Nachhinein nicht wundern, wenn die User nicht hellsehen können. Was ist am CommandManager.Pick denn so schlecht? Mit "gefällt mir nicht" kann hier wieder keiner was anfangen.
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 09. Mai. 2014 07:42 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich hab mich wirklich verwirrend ausgedrückt, Entschuldigung! Aber ich will mich auch für eure Antorten bedanken! zu: Was ist am CommandManager.Pick denn so schlecht? Mit "gefällt mir nicht" kann hier wieder keiner was anfangen. Mir gefällt das nicht sollte heißen das ich erst die Auswahl selektieren wollte und dann das Macro ausführen mit dem CommandManager ist es umgekehrt. Gruß Berno [Diese Nachricht wurde von BernoAn am 09. Mai. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 11. Mai. 2014 21:44 <-- editieren / zitieren --> Unities abgeben: Nur für BernoAn
Hallo Das Verhalten würde der Code den ich dir oben gegeben habe machen. Der öffnet was vorher selektiert wurde. Aber mit dem kommst du nicht zurecht und läßt uns im Unklaren wo's hakt. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 19. Mai. 2014 09:58 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 19. Mai. 2014 14:39 <-- editieren / zitieren --> Unities abgeben: Nur für BernoAn
|
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 19. Mai. 2014 14:45 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 19. Mai. 2014 20:54 <-- editieren / zitieren --> Unities abgeben: Nur für BernoAn
Hallo Ich habe im VBA Editor im Menü "Ansicht" das "Überwachungsfenster" eingeblendet. Dann habe ich auf die Zeile
Code: Set oDoc=oDrawDoc.SelectSet.Item(1).ReferencedDocumentDescriptor
einen Haltepunkt gesetzt, damit das Makro dort anhält. Danach habe ich rechte Maustaste auf das "oDrawDoc" in der Zeile Code: Set oDrawDoc=oApp.ActiveDocument
gemacht und im Kontextmenü "Überwachung hinzufügen ..." ausgewählt. Im Überwachungsfenster kann man jetzt den Eintrag oDrawDoc sehen. Läßt man das Makro laufen, hält es am Haltpunkt an. Jetzt kann man im Überwachungsfenster oDrawDoc aufklappen. Scrollt man ein bißchen runter, findet man SelectSet, klappt das auf und sieht Item(1) - den ausgewählten DrawingView. Darunter findet sich der ReferencedDocumentDescriptor. In der rechten Spalte sieht man den jeweiligen Objekttyp. Da läßt sich dann auch erkennen, das ich den falschen Variablentyp verwendet hatte. Das hat man davon, wenn man aus dem Kopf schreibt und es selbst nicht ausprobiert. Im Grunde ist es ein Entlanghangeln an der Strukturzweigen des Inventor-Objektmodells. Das Objektmodell gibt's auch als Übersichts-PDF. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Technischer Zeichner / Technischer Produktdesigner / Konstrukteur (m/w/d) | Die Innolite GmbH ist ein Hightech-Unternehmen am Standort Aachen. Unsere derzeit 57 Mitarbeiter*innen beschäftigen sich mit der Herstellung und stetigen Verbesserung ultrapräziser Werkzeugmaschinen zur Fertigung optischer Komponenten. Die hierfür erforderlichen Genauigkeiten im Bereich weniger Nanometer erreichen wir durch ein perfektes Zusammenspiel unserer Maschinen, eigener Software und umfangreichem Prozess Know-How.... | Anzeige ansehen | Technischer Zeichner, Bauzeichner |
|
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 20. Mai. 2014 07:55 <-- editieren / zitieren --> Unities abgeben:
|