Add mate between coordinate systems using SOLIDWORKS API
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
{ width=640 }
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
swAssy.EditRebuild
Else
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
End If
Else
MsgBox "Please select 2 components"
End
End If
Set GetCoordinateSystemFromSelection = swCoordSys
End Function