Витя,
вот рабочий пример для двух цилиндрических поверхностей
Это пример из хелпа, единственное что я подправил это аргументы по умолчанию заменил на
kInferredLineв строке
Set oMate = oAsmCompDef.Constraints.AddMateConstraint(oBrepEnt1, oBrepEnt2, 0,
kInferredLine, kInferredLine)т.е. указал что нужно привязываться к цилиндру как по линии.
Ну а раз вы конструктор, то хорошо знаете как выделить только две цилиндрические грани у деталей в сборке,
потому как для работы макроса это будет нужно
Public Sub MateConstraint()
' Set a reference to the assembly component definintion.
Dim oAsmCompDef As AssemblyComponentDefinition
Set oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition
' Set a reference to the select set.
Dim oSelectSet As SelectSet
Set oSelectSet = ThisApplication.ActiveDocument.SelectSet
' Validate the correct data is in the select set.
If oSelectSet.Count <> 2 Then
MsgBox "You must select the two entities valid for mate."
Exit Sub
End If
' Get the two entities from the select set.
Dim oBrepEnt1 As Object
Dim oBrepEnt2 As Object
Set oBrepEnt1 = oSelectSet.Item(1)
Set oBrepEnt2 = oSelectSet.Item(2)
' Create the insert constraint between the parts.
Dim oMate As MateConstraint
Set oMate = oAsmCompDef.Constraints.AddMateConstraint(oBrepEnt1, oBrepEnt2, 0, kInferredLine, kInferredLine)
End Sub