13 Replies Latest reply on Aug 15, 2018 6:19 AM by Dan Pihlaja

    Macro for saving file as configuration name?

    John García

      I am currently making changes to a model with 100+ configurations and i'm writing a macro so it can be more time consuming. What i've got so far is a macro that rebuilds all the sheets in a drawing then goes back to the first sheet and opens up the save as box. I would like to make it so it saves the file in a specific location as the configuration name. Here is what i have so far:


      Dim swApp As SldWorks.SldWorks

      Dim swModel As SldWorks.ModelDoc2

      'Rebuilds all sheets and saves document as the current configuration name


      Sub main()


          Set swApp = Application.SldWorks

          Set swModel = swApp.ActiveDoc



          Dim SheetNames              As Variant

          Dim Part                    As Object

          Dim SheetCount              As Integer

          Dim i                       As Integer

          Dim boolstatus              As Boolean

          Dim longstatus As Long, longwarnings As Long

          Dim IncludeUnsaved          As Boolean

          Dim bool                    As Boolean



          'get all sheet names

          SheetNames = swModel.GetSheetNames


          'get total number of sheets

          SheetCount = swModel.GetSheetCount


          'Rebuilds all sheets

          For i = 0 To SheetCount - 1

              retval = swModel.ActivateSheet(SheetNames(i))





                      retval = swModel.ForceRebuild3(False)



              Debug.Print (i + 1)



          Set swApp = _




      Set Part = swApp.ActiveDoc



          Dim ActiveView              As Object

          Dim PartName                As String

          Dim value                   As Boolean

          Dim FileName                As String


          IncludeUnsaved = True

      Set ActiveView = Nothing

      Part.ClearSelection2 True



      'Goes to Sheet 1

      boolstatus = Part.ActivateSheet("Drawing")



      'Saves document as

      swModel.Extension.RunCommand swCommands_SaveAs, Empty


      End Sub