Process Body Example (VBA)
This example shows how create to a new part with an imported body from
the processed body of the original part.
'------------------------------------------------
'
' Preconditions:
' (1)
Part is open.
' (2)
Part contains only one solid body.
'
' Postconditions: A new part is created with an imported
body
' from
the processed body of the original part.
'
' NOTE: Differences are best seen in wireframe and with
parts
' that
contain curved, circular, or both types of faces.
'
'--------------------------------------------------
Option Explicit
Public Enum swCreateFeatureBodyOpts_e
swCreateFeatureBodyCheck
= &H1
swCreateFeatureBodySimplify
= &H2
End Enum
Sub main()
Const
RadPerDeg As
Double = 1# / 57.3
Const
MaxUAngle As
Double = 1# * RadPerDeg
Const
MaxVAngle As
Double = 1# * RadPerDeg
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swBody As
SldWorks.body2
Dim
swProcBody As
SldWorks.body2
Dim
swPart As
SldWorks.PartDoc
Dim
swNewPart As
SldWorks.PartDoc
Dim
swFeat As
SldWorks.feature
Dim
vBodies As
Variant
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swPart = swModel
vBodies
= swPart.GetBodies2(swSolidBody,
False)
Set
swBody = vBodies(0)
Set
swProcBody = swBody.GetProcessedBody2(MaxUAngle,
MaxVAngle)
Set
swNewPart = swApp.NewDocument("C:\Program
Files\SolidWorks\data\templates\part.prtdot", 0, 0, 0)
Set
swFeat = swNewPart.CreateFeatureFromBody3(swProcBody,
False, swCreateFeatureBodyCheck)
Debug.Print
"File = " & swModel.GetPathName
Debug.Print
" Body
faces =
" & swBody.GetFaceCount
Debug.Print
" Processed
body faces =
" & swProcBody.GetFaceCount
End Sub
'-------------------------------------------