3 Replies Latest reply on Oct 9, 2015 5:27 AM by Yong Ning

    Example macro to export dwg with "set custom map file"

    Mario Zahren

      Hello all,


      I need an example to save a SolidWorks-Drawing as a DWG. Therefore it is necessary to use a mappingfile to map SolidWorks drawing entities and colors to layers when saving the drawing.


      Any help would be appreciated.





      Here is the code I use so far:


      Option Explicit


          Dim swApp                   As SldWorks.SldWorks

           Dim swModel                 As SldWorks.ModelDoc2

           Dim sPathName               As String

           Dim nErrors                 As Long

           Dim nWarnings               As Long

           Dim nRetval                 As Long

           Dim bShowMap                As Boolean

           Dim bRet                    As Boolean

           Dim CustomerA               As String

           Dim Index                   As Boolean


      Sub main()


           Set swApp = Application.SldWorks

           Set swModel = swApp.ActiveDoc


           ' Strip off SolidWorks drawing file extension (.slddrw)

           ' and add DXF file extension (.dxf)

           sPathName = swModel.GetPathName

           sPathName = Left(sPathName, Len(sPathName) - 6)

           sPathName = sPathName + "dwg"

           CustomerA = "\\hgntsrv11\Solidworks\Dateipositionen\DXF_DWG_Abbildungsdatei\HME_Abbildungsdatei.txt"


          ' Turn off showing of map

           bShowMap = swApp.GetUserPreferenceToggle(swDXFDontShowMap)


           swApp.SetUserPreferenceToggle swDXFDontShowMap, False


           bRet = swApp.SetUserPreferenceStringValue(swDxfMappingFiles, CustomerA)



                     swApp.SetUserPreferenceStringListValue swDxfMappingFiles, CustomerA


                     Index = swApp.GetUserPreferenceIntegerValue(swDxfMappingFileIndex)


                     If (Index = -1) Then


                     swApp.SetUserPreferenceIntegerValue swDxfMappingFileIndex, 0


                     End If



           bRet = swModel.SaveAs4(sPathName, swSaveAsCurrentVersion, swSaveAsOptions_Silent, nErrors, nWarnings)


           If bRet = False Then

               nRetval = swApp.SendMsgToUser2("Problems saving file.", swMbWarning, swMbOk)

           End If


          ' Restore showing of map

           swApp.SetUserPreferenceToggle swDXFDontShowMap, bShowMap


      End Sub


      I´m having trouble integrating the map file "CustomerA"

      Can anybody help?