Get Mate Reference Properties Example (VBA)
This example shows how to get mate reference properties.
'----------------------------------------------------------------------------
' Preconditions: Open a part or assembly document containing a mate reference
' named
Default-<1>.
'
' Postconditions: Inspect the Immediate window.
'----------------------------------------------------------------------------
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swMateReference As SldWorks.MateReference
Dim swFeature As SldWorks.Feature
Dim mateRefObj As Object
Dim mateRefEntityType As Long
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swSelMgr As SldWorks.SelectionMgr
Dim strMateReferencename As String
Dim nCount As Long
Dim refEntType As Long
Dim mateRefAlignment As Long
Dim boolstatus As Boolean
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
Set swSelMgr = swModel.SelectionManager
swModel.ClearSelection2 True
boolstatus = swModelDocExt.SelectByID2("Default-<1>", "POSGROUP", 0, 0, 0, False, 0, Nothing, 0)
Set swFeature = swSelMgr.GetSelectedObject6(1, -1)
Set swMateReference = swFeature.GetSpecificFeature2
swModel.ClearSelection2 True
' Get the name of the mate reference
strMateReferencename = swMateReference.Name
Debug.Print "Name of mate reference is " & strMateReferencename
nCount = swMateReference.ReferenceEntityCount
Debug.Print "Number of mate reference entities is " & nCount
refEntType = swMateReference.ReferenceType(0)
Debug.Print "Mating type of primary mate entity is " & refEntType
mateRefAlignment = swMateReference.ReferenceAlignment(0)
Debug.Print "Alignment of primary mate entity is " & mateRefAlignment
' Get the mate reference entity in the mate reference
Set mateRefObj = swMateReference.ReferenceEntity2(0)
' Get the mate reference entity type
mateRefEntityType = swMateReference.ReferenceEntityType(0)
Debug.Print "Entity type of primary mate entity is " & mateRefEntityType
' QueryInterface the returned object as a Face, if a face
If mateRefEntityType = swSelectType_e.swSelFACES Then
Dim mateRefFace As SldWorks.Face2
Set mateRefFace = mateRefObj
Debug.Print "Primary mate entity is a face with area = " & mateRefFace.GetArea
End If
swModel.ClearSelection2 True
End Sub