Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim IErrors As Long
Dim IWarnings As Long
Dim folderFullPath As String
Dim ConfNameArr As Variant
Dim ConfigName As String
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
' check is .SLDPRT is opened
If swModel Is Nothing Then
MsgBox "[ERROR] No active files found!"
Exit Sub
End If
' check is active document is .SLDPRT file
If swModel.GetType <> swDocPART Then
MsgBox "[ERROR] Open .SLDPRT first!"
Exit Sub
End If
' zooms to fit the model in the graphics area.
swModel.ViewZoomtofit2
' saves the model.
boolstatus = swModel.Save3(swSaveAsOptions_Silent, IErrors, IWarnings)
FilePath = swModel.GetPathName ' Get the full path of the part/assembly file
FileTitle = swModel.GetTitle ' Get the full part name
PathSize = Strings.Len(FilePath) ' Get the length of the full path
TitleSize = Strings.Len(FileTitle) ' Get the length of the part name
FolderSize = Strings.Len(FilePath) - Strings.Len(FileTitle) ' Get the length of the folder
RootFolderName = Strings.Left(FilePath, FolderSize) ' Truncate to folder name
MfFolderPath = RootFolderName & "3mf\"
StlFolderPath = RootFolderName & "stl\"
StepFolderPath = RootFolderName & "step\"
'checking existing of 3mf, step, stl folders
If Dir(MfFolderPath) = "" Then
'MsgBox "[ERROR] Folders '3mf', 'step', 'stl' not found!"
MfFolderPath = RootFolderName
StlFolderPath = RootFolderName
StepFolderPath = RootFolderName
'Exit Sub
End If
FileName = Strings.Left(FileTitle, Len(FileTitle) - 7)
ConfNameArr = swModel.GetConfigurationNames
For i = 0 To UBound(ConfNameArr)
ConfigName = ConfNameArr(i)
swModel.ShowConfiguration2 (ConfigName)
MfFilePath = MfFolderPath & FileName & "_" & ConfigName & ".3mf"
StlFilePath = StlFolderPath & FileName & "_" & ConfigName & ".stl"
StepFilePath = StepFolderPath & FileName & "_" & ConfigName & ".step"
boolstatus = swModel.SaveAs3(MfFilePath, 0, 2)
boolstatus = swModel.SaveAs3(StlFilePath, 0, 2)
boolstatus = swModel.SaveAs3(StepFilePath, 0, 2)
Next i
MsgBox ("3MF, STEP and STL saved!")
'close the document
'swApp.CloseDoc FileTitle
' errors
Debug.Print ("Errors as defined in swFileSaveError_e: " & IErrors)
' warnings
Debug.Print ("Warnings as defined in swFileSaveWarning_e: " & IWarnings)
End Sub
Comments
0 B
|👍
/👎
0 B
|👍
/👎