Comment voir la pièce ou le sous ensemble en état de reprise

Bonjour, les amis. J’espère que je ne vous dérange pas !

Je ne me rappelle plus comment faire. C’est un ASM dans un autre ASM plus gros. Il faut dire que je n’utilise plus solidworks de façon intense :innocent:
Voici le message qui s’affiche lorsque je veux insérer quelque chose

image

Cordialement

Salut @Zozo_mp ,
Voici un guide de Visitiv CH:

Ou un sujet équivalent auquel j’avais répondu:

3 « J'aime »

Bonjour @Zozo_mp , content de te lire à nouveau :grinning:;

J’ai une petite macro à te proposer:
=> Elle permet d’identifier le premier document en état de reprise rencontré (à relancer plusieurs fois si d’autres occurrences).

Dim swApp As SldWorks.SldWorks               'Objet principal de l’application SolidWorks
Dim swDoc As SldWorks.ModelDoc2              'Objet de type document (pièce, assemblage, mise en plan…)
Dim swFeat As Feature                        'Objet représentant une fonction (feature) dans l’arbre
Dim sList As String                          'Chaîne de caractères pour stocker les informations

Sub main()

    'Connexion à l’instance de SolidWorks
    Set swApp = Application.SldWorks
    
    'Récupère le premier document ouvert dans SolidWorks
    Set swDoc = swApp.GetFirstDocument
    
    'Initialise la chaîne vide
    sList = ""
    FileName = ""
    'Boucle sur tous les documents ouverts
    While Not swDoc Is Nothing
        
        'Récupère la première fonction en partant du bas de l’arbre des fonctions
        Set swFeat = swDoc.FeatureByPositionReverse(0)
        
        'Teste si le document est "en reprise" (rollback mode)
        If (swFeat.IsRolledBack = True) Then
            'Ajoute le chemin complet du document à la liste
            sList = sList & vbCrLf & swDoc.GetPathName
            
            'Récupère uniquement le nom du fichier avec extension
            FileName = swDoc.GetTitle
            
            'Stop   'Instr de debug (pause)
        End If
        
        'Passe au document suivant ouvert
        Set swDoc = swDoc.GetNext
    Wend
If FileName = "" Then FileName = "Pas de Documents trouvé."
    'Affiche un message avec le dernier document trouvé en reprise
    MsgBox "Document en état de Reprise: " & vbCrLf & FileName

End Sub



Nota: Sous Solidworks 2022, il est possible de rétablir cet état dès l’ouverture de l’assemblage:
image

Cordialement.

1 « J'aime »

Merci pour les réponses.

Finalement j’avais utilisé un méthode bestiale avant vos excellentes réponses

1°) j’ai créé un ASM totalement vide
2°) J’avais dans une seconde fenêtre dans laquelle j’avais l’ASM récalcitrant
3°) j’ai pris les sous ensemble un par un de la seconde fenêtre vers l’ASM vide jusqu’à ce que le message apparaisse.
Puis j’ai ouvert le s/s asm récalcitrant et j’ai déplacé chaque pièce vers l’ASM vide et j’ai fait une petite modif mineure sur une cote et j’ai repris dans le sous ASM récalcitrant et boum le pb à disparu. Par précaution j’ai mis le sous asm récalcitrant en quarantaine et j’ai repris un sous asm d’une ancienne version et les rendu identique à celui mis en quarantaine.
Depuis cela fonctionne correctement. Ouf :crazy_face:

Alors encore merci pour votre aide ! Je garde une copie sous word de vos réponses. :wink:

3 « J'aime »