2 Replies Latest reply on Dec 2, 2014 9:01 AM by Will Frost

    PDF Macro with Revision Info

    Will Frost

      Hi I'm using the below code to try and generate a pdf from a drawing that includes revision information.  The code currently pulls this from the "custom properties" in the drawings properties, but need to change this so it's pulled from the custom properties of the Part file, can anyone advise how this is done?




      Dim SwApp As SldWorks.SldWorks

      Dim Model As SldWorks.ModelDoc2

      Dim MyPath, ModName, NewName As String

      Dim MB As Boolean

      Dim Errs As Long

      Dim Warnings As Long

      Dim reesolvedValOut As String

      Dim revTag As String

      Dim swConfigMgr         As SldWorks.ConfigurationManager

      Dim swConfig            As SldWorks.Configuration

      Dim swCustPropMgr       As SldWorks.CustomPropertyManager


      Sub main()


        Set SwApp = Application.SldWorks


      ' This ensures that there are files loaded in SolidWorks

        Set Model = SwApp.ActiveDoc

        Set swConfigMgr = Model.ConfigurationManager

        Set swConfig = swConfigMgr.ActiveConfiguration


        If Model Is Nothing Then

            MB = MsgBox("No drawing loaded!", vbCritical)

            Exit Sub


        End If


      'Get Revision Tag

        Set swCustPropMgr = Model.Extension.CustomPropertyManager("")

        swCustPropMgr.Get2 "Revision", revTag, reesolvedValOut


      ' Admonish user if attempted to run macro on part or assy file

        If Model.GetType <> 3 Then

            SwApp.SendMsgToUser "Current document is not a drawing."


        End If


      ' Use one of the three following options for PDF save location

      ' Comment out the options with are not used.


      ' Option 1: Use the current directory

      '  MyPath = CurDir


      ' Option 2: Specify the directory you want to use '  MyPath = "C:\PDF"


      ' Option 3: Use the drawing folder

        MyPath = Left(Model.GetPathName, InStrRev(Model.GetPathName, "\") - 1)


      ' Status

        ModName = Left(Model.GetTitle, InStrRev(Model.GetTitle, " Sheet") - 3)

        NewName = ModName & " REV " & revTag & ".pdf"


        MsgBox "Save file:" & Chr(13) & NewName & Chr(13) & Chr(13) & "To location:" & Chr(13) & MyPath & Chr(13) & Chr(13) & "No notification will occur for success PDF creation."


      ' PDF Creation

        MB = Model.SaveAs4(MyPath & "\" & NewName, swSaveAsCurrentVersion, swSaveAsOptions_Silent, Errs, Warnings)


      ' Warnings to user on Error

      '  MsgBox "Errors: " & Errs & vbCrLf & "Warnings: " & Warnings

        If Warnings <> 0 Then

           MsgBox "There were warnings.  PDF creation may have failed. Verify " & Chr(13) & "results and check possible causes.", vbExclamation


        End If


        If MB = False Then

           MsgBox "PDF creation has failed!  Check save location, available" & Chr(13) & "disk space or other possible causes.", vbCritical


        End If


      'Clear immediate values

        Set Model = Nothing

        Set MyPath = Nothing


      End Sub



      Many thanks for the help!