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
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