Folge 9 – Speichern ins PDF Format

In diesem Video zeige ich das speichern von Solidworks Dateien im PDF Format.

Und an dieser Stelle der Code, den ich im Video erstellt habe.

Option Explicit
Sub main()
    Dim swApp As SldWorks.SldWorks
    Set swApp = Application.SldWorks
    
    Dim swModel As ModelDoc2
    Set swModel = swApp.ActiveDoc
    
    If swModel Is Nothing Then
        swApp.SendMsgToUser "Kein Dokument geladen."
        Exit Sub
    End If
    
    Dim Errors As Long
    Dim Warnings As Long
    Dim FullName As String
    Dim ReturnValue As Boolean
    
    FullName = swModel.GetPathName
    
    Dim laenge As Integer
    laenge = Len(FullName)
    
    Debug.Print "Fullname: " & FullName
    Debug.Print "Fullname Länge: " & laenge
    
    FullName = Left(FullName, laenge - 6) & "pdf"
    
    Debug.Print "Fullname: " & FullName
    
    Dim swExportPdfData As ExportPdfData
    Set swExportPdfData = swApp.GetExportFileData(swExportDataFileType_e.swExportPdfData)
    
    swExportPdfData.ViewPdfAfterSaving = False
    'ReturnValue = swExportPdfData.SetSheets(swExportDataSheetsToExport_e.swExportData_ExportCurrentSheet, "")
    
    Dim sheetNames(3) As String
    sheetNames(0) = "Blatt1"
    sheetNames(1) = "Blatt3"
    sheetNames(2) = "Blatt5"
    
    Dim varSheetNames As Variant
    varSheetNames = sheetNames
    
    ReturnValue = swExportPdfData.SetSheets(swExportDataSheetsToExport_e.swExportData_ExportSpecifiedSheets, varSheetNames)
    
    
    ReturnValue = swModel.Extension.SaveAs3(FullName, swSaveAsVersion_e.swSaveAsCurrentVersion, swSaveAsOptions_e.swSaveAsOptions_Silent, swExportPdfData, Nothing, Errors, Warnings)
        
    Debug.Print "Errors: " & Errors
    Debug.Print "Warnings: " & Warnings
    Debug.Print "Return Value: " & ReturnValue
    
End Sub

Kommentare 3

  • Hallo Herr Hornemann

    Tolle Makros veröffentlichen Sie hier, Danke!

    Jetzt habe ich eine „spezielle“ Anforderung.
    Ich möchte von einem Drawing Dokument ein PDF speichern, jedoch mit dem Revisionsindex der gezeichneten Komponente, also mit dem RevisionsIndex der Baugruppe oder des Teils, welches auf der Zeichnung dargestellt wurde.
    Mit dem Makro was Sie hier zur Verfügung stellen kommt nur den Dateiname der Drawing Datei.
    Mit einem Makro was ich zusammengeschusstert habe kriege ich Dateiname, Revisions-Index und Dateinamen, ABER ich muss diese Dateiinfomationen zuerst manuell von der zu zeichnenden Komponente in die Dateiinfos der Drawing einfügen.
    Ich dachte mir:
    entweder eine Lösung zu finden wie ich die Dateiinfos von Komponente auf die Drawing übertragen kann und anschliessend mein Makro zu verwenden,
    oder eine Lösung wie ich den Wert der Revision, welchen ich per $PRPSHEET:“Revision“ Befehl auf das Zeichnungsblatt übernommen habe, vom Zeichnungsblatt zu lesen.
    Oder direkt von der Komponente zu lesen.
    Aber das übersteigt meine Fähigkeiten.
    Können Sie mir einen Tipp geben?

  • die Videos sind saugut gemacht bloss das Sprechtempo macht mich wahnsinnig. Aber zum Glück kann man ja die Youtube-Videos schneller laufen lassen. Mit 1,35-fach gehts dann.

    Weiter so & Danke

  • Hallo Herr Hornemann,

    vielen Dank für Ihre ausführlichen und hilreichen Tutorials. Nun beabsichtige ich jede Zeichnung einer SW-Zeichnungsmappe als separate pdf- und dwg-Datei zu speichern. Dabei sollen die Blattnamen an den Dateinamen der Zeichnungsdatei angehangen werden. Es wäre nett, wenn Sie mir bei der Lösung dieser Aufgabe behilflich sein könnten.

    Für Ihre Bemühungen bedanke ich mich im Voraus!

    Freundliche Grüße

    Jürgen Drees

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert