| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Journal soll Journal starten (2426 mal gelesen)
|
Supermario Mitglied
Beiträge: 305 Registriert: 27.02.2004 UG NX10 TCUA
|
erstellt am: 07. Apr. 2008 11:13 <-- editieren / zitieren --> Unities abgeben:
Hallo @all im Forum habe ich nichts gefunden, darum Frage ich Euch! Kann ich von einen Journal aus ein weiteres Journal starten. vb wird mit ".Start()" nicht erkannt. Oder doch? '----------------------------------------------------- Dim journalstart As New Process() Dim Journal_Pfad as string = "C:\Versuchsprog.vb" journalstart.StartInfo.FileName = Journal_Pfad journalstart.Start() '---------------------------------------------- Hat von Euch einer eine Idee oder kennt einen Beispielcode? Danke Mario [Diese Nachricht wurde von Supermario am 07. Apr. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 09. Apr. 2008 12:41 <-- editieren / zitieren --> Unities abgeben: Nur für Supermario
Hallo Mario, vor einiger Zeit hatte ich mal was ähnliches gesucht, leider ohne Erfolg. Es besteht aber die, Dir sicher bekannte Möglichkeit, das zweite Journal im Ersten als Function unterzubringen. spricht da was dagegen ? Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Supermario Mitglied
Beiträge: 305 Registriert: 27.02.2004 UG NX10 TCUA
|
erstellt am: 09. Apr. 2008 13:34 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, danke für Deinen Tipp. Mit dem Funktionsaufruf kann ich sicher das gleiche Ergebnis erzielen. Ist eine gute Alternative! Ich vermute, Journal starten aus dem Journal funktioniert nicht. Gruß Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 09. Apr. 2008 13:43 <-- editieren / zitieren --> Unities abgeben: Nur für Supermario
|
Supermario Mitglied
Beiträge: 305 Registriert: 27.02.2004 UG NX10 TCUA
|
erstellt am: 10. Apr. 2008 08:50 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von mseufert: Sehe ich auch so, bis die Erkenntnis oder ein Wissender das Gegenteil beweist.
Bis dahin werden wir wohl weiter in den Untiefen von Unigraphics nach der konstruktiven Erfüllung unserer Wünsche suchen! Gruß Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 14. Apr. 2008 09:23 <-- editieren / zitieren --> Unities abgeben: Nur für Supermario
Hallo Mario, Schritt für Schritt geht auch dieses Thema voran: Ein Journal aus einem anderen heraus zu starten geht wie folgt: Dim rj_exe As String = "C:\Program Files\UGS\NX 5.0\UGII\run_journal.exe" Dim j2run As String = "D:\Visual Studio 2005\Projects\call-test\j_called.vb" Dim dq As String = Chr(34) Dim bl As String = Chr(32) Dim proc_id As Integer = -1 Dim sh_str As String = dq & rj_exe & dq & bl & dq & j2run & dq proc_id = Shell(sh_str, AppWinStyle.NormalFocus, True, 100) Soweit die Theorie. Das aufgerufene (zweite) Journal läuft allerdings als separater Prozeß, in der Praxis fehlt leider noch der Zugriff auf die Session, aus der das gestartet wurde. Das nächste Thema wird daher wohl Multithreading heissen ... mal sehen. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Supermario Mitglied
Beiträge: 305 Registriert: 27.02.2004 UG NX10 TCUA
|
erstellt am: 14. Apr. 2008 10:06 <-- editieren / zitieren --> Unities abgeben:
|
Tömme Mitglied Teamcenter Administrator
Beiträge: 195 Registriert: 19.12.2007
|
erstellt am: 01. Apr. 2009 15:09 <-- editieren / zitieren --> Unities abgeben: Nur für Supermario
ist nochmal jemand bei dem thema weitergekommen? der letzte vorschlag von mseufert ist schon hilfreich, da allerdings beim 2. gestarteten journal kein zugriff auf die aktuelle session vorhanden ist, bringt einem das auch nicht viel weiter. hat jemand ne idee? ich würde gerne ein grafisches menü bauen, woraus dann unsere ganzen journal-tools gestartet werden, und da diese mitlerweile immer mehr werden, und auch eigene benutzeroberfläche mitbringen, wäre ein verpacken aller tools in eine große .vb datei als funktionen kaum möglich. würde mich echt über weitere lösungsvorschläge freuen ------------------ hab doch garnix gemacht .. außer den server neugestartet .. war das etwa falsch? [Diese Nachricht wurde von Tömme am 01. Apr. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 01. Apr. 2009 17:59 <-- editieren / zitieren --> Unities abgeben: Nur für Supermario
Hallo Tömme, eine einfache Möglichkeit wäre, die Aufrufe für die häufig benutzten Journals in einer eigenen Toolbar unterzubringen. Weitere Alternative: Die Anwendungen kompilieren, was allerdings eine Lizenz voraussetzt. Journal aus Journal starten mit Zugriff auf die Session hab' ich nicht weiter verfolgt. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tömme Mitglied Teamcenter Administrator
Beiträge: 195 Registriert: 19.12.2007
|
erstellt am: 02. Apr. 2009 10:17 <-- editieren / zitieren --> Unities abgeben: Nur für Supermario
nja, das hab ich mir schon fast gedacht lizenzen .. naja billig sind die auch nicht grad, und da diese nicht unbedingt nötig sind *hmm* momentan befinden sich meine ganzen tools auch in einer toolbar. aber son schönes menü wie bei den ugtools wär natürlich einfach hübscher. ------------------ hab doch garnix gemacht .. außer den server neugestartet .. war das etwa falsch? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 06. Apr. 2009 11:45 <-- editieren / zitieren --> Unities abgeben: Nur für Supermario
Hallo Tömme, ist zwar nur eine Idee - aber vielleicht einen Versuch wert: Die C:\Program Files\UGS\NX 5.0\UGII\run_journal.exe bietet m.W. die Möglichkeit, Argumente an die Sub Main des ausgeführten Journals zu übergeben (/args). Damit könntest Du mal probieren, Session und UFSession des aufrufenden Journals im aufgerufenen zu verwenden. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jan Boettcher Mitglied
Beiträge: 183 Registriert: 22.06.2005
|
erstellt am: 27. Aug. 2009 16:05 <-- editieren / zitieren --> Unities abgeben: Nur für Supermario
Hallo , Wens noch interessiert: Da ich auch ein Journal aus einem Journal ausführen musste, habe ich ein bisschen probiert und dabei ist das Folgende herausgekommen (in C#):
Code:
using System; using System.Reflection; using System.IO; using System.CodeDom.Compiler; using Microsoft.CSharp; using NXOpen; ... //Create compiler ICodeCompiler compiler = new CSharpCodeProvider().CreateCompiler(); CompilerParameters parameters = new CompilerParameters(); //Add dlls required parameters.ReferencedAssemblies.Add("System.dll"); parameters.ReferencedAssemblies.Add(@"E:\Programme\UGS\NX6.0\ugii\manage\NXOpen.dll"); parameters.ReferencedAssemblies.Add(@"E:\Programme\UGS\NX6.0\ugii\managed\NXOpenUI.dll"); parameters.ReferencedAssemblies.Add(@"E:\Programme\UGS\NX 6.0\ugii\managed\NXOpen.UF.dll"); parameters.ReferencedAssemblies.Add(@"E:\Programme\UGS\NX 6.0\ugii\managed\NXOpen.Utilities.dll"); //Compile it parameters.GenerateInMemory = true; CompilerResults compiled = compiler.CompileAssemblyFromFile(parameters,@"<Pfad>\NXJournal.cs"); if (compiled.Errors.HasErrors) { string errorMsg = ""; errorMsg = compiled.Errors.Count.ToString() + " Errors:"; for (int x = 0; x < compiled.Errors.Count; x++) errorMsg = errorMsg + "\r\nLine: " + compiled.Errors[x].Line.ToString() + " - " + compiled.Errors[x].ErrorText; throw new Exception(errorMsg); } //Run the Main Assembly assembly = compiled.CompiledAssembly; Type mainClass = assembly.GetType("NXJournal"); mainClass.GetMethod("Main").Invoke(null, new Object[] { args }); ...
Das vorgegebene Journal wird zur Laufzeit mit Bordmitteln compiliert und dann nachgeladen. Das kann man sicher noch etwas hübscher gestalten, aber so klappts. (Quelle .net Lösung: Rick Strahl. Danke!)Viel Spass! Jan
------------------ Ingenieurbüro Jan Böttcher www.ib-boettcher.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Siassei Mitglied MB - Student
Beiträge: 490 Registriert: 08.07.2007 SWX NX 3 und höher ;) Windows and UNIX<P>C, C++, Java, Phyton,...</P>
|
erstellt am: 29. Aug. 2009 10:44 <-- editieren / zitieren --> Unities abgeben: Nur für Supermario
Servus, bei größeren Skripten führt das dyn. Compileren zu großen Ausführungszeiten. Es lassen sich auch vorkompilierte DLL's nutzen. Visual Studio Express kann hier als kostenloses Tool für den Einstieg genutzt werden. Siehe Link. ------------------ Hopfen und Mals Gott erhalts Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jan Boettcher Mitglied
Beiträge: 183 Registriert: 22.06.2005
|
erstellt am: 30. Aug. 2009 09:31 <-- editieren / zitieren --> Unities abgeben: Nur für Supermario
|
| Projektleiter:in Ingenieurholzbauprojekte | Hier bei WIEHAG in Altheim, Innviertel, fertigen wir weit gespannte Holz-Tragsysteme zu außergewöhnlichen Architekturbauten und Komplettdächer für Sport-, Messe- und Industriehallen. Mit unseren Projekten sind wir in der ganzen Welt zuhause! In unserem Familienunternehmen wollen wir mit Menschen arbeiten, die ihre Arbeit mit Begeisterung tun. Wir bauen mit dem nachwachsenden Rohstoff Holz die Welt von morgen, mit einzigartigen Projekten Made in Altheim.... | Anzeige ansehen | Teamleitung, Gruppenleitung |
|
Tömme Mitglied Teamcenter Administrator
Beiträge: 195 Registriert: 19.12.2007 TC 11.5.0 mit NX12
|
erstellt am: 31. Aug. 2009 09:33 <-- editieren / zitieren --> Unities abgeben: Nur für Supermario
ist für das dynamische kompilieren bzw. das vorkomplilieren eine open_author lizenz erfolderlich? ------------------ hab doch garnix gemacht .. außer den server neugestartet .. war das etwa falsch? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |