Autor
|
Thema: Annotations im Product - method Parent failed (1129 mal gelesen)
|
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 26. Okt. 2010 09:51 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, wie ihr an meinen Themen merkt bin ich mal wieder mit Annotations unterwegs und muss mal wieder feststellen, wie schlecht das Geraffel doch implementiert ist. Aktuell habe ich jetzt das Problem, dass der User eine Annotation selektiert und ich mich bis zum Part/Product hoch hangeln will. Grund ist lediglich, dass ich den Namen des Products brauche, für die Weiterverarbeitung (habe ich es schon abgearbeitet). Im Part klappt das alles wunderbar. Nun habe ich jedoch eine Annotation im Product. Dort komme ich über die Parent-Methoden nur bis zum AnnotationSet. Dieses sagt mir auch korrekt KindOfSet = „Product“. Die Parent-Methode sagt jedoch <The method Parent failed>. Wie würdet ihr das Problem am smartesten lösen? ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 26. Okt. 2010 12:52 <-- editieren / zitieren --> Unities abgeben: Nur für HoBLila
Hallo Henry, die smarteste...halt einzigste...Möglichkeit die mir einfällt ist über das ModelElement zu gehen (aus dem Objekt der User-Selection). Hier gibt es das Objekt "Document". In diesem befindet sich das komplett Dokument das an das ModelELement übergeben wurde (d.h. auch deine gesuchtet Root-Produkt). Da du dich nicht über die Parents hangeln musst....ist das Ganze doch wieder smart . Anbei mal mein Beispielcode (selektiert wird hier die View aber das kannst du ja noch ändern)
Code:
Sub CATMain() '***by Daniel Frauenrath Dim objDoc As Document Dim objSel As Object Dim StrState As String Dim strFilter(0) Dim objTPSView As TPSView Dim objAnnoSets As AnnotationSets Dim objModelElement As ModelElement Set objDoc = CATIA.ActiveDocument If TypeName(objDoc) <> "ProductDocument" Then MsgBox "Das aktive Dokument ist kein Product", vbExclamation, "Abbruch" Exit Sub End If Set objSel = objDoc.Selection objSel.Clear strFilter(0) = "TPSView" 'MsgBox "Bitte wählen Sie eine Annotation aus", vbInformation, "Abfrage" StrState = objSel.SelectElement2(strFilter, "Bitte Annotation wählen / ESC zum Abbrechen", False) If StrState <> "Normal" Then MsgBox "Abbruch durch Anwender", vbExclamation, "Abbruch" Else Set objTPSView = objSel.Item(1).Value Set objModelElement = objTPSView.GetItem("ModelElement") objSel.Clear End If MsgBox "Das Root-Product der selektierten Annotation ist:" + vbNewLine + _ objModelElement.Document.Product.Name, vbInformation, "Ausgabe" End Sub
------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 26. Okt. 2010 16:30 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, wie Du weißt schätze ich Deine Arbeit sehr, hierbei sind mir jedoch jedoch zwei Sachen aufgefallen: 1. Hast Du lange Weile, da ein ganzes Programm drum herum zu programmieren? 2. Hut ab! Da hätt' ich zwar nach meiner letzten Frage auch drauf kommen müssen, aber es gefällt mir! Sollte diesen Trick langsam zu den besseren Kniffen tun. Jedenfalls bin ich froh, dass meine Fragen in letzter Zeit auch super gut beantwortet werden. Und noch ein Bonus: Ich muss nun nicht mehr zwischen Part und Product unterscheiden, denn ich muss mir ja nur die Dokumente merken. Ich hätt' jetzt die Produktstruktur rekursiv durchsucht... ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Mitarbeiter Arbeitsvorbereitung (m/w/d) | Die Firma eibe ist einer der führenden Spielplatzgerätehersteller und Experte im Bereich Entwicklung, ganzheitliche Konzeption und Planung von innovativen Spielräumen für den Außen- und Innenbereich. Als Komplettanbieter leistet die Firma eibe alles aus einer Hand: das Unternehmen entwickelt, berät, plant, produziert, liefert und montiert. Um unseren Erfolg fortzusetzen, suchen wir einen ... | Anzeige ansehen | Bauwesen |
|
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 27. Okt. 2010 10:22 <-- editieren / zitieren --> Unities abgeben: Nur für HoBLila
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|