| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Automatischer PDF-Export - Muster wird nicht geladen (1495 mal gelesen)
|
pleudel Mitglied Projektleiterin
Beiträge: 156 Registriert: 28.11.2011 Windows 7 UG NX 10 (auch Daimler) Visual Basic 2013 Express Programmierung in NX und ProE/Creo
|
erstellt am: 30. Jul. 2012 07:34 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe folgendes Problem: Wir haben auf unseren Zeichnungsblättern Muster für die Zeichnungsrahmen verwendet. Wenn man nun ein PDF von der Zeichnung erstellt, funktioniert das prima. Wenn ich allerdings versuche, den PDF-Export automatisch durchzuführen (das entsprechende Journal wird extern gestartet, d.h. das Part wird in UG nicht geladen), dann taucht das Muster nicht in dem PDF auf! Ich habe ja die Vermutung, dass es daran liegt, dass das Journal keinerlei Hinweis auf ein Muster oder ähnliches enthält und bei "Laden" nur die Ansichten, Beschriftung usw lädt, die in dem Zeichnungspart auch wirklich vorhanden sind. Mir ist bekannt, dass man beim Benutzen der Muster nur einen Verweis auf die entsprechende Muster-Datei einfügt. Ist es irgendwie möglich, dass mein VB-Code diesen Verweis auslesen kann und das entsprechende Muster lädt? Hoffentlich kann mir jemand helfen... Die Forumsuche und auch uganswer.com hat mir bisher nicht weitergeholfen. 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: 30. Jul. 2012 08:16 <-- editieren / zitieren --> Unities abgeben: Nur für pleudel
Hi Pleudel, ich vermute dass dein Journal die UGII_PATDIR nicht hat. Also entweder im Batch vorher setzen oder über das Journal holen.. z.B.: Dim ru As RemoteUtilities = RemoteUtilities.GetRemoteUtilities Dim myenv as String = "" myenv = ru.GetEnvironmentVariable("UGII_PATDIR") ... ------------------ Gruß Michael have you tried turning it off and on again Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pleudel Mitglied Projektleiterin
Beiträge: 156 Registriert: 28.11.2011 Windows 7 UG NX 10 (auch Daimler) Visual Basic 2013 Express Programmierung in NX und ProE/Creo
|
erstellt am: 30. Jul. 2012 09:16 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für die schnelle Antwort! Was genau ist denn die UGII_PATDIR und was tut sie? Schaut aus wie eine Umgebungsvariable, aber in dem Thema bin ich nicht wirklich drin... Danke trotzdem schonmal!!! 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: 30. Jul. 2012 09:57 <-- editieren / zitieren --> Unities abgeben: Nur für pleudel
|
pleudel Mitglied Projektleiterin
Beiträge: 156 Registriert: 28.11.2011 Windows 7 UG NX 10 (auch Daimler) Visual Basic 2013 Express Programmierung in NX und ProE/Creo
|
erstellt am: 30. Jul. 2012 10:04 <-- editieren / zitieren --> Unities abgeben:
Hallo, leider bringt der von dir gepostete Code nicht ed gewünschten Erfolg. folgendens habe ich ergänzt: Dim ru As RemoteUtilities = RemoteUtilities.GetRemoteUtilities Dim myenv As String = "" myenv = ru.GetEnvironmentVariable("UGII_PATDIR") bringt leider nichts. Was daran liegen könnte, dass die Muster in einem selbst definierten Ordner liegen... Also folgender Versuch: Dim ru As RemoteUtilities = RemoteUtilities.GetRemoteUtilities Dim myenv As String = "" myenv = ru.GetEnvironmentVariable("D:\LOKALER_ORDNER\Muster")
bringt leider auch nichts. Habe ich irgendwas vergessen oder falsch eingesetzt?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasZwatz Ehrenmitglied V.I.P. h.c. cadadmin
Beiträge: 5397 Registriert: 19.05.2000
|
erstellt am: 30. Jul. 2012 10:12 <-- editieren / zitieren --> Unities abgeben: Nur für pleudel
Ich würde die Umgebungsvariable nicht im Journal setzen ( geht natürlich ). Vielmehr würde ich dafür sorgen, dass die Umgebung aus der das Journal aufgerufen wird gleich gesetzt ist wie im interaktiven NX. Üblicherweise sollte es reichen, UGII_BASE_DIR, UGII_ROOT_DIR und UGII_ENV_FILE richtig zu setzen. (UGII_PATDIR wird in UGII_ENV_FILE definiert ). Hängt aber natürlich von den Gegebenheit vorort ab ... Das ganze in ein Batchscript packen: - Umgebung initialisieren - dann Journal aufrufen Fertig. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pleudel Mitglied Projektleiterin
Beiträge: 156 Registriert: 28.11.2011 Windows 7 UG NX 10 (auch Daimler) Visual Basic 2013 Express Programmierung in NX und ProE/Creo
|
erstellt am: 30. Jul. 2012 11:15 <-- editieren / zitieren --> Unities abgeben:
so, jetzt bin ich schon weiter: der Fehler lag hier: ru.GetEnvironmentVariable("UGII_PATDIR") ich will ja die Umgebungsvariable nicht auslesen, sondern neu setzen. Hinzu kommt noch, dass wir UG nicht über die herkömmliche .exe starten, sondern über eine .bat-Datei, in der vorher die benötigten Umgebungsvariablen gesetzt werden (d.h. diese sind im System nicht vorhanden, um ausgelesen oder geändert zu werden). Wenn ich jetzt hergehe und die Variable manuell für meinen PC erstelle, haben ja andere User nichts davon. ich habe also einfach in den Code folgenden Schnipsel eingefügt: Dim objShell As Object = CreateObject("WScript.Shell") objShell.Environment("system")("UGII_PATDIR") = "D:\LOKALER_ORDNER\Muster"
damit wird dann die Variable erstellt, bevor ich in meinem Journal die "run_journal.exe" starte. bis hier funktioniert auch alles. Wenn ich jetzt allerdings aus meinem Journal heraus ein anderes aufrufe, scheint es so zu sein, dass das zweite Journal noch keinen Zugriff auf die Umgebungsvariable hat. Denn das jetzt erstellte PDF hat wieder keinen Rahmen. Die Variable ist aber (richtig) gesetzt, das habe ich überprüft. Kann es sein, dass das zweite Journal erst den Zugriff auf die Umgebungsvariable erhält, wenn ich das ganze Programm ein zweites mal starte und die Variable auch beim ersten Journal bereits von anfang an vorhanden ist? Eigentlich scheint mir das komisch, denn wenn ich das erste Journal starte, wird die Variable direkt erstllt, und das zweite Journal starte ich ja erst, wenn ich alle Einstellungen usw. in der Programmoberfläche eingestellt hab... 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: 30. Jul. 2012 16:56 <-- editieren / zitieren --> Unities abgeben: Nur für pleudel
Hallo Pleudel, wenn Du aus Journal_1 ein zweites über run_journal startest, läuft das in einem separaten Prozess. Die Folge: Journal_2 kriegt sehr wahrscheinlich nichts von den Umgebungsvariablen in Journal_1 mit. Entweder Du setzt die Variable in jedem Journal oder Du machst es "richtig", so wie es Thomas schon beschrieben hat. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pleudel Mitglied Projektleiterin
Beiträge: 156 Registriert: 28.11.2011 Windows 7 UG NX 10 (auch Daimler) Visual Basic 2013 Express Programmierung in NX und ProE/Creo
|
erstellt am: 31. Jul. 2012 07:33 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe es jetzt so gemacht, dass ich an den Rechnern, an denen das Programm zum Einsatz kommt, die Umgebungsvariable manuell gesetzt habe. Trotzdem interessiert mich, warum das so nicht geht. Im 1. Journal wähle ich Dateien aus, die dann in eine Textdatei geschrieben werden, um sie als Variablen an das 2. Journal zu übergeben. Außerdem wird im 1. Journal der Befehl erteilt, das 2. Journal mit der "run_journal.exe" zu starten. Das heißt, wenn ich die Umgebungsvariable im 2. Journal setze, bringt das ja nichts mehr, denn NX ist ja dann bereits "gestartet" (wenn auch im Hintergrund?!). Ich habe das auch versucht, funktioniert leider nicht. Das 2. Journal ist außerdem eine Klasse, das 1. eine Windows Form, falls das wichtig ist. Ich gebe ja im 2. gar keine Anweisung mehr, NX zu starten. Oder habe ich einen ganz falschen Ansatz um mein Journal zu starten? Ich tue das mit folgendem Code: Public Sub openVB(ByVal journal) Dim rj_exe As String = "D:\UGNX75\UGII\run_journal.exe" Dim j2run As String = journal 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) End Sub Als "journal" gebe ich den Pfad zu dem 2. Journal mit. Vielleicht weiß jemand von euch, wie ich anstatt mit der .exe auch mit einer .bat-Datei starten könnte? Dann hätte sich das mit den Umgebungsvariablen eh erledigt... Vielen Dank schonmal
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Elektroniker / Mechatroniker (w/m/d) | European XFEL is an international non-profit company located in the Hamburg area in Germany. It operates a 3.4 km-long X-ray laser, which produces X-rays of unique quality for studies in physics, chemistry, the life sciences, materials research and other disciplines. The diverse scientific facilities at European XFEL enable scientists from across the globe to carry out a wide range of experimental techniques.... | Anzeige ansehen | Mechatronik |
|
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: 31. Jul. 2012 13:32 <-- editieren / zitieren --> Unities abgeben: Nur für pleudel
Meister, mein Motor stottert. Schau' mal bitte in 'n Kofferraum, und sach mir, wat dat is Pleudel, hellsehen kann hier, soweit ich das einschätzen kann, niemand. Der wesentliche Punkt ist der Start der NXSession. Entscheidend sind die UVar's, die zu diesem Zeitpunkt in diesem Prozess gültig sind. An den paar Zeilen kann das kein Mensch erkennen. NX schreibt, auch wenn's ohne User Interface gestartet wird, ein Logfile. Darin sollte zu erkennen sein, wie die Variablen gesetzt sind. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |