Get Mirror Feature Data Example (VBA)
This example shows how to get a mirror feature's data.
'----------------------------------------
'
' Preconditions:
' (1)
Model document is open.
' (2)
Mirror feature is selected.
'
' Postconditions: None
'
'-----------------------------------------
Option Explicit
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swFeat As
SldWorks.feature
Dim
swMirrorPatt As
SldWorks.MirrorPatternFeatureData
Dim
vFaceArr As
Variant
Dim
vPattArr As
Variant
Dim
swFace As
SldWorks.face2
Dim
swFeatPatt As
SldWorks.feature
Dim
swEnt As
SldWorks.Entity
Dim
swPlaneFeat As
SldWorks.feature
Dim
swSelData As
SldWorks.SelectData
Dim
bRet As
Boolean
Dim
i As
Long
Set
swApp = CreateObject("SldWorks.Application")
Set
swModel = swApp.ActiveDoc
Set
swSelMgr = swModel.SelectionManager
Set
swSelData = swSelMgr.CreateSelectData
Set
swFeat = swSelMgr.GetSelectedObject5(1)
Set
swMirrorPatt = swFeat.GetDefinition
'
Get mirror feature's data
Debug.Print
"File = " & swModel.GetPathName
Debug.Print
" "
& swFeat.Name
Debug.Print
" GeometryPattern
=
" & swMirrorPatt.GeometryPattern
Debug.Print
" MirrorFaceCount
=
" & swMirrorPatt.GetMirrorFaceCount
Debug.Print
" MirrorPlaneType
=
" & swMirrorPatt.GetMirrorPlaneType
Debug.Print
" PatternFeatureCount
=
" & swMirrorPatt.GetPatternFeatureCount
'
Roll back to get to the faces and features
bRet
= swMirrorPatt.AccessSelections(swModel,
Nothing): Debug.Assert bRet
swModel.ClearSelection2 True
bRet
= False
If
1 = swMirrorPatt.GetMirrorPlaneType
Then
Set
swPlaneFeat = swMirrorPatt.Plane
'
Cannot select a reference plane through Entity, so
'
use Feature
Debug.Print
" Plane
=
" & swPlaneFeat.Name
bRet
= swPlaneFeat.Select2(True, 0):
Debug.Assert bRet
Else
'
Select face through Entity
Set
swEnt = swMirrorPatt.Plane
bRet
= swEnt.Select4(True, swSelData):
Debug.Assert bRet
End
If
Debug.Assert
bRet
If
bRet Then Stop
vFaceArr
= swMirrorPatt.MirrorFaceArray
If
Not IsEmpty(vFaceArr) Then
swModel.ClearSelection2 True
bRet
= False
For
i = 0 To UBound(vFaceArr)
Set
swFace = vFaceArr(i)
Set
swEnt = swFace
bRet
= swEnt.Select4(True, swSelData):
Debug.Assert bRet
Next
i
If
bRet Then Stop
End
If
vPattArr
= swMirrorPatt.PatternFeatureArray
If
Not IsEmpty(vPattArr) Then
swModel.ClearSelection2 True
bRet
= False
For
i = 0 To UBound(vPattArr)
Set
swFeatPatt = vPattArr(i)
Debug.Print
" Feature
(" & i & ") =
" & swFeatPatt.Name
bRet
= swFeatPatt.Select2(True, 0): Debug.Assert bRet
Next
i
If
bRet Then Stop
End
If
'
Cancel changes
swMirrorPatt.ReleaseSelectionAccess
End Sub
'----------------------------------------