Autor
|
Thema: Variabler Speicherpfad (1477 mal gelesen)
|
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 31. Jul. 2014 11:26 <-- editieren / zitieren --> Unities abgeben:
Servus mal wieder ein Problem zwischen drin. Ich habe ein Makro erstellt welches ein Screenshot macht und abspeichert. Funtioniert alles wunderbar aber mit meinem Pfad an meinem PC. Nun soll der Pfad insofern variabel sein das sich das Makro den Username selber holt um es dann bei dem jeweiligen User richtig abzuspeichern. So habe ich es versucht (1-3). Es kommen keine Fehlermeldungen es wird aber auch nichts gespeichern... (Username wird in einer msgBox korrekt ausgegeben) Name = CATIA.SystemService.Environ("USERNAME") Dim DocPath As String 1) DocPath = "C:\Users\Name\Desktop" 2) DocPath = "C:\Users\%Name%\Desktop" 3) DocPath = "C:\Users\&Name\Desktop" Ich hoffe jemand kann helfen. Vielen Dank schon mal im Voraus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 31. Jul. 2014 11:56 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
|
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 31. Jul. 2014 12:47 <-- editieren / zitieren --> Unities abgeben:
|
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 31. Jul. 2014 13:02 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
|
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 31. Jul. 2014 14:35 <-- editieren / zitieren --> Unities abgeben:
|
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 04. Aug. 2014 17:02 <-- editieren / zitieren --> Unities abgeben:
Jetzt habe ich aber doch nochmal eine Frage... Untenstehend das Makro und beim Fetten das Problem. Das Makro speichert den Screenshot wie es gedacht ist. Wenn man jetzt aber einen Namen vergibt den es schon auf dem Desktop gibt, dann überschreibt er das bestehende Bild einfach. Das ist natürlich nicht Sinn und Zweck. Einfach ExitSub will ich nicht machen sondern ich möchte das erneut das Inputfenster erscheint und man dann den Namen nochmals vergeben kann oder das ein anderes Fenster auftaucht so "Du Depp gibts schon" und das dann so lange bis der Name eben einmalig ist und das Bild gespeichert werden kann... Aber wie oO Sub CATMain()
'Fehlerbehandlung / Abfrage des aktiven Dokuments If CATIA.Documents.Count = 0 Then Box = MsgBox("Es wurde kein aktives Dokument identifiziert!!!" + Chr(10) + "-------------------------------------------------------" + Chr(10) + "Bitte öffnen Sie zuerst ein Dokument und starten Sie" + Chr(10) + "dann SAVER_pdf_&_dwg erneut.", vbInformation, "Kein ActiveDocument!!!") Exit Sub End If Dim oDocument As Document Set oDocument = CATIA.ActiveDocument '---------------------------------------- '---------------------------------------- 'Umgebungsunabhängiger Speicherpfad Dim DocPath As String Name = CATIA.SystemService.Environ("USERNAME") DocPath = "C:\Users\"&Name&"\Desktop" 'Abfrage des Speichernamen dim myFunc1 As String myFunc1 = InputBox ("Bitte benennen Sie den Screenshot", "Dateiname", "") If myFunc1 <> "" Then 'Kompass und Strukturbaum ausblenden / Hintergrundfarbe auf Weiß setzen CATIA.StartCommand "CompassDisplayOff" Set FullScreen = CATIA.ActiveWindow FullScreen.Layout = 1 Set PictureViewer = CATIA.ActiveWindow.ActiveViewer PictureViewer.PutBackgroundColor Array(1, 1, 1) 'Aktuelle Ansicht deklarieren Dim specsAndGeomWindow1 As Window Set specsAndGeomWindow1 = CATIA.ActiveWindow Dim viewer3D1 As Viewer Set viewer3D1 = specsAndGeomWindow1.ActiveViewer Dim viewpoint3D1 As Viewpoint3D Set viewpoint3D1 = viewer3D1.Viewpoint3D 'Screenshot abspeichern sPath = DocPath & "\" & myFunc1 & ".jpeg" CATIA.ActiveWindow.ActiveViewer.CaptureToFile 4, sPath If CATIA.FileSystem.FileExists(sPath) Then GoBackTo myFunc1 End If 'Kompass und Strukturbaum einblenden / Hintergrundfarbe auf Catia-Einstellungen setzen CATIA.StartCommand "CompassDisplayOn" FullScreen.Layout = 2 PictureViewer.PutBackgroundColor Array(0.2, 0.2, 0.4) End If End Sub [Diese Nachricht wurde von shoutz000 am 04. Aug. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 04. Aug. 2014 17:43 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
Das sollte dir weiterhelfen Code:
Sub CATMain() Dim DocPath As String Dim myFunc1 As String Dim oDocument As Document Dim sPath As String Dim RetCode As VbMsgBoxResult 'Fehlerbehandlung / Abfrage des aktiven Dokuments If CATIA.Documents.Count = 0 Then Box = MsgBox("Es wurde kein aktives Dokument identifiziert!!!" + Chr(10) + "-------------------------------------------------------" + Chr(10) + "Bitte öffnen Sie zuerst ein Dokument und starten Sie" + Chr(10) + "dann SAVER_pdf_&_dwg erneut.", vbInformation, "Kein ActiveDocument!!!") Exit Sub End If 'Set oDocument = CATIA.ActiveDocument '---------------------------------------- '---------------------------------------- 'Umgebungsunabhängiger Speicherpfad DocPath = CATIA.SystemService.Environ("USERPROFILE") 'Abfrage des Speichernamen BeginSave: myFunc1 = InputBox("Bitte benennen Sie den Screenshot", "Dateiname", "") If myFunc1 <> "" Then sPath = DocPath & "\" & myFunc1 & ".jpeg" If CATIA.FileSystem.FileExists(sPath) Then RetCode = MsgBox("Wollen Sie die Datei überschreiben?", vbYesNoCancel, "Die Datei ist schon vorhanden!") Select Case RetCode Case vbYes MakePicture sPath Case vbNo GoTo BeginSave Case vbCancel Exit Sub End Select Else MakePicture sPath End If End If End Sub Sub MakePicture(ByVal SavePath As String)
Dim specsAndGeomWindow1 As Window Dim viewer3D1 As Viewer Dim viewpoint3D1 As Viewpoint3D 'Kompass und Strukturbaum ausblenden / Hintergrundfarbe auf Weiß setzen CATIA.StartCommand "CompassDisplayOff" Set FullScreen = CATIA.ActiveWindow FullScreen.Layout = 1 Set PictureViewer = CATIA.ActiveWindow.ActiveViewer PictureViewer.PutBackgroundColor Array(1, 1, 1) 'Aktuelle Ansicht deklarieren Set specsAndGeomWindow1 = CATIA.ActiveWindow Set viewer3D1 = specsAndGeomWindow1.ActiveViewer Set viewpoint3D1 = viewer3D1.Viewpoint3D 'Screenshot abspeichern CATIA.ActiveWindow.ActiveViewer.CaptureToFile 4, SavePath 'Kompass und Strukturbaum einblenden / Hintergrundfarbe auf Catia-Einstellungen setzen CATIA.StartCommand "CompassDisplayOn" FullScreen.Layout = 2 PictureViewer.PutBackgroundColor Array(0.2, 0.2, 0.4) End Sub
------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 05. Aug. 2014 06:49 <-- editieren / zitieren --> Unities abgeben:
|
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 05. Aug. 2014 09:03 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
|
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 05. Aug. 2014 10:28 <-- editieren / zitieren --> Unities abgeben:
|
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 05. Aug. 2014 16:08 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 05. Aug. 2014 16:54 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
Servus Das ist so, da in CATAcript keine Sprungmarken (zB GoTo BeginSave) unterstützt werden. Du musst das Makro wohl entsprechend umschreiben (Schleife, Code in Function ausgliedern, ...) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 05. Aug. 2014 16:56 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
Hallo, vorab würdest du mir einen gefallen tun und deinen Code entsprechend der generell üblichen Formatierungen einrücken. Ich kann mir deinen Code vor allem bei den anderen Posts nicht mehr ansehen. Du postest derzeit recht viel und ich habe keine Zeit dafür erstmal alles so zu formatieren, dass man es lesen kann, ohne die Augen zu verdrehen. Zumal für mich auf den ersten Blick so vieles nicht erkennbar ist... Danke. Dann zu deinem Problem ich habe gerade mal etwas geforscht und musste feststellen, dass ein GoTo im CATScript bzw. VBScript nur für ein ErrorHandle verwendet werden kann. Sprich "On Error GoTo 0" etc. Demnach musst du an die Sache etwas anders heran gehen. Ein Beispiel wäre:
Code: Sub CATMain() Dim DocPath As String Dim myFunc1 As String Dim oDocument As Document Dim sPath As String Dim RetCode As VbMsgBoxResult Dim isSaved As Boolean 'Fehlerbehandlung / Abfrage des aktiven Dokuments If CATIA.Documents.Count = 0 Then Box = MsgBox("Es wurde kein aktives Dokument identifiziert!!!" + Chr(10) + "-------------------------------------------------------" + Chr(10) + "Bitte öffnen Sie zuerst ein Dokument und starten Sie" + Chr(10) + "dann SAVER_pdf_&_dwg erneut.", vbInformation, "Kein ActiveDocument!!!") Exit Sub End If 'Set oDocument = CATIA.ActiveDocument '---------------------------------------- '---------------------------------------- 'Umgebungsunabhängiger Speicherpfad DocPath = CATIA.SystemService.Environ("USERPROFILE") isSaved = False 'Abfrage des Speichernamen While isSaved = False myFunc1 = InputBox("Bitte benennen Sie den Screenshot", "Dateiname", "") If myFunc1 <> "" Then sPath = DocPath & "\" & myFunc1 & ".jpeg" If CATIA.FileSystem.FileExists(sPath) Then RetCode = MsgBox("Wollen Sie die Datei überschreiben?", vbYesNoCancel, "Die Datei ist schon vorhanden!") Select Case RetCode Case vbYes MakePicture sPath isSaved = True Case vbCancel Exit Sub End Select Else MakePicture sPath isSaved = True End If End If Wend End Sub Sub MakePicture(ByVal SavePath As String)
Dim specsAndGeomWindow1 As Window Dim viewer3D1 As Viewer Dim viewpoint3D1 As Viewpoint3D 'Kompass und Strukturbaum ausblenden / Hintergrundfarbe auf Weiß setzen CATIA.StartCommand "CompassDisplayOff" Set FullScreen = CATIA.ActiveWindow FullScreen.Layout = 1 Set PictureViewer = CATIA.ActiveWindow.ActiveViewer PictureViewer.PutBackgroundColor Array(1, 1, 1) 'Aktuelle Ansicht deklarieren Set specsAndGeomWindow1 = CATIA.ActiveWindow Set viewer3D1 = specsAndGeomWindow1.ActiveViewer Set viewpoint3D1 = viewer3D1.Viewpoint3D 'Screenshot abspeichern CATIA.ActiveWindow.ActiveViewer.CaptureToFile 4, SavePath 'Kompass und Strukturbaum einblenden / Hintergrundfarbe auf Catia-Einstellungen setzen CATIA.StartCommand "CompassDisplayOn" FullScreen.Layout = 2 PictureViewer.PutBackgroundColor Array(0.2, 0.2, 0.4) End Sub
------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 08. Aug. 2014 07:49 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank ich probier es mal aus. Ich habe es eigentlich ordentlich aufgebaut aber das Problem ist wenn ich das Script hier einfüge wird es richtig angezeigt aber sobald ich auf Vorschau oder veröffentlichen gehe ist alles auf der linken Seite oO muss ich das alles in dem Fenster hier nochmal Zeile für Zeile hinschieben wie es sich gehört?! Is ja voll kacke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 08. Aug. 2014 07:54 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 08. Aug. 2014 08:29 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
Servus Zitat: auf Vorschau oder veröffentlichen gehe ist alles auf der linken Seite oO
Deshalb den Code zwischen die Tags "[CODE][/CODE]" schreiben (kann man links auswählen). Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 08. Aug. 2014 08:33 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
Zitat: Original erstellt von shoutz000: Ich habe es eigentlich ordentlich aufgebaut aber das Problem ist wenn ich das Script hier einfüge wird es richtig angezeigt aber sobald ich auf Vorschau oder veröffentlichen gehe ist alles auf der linken Seite oOmuss ich das alles in dem Fenster hier nochmal Zeile für Zeile hinschieben wie es sich gehört?! Is ja voll kacke
Nein eigentlich nicht. Wenn ich die Sachen reinkopiere haben die in der Regel die Vorschübe... Könnte vll. am Browser liegen. ------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |