| | |
 | 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 - Programmausführung nur einmal möglich!? (197 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: 19. Sep. 2006 07:52 <-- editieren / zitieren --> Unities abgeben:         
Hi, ich habe ein Jlink-Programm, welches in ProE über einen Button im Menü integriert ist. Mein Programm macht dort verschiedene Sachen (u.a. pdf´s erzeugen) mit einer geöffneten Baugruppe. Soweit geht auch alles wunderbar... Wenn ich mein Programm zum ersten mal starte (über den Menübutton) läuft alles prima. Nur wenn ich direkt im Anschluß, nach der ersten Ausführung, nochmals mein Programm starten will, passiert gar nichts!!! Ich muss erst wieder ProE schließen und neu öffnen und dann gehts wieder für eine Ausführung bzw. ich lade eine völlig neue Baugruppe und lasse darauf mein Programm los - aber 2 mal hintereinander auf die gleich Baugruppe... das geht nicht! Ich frage mich nur warum??? Ist sowas vielleicht ein Speicherproblem - das da noch irgendwelche Variablen mit Werten im Speicher gehalten werden??? Meine Einstiegsfunktion, die auf den Buttonklick die Abarbeitung startet, ruft eigentl. nur andere Funktionen auf, die dann etwas machen. Am Schluß setze ich meine ArrayListen, die benötigt wurden, alle wieder auf null - somit sind die doch schonmal leer?!
Code:
//Klasse, welche beim Button-klick aufgerufen wird public class myCommand extends DefaultUICommandActionListener { static String dateinamePDF = null; static String dateinameDXF = null; static ArrayList checkname = new ArrayList(); static ArrayList matches = new ArrayList(); static ArrayList matchesPS = new ArrayList(); static ArrayList matchesPDF = new ArrayList(); //enthält alle Funktionalitäten hinter dem MenueButton public void OnCommand() { try { Session curSession = pfcGlobal.GetProESession(); Model model = curSession.GetCurrentModel(); //diverse Funktionen aufrufen ... //am Ende benutzte ArrayListen zurücksetzen //ArrayListen nullen checkname = null; matches = null; matchesPS = null; matchesPDF = null; } catch(jxthrowable err){ ... }
Muss ich vielleicht irgendwelche ProE-Eigenarten bedenken, wenn ich Programme auf Baugruppen bzw. Bauteile ausführen will (Speicherprobleme etc.)? Ich bin ratlos, warum die Ausführung auf eine Baugruppe nicht mehrmals geht, sondern erst wieder, nachdem ich ProE neu starte und die Baugruppe neu lade?!?!?! Hat jemand nen Tip für mich, oder auch schonmal sowas gehabt? Danke. EDIT: Kann der integrierte Button vielleicht das Programm nicht 2 mal hintereinander aufrufen, weil man ihn vielleicht irgendwie nochmal "aktualisieren" muss??? Der Button gleich wird bei ProE-Start eingebunden.
[Diese Nachricht wurde von magic_halli am 19. Sep. 2006 editiert.] [Diese Nachricht wurde von magic_halli am 19. Sep. 2006 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: 19. Sep. 2006 10:33 <-- editieren / zitieren --> Unities abgeben:         
Mittlerweile habe ich viel probiert und ich glaube, dass bei erneutem Aufrufen des Programms irgendwie die Session und das Model nicht mehr korrekt gesetzt werden bzw. gar nicht mehr gesetzt werden! Wenn ich z.B. auf eine Baugruppe mein Prog loslasse, danach diese Baugruppe schließe und alles wegnehme und dann in ein anderes Arbeitsverzeichnis wechsle und eine neue Baugruppe aufmache und bearbeiten lassen möchte... dann werden zwar Funktionen ausgeführt (an diese übergebe ich die 'Session curSession'), allerdings liefern diese noch Ergebnisse der vorhergehenden Programmabarbeitung. Das sagt mir ja, das die Session (und auch Model) irgendwie nicht auf eine neu geladene Baugruppe gesetzt wird?!?! Kann ich eine Session und Model auch irgendwie regenerieren bzw. refreshen oder so??? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GüntherP Mitglied CAD Administrator / Konstrukteur

 Beiträge: 82 Registriert: 18.02.2005 HP xw4100 NVIDIA Quadro 980XGL<P>Wildfire 2.0 / 3.0 Intralink 3.4 F000 PDMLink 8.0 M030
|
erstellt am: 19. Sep. 2006 11:43 <-- editieren / zitieren --> Unities abgeben:          Nur für magic_halli
Hallo, läuft das Programm beim zweiten Aufruf problemlos durch oder wird eine Exception geworfen? Bei mir kann ich die Funktion so oft aufrufen wie ich möchte und ohne Probleme. Also wenn du es noch nicht machst, solltest du die Exceptions in eine eigene log Datei schreiben. Gruß, Günther 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: 19. Sep. 2006 13:37 <-- editieren / zitieren --> Unities abgeben:         
Jetzt kann ich´s endlich mehrmals durchlaufen lasse... Das ganze lag an meiner statischen Variablenvereinbarung! Ich habe jetzt alle statischen Sachen rausgenommen, umgeschrieben und nach Stunden gehts endlich wie ich mir das erhofft habe. Bei der Fehlersuche deutete alles auf nicht korrekte Session und Model beim nochmaligen ausführen hin - dies hat sich jetzt allerdings als falsche Annahme erwiesen. Sorry für den doch relativen "Sinnlospost", was den Allgemeinnutzen anbelangt Gruß Rico. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Pro_Blem Ehrenmitglied V.I.P. h.c. Tschechischer Zeichner

 Beiträge: 2952 Registriert: 24.07.2006 HP Elitebook8740w Core i7, 8GB Win7 x64 Pro/E WF4 M180(M220) Creo1.0 M020 (Adv.XE mit AAX) StartupTools2012 Pro/I 3.4 M070
|
erstellt am: 19. Sep. 2006 13:54 <-- editieren / zitieren --> Unities abgeben:          Nur für magic_halli
Zitat: Original erstellt von magic_halli:
Sorry für den doch relativen "Sinnlospost", was den Allgemeinnutzen anbelangt Gruß Rico.
Mahlzeit! ... an dem solls wahrlich nciht liegen. Vielleicht ist der Eine oder Andere jetzt besser sensibilisiert und macht den gleichen Fehler nicht. Außerdem, wenn Du's vorher gewußt hättest, hättest Du nicht gefragt. Meine Meinung: Nur rein damit! Grüße, Baste ------------------ Wir hatten nie 'ne Schulung in Pro/E Wir hatten nie 'ne Schulung in Pro/I Wir haben keinen Wartungsvertrag Wir haben keinen Admin Wir haben trotzdem Spaß! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |