'----------------------------------------------
'
' Preconditions: Sheet metal part is open.
'
' Postconditions: None
'
'----------------------------------------------
Option Explicit
Sub Process_CustomBendAllowance(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swCustBend As SldWorks.CustomBendAllowance)
Debug.Print " BendAllowance = " & swCustBend.BendAllowance * 1000# & " mm"
Debug.Print " BendDeduction = " & swCustBend.BendDeduction * 1000# & " mm"
Debug.Print " BendTableFile = " & swCustBend.BendTableFile
Debug.Print " KFactor = " & swCustBend.KFactor
Debug.Print " Type = " & swCustBend.Type
End Sub
Sub Process_SMBaseFlange(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swBaseFlange As SldWorks.BaseFlangeFeatureData
Set swBaseFlange = swFeat.GetDefinition
Debug.Print " BendRadius = " & swBaseFlange.BendRadius * 1000# & " mm"
End Sub
Sub Process_SheetMetal(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swCustBend As SldWorks.CustomBendAllowance
Dim swSheetMetal As SldWorks.SheetMetalFeatureData
Set swSheetMetal = swFeat.GetDefinition
Set swCustBend = swSheetMetal.GetCustomBendAllowance
Debug.Print " BendRadius = " & swSheetMetal.BendRadius * 1000# & " mm"
Process_CustomBendAllowance swApp, swModel, swCustBend
End Sub
Sub Process_SM3dBend(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swSketchBend As SldWorks.SketchedBendFeatureData
Dim swCustBend As SldWorks.CustomBendAllowance
Set swSketchBend = swFeat.GetDefinition
Set swCustBend = swSketchBend.GetCustomBendAllowance
Debug.Print " UseDefaultBendAllowance = " & swSketchBend.UseDefaultBendAllowance
Debug.Print " UseDefaultBendRadius = " & swSketchBend.UseDefaultBendRadius
Debug.Print " BendRadius = " & swSketchBend.BendRadius * 1000# & " mm"
Process_CustomBendAllowance swApp, swModel, swCustBend
End Sub
Sub Process_SMMiteredFlange(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swMiterFlange As SldWorks.MiterFlangeFeatureData
Set swMiterFlange = swFeat.GetDefinition
Debug.Print " UseDefaultBendAllowance = " & swMiterFlange.UseDefaultBendAllowance
Debug.Print " UseDefaultBendRadius = " & swMiterFlange.UseDefaultBendRadius
Debug.Print " BendRadius = " & swMiterFlange.BendRadius * 1000# & " mm"
End Sub
Sub Process_Bends(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swBends As SldWorks.BendsFeatureData)
Dim swCustBend As SldWorks.CustomBendAllowance
Set swCustBend = swBends.GetCustomBendAllowance
Debug.Print " BendRadius = " & swBends.BendRadius * 1000# & " mm"
Debug.Print " UseDefaultBendAllowance = " & swBends.UseDefaultBendAllowance
Debug.Print " UseDefaultBendRadius = " & swBends.UseDefaultBendRadius
Process_CustomBendAllowance swApp, swModel, swCustBend
End Sub
Sub Process_ProcessBends(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swBends As SldWorks.BendsFeatureData
Set swBends = swFeat.GetDefinition
Process_Bends swApp, swModel, swBends
End Sub
Sub Process_FlattenBends(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swBends As SldWorks.BendsFeatureData
Set swBends = swFeat.GetDefinition
Process_Bends swApp, swModel, swBends
End Sub
Sub Process_EdgeFlange(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swEdgeFlange As SldWorks.EdgeFlangeFeatureData
Set swEdgeFlange = swFeat.GetDefinition
Debug.Print " UseDefaultBendRadius = " & swEdgeFlange.UseDefaultBendRadius
Debug.Print " BendRadius = " & swEdgeFlange.BendRadius * 1000# & " mm"
End Sub
Sub Process_FlatPattern(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swFlatPatt As SldWorks.FlatPatternFeatureData
Set swFlatPatt = swFeat.GetDefinition
Debug.Print " To do..."
End Sub
Sub Process_Hem(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swHem As SldWorks.HemFeatureData
Dim swCustBend As SldWorks.CustomBendAllowance
Set swHem = swFeat.GetDefinition
Set swCustBend = swHem.GetCustomBendAllowance
Debug.Print " UseDefaultBendAllowance = " & swHem.UseDefaultBendAllowance
Debug.Print " Radius = " & swHem.Radius * 1000# & " mm"
Process_CustomBendAllowance swApp, swModel, swCustBend
End Sub
Sub Process_Jog(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swJog As SldWorks.JogFeatureData
Dim swCustBend As SldWorks.CustomBendAllowance
Set swJog = swFeat.GetDefinition
Set swCustBend = swJog.GetCustomBendAllowance
Debug.Print " UseDefaultBendAllowance = " & swJog.UseDefaultBendAllowance
Debug.Print " UseDefaultBendRadius = " & swJog.UseDefaultBendRadius
Debug.Print " BendRadius = " & swJog.BendRadius * 1000# & " mm"
Process_CustomBendAllowance swApp, swModel, swCustBend
End Sub
Sub Process_LoftedBend(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swLoftBend As SldWorks.LoftedBendsFeatureData
Set swLoftBend = swFeat.GetDefinition
Debug.Print " To do..."
End Sub
Sub Process_Rip(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swRip As SldWorks.RipFeatureData
Set swRip = swFeat.GetDefinition
Debug.Print " To do..."
End Sub
Sub Process_CornerFeat(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swCloseCorner As SldWorks.ClosedCornerFeatureData
Set swCloseCorner = swFeat.GetDefinition
Debug.Print " To do..."
End Sub
Sub Process_OneBend(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
Debug.Print " +" & swFeat.Name & " [" & swFeat.GetTypeName & "]"
Dim swOneBend As SldWorks.OneBendFeatureData
Dim swCustBend As SldWorks.CustomBendAllowance
Set swOneBend = swFeat.GetDefinition
Set swCustBend = swOneBend.GetCustomBendAllowance
Debug.Print " UseDefaultBendAllowance = " & swOneBend.UseDefaultBendAllowance
Debug.Print " UseDefaultBendRadius = " & swOneBend.UseDefaultBendRadius
Process_CustomBendAllowance swApp, swModel, swCustBend
End Sub
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swFeat As SldWorks.Feature
Dim swSubFeat As SldWorks.Feature
Dim bRet As Boolean
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swFeat = swModel.FirstFeature
Debug.Print "File = " & swModel.GetPathName
Do While Not swFeat Is Nothing
' Process top-level sheet metal features
Select Case swFeat.GetTypeName
Case "SMBaseFlange"
Process_SMBaseFlange swApp, swModel, swFeat
Case "SheetMetal"
Process_SheetMetal swApp, swModel, swFeat
Case "SM3dBend"
Process_SM3dBend swApp, swModel, swFeat
Case "SMMiteredFlange"
Process_SMMiteredFlange swApp, swModel, swFeat
Case "ProcessBends"
Process_ProcessBends swApp, swModel, swFeat
Case "FlattenBends"
Process_FlattenBends swApp, swModel, swFeat
Case "EdgeFlange"
Process_EdgeFlange swApp, swModel, swFeat
Case "FlatPattern"
Process_FlatPattern swApp, swModel, swFeat
Case "Hem"
Process_Hem swApp, swModel, swFeat
Case "Jog"
Process_Jog swApp, swModel, swFeat
Case "LoftedBend"
Process_LoftedBend swApp, swModel, swFeat
Case "Rip"
Process_Rip swApp, swModel, swFeat
Case "CornerFeat"
Process_CornerFeat swApp, swModel, swFeat
Case Else
' Probably not a sheet metal feature
End Select
' process sheet metal sub-features
Set swSubFeat = swFeat.GetFirstSubFeature
Do While Not swSubFeat Is Nothing
Select Case swSubFeat.GetTypeName
Case "OneBend"
Process_OneBend swApp, swModel, swSubFeat
Case Else
' Probably not a sheet metal feature
End Select
Set swSubFeat = swSubFeat.GetNextSubFeature()
Loop
Set swFeat = swFeat.GetNextFeature
Loop
End Sub
'-----------------------------------------------