AnsweredAssumed Answered

Macro to make stl and igs parts of model starting from drawing file

Question asked by Ted Wayne on Sep 12, 2014
Latest reply on Sep 18, 2014 by Ted Wayne

At work we have been having problems with keeping our revisions in line with all of our files. Our drawing templates are set up so the most recent revision in the revision box on the title block links back to the custom properties. I have managed to find macros online and modify them to help with our problem. right now i have one that takes the revision off the drawing file, adds it to the end of the model file name, and saves it as a .STEP file. I want to do this with .igs and .stl files also but i cannot seem to get it to work. This is what i have for step files.


*I am fairly new to Macros, but i have a decent understanding of programing



Dim swApp           As SldWorks.SldWorks

Dim swModel         As SldWorks.ModelDoc2

Dim swDraw          As SldWorks.DrawingDoc

Dim swCustProp      As CustomPropertyManager

Dim valOut          As String

Dim resolvedValOut  As String

Dim Filepath        As String

Dim FileName        As String

Dim retVal          As Boolean

Dim errors          As Long, warnings As Long


Sub main()


Set swApp = Application.SldWorks

Set swDraw = swApp.ActiveDoc


' Check to see if a drawing is loaded.


If (swDraw Is Nothing) Or (swDraw.GetType <> swDocDRAWING) Then


  1. swApp.SendMsgToUser ("To be used for drawings only, Open a drawing first and then TRY!")

' If no model currently loaded, then exitExit Sub End If Set swView = swDraw.GetFirstViewSet swView = swView.GetNextViewSet swModel = swView.ReferencedDocumentSet Sheet = swApp.ActiveDoc.GetCurrentSheet  Set swCustProp = swDraw.Extension.CustomPropertyManager("")

  1. swCustProp.Get2 "Revision", valOut, resolvedValOut 'Change the custom property name here


Filepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))


FileName = Left(swModel.GetTitle, Len(swModel.GetTitle) - 7)


'change the step file options

retVal = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swStepAP, 214)


retVal = swModel.Extension.SaveAs(Filepath & FileName & "REV" & resolvedValOut & ".step", swSaveAsVersion_e.swSaveAsCurrentVersion, swSaveAsOptions_e.swSaveAsOptions_Silent, Nothing, errors, warnings)


End Sub