Festlegen einer Einschränkung in einer API für den gelöschten Zustand

Hallo

Schon schöne Verbesserung des Forums, ich sehe, dass es sich hier in die richtige Richtung entwickelt!

Ich habe eine Anfrage von einem Kollegen, der möchte, dass ich mein Makro verbessere, das es mir ermöglicht, eine Komponente einzufügen, die " freigegeben " einen Ursprung / Punkt-Koinzidenz zu setzen und es zu beheben.

Problem: In einigen Fällen müssen wir uns neu positionieren, also um unser Leben zu erleichtern und ein paar "Klicks " zu gewinnen, bittet er mich, die Einschränkung zu entfernen, bevor ich mein Teil repariere.

Ich habe viel recherchiert und Makros automatisch aufgezeichnet, aber es kam nichts heraus. Ich kann meine Beschränkung weder auswählen noch eine Beschränkung in den gelöschten Zustand versetzen

'suppression du "Fixe" sur la première pièce
boolstatus = swModel.Extension.SelectByID2(CompInsert, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
swModel.UnfixComponent

'Selection du composant et ajout contrainte coincident origine/origine
swModel.ClearSelection2 True
boolstatus = swModel.Extension.SelectByID2(FirstSelection, "EXTSKETCHPOINT", 0, 0, 0, False, 1, Nothing, 0)
boolstatus = swModel.Extension.SelectByID2(SecondSelection, "COORDSYS", 0, 0, 0, True, 1, Nothing, 0)
Set swMate = swModel.AddMate5(20, -1, False, 0, 0.001, 0.001, 0.001, 0.001, 0.5235987755983, 0.5235987755983, 0.5235987755983, False, False, 0, longstatus)

'Remettre la pièce "Fixe"
boolstatus = swModel.Extension.SelectByID2(CompInsert, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
swModel.FixComponent
swModel.ClearSelection2 True

Während ich auf Ihre Antworten warte, wünsche ich Ihnen allen frohe Feiertage.

Hallo @mandragore
Ich denke, ich muss den Baum durchgehen und mir das entsprechende Feature besorgen

Dim swApp As SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim swAssembly As AssemblyDoc
Dim swswSelmgr As SelectionMgr
Dim swFeature As Feature
Dim swMate As Mate2
Sub main()

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swAssembly = swModel
Set swSelmgr = swModel.SelectionManager
Dim swError As Long
Set swMate = swAssembly.AddMate5(swMateType_e.swMateCOINCIDENT, swMateAlign_e.swAlignNONE, False, 0, 0, 0, 0, 0, 0, 0, 0, False, False, 0, swError)
swModel.ForceRebuild3 True
Set swFeature = GET_MATE_FEATURE()
swFeature.SetSuppression2 swFeatureSuppressionAction_e.swSuppressFeature, swInConfigurationOpts_e.swThisConfiguration, Nothing
End Sub

Function GET_MATE_FEATURE() As Feature
    Dim curentFeature As Feature
    Set curentFeature = swModel.FirstFeature
    Dim lastFeature As Feature
    Do While Not curentFeature Is Nothing
    If curentFeature.GetTypeName2() = "MateGroup" Then
        Dim subFeature As Feature
        Set subFeature = curentFeature.GetFirstSubFeature
        Set lastFeature = subFeature
        Do While Not subFeature Is Nothing
            Set lastFeature = subFeature
            Set subFeature = subFeature.GetNextSubFeature
        Loop
        Exit Do
    End If
    Set curentFeature = curentFeature.GetNextFeature()
    Loop
    Set GET_MATE_FEATURE = lastFeature
End Function

2 „Gefällt mir“

Ab der Version 2019 können Sie mit der Funktion Createmate auch die Standardeinschränkungen festlegen und die Funktion direkt zurückgeben.

2 „Gefällt mir“