Autor
|
Thema: Fehler beim Erzeugen eines Offset erkennen (1247 mal gelesen)
|
DiNo_68 Mitglied
Beiträge: 7 Registriert: 17.11.2005
|
erstellt am: 13. Jan. 2006 14:26 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich möchte im VB-Skript erkennen, ob der Offset einer HybridShape korrekt funktioniert hat. Interaktiv bekommt man ja eine Meldung "Some sub-elements are erroneous: ..." wenn es Faces gibt, bei denen der Offset scheitert. Im Makro mache ich durch HybridShapeFactory.AddNewOffset eine Offset-Fläche, füge sie zu einem OpenBody hinzu und mache einen Update auf das Part. Wenn ich nun den Offset einer Fläche erzeugen möchte, für die es interaktiv die oben beschriebene Fehlermeldung gibt, erkenne ich während des Skripts nicht, dass es ein Problem gab. Lediglich nach Ende des Skripts zeigt das "!"-Symbol im Strukturbaum an, dass die Geometrie ein Problem hat - und effektiv sieht man überhaupt keine Offset-Geometrie. Weiß jemand, wie ich den Fehler im Skript erkennen kann? Ich habe es schon erfolglos mit den "TrickyFace"-Routinen versucht, die in HybridShapeOffset bereitgestellt werden. Bin dankbar für jede Lösung!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
romanoir2005 Mitglied
Beiträge: 62 Registriert: 22.02.2005
|
erstellt am: 13. Jan. 2006 17:41 <-- editieren / zitieren --> Unities abgeben: Nur für DiNo_68
Hallo DiNo, Du musst beim Offset den SuppressMode auf False setzen, danach kannst Du schauen ob es Tricky-Faces gibt (musst vorher evtl. ein Compute ausführen). Alternativ könntest Du auch einfach ein Update des Parts durchführen und mit "On Error Goto" abfangen ob ein Fehler aufgetreten ist. Hope that helped. r. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DiNo_68 Mitglied
Beiträge: 7 Registriert: 17.11.2005
|
erstellt am: 17. Jan. 2006 16:34 <-- editieren / zitieren --> Unities abgeben:
Hallo romanoir, der Tipp mit UpdateObject und Fehlerabfrage war hilfreich. Allerdings hat das Abfragen mit GetTrickyFace immer zum Absturz geführt. Wie muss man vorgehen, um die TrickyFaces zu bekommen?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Data Exchange Expert (m/w/d) | - Bereitstellung, Verteilung und Aktualisierung von Daten im Rahmen des International Collaborative Engineerings
- Entwicklung und Automatisierung zuverlässiger und skalierbarer Lösungen und Methoden für die effiziente Weitergabe von Produktdaten
- Analyse von Verbesserungspotenzialen im Bereich des gemanagten Datenaustauschs
- Bildung der Schnittstelle ...
| Anzeige ansehen | Datenbankentwicklung, Data Warehouse, Business Intelligence |
|
romanoir2005 Mitglied
Beiträge: 62 Registriert: 22.02.2005
|
erstellt am: 24. Jan. 2006 09:42 <-- editieren / zitieren --> Unities abgeben: Nur für DiNo_68
Hallo DiNo, das mit dem TrickyFace ist in der Tat etwas "tricky", da man bei der Abfrage die Id-Nummer der Fläche angeben muss aber nirgendwo rausbekommt wieviele solcher TrickyFaces Catia überhaupt gefunden hat. Wenn man eine Id-Nummer angibt die Catia nicht kennt schmiert der ganze Bock wie Du gemerkt hast ab. Abhilfe schafft ein kleiner Trick: Du fügst als aller erstes mit AddTrickyFace eine beliebige andere Fläche als Endmarker hinzu. Jetzt gehst Du in einer While Schleife so lange über alle TrickyFaces (also mit GetTrickyFace(i) und i wird von 1 an hochgezählt) bis es sich bei der erhaltenen Fläche um Deinen eigenen Endmarker handelt (kannst Du abfragen indem Du prüfst ob der "DisplayName" der Fläche der gleiche ist wie der Deines Endmarkers). Damit sollte es funktionieren. Greez, r.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |