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
SolidworksApi macrosOption 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
