1 Reply Latest reply on Jun 3, 2014 7:24 PM by Artem Taturevych

    Saving to .step, sometimes corrupt files.

    Tore Magne Bjornodegard

      I have a macro that saves as .step to a spesified folder, somtimes the files get corrupted (no data in file or the faces are all messed up). When the solidworks has started to make corrupt files it will do so with the macro and if do it manually. Thenn i have to reset .step export options (save as> export options> reset> reset this page only). Then i recheck the all the same boxes i had and press ok. Now it works again.


      I have similar problems when importing .step files, sometimes the faces are all messed up, reset options works here as well.


      My question is this, can i add something to my macro to reset export options? Many thanks


      Attached corrupt .step file and error log.


      Sample of my code below:


      Sub ExportStep()



      Dim swApp As SldWorks.SldWorks

      Set swApp = Application.SldWorks



      Dim swModel As SldWorks.ModelDoc2

      Set swModel = swApp.ActiveDoc



      Dim swFeat As SldWorks.Feature

      Set swFeat = swModel.FirstFeature



      Dim swCustPropMgr As SldWorks.CustomPropertyManager

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



      Dim SaveAsName As String

      SaveAsName = swCustPropMgr.Get("PartNo")



      Dim SavePath As String

      SavePath = "C:\temp\"



      If SaveAsName = "" Then

          MsgBox swModel.GetTitle & " Prop missing will save as file name!"


          If TypeOf swModel Is PartDoc Then

              SaveAsName = Replace(swModel.GetTitle, ".SLDPRT", "", , , vbTextCompare)

          ElseIf TypeOf swModel Is AssemblyDoc Then

              SaveAsName = Replace(swModel.GetTitle, ".SLDASM", "", , , vbTextCompare)

          End If



      End If



      Debug.Print SaveAsName



      Dim RetVal As Boolean

      Dim errors As Long, warnings As Long



      'change the step file options

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




      swModel.SaveAs2 SavePath & SaveAsName & ".step", 0, True, False



      End Sub