17 Replies Latest reply on Oct 15, 2013 12:59 AM by Deepak Gupta

    How to insert macro into EPDM task?

    Emil Svallingson

      I have a macro working perfectly in SW but how do I insert it succesfully into a new EPDM task? This is the macro I am using:



      ' Save Assy As Part (Exterior Surfaces).swp ---------------------------06/16/12


      'Description: Macro to save assembly to save as part (Exterior Surfaces).

      '             Then saved part file is further saved as "STEP" file in the same location.


      'Precondition: Any active assembly with minimum one part.


      'Postcondition: Assembly is saved as part and part is saved as "STEP" file.


      ' ------------------------------------------------------------------------------

      ' Written by: Deepak Gupta (http://gupta9665.wordpress.com/)

      ' ------------------------------------------------------------------------------



      Dim swApp               As SldWorks.SldWorks

      Dim swModel             As SldWorks.ModelDoc2

      Dim swModelDocExt       As SldWorks.ModelDocExtension

      Dim FilePath            As String

      Dim sFilePath           As String

      Dim PathSize            As Long

      Dim PathNoExtension     As String

      Dim NewFilePath         As String

      Dim nErrors             As Long

      Dim nWarnings           As Long



      Sub main()



      Set swApp = Application.SldWorks

      Set swModel = swApp.ActiveDoc

      Set swModelDocExt = swModel.Extension



      FilePath = swModel.GetPathName

      PathSize = Strings.Len(FilePath)

      PathNoExtension = Strings.Left(FilePath, PathSize - 6)

      NewFilePath = PathNoExtension & "SLDPRT"



      swApp.SetUserPreferenceIntegerValue swSaveAssemblyAsPartOptions, swSaveAsmAsPart_ExteriorFaces

      swModelDocExt.SaveAs NewFilePath, swSaveAsCurrentVersion, swSaveAsOptions_Silent, Nothing, nErrors, nWarnings



      swApp.CloseDoc swModel.GetTitle



      Set swModel = swApp.OpenDoc(NewFilePath, swDocPART)

      Set swModel = swApp.ActiveDoc



      sFilePath = PathNoExtension & "STEP"


      swModel.SaveAs (sFilePath)



      swApp.CloseDoc swModel.GetTitle



      End Sub