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
Voici le message qui s’affiche lorsque je veux insérer quelque chose
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:
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
Alors encore merci pour votre aide ! Je garde une copie sous word de vos réponses.