Hallo CAD Forum,
ich bin neu hier und habe ein Problem, bei dem ich allein nicht weiter komme.
Ich möchte mit Hilfe eines Makros eine SW-Zeichnung als PDF abspeichern in deren Dateiname die Revisionsnummer des Models in der Zeichnung und das Datum auftaucht.
Mit Hilfe einiger Beiträge habe ich schon folgendes zusammen stellen können.
***************************************************************
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim sPathName As String
Dim nErrors As Long
Dim nWarnings As Long
Dim nRetval As Long
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swExportData As SldWorks.ExportPdfData
Dim filename As String
Dim boolstatus As Boolean
Dim lErrors As Long
Dim lWarnings As Long
Dim bRet As Boolean
Dim View As SldWorks.View
Dim sModelName As String
Dim SwAsmModel As SldWorks.ModelDoc2
Dim index As String
Dim DrawingDoc As Object
Dim RefModelView As String
Dim RefModelName As String
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
' Strip off SolidWorks drawing file extension (.slddrw)
' and add PDF file extension (.pdf)
sPathName = swModel.GetPathName
sPathName = Left(sPathName, Len(sPathName) - 6)
sPathName = sPathName + "pdf"
' Show current settings
Set DrawingDoc = swModel
'Das ist das Blatt
Set View = DrawingDoc.GetFirstView()
'Die erste Ansicht im Blatt
Set View = View.GetNextView
'Dokument der Ansicht
sModelName = View.GetReferencedModelName
'Jetzt hast du einen Pfad und kannst in den geöffneten ModelDocs nach dem richtigen Suchen.
Set SwAsmModel = swApp.GetFirstDocument
'Dokumenteigenschaft
If Not SwAsmModel Is Nothing Then
index = swModel.CustomInfo("Revision")
End If
' Turn off showing of map
Set swModelDocExt = swModel.Extension
Set swExportData = swApp.GetExportFileData(swExportPDFData)
filename = swModel.GetPathName
filename = Strings.Left(filename, Len(filename) - 7) & "_R" & index & "_" & Date & ".PDF"
boolstatus = swExportData.SetSheets(swExportData_ExportAllSheets, 1)
boolstatus = swModelDocExt.SaveAs(filename, 0, 0, swExportData, lErrors, lWarnings)
If boolstatus Then
MsgBox "Erfolgreich" & vbNewLine & filename
Else
MsgBox "Save as PDF failed you did somthing wrong dumb ass, Error code:" & lErrors '
End If
End Sub
************************************************************
das funktioniert soweit auch ganz gut, wenn die Zeichnung für ein Part ist. Ist eine Baugruppe in der Zeichnung, bezieht sich die Revisionsnummer auf das erste Part der Baugruppe und nicht auf die Baugruppeneigenschaft.
Kann mir hier irgendjemand, der sich mit Programmierung auskennt weiter helfen?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP