Autor
|
Thema: Wie Objekte aus Join entnehmen? (1086 mal gelesen)
|
MarcDe Mitglied
Beiträge: 137 Registriert: 11.10.2006 CATIA R18 SP2, BN 18, HF 162 Win 7 64Bit
|
erstellt am: 08. Jul. 2009 20:57 <-- editieren / zitieren --> Unities abgeben:
Hallo, kann mir jemand sagen wie ich die Objekte aus einem Join wieder herausbekomme? Mit GetElement krieg ich nur die Referenz, ich brauche aber das eigentliche Objekt zb wenn ich viele HybridShapeExplicit Elemente drin habe will ich genau dieseo Objekte.... Hat da jmd ein Tipp? Irgendwie funktioniert auch GetElement nicht richtig ich mache das so: Code:
AnyObject obj = null; for (int k = 0; k < parallelCurves[i].GetElementsSize(); k++) { Reference subElement_ref = parallelCurves[j].GetElement(k); string IDName = subElement_ref.get_Name(); obj.GetItem(ref IDName); }
Das war meine IDee, aber das geht leider überhaupt nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zoltan.bekesi Mitglied
Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 09. Jul. 2009 18:27 <-- editieren / zitieren --> Unities abgeben: Nur für MarcDe
Hallo MarcDe, wenn es sich nicht über B-Reps handelt, sondern um echte Objekte, kannst du versuchen die durch part.FindObjectByName(strName) anzusprechen. Was willst du aber eigentlich mit den Objekten machen? Die meisten Funktionen von CATIA verlangen Referenzen als Eingänge. Gruß, Zoltan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
davischr Mitglied Student
Beiträge: 9 Registriert: 04.01.2011 @work Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz 4GB RAM NVIDIA Quadro FX 1600M Windows XP SP2 64bit CATIAv5 R19 SPK3 HF50 64bit
|
erstellt am: 07. Jan. 2011 12:04 <-- editieren / zitieren --> Unities abgeben: Nur für MarcDe
Hallo Zusammen, Ich muss diesen Beitrag noch einmal auffrischen, da ich genau dasselbe machen möchte. Aufgabe: Ich wähle durch SelectElement2(...) ein Objekt (in diesem Fall ein Join) aus. Dieser enthält z.B. Einen Sketch und Linien. Ich möchte nun den Filter für die nächsten Selections so setzen, dass nur noch Elemente vom Typ der Elemente die im Join enthalten sind ausgeählt werden können. Das Problem das ich nun habe, wenn ich sObject(1) (ist das ausgewählte Objekt ein Join) die Anzahl Elemente ausgeben will sObject(1).GetElementsSize kriege ich die Fehlermeldung: Das Objekt unterstützt diese Eigenschaft oder Methode nicht.:'GetElementsSize' Code:
... Dim sObject() as Object ... For i = 1 to anzObject
Set sObject(i) = selection1 MsgBox("Bitte selektieren Sie das" & i & "-te Element") sObject(i).SelectElement2 strFilter, "Bitte selektiere etwas",False Set reference(i) = part1.CreateReferenceFromObject(sObject(i).Item(1).Value) If i = 1 then strFilter(0) = typename(sObject(1).item(1).value) msgbox(typename(sObject(1).item(1).value)) If strFilter(0) = "HybridShapeAssemble" then oElement = sObject(1).GetElementsSize End If End If Next ...
Danach könnte ich mit sObject(1).GetItem(i) die einzelnen Elemente ansprechen und auch ihren Typ herausfinden und in den Filter einbauen. Hat da jemand eine Idee an was das liegen könnte? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Jan. 2011 12:12 <-- editieren / zitieren --> Unities abgeben: Nur für MarcDe
Servus Versuch es mal mit: sobject(1).item(1)value.GetElementsSizeBeim sObject(1) handelt es sich doch um die Selektion allgemein? Mit Item bekommst du das erste Element und Value liefert das Object zurück (hier den Join) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
davischr Mitglied Student
Beiträge: 9 Registriert: 04.01.2011 @work Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz 4GB RAM NVIDIA Quadro FX 1600M Windows XP SP2 64bit CATIAv5 R19 SPK3 HF50 64bit
|
erstellt am: 07. Jan. 2011 12:24 <-- editieren / zitieren --> Unities abgeben: Nur für MarcDe
|