| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| | |
 | BOM Assistant für Stücklistenerstellung , eine App
|
|
Autor
|
Thema: Jlink: Model regenerieren - Fehlermeldung (1104 mal gelesen)
|
magic_halli Mitglied
 
 Beiträge: 361 Registriert: 03.07.2006 WF2 M210 / WF3 M110 Linux Fedora C4 WinXP Pro Java 1.6.0_06
|
erstellt am: 14. Mrz. 2007 09:19 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich möchte lediglich eine geöffnete Baugruppe regenerieren. Dazu habe ich nur diese Stück Code am laufen, welches ich auf die geöffnete BG anwende:
Code:
RegenInstructions inst = pfcSolid.RegenInstructions_Create(new Boolean(false), null, null); Solid solid = (Solid) model; solid.Regenerate(inst);
Ich erhalte hierbei immer die Fehlermeldung "...pfcException@XToolkitRegenereateAgain". Diese erscheint, nachdem dieses Fenster mit dem Regenerationsstatus durchgelaufen ist.Woran kann das liegen? Habe ich irgendwas falsch gemacht oder muss man hierbei irgendwas beachten? Gruß und Danke.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
anagl Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 4566 Registriert: 28.05.2001 CREO2 M140 PDMLink 10.2 M020 HW diverse Das Schreiben bei CAD.de ist freiwillig und kein Muss !!!!!
|
erstellt am: 14. Mrz. 2007 09:38 <-- editieren / zitieren --> Unities abgeben:          Nur für magic_halli
Die Exception sagt Du musst nochamls regenerieren wie sieht es interaktiv aus ? Musst Du auch mehrmals regenerieren bist du einen grünen Punkt erhältst? Hast Du zirkulare Referenzen ? ------------------ Servus Alois Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
magic_halli Mitglied
 
 Beiträge: 361 Registriert: 03.07.2006 WF2 M210 / WF3 M110 Linux Fedora C4 WinXP Pro Java 1.6.0_06
|
erstellt am: 14. Mrz. 2007 09:45 <-- editieren / zitieren --> Unities abgeben:         
So, ich hab jetzt erstmal per Hand 2-3mal regeneriert und danach die Jlink-Funktion ausgeführt. Jetzt erscheint die Meldung erstmal nichtmehr. Aber das ist trotzdem dumm, denn einen Anwender bringt so eine Meldung in der Programmabarbeitung bestimmt aus dem Konzept?! Zumal ich diese automatische Regenerierung anwenden will, nachem per Jlink einige Parameter neu gesetzt wurden und danach geht die Programmabarbeitung ja noch weiter! Kann mann das nicht abschalten oder evtl. so gestalten, dass so oft automatisch von allein regeneriert wird, bis diese Fehlermeldung ihre Gültigkeit verliert? (Ich hoffe, die Frage ist verständlich ausgedrückt ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
anagl Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 4566 Registriert: 28.05.2001 CREO2 M140 PDMLink 10.2 M020 HW diverse Das Schreiben bei CAD.de ist freiwillig und kein Muss !!!!!
|
erstellt am: 14. Mrz. 2007 09:55 <-- editieren / zitieren --> Unities abgeben:          Nur für magic_halli
Zitat: Original erstellt von magic_halli: Kann mann das nicht abschalten oder evtl. so gestalten, dass so oft automatisch von allein regeneriert wird, bis diese Fehlermeldung ihre Gültigkeit verliert? (Ich hoffe, die Frage ist verständlich ausgedrückt )
Frage ist verständlich 1. Ich würde abklären warum mehrere Regen-Läufe nötig sind 2. Wenn 1.ja dann solange regenerieren bist du diese Exception nicht mehr hast 3.Abschalten macht doch keinen Sinn und ist nach meinen Kenntnisstand auch nicht möglich ------------------ Servus Alois Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
magic_halli Mitglied
 
 Beiträge: 361 Registriert: 03.07.2006 WF2 M210 / WF3 M110 Linux Fedora C4 WinXP Pro Java 1.6.0_06
|
erstellt am: 14. Mrz. 2007 10:10 <-- editieren / zitieren --> Unities abgeben:         
Wenn diese Meldung nicht abzuschalten geht, kann ich dass dann wenigstens irgendwie machen, dass nicht diese Meldung ausgeworfen wird, sondern ein nutzerfreundlicher Text ala: "Bitte regenerieren Sie!"??? Oder noch besser: Kann ich auswerten, ob eine/diese Exception geworfen wurde? Mal in Worten ausgedrückt: Wenn meine Funktion regenerateModel() eine Exception wirft (z.B. true/false abfragen), dann führe diese Funktion erneut aus. Wäre sowas evtl. zu realisieren? [Diese Nachricht wurde von magic_halli am 14. Mrz. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
magic_halli Mitglied
 
 Beiträge: 361 Registriert: 03.07.2006 WF2 M210 / WF3 M110 Linux Fedora C4 WinXP Pro Java 1.6.0_06
|
erstellt am: 14. Mrz. 2007 14:47 <-- editieren / zitieren --> Unities abgeben:         
So, ich hab jetzt als quasi Übergangslösung erstmal den Text der Message geändert, damit ein User auch weiß, was das bedeuten soll. Eine endgültige, von mir angestrebte Lösung ist jedoch die, dass ich einen Regenerierungsablauf hinbekomme, der erkennt, ob eine BG nochmal regeneriert werden muss. Dieser soll solange laufen, bis die BG vollständig regeneriert ist.
Kann man das mit Jlink realisieren? Hat schonmal jemand sowas gemacht, oder davon gehört? Gruß. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
magic_halli Mitglied
 
 Beiträge: 361 Registriert: 03.07.2006 WF2 M210 / WF3 M110 Linux Fedora C4 WinXP Pro Java 1.6.0_06
|
erstellt am: 14. Mrz. 2007 15:32 <-- editieren / zitieren --> Unities abgeben:         
 Ich habs gelöst, dass solange regeneriert wird, bis es nichts mehr zu regenerieren gibt! Ist eigentlich total einfach, aber eben erstmal drauf kommen Ich habe eine Funktion, die ein Model regeneriert und diese ruft sich rekursiv im Fehlerfalle auf: Code:
public void regenerateModel(Model model) throws Exception{ try{ RegenInstructions inst = pfcSolid.RegenInstructions_Create(new Boolean(false), null, null); Solid solid = (Solid) model; solid.Regenerate(inst); }catch(Exception err){ //im Fehlerfalle rekursiver Aufruf: regenerateModel(model); } }
So it works... Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bilch Mitglied

 Beiträge: 78 Registriert: 01.02.2005
|
erstellt am: 15. Mrz. 2007 08:03 <-- editieren / zitieren --> Unities abgeben:          Nur für magic_halli
Super Endlosschleife! Wenn irgendein Fehler auftritt (Welcher auch immer), dann soll sich die Funktion rekursiv aufrufen.
Code: }catch(Exception err){
Schon mal darüber nachgedacht, das es noch andere Fehler gibt? Wie wär es denn damit?
Code:
} catch (XToolkitRegenerateAgain err) { regenerateModel(model); /* Ich würde hier noch eine Exception werfen, wenn mehr als 4 mal regeneriert wird. (Stichwort Endlosschleife). */ } catch (Exception x) { // TODO: Warnung "x" ausgeben, damit man weiß was schief gelaufen ist. }
Ich halte es auch für bedenklich, wenn man Fehlermeldungen verwirft. Gruss. ------------------ "Ich will keine neuen Kommunikationsmittel. Ich will neue Technologien, mit denen ich die Leute davon abhalten kann, mit mir zu kommunizieren." Dilbert. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
magic_halli Mitglied
 
 Beiträge: 361 Registriert: 03.07.2006 WF2 M210 / WF3 M110 Linux Fedora C4 WinXP Pro Java 1.6.0_06
|
erstellt am: 15. Mrz. 2007 09:47 <-- editieren / zitieren --> Unities abgeben:         
Danke, Du hast recht mit der Endlosschleife... Du wirst es kaum glauben - die selben Gedanken sind mir heute früh auch durch den Kopf geschossen! Ich mache das jetzt so, dass einfach ein Parameter "Regenerieren" (Boolean) angelegt wird. Wenn dieser z.B. true oder gar nicht gesetzt ist (vom Konstrukteur), dann wird ganz normal rekursiv regeneriert bis von selbst Schluss ist, ansonsten maximal 10 mal rekursiv regenerieren. Der Parameter wird vom Konstrukteur angelegt. Die Konstrukteure haben mir hier gesagt, dass sie ganz genau wissen, ob man eine BG endlos regenerieren könnte - wegen irgendwelchen Sachen in den Beziehungen (kenne mich da nicht so aus). Von daher sollte das erstmal soweit alles abgefangen sein. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |