Macro to save drawing to single PDF and DXF to multiple sheet with Revision

Hi all,

Hope some of you are able to help me out with a macro.

Currently I am using two macro's. On to save a drawing to a PDF which includes the property 'Current Revision' in the Filename.

I got the Macro from this website and the only change I had to made was  the Propertyname of the Revision property.

This one runs great and the code is as following:

-------------------------------

Sub main()

Dim swApp           As SldWorks.SldWorks

Dim swModel         As SldWorks.ModelDoc2

Dim swDrawModel     As SldWorks.ModelDoc2

Dim swDraw          As SldWorks.DrawingDoc

Dim swView          As SldWorks.View

Dim nErrors         As Long

Dim nWarnings       As Long

Dim Revision As String

Set swApp = Application.SldWorks

Set swDrawModel = swApp.ActiveDoc

If swDrawModel Is Nothing Then

        MsgBox "There is no active drawing document"

        Exit Sub

End If

  

If swDrawModel.GetType <> swDocDRAWING Then

        MsgBox "Open a drawing first and then TRY again!"

        Exit Sub

End If

Set swDraw = swDrawModel

Set swView = swDraw.GetFirstView

Set swView = swView.GetNextView

Set swModel = swView.ReferencedDocument

If swModel.GetPathName = "" Then

        MsgBox "Insert a View first and then TRY again!"

        Exit Sub

End If

    Revision = swModel.GetCustomInfoValue("", "Current revision")

    If Revision = "" Then

            Revision = ""

    Else

        Revision = "_" & Revision

    End If

swDraw.SaveAs3 Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, ".") - 1) & Prop & Revision & ".PDF", 0, 0

End Sub

----------------------------------------------

The second one i use is one I also got from this site and I want to use it to save the drawing to DXF with different Sheets.

It is the following one but it does'nt include the Revision in the Filename. It is naming the file '002001-00-04023_-1_1.DXF' instead of '002001-00-04023_0-1_1.DXF' Note the revionnumber '0'in the filename.

The code is the following:

---------------------------------------------------------

Sub main()

    Dim swApp                       As SldWorks.SldWorks

    Dim swModel                     As SldWorks.ModelDoc2

    Dim swDraw                      As SldWorks.DrawingDoc

    Dim vSheetName                  As Variant

    Dim nErrors                     As Long

    Dim nWarnings                   As Long

    Dim nRetval                     As Long

    Dim bShowMap                    As Boolean

    Dim nNumSheet                   As Long

    Dim i                           As Long

    Dim bRet                        As Boolean

    Dim FileName                    As String

   

   

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

' Is document active?

If swModel Is Nothing Then

    swApp.SendMsgToUser2 "A Drawing document must be active.", swMbWarning, swMbOk

    Exit Sub

End If

' Is it a Drawing document?

If swModel.GetType <> swDocDRAWING Then

    swApp.SendMsgToUser2 "A Drawing document must be active.", swMbWarning, swMbOk

    Exit Sub

End If

Set swDraw = swModel

' Rebuild the Drawing

    swDraw.ForceRebuild3 (False)

    vSheetName = swDraw.GetSheetNames

    For i = 0 To UBound(vSheetName)

    bRet = swDraw.ActivateSheet(vSheetName(i))

   

' Zoom to Fit the Sheet

   

    swDraw.ViewZoomtofit2

'Set File Name Here

   

    FileName = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, ".") - 1) ' Strips off the file extension

    FileName = FileName & "_" & swModel.GetCustomInfoValue("", "Current revision") & "-" & i + 1 & "_" & swDraw.GetSheetCount

    bRet = swModel.SaveAs4(FileName & ".DXF", swSaveAsCurrentVersion, swSaveAsOptions_Silent, nErrors, nWarnings)

    Next i

' Switch back to first sheet

    bRet = swDraw.ActivateSheet(vSheetName(0))

End Sub

----------------------------------------------------------------

Now my questions are:

1. What is wrong in the DXF code that is failing to write the property 'Current revision' to the filename.

2 Is it possible to combine both macro's into one?

Hope you can help me out on this.

Kind regards

Remy Snippe

SolidworksApi macros