| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
| |
 | Gewindebemassung , eine App
|
Autor
|
Thema: Grip externes Programm (2386 mal gelesen)
|
little_ug Mitglied CAX/PDM Admin / PM
 
 Beiträge: 389 Registriert: 20.03.2003 NX 7.5.4.4 mp1 Creo2 M020 TC UA 9.1.1.2
|
erstellt am: 08. Jan. 2004 09:04 <-- editieren / zitieren --> Unities abgeben:         
Hallo Zusammen, habe mir ein kleines grip progrämmchen geschrieben in dem ich mit dem Befehl XSPAWN ein Externes Programm aufrufe. XSPAWN/'cmd.exe','/c','call P:\Programme......' Habe jetzt aber das Problem das ich zuerst dieses Programm wieder beenden muss befor ich im UG weiterarbeiten kann. Hab auch schon probiert ne '.bat' aufzurufen, das Programm über diese zu starten und diese dann mit exit zu verlassen. ich hoffe ihr habt Ideen vielen Dank im vorraus Little_ug
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Röhrig Mitglied
 
 Beiträge: 189 Registriert: 14.07.2001
|
erstellt am: 08. Jan. 2004 11:56 <-- editieren / zitieren --> Unities abgeben:          Nur für little_ug
|
Billyboy Mitglied Projektleiter, 3D- Designer
 
 Beiträge: 121 Registriert: 11.09.2003 Windows XP SP3 (32 bit) NX4 ProE WF4
|
erstellt am: 08. Jan. 2004 12:08 <-- editieren / zitieren --> Unities abgeben:          Nur für little_ug
|
little_ug Mitglied CAX/PDM Admin / PM
 
 Beiträge: 389 Registriert: 20.03.2003
|
erstellt am: 08. Jan. 2004 14:04 <-- editieren / zitieren --> Unities abgeben:         
Hi, danke für eure schnelle Hilfe. Es gibt nur ein Problem! Auszug aus der Hilfe: CONCUR: Minor word which indicates that the specified program or system command is to be executed concurrently with the GRIP program. If CONCUR is included, the GRIP program will not wait for that program or system command to finish executing before continuing with the next GRIP statement. Any attempt to run an interactive program concurrently with Unigraphics NX will fail. Unigraphics NX cannot share its terminal with another process. Befehlszeile sieht jetzt so aus: XSPAWN/CONCUR,'P:\Programme\macros\tkl\cat.bat' habt ihr noch andere Ideen. Danke Michael ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
romu Mitglied Masch. Ing. HTL

 Beiträge: 36 Registriert: 03.03.2003
|
erstellt am: 13. Jan. 2004 17:57 <-- editieren / zitieren --> Unities abgeben:          Nur für little_ug
Hallo little_ug Probier das beiliegende Programm. Dieses sollte man aus einem Grip-Programm aufrufen mit : XSPAWN/CONCUR,'x:\...\start_shell.exe p=c:\winnt\notepad.exe' Das start_shell.exe macht nichts anderes als Dein Programm anzustarten ohne auf die Beendigung zu warten. Grip erhält dann die Meldung zurück dass das start_shell.exe beendet hat und macht in seinem Code weiter. Wichtig ist einzig dass der Parameter mit ' p=' angegeben wird. Ich hoffe es funktioniert, habe das Ding nur aus einem DOS-Shell getestet, nicht aber aus Grip. Aber eigentlich müsste das so klappen. Gruss romu ------------------  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
little_ug Mitglied CAX/PDM Admin / PM
 
 Beiträge: 389 Registriert: 20.03.2003 NX 7.5.4.4 mp1 Creo2 M020 TC UA 9.1.1.2
|
erstellt am: 13. Jan. 2004 19:04 <-- editieren / zitieren --> Unities abgeben:         
Vielen Dank romu, jetzt funzt es (volle 10 unities)! Ähh aber noch eine Frage kann ich in macros oder grip-programmen Variablen für meine Programmpfade auswerten? Wenn ja wie? Ihr wisst ja bei grip nur 80 zeichen. Vielen Dank, Michael ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
romu Mitglied Masch. Ing. HTL

 Beiträge: 36 Registriert: 03.03.2003
|
erstellt am: 13. Jan. 2004 22:00 <-- editieren / zitieren --> Unities abgeben:          Nur für little_ug
Hallo little_ug Das mit der grossen Parameterübergabe ist schon ein Problem. Ich hatte diese Anforderung ebenfalls und habe keine Lösung mit direkter Uebergabe von Informationen über Parameter gefunden. Habe dann auf die gute alte Methode der Uebergabe von Werten über Textfiles realisiert. Du könntest beispielsweise mit Grip in eine Textdatei schreiben und als Parameter dem aufzurufenden Programm diesen Dateinamen übergeben. Das externe Programm liest dann die Textdatei und verarbeitet die darin enthaltenen Informationen. Geschwindigkeitsprobleme sind dabei nicht zu erwarten, das geht einfach schwups auf der einen Seite raus und schwups auf der anderen Seite wieder rein. Die Menge der Information ist ebenfalls unbeschränkt. Aber mal ne Frage: was hast Du eigentlich genau im Sinn zu tun mit all dem Zeugs ? Etwa das gleiche wie ich bereits gemacht habe ?? Gruss romu ------------------  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
little_ug Mitglied CAX/PDM Admin / PM
 
 Beiträge: 389 Registriert: 20.03.2003 NX 7.5.4.4 mp1 Creo2 M020 TC UA 9.1.1.2
|
erstellt am: 14. Jan. 2004 09:13 <-- editieren / zitieren --> Unities abgeben:         
Hi romu, möchte aus ug ein step-file rausschreiben, dann ein externes anderes programm starten, und da dies mit tcl/tk geschrieben ist, dort gleich wieder einlesen zum weiterarbeiten. Eingentlich also nur klickverringerung. Nochmal zu den Variablen. Möchte hier eigentlich nur die Pfade auswerten! z.B. set TMP=S:\temp Gruss Michael ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
romu Mitglied Masch. Ing. HTL

 Beiträge: 36 Registriert: 03.03.2003
|
erstellt am: 14. Jan. 2004 10:39 <-- editieren / zitieren --> Unities abgeben:          Nur für little_ug
Hallo Michael Wenn ich das richtig sehe möchtest Du in Grip eine Umgebungsvariable auswerten. Also ungefähr so: STRING/TEMPDIR(100) STRING/MLDG(250) TEMPDIR='' TEMPDIR=ENVVAR/'TEMP',ASK JUMP/END2: IF/TEMPDIR=='', JUMP/END1: END1: MESSG / 'Sche... TEMP nicht definiert !!!!' JUMP/END3: END2: MLDG='TEMP='+TEMPDIR MESSG/MLDG END3: HALT Gruss romu ------------------  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
little_ug Mitglied CAX/PDM Admin / PM
 
 Beiträge: 389 Registriert: 20.03.2003 NX 7.5.4.4 mp1 Creo2 M020 TC UA 9.1.1.2
|
erstellt am: 15. Jan. 2004 10:23 <-- editieren / zitieren --> Unities abgeben:         
Hi romu, bin bis jetzt schon wirklich weit gekommen, dank deiner Hilfe! Hab jetzt eigentlich nur noch eine Frage. Man kann ja mit grip kein macro aufrufen aber mit macros ein grip! So jetzt bräuchte ich also diese umgebungsvariablen auch im Macro! geht das? z.B. MENU, 0, UG_FILE_RUN_GRIP UG_GATEWAY_MAIN_MENUBAR ! FOCUS CHANGE IN 1 FOCUS CHANGE OUT 1 FOCUS CHANGE IN 1 FILE_BOX -2, P:\Programme\macros\tkl\cat.grx P:\Programme\macros\tkl\*.GRX 0 ! Execute GRIP FOCUS CHANGE OUT 1 FOCUS CHANGE OUT 1 FOCUS CHANGE IN 1 DIALOG_END -2, 0 und hier halt das P:\Programme...... durch eine Umgebungsvariable ersetzen! vielen Dank Michael ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Hogger Moderator Maschinenbauingenieur
       
 Beiträge: 3990 Registriert: 06.10.2000 UG V2 bis UG V18 NX1 bis NX2008 ("NX19")
|
erstellt am: 15. Jan. 2004 16:49 <-- editieren / zitieren --> Unities abgeben:          Nur für little_ug
Hallo zusammen, ich war wieder einige Tage unterwegs und komme etwas spät zur Diskussion dazu. Das Miste ist bereits gesagt: Mit GRIP Daten auszutauschen läuft entweder über Textdateien oder über Umgebungsvariablen. Die Umgebungsvariablen werden z.B. vor dem UG-Aufruf gesetzt z.B. in der ugii.bat. Das klappt sowohl unter Windows wie auch unter UNIX (z.B. in ugmenu.ksh). Man kann GRIP auch im Batch-Mode starten (*.bat bzw. in UNIX mit einem Shellscript). Dabei kann man dem GRIP-Programm auch einen Parametersting mitgeben, den man in GRIP mit "&GBSTR" abholt. Das ist in der Onlinehilfe jedoch nicht gut beschrieben. Besser ist es in der Batchdatei die Variablen zu setzen (unter Windows mit "SET Variable=Wert" unter UNIX z.B. mit "export Variable=Wert"). Abholen in GRIP mit ENVVAR. Seit V18 soll es auch möglich sein unter Windows mit andere Programmen direkt zu komminizieren (Prozeskommunikation, OCE?). Hab' ich leider noch nicht probiert. GRIP kann keine Macros aufrufen, aber Macros können GRIP-Programme aufrufen und darin auch weitere Antworten geben. Macros können Zahlenvariablen benutzen indem man einen Ausdruck (Expression) belegt (z.B. Duchmesser_A=14.2) und im Macro diese Variable benutzt. Strings können an Macros nicht übergeben werden (auch keine Umgebungsvariablen gelesen werden) hier gibt es den letzten Tipp (der schon fast "unter der Gürtellinie" anzusiedeln ist) man kann das Macro mit GRIP erstellen (Macro-Datei als Textdatei schreiben). Gruss ------------------ Walter Hogger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
little_ug Mitglied CAX/PDM Admin / PM
 
 Beiträge: 389 Registriert: 20.03.2003
|
erstellt am: 16. Jan. 2004 21:54 <-- editieren / zitieren --> Unities abgeben:         
So viele infos! Danke nochmal an alle! So jetzt ergibt sich für mich mal wieder ein neues Problem! Kann ich mit Grip stl files Exportieren. Normale .prt sind ja kein problem. z.B. ENTITY/OBJ(25) NUMBER/RESP IDENT/'Objekt zum Exp. ausw.',OBJ,RESP IF/RESP==3,$ CPATT/'teil1',OBJ HALT aber stl oder iges..... mfg Michael ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |