Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement