Autor
|
Thema: HybridShapeSplit - BothSidesMode 2tes Element auswählen (2275 mal gelesen)
|
Christrukteur Mitglied Ingenieur
Beiträge: 8 Registriert: 16.04.2010 CATIA V5R19 unter XP
|
erstellt am: 16. Jul. 2010 11:25 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, habe bei der Erstellung einer Trennung für ein Profil, wo ich im nachhinein beide Seiten behalten möchte, das Problem, dass ich die 2te Seite nicht mehr ausgewählt bekomme. Konkret: Dim hybridShapeSplit1 As HybridShapeSplit Set hybridShapeSplit1 = hybridShapeFactory1.AddNewHybridSplit(reference20, reference21, 1) hybridShapeFactory1.GSMVisibility reference20, 1 hybridShapeSplit1.BothSidesMode True body1.InsertHybridShape hybridShapeSplit1 part1.InWorkObject = hybridShapeSplit1 part1.Update Es entsteht das angehängte Bild. So jetzt möchte ich den 2ten Teil auswählen:
Dim hybridShapes1 As HybridShapes Set hybridShapes1 = body1.HybridShapes
Dim hybridShapeSplit1 As HybridShapeSplit Set hybridShapeSplit1 = hybridShapes1.item("Split.1") Da kommt dann nur die Fehlermeldung "The method Item failed". Hat jemand eine Idee woran das liegen könnte? Gibt es da einen Workaround?
Viele Grüße 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: 19. Jul. 2010 13:44 <-- editieren / zitieren --> Unities abgeben: Nur für Christrukteur
Hallo, also Idee woran das liegen könnte habe ich, jedoch keine Lösung, da der Fehler bei CATIA zu liegen scheint. Das Split.1 dürfte nicht unter .2 liegen, das ist nicht korrekt, da Split an sich kein Listenelement ist. Hervorgerufen wird das wahrscheinlich dadurch, dass nur 1 Element mit Append hinzugefügt wird. Die Methode Item liefert das Ergebnis nicht, da es Item von Split nicht geben dürfte und Split.1 nicht unter den HybridShapes hängt. Was ich probieren würde ist, das Ergebnis zu selektieren und eine Suche nach Split darüber laufen zu lassen, darin könnte dann das Ergebnis enthalten sein. Nächster Versuch wäre ein AppendHybridShape von einem GeoSet. ------------------ 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 |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 19. Jul. 2010 23:34 <-- editieren / zitieren --> Unities abgeben: Nur für Christrukteur
Hallo Christrukteur, die zweite Seite des Splites solltest Du wie folgt bekommen, allerdings nur als "Reference": Code: Dim hybridShapeSplit1Ref2 As Reference Set hybridShapeSplit1Ref2 = hybridShapeSplit1.GetOtherSide
Ich weiß ja nicht, was Du dann damit machen willst, doch vielleicht brauchst Du ja auch nur die "Reference"... mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 20. Jul. 2010 00:16 <-- editieren / zitieren --> Unities abgeben: Nur für Christrukteur
Hallo Christrukteur, falls Du doch das "HybridShape" brauchst, könntest Du notfalls auch so darauf zugreifen: Code: part1.InWorkObject = hybridShapeSplit1Ref2Dim selection1 As Selection Set selection1 = partDocument1.Selection selection1.Clear selection1.Add part1.InWorkObject selection1.Search "Name=" & hybridShapeSplit1Ref2.DisplayName & ",sel" Dim hybridShapeSplit2 As HybridShapeSplit Set hybridShapeSplit2 = selection1.Item2(1).Value part1.Update
mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern 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: 20. Jul. 2010 10:07 <-- editieren / zitieren --> Unities abgeben: Nur für Christrukteur
Kann man nicht das Part nach GetObjectFromName() oder so fragen um die Referenz aufzulö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 |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 20. Jul. 2010 23:20 <-- editieren / zitieren --> Unities abgeben: Nur für Christrukteur
Hallo allerseits, o.k., wenn "HoBLila" uns hier nur einen Brocken hin wirft ( ), bereite ich den Code mal auf: Code: Dim hybridShapeSplit2 As HybridShapeSplit Set hybridShapeSplit2 = part1.FindObjectByName(hybridShapeSplit1Ref2.DisplayName)
Ich bin mir aber nicht sicher, ob dies schneller ist, da hier im gesamten "CATPart" gesucht wird und nicht nur in dem "Geometrical Set", welches den "Split" enthält. mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CabinMaster Mitglied Diplomingenieur L&R
Beiträge: 19 Registriert: 31.07.2009 Windows XP Catia V5 R18 [und nein: Katja mag nur einen Prozessor zur Zeit benutzen] Makro mit CATVBS
|
erstellt am: 09. Sep. 2010 09:43 <-- editieren / zitieren --> Unities abgeben: Nur für Christrukteur
Eine knifflige Frage, die mich auch etwas Zeit gekostet hat. So ist meine Lösung: SplittedWin(ewin) ist mein HybridShapeSplit. Da ich viele Fenster habe, ist es ein Objekt-Array. Ich habe ihn bereits erstellt und einen Namen gegeben, jetzt aktiviere ich den "DothSidesMode"
Code: SplittedWin(ewin).BothSidesMode = True
Nun will ich die entstandene Oberfläche haben, das ist gar nicht so einfach. Ich erstelle eine Referenz auf die andere Seite.
Code: Set ref = SplittedWin(ewin).GetOtherSide
Eine Referenz ist kein Objekt, dementsprechend suche ich das Objekt anhand seines angezeigten Namens. Das ist von hinten durch die Brust ins Auge, aber funktioniert.
Code: Set WindowSurface(total_win) = P.Part.FindObjectByName(ref.DisplayName)
Die folgenden Zeilen sind dafür da, mir vor einem Laufzeitfehler noch kurz zu sagen was schief lief.
Code: If TypeName(WindowSurface(total_win))="Nothing" Then MsgBox "Object not found for " & win_nr & ", expect error!" End If
Jetzt ganz wichtig: immer schön einen Namen geben! Wer richtig Namen verteilt und in die richtigen HybridBodies legt, der erspart sich viel Ärger.
Code: WindowSurface(total_win).Name = "Window" & total_win
Im angefügten Bild sieht man mehr. Dabei habe ich eine Fensterschnittfläche mal wieder eingeblendet. Man beachte auch den Strukturbaum, mit vielen schönen eindeutigen Namen. So finde ich jedes Teil hinterher auch wieder.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|