Autor
|
Thema: HybridShapes später appenden (646 mal gelesen)
|
Adamewin Mitglied
Beiträge: 6 Registriert: 14.04.2014 CATIA V5 R21 SP2 HF 57, Programmierung in C#
|
erstellt am: 14. Apr. 2014 17:31 <-- editieren / zitieren --> Unities abgeben:
Hallo, in meinem aktuellen Projekt habe ich viele Geometrieelemente, die zwar erstellt (computed, upgedated), aber nicht appended werden, da es sich nur um Hilfsgeometrie handelt. Die Referenzen auf die Elemente habe ich auf einem Stack, so dass ich sie für weitere Operationen verwenden kann. Am Ende wird der Stack wieder durchlaufen und alle Elemente gelöscht. Insbesondere im Fehlerfall möchte ich jetzt aber einige Elemente doch Im Baum haben, kann sie aber nicht mehr appenden (der Versuch resultiert in einer COM Exception). Kennt jemand eine Möglichkeit, die letzten n Elemente vom Stack zum Baum hinzuzufügen? Das einzige, was mit zur Zeit einfällt, wäre alles sofort hinzuzufügen und überflüssiges später zu löschen. Bei der Zahl von Operationen um die es hier geht, wäre das allerdings ein erheblicher (nicht hinnehmbarer) Performance Verlust. 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: 14. Apr. 2014 18:19 <-- editieren / zitieren --> Unities abgeben: Nur für Adamewin
|
Adamewin Mitglied
Beiträge: 6 Registriert: 14.04.2014 CATIA V5 R21 SP2 HF 57, Programmierung in C#
|
erstellt am: 15. Apr. 2014 08:52 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 15. Apr. 2014 09:09 <-- editieren / zitieren --> Unities abgeben: Nur für Adamewin
Servus kannst du dann nicht deinen Stack per Schleife abarbeiten und zum GeoSet "appenden"? Oder stehe ich gerade auf dem Schlauch? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Adamewin Mitglied
Beiträge: 6 Registriert: 14.04.2014 CATIA V5 R21 SP2 HF 57, Programmierung in C#
|
erstellt am: 15. Apr. 2014 10:17 <-- editieren / zitieren --> Unities abgeben:
Hallo, per Schleife abarbeiten ist kein Problem, nur wenn ich versuche, das jeweilige Element zu "appenden", bekomme ich nur eine COM Exception (bzw. einen Automatisierungsfehler, wenn ich es mit VBA versuche).
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: 15. Apr. 2014 10:22 <-- editieren / zitieren --> Unities abgeben: Nur für Adamewin
|
Adamewin Mitglied
Beiträge: 6 Registriert: 14.04.2014 CATIA V5 R21 SP2 HF 57, Programmierung in C#
|
erstellt am: 15. Apr. 2014 10:46 <-- editieren / zitieren --> Unities abgeben:
Hallo, der Code sieht prinzipiell so aus: Stack<AnyObject> geo; intersSideSurf = GSDFactory.AddNewIntersection((Reference)pointsPlanesRes.Plane, (Reference)InputElements.SideSurface); intersSideSurf.Compute(); geo.Push(intersSideSurf); ... stuffBody.AppendHybridShape((HybridShape)geo.Pop()); ich übergebe also verschiedene HybridShapes. 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: 15. Apr. 2014 10:49 <-- editieren / zitieren --> Unities abgeben: Nur für Adamewin
Servus ich kenne mich in C# nicht aus. Wie sieht der Code in VBA aus? Musst du nicht die einzelnen Objekt an "AppendHybridShape" und nicht den ganzen Stack? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Adamewin Mitglied
Beiträge: 6 Registriert: 14.04.2014 CATIA V5 R21 SP2 HF 57, Programmierung in C#
|
erstellt am: 15. Apr. 2014 10:55 <-- editieren / zitieren --> Unities abgeben:
Hallo, VBA Code habe ich grade nicht greifbar. Aber die Zeile: stuffBody.AppendHybridShape((HybridShape)geo.Pop()); befindet sich in einer Schleife und übergibt jeweils das letzte Element auf dem Stack an AppendHybridShape. Die Objekte werden also einzeln übergeben. Verschiedene Reihenfolgen habe ich auch sschon - erfolglos - ausprobiert. 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: 15. Apr. 2014 15:00 <-- editieren / zitieren --> Unities abgeben: Nur für Adamewin
Liegts vielleicht eher daran, dass Deine CATIA-Session einen Zustand erreicht hat andem das nicht mehr möglich ist? Oder: Wenn Du Elemente nicht "appendest", dann landen sie automatisch unter dem nächsten Objekt, welches diese benutzt, vielleicht sind sie dadurch bereits irgendwo schon drangehangen und Du musst das nächst höhere Objekt finden. ------------------ 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 |