| |
| Das Potenzial von Product Lifecycle Management (PLM) gezielt nutzen, eine Pressemitteilung
|
Autor
|
Thema: Skript alle geöffneten E3 Dokumente als PDF (1031 / mal gelesen)
|
Feuerblitz Mitglied
Beiträge: 29 Registriert: 07.10.2020 Solidworks 2012 Professional Windows 10 Pro E3 2018
|
erstellt am: 26. Okt. 2020 11:43 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen gibt es ein Skript, mit dem ich alle geöffneten Dokumente als PDF drucken kann in einen gewünschten Ordner? Dies mit dem Namen der Datei selber? Ich wäre sehr froh drum. Gruss Feuerblitz 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: 26. Okt. 2020 13:08 <-- editieren / zitieren --> Unities abgeben: Nur für Feuerblitz
Hallo Feuerblitz, du wirst aus einem Script heraus nicht alle Zeichnungen speichern können, da diese in eigenen E3 Instanzen geöffnet sind. Das vb script läuft aber leider im nur im Kontext der aufrufenden Applikation\Instanz. Daher geht dies nur über .net und mit dem Hook auf jede einzelne E3 Instanz. Das Speichern der Zeichnung erfolgt dann wie folgt:
Code:
E3Prj.ExportPDF(strFullFileName, ShtIds, &H7)
oder wie in der Hilfe als vbs beschrieben:
Code:
Set App = CreateObject("CT.Application") Set Prj = App.CreateJobObject Set Sht = Prj.CreateSheetObjectshtcnt = prj.GetSheetIds(shtids) If(shtcnt = 0) Then MsgBox "No sheet contained!" Else ret = prj.ExportPdf( "C:\pdf_v7_no_modify.pdf", shtids, &h200 + &h7 ) 'Version 7 + not modifiable If(ret <> 1) Then MsgBox "Failed to create PDF file!" End If
Wie sehen denn deine Programmierkenntnisse aus? ------------------ 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 |
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: 26. Okt. 2020 13:18 <-- editieren / zitieren --> Unities abgeben: Nur für Feuerblitz
Versuch mal folgendes: Code:
Dim FileName, Folder, FullFileName Dim ShtCnt, RetCode, ShtIds Dim App, Prj, ShtSet App = CreateObject("CT.Application") Set Prj = App.CreateJobObject Set Sht = Prj.CreateSheetObject Folder = "D:\" 'Enter Save Folder Here FileName = Prj.GetName FullFileName = Folder & FileName & ".pdf" ShtCnt = Prj.GetSheetIds(ShtIds) If(ShtCnt = 0) Then MsgBox "No sheet contained!" Else RetCode = Prj.ExportPdf(FullFileName, ShtIds, &h200 + &h7) 'Version 7 + not modifiable If(RetCode <> 1) Then MsgBox "Failed to create PDF file!" End If
Das sollte so schon in der geöffneten E3 Instanz als aufgerufenes vbs funktionieren. Aktuell würde es das PDF mit allen Blätten nach D: mit dem Namen des Projektes speichern. Aber es wird eben nur die ausführende Instanz gespeichert, nicht alle geöffneten Projekte. ------------------ 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 |
Feuerblitz Mitglied
Beiträge: 29 Registriert: 07.10.2020 Solidworks 2012 Professional Windows 10 Pro E3 2018
|
erstellt am: 26. Okt. 2020 17:18 <-- editieren / zitieren --> Unities abgeben:
Hallo Vielen Dank für deine Antwort. Meine Erfahrungen habe ich eher in Excel mit VBA gemacht. In E3 ist der PDF export bei mir ausgegraut. Mit dem Code habe ichs versucht. Gab aber keinen Erfolg. Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Feuerblitz Mitglied
Beiträge: 29 Registriert: 07.10.2020 Solidworks 2012 Professional Windows 10 Pro E3 2018
|
erstellt am: 26. Okt. 2020 17:23 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für den Code. Den habe ich sofort ausprobiert. Leider kommt eine Fehlermeldung: Failed to create PDF File. Was ja in der MSgBox steht. Aber was das bedeutet ist mir noch ein Rätsel. Was heisst das für mich? Ich werde nicht schlau wenn ich den Code studiere. 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: 26. Okt. 2020 17:24 <-- editieren / zitieren --> Unities abgeben: Nur für Feuerblitz
|
Feuerblitz Mitglied
Beiträge: 29 Registriert: 07.10.2020 Solidworks 2012 Professional Windows 10 Pro E3 2018
|
erstellt am: 26. Okt. 2020 17:57 <-- editieren / zitieren --> Unities abgeben:
|
awb Mitglied
Beiträge: 8 Registriert: 16.01.2020 Windows 10 E3 2018 VBS, VBA, VB6, vb.net
|
erstellt am: 27. Okt. 2020 12:17 <-- editieren / zitieren --> Unities abgeben: Nur für Feuerblitz
Hallo, versuche mal folgendes: Code:
Dim FileName, Folder, FullFileName Dim ShtCnt, RetCode, ShtIds Dim App, Prj, Sht Set App = CreateObject("CT.Application") Set Prj = App.CreateJobObject Set Sht = Prj.CreateSheetObjectFolder = Prj.GetPath FileName = Prj.GetName FullFileName = Folder & FileName & ".pdf" ShtCnt = Prj.GetSheetIds(ShtIds) If(ShtCnt = 0) Then MsgBox "No sheet contained!" Else RetCode = Prj.ExportPdf(FullFileName, ShtIds, 0) If(RetCode <> 1) Then MsgBox "Failed to create PDF file! Error Code: " & RetCode End If
Dadurch wird der Fehlercode auch mit ausgegeben. Fehlercodes: 1 Export successful -1 Unknown error -2 No project opened -3 Missing license -4 Invalid file path or missing authorization -5 Invalid sheet -6 Invalid Acrobat version -10 Invalid password -11 outdated external document (Available since Build 2018-19.00) -12 non-existent link to external document (Available since Build 2018-19.00) evtl. findest du auch im Meldungsfenster einen Hinweis wieso der Export nicht funktioniert. Gruß awb
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Feuerblitz Mitglied
Beiträge: 29 Registriert: 07.10.2020 Solidworks 2012 Professional Windows 10 Pro E3 2018
|
erstellt am: 29. Okt. 2020 08:54 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 10. Jan. 2023 15:25 <-- editieren / zitieren -->
Hallo Zusammen Vielen Dank für die Scripts, funktioniert soweit einwandfrei. Gibt es eine Möglichkeit die Signal-/Ader- Logiklinien sowie die Linienenden-Markierung vor dem PDF-Export auszuschalten? Das wäre noch das letzte Puzzleteil, das noch fehlt. Besten Dank für eure Hilfe, Grüsse Sevy |
K0NFUZIUS Moderator
Beiträge: 271 Registriert: 06.02.2006
|
erstellt am: 24. Jan. 2023 16:24 <-- editieren / zitieren --> Unities abgeben: Nur für Feuerblitz
Hallo Sevy, das hier sollte funktionieren: Code:
Set e3Application = CreateObject( "CT.Application" ) Set job = e3Application.CreateJobObject() value = job.GetSettingvalue ("AIRLINES") newvalue = value And Not 5 job.SetSettingvalue "AIRLINES", newvalue
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 26. Jan. 2023 06:52 <-- editieren / zitieren -->
Guten Morgen Jörg Besten Dank, das hat auf Anhieb geklappt. Die Linienendenmarkierung bleibt zwar, aber damit kann ich leben. Anbei nun der gesamte Script um alle geöffneten Seiten eines Projekts in ein PDF zu exportieren. Ich nutze das um Umbauanleitungen zu erstellen. Gruss Sevy Programmcode lauffähig unter VBA für VBS bitte entsprechend anpassen. Ihr braucht noch das Modul ConnectToE3 von Zuken für die Projektauswahl.
Code: Sub OpenPages2PDF() Dim FileName, Folder, FullFileName Dim ShtCnt, RetCode, ShtIds Dim App, Prj, Sht, Job Dim LongArr() As Variant Set App = ConnectToE3 Set Prj = App.CreateJobObject Set Job = App.CreateJobObject Set Sht = Prj.CreateSheetObject Folder = Prj.GetPath FileName = Prj.GetName FullFileName = Folder & FileName & "_Umbauanleitung.pdf" Job.ResetHighlight If Prj.LoadLevelConfiguration("Link auf eure .vis Datei") <> 1 Then Debug.Print "SetLevelFailed" Value = Job.GetSettingvalue("AIRLINES") newvalue = Value And Not 5 Job.SetSettingvalue "AIRLINES", newvalue c = 0 ShtCnt = Prj.GetSheetIds(ShtIds) For i = 1 To UBound(ShtIds) ret = Sht.SetId(ShtIds(i)) If Sht.Visible Then Debug.Print ShtIds(i) If strSheetIds = "" Then strSheetIds = ShtIds(i) Else strSheetIds = strSheetIds & ";" & ShtIds(i) End If End If Next tmpArr = Split(strSheetIds, ";") ReDim LongArr(UBound(tmpArr) + 1) For x = LBound(tmpArr) To UBound(tmpArr) LongArr(x + 1) = CLng(tmpArr(x)) Next If (UBound(LongArr) = 0) Then MsgBox "No sheet contained!" Else Debug.Print FullFileName RetCode = Prj.ExportPDF(FullFileName, LongArr, &H7) If (RetCode <> 1) Then MsgBox "Failed to create PDF file! Error Code: " & RetCode End If If Prj.LoadLevelConfiguration("Link auf eure .vis Datei") <> 1 Then Debug.Print "SetLevelFailed" End Sub
------------------ E3 2020 SP3 Build 21.30 I9-12950HX 32GB Win10 Ent 22H2 Eplan ProPanel 2.9 Eplan 5.x Eplan 5.1 Eplan 3.3 Elcad Fusion360 |