Re: Hallo allemaal!
Het beste antwoord zal dus aan @Konti worden toegeschreven: zelfs als ik in veel andere antwoorden elementen heb gevonden om me te ontgrendelen, is het zijn antwoord dat me het meest in staat stelde om vooruit te komen (en dit ondanks het feit dat zijn code in C# is geschreven).
Dank je wel @Konti !
Hier is de oplossing in detail:
Inderdaad, zoals de @Konti code laat zien, is het de foutcode 51 swSketchErrorExtRefFail die moet worden gebruikt.
Wanneer een onderdeel wordt verwijderd zonder de bijbehorende beperkingen te verwijderen, krijgen de beperkingsverwijzingen een vlag **External**

Om de een of andere reden was het eerste idee dat ik had om te controleren of de component die was gekoppeld aan de wiebelige beperkingsreferentie-entiteit niet werkte: er was nog steeds een bestandsnaam aan gekoppeld, maar die had niets te maken met de oorspronkelijke. Kort! Onbegrijpelijk.
De voorwaarde om dit te laten werken is dat de systeemoptie Ontbrekende beperkingsverwijzingen als fouten behandelen, moet worden gecontroleerd (juist om code 51 aan de beperking te koppelen).
VOORZICHTIG!! Als een bestand ontbreekt (d.w.z. SW kan het niet vinden), wordt het weergegeven als verwijderd in de structuur en voor alle configuraties als die er zijn, en de beperkingen die eraan verbonden zijn, gaan ook terug naar foutcode 51; Het is daarom noodzakelijk om na te denken over het oplossen/vinden van deze componenten voordat u de macro exploiteert.
Het andere probleem dat ik tegenkwam, heeft te maken met de functie van het groeperen van beperkingen op status (*Met dank aan @Sylk voor het laten verschijnen van deze weergave-optie in een van zijn berichten):
Als de beperking een subfunctie is van de functie Standaardbeperkingen in de structuur van een assembly, bevinden de gebruikersmappen of mappen voor automatische groepering zich op hetzelfde niveau en moeten ze worden verwijderd voordat de beperking wordt geanalyseerd.
Daar ga je! Nogmaals bedankt allemaal.
Hieronder staat mijn code:
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swSelMgr As SldWorks.SelectionMgr
Dim swFeat As SldWorks.Feature
Dim swMateGroup As SldWorks.Feature
Dim swSubFolder As SldWorks.Feature
Dim swMateFeat As SldWorks.Feature
Dim swSubFeat As SldWorks.Feature
Dim swMate As IMate2
Dim swComp As SldWorks.Component2
Dim swMateEnt(2) As SldWorks.MateEntity2
Dim fileName As String
Dim Error As Long
Dim IsWarning As Boolean
Dim i As Long
Dim DeleteOption As Long
Dim status As Boolean
Dim Append As Boolean
Dim Mark As Integer
Dim List As Boolean
Sub main()
    
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swSelMgr = swModel.SelectionManager
    Set swModelDocExt = swModel.Extension
    
    'Get the first feature in the assembly
    Set swFeat = swModel.FirstFeature
    'Iterate over features in FeatureManager design tree
    Do While Not swFeat Is Nothing
        If "MateGroup" = swFeat.GetTypeName Then
            Set swMateGroup = swFeat
            Exit Do
        End If
        Set swFeat = swFeat.GetNextFeature
    Loop
    
    Debug.Print "  " & swMateGroup.Name
    Debug.Print ""
    
    
    Set swSubFeat = swMateGroup.IGetFirstSubFeature
   'iterate over subfeatures (Mate or folders)
    Do While Not swSubFeat Is Nothing
        If "FtrFolder" = swSubFeat.GetTypeName Then
            '--------------------------------------------------------------------
            Debug.Print "swSubFeat TypeName:        " & swSubFeat.GetTypeName _
            & ",        Name:        " & swSubFeat.Name
            '--------------------------------------------------------------------
            GoTo Line1
        ElseIf "GroupedMatesFolder" = swSubFeat.GetTypeName Then
            '--------------------------------------------------------------------
            Debug.Print "swSubFeat TypeName:        " & swSubFeat.GetTypeName _
            & ",        Name:        " & swSubFeat.Name
            '--------------------------------------------------------------------
            GoTo Line1
            
        End If
        'MsgBox swSubFeat.GetTypeName
       Set swMate = swSubFeat.GetSpecificFeature2
        If Not swMate Is Nothing Then
            Error = swSubFeat.GetErrorCode2(IsWarning)
            ' Error 51 ?
            If Error = 51 Then List = swSubFeat.Select2(True, 0)
        End If
Line1:
                    
        Set swSubFeat = swSubFeat.IGetNextSubFeature
        
    Loop
    'Delete List
        ' To delete absorbed features, use enum swDeleteSelectionOptions_e.swDelete_Absorbed
        ' To delete children features, use enum swDeleteSelectionOptions_e.swDelete_Children
        ' To keep absorbed features and children features, set DeleteOption = 0
    DeleteOption = swDeleteSelectionOptions_e.swDelete_Absorbed
    'DeleteOption = swDeleteSelectionOptions_e.swDelete_Children
    'DeleteOption = 0
    'DeleteOption =swDeleteSelectionOptions_e.swDelete_Absorbed + swDeleteSelectionOptions_e.swDelete_Children
    
    status = swModelDocExt.DeleteSelection2(DeleteOption)
    
End Sub