Witam
Chcę utworzyć makro dla Solidworks, które przekształca arkusze rysunków w pliki PDF lub DXF.
Pliki PDF będą miały nazwę "nazwa pliku+nazwa arkusza"
Pliki DXF będą nazwane w ten sam sposób.
Makro musi rozróżniać arkusze, które mają zostać zapisane jako PDF lub DXF, zgodnie z obecnością lub brakiem słowa DXF w nazwie arkusza.
Poniżej znajduje się utworzone makro. Niestety pojawia się błąd "błąd kompilacji: Typ zdefiniowany przez użytkownika nie jest zdefiniowany".
Z zaznaczonym na niebiesko napisem "swExportDXFData As SldWorks.ExportDxfData".
Wydaje mi się, że rozumiem, że w odnośnikach brakuje jakiejś dane, ale jestem zagubiony.
Korzystam z SolidWorks 2022.
Czy ktoś mógłby mi pomóc?
Option Explicit
Sub ExportPDFandDXF()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDraw As SldWorks.DrawingDoc
Dim swSheet As SldWorks.Sheet
Dim swExportData As SldWorks.ExportPdfData
Dim swExportDXFData As SldWorks.ExportDxfData
Dim sheetName As String
Dim fileName As String
Dim filePath As String
Dim numSheets As Integer
Dim i As Integer
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If swModel Is Nothing Then
MsgBox "Aucun document ouvert dans SolidWorks."
Exit Sub
End If
If Not swModel.GetType = swDocumentTypes_e.swDocDRAWING Then
MsgBox "Ce n'est pas un document de mise en plan."
Exit Sub
End If
Set swDraw = swModel
numSheets = swDraw.GetSheetCount
fileName = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, ".") - 1)
filePath = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, "\"))
For i = 1 To numSheets
Set swSheet = swDraw.Sheet(i)
sheetName = swSheet.GetName
If InStr(sheetName, "DXF") > 0 Then
Set swExportDXFData = swApp.GetExportFileData(1)
swExportDXFData.fileName = fileName & sheetName & ".dxf"
swExportDXFData.SetSheets swSheet.GetName
swModel.Extension.ExportToDWGDXF swExportDXFData
Else
Set swExportData = swApp.GetExportFileData(swExportPdfData)
swExportData.fileName = fileName & sheetName & ".pdf"
swExportData.SetSheets swSheet.GetName
swModel.Extension.SaveAs swExportData
End If
Next i
MsgBox "Exportation terminée."
End Sub