AnsweredAssumed Answered

Bended part flatening script does not work

Question asked by Edgars Baumanis on Mar 28, 2018
Latest reply on Mar 31, 2018 by Nilesh Patel

Hi!

 

I have been using ready script that I found on the internet as part of my own macro, but today I noticed that it doesn't do the job that it is supposed to do.

I have two example parts, they are very similar, but it might be that they are made with different Solidworks versions - that is why the script works for some parts, but for some it doesn't. In the attachment there are two pats - "part1" where the script is working and "part2" where the script is not working for some reason.

Can someone help me get this script working for both parts?

 

 

The script

Option Explicit

 

Public Enum swSMBendState_e

 

    swSMBendStateNone = 0       '  No bend state - not a sheet metal part

 

    swSMBendStateSharps = 1     '  Bends are in the sharp state - bends currently not applied

 

    swSMBendStateFlattened = 2  '  Bends are flattened

 

    swSMBendStateFolded = 3     '  Bends are fully applied

 

End Enum

 

Public Enum swSMCommandStatus_e

 

    swSMErrorNone = 0               '  No errors

 

    swSMErrorUnknown = 1            '  Failed for an unknown reason

 

    swSMErrorNotAPart = 2           '  Sheet metal commands only apply to SolidWorks parts

 

    swSMErrorNotASheetMetalPart = 3 '  Part contains no sheet metal features

 

    swSMErrorInvalidBendState = 4   '  Invalid bend state was specified

 

End Enum

 

Sub main()

 

    Dim swApp               As SldWorks.SldWorks

 

    Dim swModel             As SldWorks.ModelDoc2

 

    Dim nBendState          As Long

 

    Dim nRetVal             As Long

 

    Dim bRet                As Boolean

 

    Set swApp = CreateObject("SldWorks.Application")

 

    Set swModel = swApp.ActiveDoc

 

   

 

    nBendState = swModel.GetBendState

 

   

 

    Debug.Print "File = " & swModel.GetPathName

 

    Debug.Print "  BendState    = " & nBendState

 

   

 

    If nBendState <> swSMBendStateFlattened Then

 

        nRetVal = swModel.SetBendState(swSMBendStateFlattened)

 

        Debug.Print "  SetBendState = " & nRetVal

 

       

 

        ' Rebuild to see changes

 

        bRet = swModel.EditRebuild3: Debug.Assert bRet

 

    End If

 

End Sub

 

Attachments

Outcomes