Add mate between coordinate systems using SOLIDWORKS API

Edit ArticleEdit Article

Adds coincident mate between 2 coordinate systems of 2 selected components using SOLIDWORKS API. The components must contain the coordinate system features named Coordinate System1

Coincident mate property manager page
Coincident mate property manager page

IAssemblyDoc::AddMate3 SOLIDWORKS API is used to insert mate feature.

Dim swApp As SldWorks.SldWorks
Dim swAssy As SldWorks.AssemblyDoc
Dim swSelMgr As SldWorks.SelectionMgr

Sub main()

    Set swApp = Application.SldWorks
    Set swAssy = swApp.ActiveDoc
    If Not swAssy Is Nothing Then
        Set swSelMgr = swAssy.SelectionManager
        Dim swCs1 As SldWorks.Feature
        Dim swCs2 As SldWorks.Feature
        Set swCs1 = GetCoordinateSystemFromSelection(1, "Coordinate System1")
        Set swCs2 = GetCoordinateSystemFromSelection(2, "Coordinate System1")
        swCs1.Select2 False, 1
        swCs2.Select2 True, 1
        swAssy.AddMate3 swMateType_e.swMateCOINCIDENT, swMateAlign_e.swMateAlignCLOSEST, False, 0, 0, 0, 0, 0, 0, 0, 0, False, 0
        MsgBox "Please open assembly"
    End If
End Sub

Function GetCoordinateSystemFromSelection(index As Integer, name As String) As SldWorks.Feature
    Dim swComp As SldWorks.Component2
    Dim swCoordSys As SldWorks.Feature
    Set swComp = swSelMgr.GetSelectedObjectsComponent2(index)
    If Not swComp Is Nothing Then
        Set swCoordSys = swComp.FeatureByName(name)
        If swCoordSys Is Nothing Then
            MsgBox "Component " & swComp.Name2 & " doesn't contain the feature " & name
        End If
        MsgBox "Please select 2 components"
    End If
    Set GetCoordinateSystemFromSelection = swCoordSys
End Function

Product of Xarial Product of Xarial