ds-blue-logo
Preview  |  SOLIDWORKS USER FORUM
Use your SOLIDWORKS ID or 3DEXPERIENCE ID to log in.
WMWilliam Miller06/04/2018

Hi everyone,

I am trying to save a reference model from a drawing as an igs file via macro. I am having trouble with the actual IGS file being saved however. I think it has something to do with how I set my swModel as equal to the swView.ReferencedDocument. Can anyone take a look at my relevant lines of code an help me get around this?

My relevant code for saving the IGS file starts at line 65.

Option Explicit

    Dim swApp               As SldWorks.SldWorks

    Dim swModel             As SldWorks.ModelDoc2

    Dim status              As Boolean

    Dim filename            As String

    Dim errors              As Long

    Dim warnings            As Long

    Dim swDraw              As SldWorks.DrawingDoc

    Dim swCustProp          As SldWorks.CustomPropertyManager

    Dim swView              As SldWorks.View

    Dim ValOut              As String

    Dim Path                As String

    Dim PDFpath             As String

    Dim DXFpath             As String

    Dim IGSpath             As String

    Dim filename            As String

    Dim Rev                 As String

Sub main()

    Set swApp = Application.SldWorks

   

    Set swApp = Application.SldWorks

    Set swDraw = swApp.ActiveDoc

         

    Set swView = swDraw.GetFirstView 'this is the sheet view

    Set swView = swView.GetNextView 'this is the next view

   

    Set swModel = swView.ReferencedDocument

    Set swCustProp = swModel.Extension.CustomPropertyManager(swView.ReferencedConfiguration)

   

  

    'Opens folder browser dialogue and prompts user for PDF Folder

    Path = SelectFolder("Select PDF Folder", "C:\Users\USER\Desktop\TEST FILES")

    Path = Path + "\"

     

    'creates the PDF directory if it doesn't exist

    PDFpath = Path & "PDFs\"

    If Dir(PDFpath, vbDirectory) = "" Then MkDir PDFpath

   

    'creates the DXF directory if it doesn't exist

    DXFpath = Path & "DXFs\"

    If Dir(DXFpath, vbDirectory) = "" Then MkDir DXFpath

   

    'creates the IGS directory if it doesn't exist

    IGSpath = Path & "IGSs\"

    If Dir(IGSpath, vbDirectory) = "" Then MkDir IGSpath

   

    'gets drawing number from model

    Set swCustProp = swModel.Extension.CustomPropertyManager("")

    swCustProp.Get5 "DrawingNo", True, ValOut, filename, False

    'gets rev from drawing properties

    Rev = swDraw.CustomInfo("Revision")

   

    'sets the filename to format: M*123456_REV-**

    filename = filename & "_REV-" & Rev

    'saves as PDF

    swDraw.SaveAs (PDFpath & filename & ".pdf")

    'Saves as DXF

    swDraw.SaveAs (DXFpath & filename & ".dxf")

    'Saves as IGES

    swModel.Extension.SaveAs (IGSpath & filename & ".igs"), swSaveAsCurrentVersion, swSaveAsOptions_Silent, Nothing, errors, warnings

   

End Sub