Autor
|
Thema: BRef über Namen an Selektion anhängen (2100 mal gelesen)
|
jwiedemann Mitglied Student
Beiträge: 6 Registriert: 02.12.2004
|
erstellt am: 27. Sep. 2006 16:15 <-- editieren / zitieren --> Unities abgeben:
|
weissda Mitglied ingenieur
Beiträge: 48 Registriert: 04.08.2006
|
erstellt am: 28. Sep. 2006 08:44 <-- editieren / zitieren --> Unities abgeben: Nur für jwiedemann
Hi Bin nicht sicher, ob ich deine Frage richtig verstanden habe. Eine möglichkeit, sämtliche Faces eines Objektes aufzulisten, wäre z.B.: ' Finde das Objekt, dessen Kanten aufgelistet werden sollen Set obj = prodDocument1.Part.FindObjectByName(name) Set selection1 = prodDocument1.Selection selection1.Clear selection1.Add obj ' Suche die Faces selection1.Search ("Topology.Face;sel") ' Loop through all faces found For h = 1 To selection1.Count Set myRef = selection1.Item(h).Reference msgbox myRef.DisplayName Next h Gruss, Daniel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jwiedemann Mitglied Student
Beiträge: 6 Registriert: 02.12.2004
|
erstellt am: 29. Sep. 2006 16:48 <-- editieren / zitieren --> Unities abgeben:
Erstmal Danke für die Mühe! Nein, Du hast die Frage nicht richtig verstanden.... aber die war auch nicht tutti formuliert. Ich hab die Namen einiger B_Refs,welche so ein riesen Dinger sind und Seiten, Kanten etc. repräsentieren. Diese hab ich mit einem ähnlichen Programm wie dem von Dir ausgelesen und als StringArray in eine Liste gepackt. Jetzt möchte ich einzelne B_Ref - Strings aus dieser Liste wieder in eine Selction packen, so dass sie quasi in meinem Catia Modell markiert sind (um irgendwas mit Ihnen anzustellen). Kann mir irgendjemand einen Tip geben, wie ich die Dinger über den Namen wiederfinde? Mit CreateObjectFromName, GetItem etc. hab ichs nicht hingekriegt. Gruß Jörg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Augustiner Mitglied Konstrukteur
Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 29. Sep. 2006 17:57 <-- editieren / zitieren --> Unities abgeben: Nur für jwiedemann
|
noir333 Mitglied Ingenieur
Beiträge: 148 Registriert: 27.01.2004 Dell Precision 450 Dual Xeon, 2MB RAM, XP SP2, NX3 V5R17SP3
|
erstellt am: 02. Okt. 2006 23:27 <-- editieren / zitieren --> Unities abgeben: Nur für jwiedemann
Hallo Jörg, also, die Sache ist die: Was Du in den Strings hast, sind sogenannte Breps: Breps sind Unterelemente von Objekten (Kanten, Scheitelpunkte, Teilflächen). Da sie keine Objekte sind, kann man Sie nicht mit Objekt-Befehlen behandeln. Was man dazu erzeugen kann, sind referenzen: Hier mal nur zur Veranschalichung ein Code von mir, der alle Teilflächen aus einem Flächenverband oder Solid ausliest, anschließend werden dazu Kopien der Einzelflächen (das sind Objekte) erzeugt. Mir ist klar, dass dies dir noch nicht weiterhilft. SelFilter(0) = "BiDim" Stat = "Normal" MyPartDoc.Selection.Clear() Stat = MyPartDoc.Selection.SelectElement2(SelFilter, "Flächenkörper auswählen", True) oSel = MyPartDoc.Selection.Item(1).Value MyPartDoc.Selection.Search("Topology.CGMFace,sel") ci = MyPartDoc.Selection.Count For i = 1 To ci TeilFaces(i) = MyPartDoc.Selection.Item(i).Value TeilFacesNamen(i) = TeilFaces(i).Name.Replace("Selection_", "") i2 = TeilFacesNamen(i).LastIndexOf(";") ci2 = TeilFacesNamen(i).Length - i2 TeilFacesNamen(i) = TeilFacesNamen(i).Remove(i2, ci2) reference1 = MyPart.CreateReferenceFromBRepName(TeilFacesNamen(i) & ";WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14)", oSel) hse(i) = hybridShapeFactory1.AddNewExtract(reference1) hse(i).PropagationType = 3 hse(i).ComplementaryExtract = False hse(i).IsFederated = False hybridBody1.AppendHybridShape(hse(i)) MyPart.InWorkObject = hse(i) Next MyPart.Update() MsgBox("In " & SetName & " " & CStr(i) & " Flächen extrahiert.") Dein Problem ist, ich weiß nicht, wie man referenzen zur Selection hinzufügen kann. Wenn ich was finde, melde ich mich.... ------------------ Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jwiedemann Mitglied Student
Beiträge: 6 Registriert: 02.12.2004
|
erstellt am: 03. Okt. 2006 12:40 <-- editieren / zitieren --> Unities abgeben:
|
noir333 Mitglied Ingenieur
Beiträge: 148 Registriert: 27.01.2004 Dell Precision 450 Dual Xeon, 2MB RAM, XP SP2, NX3 V5R17SP3
|
erstellt am: 06. Okt. 2006 18:35 <-- editieren / zitieren --> Unities abgeben: Nur für jwiedemann
Hallo Jörg, ich hab's: Die Antwort ist Trivial, auch Referenzen lassen sich mit mysel.add hinzufügen!!! hier ein code-Beispiel: Dim brepname As String Dim i2, ci2 As Integer Dim reference1 As Reference Selfilter(0) = "Face" Selfilter(1) = "Edge" Stat = "Normal" oSel = Nothing Mysel.Clear() Stat = Mysel.SelectElement2(Selfilter, "Fläche1 auswählen", True) oSel = Mysel.Item(1).Value brepname = oSel.Name.Replace("Selection_", "") i2 = brepname.LastIndexOf(";") ci2 = brepname.Length - i2 brepname = brepname.Remove(i2, ci2) oselp = oSel.Parent reference1 = MyPart.CreateReferenceFromBRepName(brepname & ";WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14)", oSel) Mysel.Clear() Mysel.Add(reference1) Keine Fehlermeldung und das Brep ist selektiert !!!! Mit Edge habe ich es aber noch nicht probiert, aber Faces gehen ohne Probleme. Wer hätte das gedacht.... ------------------ Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jwiedemann Mitglied Student
Beiträge: 6 Registriert: 02.12.2004
|
erstellt am: 11. Okt. 2006 14:15 <-- editieren / zitieren --> Unities abgeben:
Mensch, der gehhhht! Super Sache. Ich hätte gleich drauf kommen können, dass man an dem BRep rumschrauben muß.
Vielen Dank,
Jörg Wiedemann [Diese Nachricht wurde von jwiedemann am 11. Okt. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AndiKrue Mitglied Berater
Beiträge: 72 Registriert: 04.12.2008 Windows XP Prof x64 Edition Intel Xeon W3520 @ 2.67 GHz 8 GB RAM, Nvidia Quadro FX 1800 CATIA V5R19
|
erstellt am: 08. Apr. 2009 12:56 <-- editieren / zitieren --> Unities abgeben: Nur für jwiedemann
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|