Макрос для сохранения всех конфигураций детали Solidworks в 3MF STEP STL
В продолжение заметки о сохранении детали Solidworks в трех разных форматах, решил дополнить макрос сохранением всех конфигураций детали.
Полный код макроса тут - https://pastebin.com/raw/V6Bpbntd и ниже.
Детали Solidworks сохраняются с именами по шаблонам:
НазваниеДетали_НазваниеКонфигурации.3MFНазваниеДетали_НазваниеКонфигурации.STLНазваниеДетали_НазваниеКонфигурации.STEP
Изменения по сравнению с прошлой версией:
Получение списка конфигураций и перебор их в цикле:
ConfNameArr = swModel.GetConfigurationNamesFor 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 "[ERROR] Folders '3mf', 'step', 'stl' not found!"
Закоментировал закрыте детали после сохранения:
'close the document'swApp.CloseDoc FileTitle
Полный код макроса:
Dim swApp As SldWorks.SldWorksDim swModel As SldWorks.ModelDoc2Dim boolstatus As BooleanDim IErrors As LongDim IWarnings As LongDim folderFullPath As StringDim ConfNameArr As VariantDim ConfigName As StringSub main()Set swApp = Application.SldWorksSet swModel = swApp.ActiveDoc' check is .SLDPRT is openedIf swModel Is Nothing Then MsgBox "[ERROR] No active files found!" Exit SubEnd If' check is active document is .SLDPRT fileIf swModel.GetType <> swDocPART Then MsgBox "[ERROR] Open .SLDPRT first!" Exit SubEnd 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 fileFileTitle = swModel.GetTitle ' Get the full part namePathSize = Strings.Len(FilePath) ' Get the length of the full pathTitleSize = Strings.Len(FileTitle) ' Get the length of the part nameFolderSize = Strings.Len(FilePath) - Strings.Len(FileTitle) ' Get the length of the folderRootFolderName = Strings.Left(FilePath, FolderSize) ' Truncate to folder nameMfFolderPath = RootFolderName & "3mf\"StlFolderPath = RootFolderName & "stl\"StepFolderPath = RootFolderName & "step\"'checking existing of 3mf, step, stl foldersIf Dir(MfFolderPath) = "" Then 'MsgBox "[ERROR] Folders '3mf', 'step', 'stl' not found!" MfFolderPath = RootFolderName StlFolderPath = RootFolderName StepFolderPath = RootFolderName 'Exit SubEnd IfFileName = Strings.Left(FileTitle, Len(FileTitle) - 7)ConfNameArr = swModel.GetConfigurationNamesFor 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 iMsgBox ("3MF, STEP and STL saved!")'close the document'swApp.CloseDoc FileTitle' errorsDebug.Print ("Errors as defined in swFileSaveError_e: " & IErrors)' warningsDebug.Print ("Warnings as defined in swFileSaveWarning_e: " & IWarnings)End Sub
Еще больше интересных статей
3д модель пылеотвод на УШМ 125/110 для работы АГШК 100мм (черепашками)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Печать на фотополимерном принтере anycubic photon mono m5s pro
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Готовимся к Новому 2022 году.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Пишу из 2025 года)Понравился и...
Извините, если случайно Вас об...
Спасибо за идею, уже заказал.
Здравия, может кто сталкивался...
Всем бобра, прикупил драйвер T...
Добрый . При печати принтер из...
Всем добрый день!Печатаю на пр...