Décomposer un assemblage a plusieurs niveaux en 1 niveau par le biais d'une macro

Bonjour A tous,

Dans un de mes cas j'ai un assemblage avec 3 sous assemblages au 1er niveau  au 2eme niveau pièce + sous assemblage.j'ai  5 niveaux

j'utilise la fonction décomposer un sous assemblage

je souhaiterais mettre tous mes fichiers pièces au 1er niveau. (pas de fonction  sous assemblage dans l'assemblage principal) J'utilise SW2017

Existe t'il une macro pour traiter les différents niveaux?

Merci d'avance de votre retour

 


2020_02_22_12_52_56_window.png

Si je comprend bien tu veux décomposer tous les sous-assemblages?

Essaye ca:

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swAssy As SldWorks.AssemblyDoc
Dim swComp As SldWorks.Component2
Dim swCompModel As SldWorks.ModelDoc2
Dim vComp As Variant
Dim blnDone As Boolean
Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swAssy = swModel
    blnDone = False
    While Not blnDone
        blnDone = True
        For Each vComp In swAssy.GetComponents(False)
            Set swComp = vComp
            Set swCompModel = swComp.GetModelDoc2
            If Not swCompModel Is Nothing Then
                If swCompModel.GetType = swDocASSEMBLY Then
                    swComp.Select4 False, Nothing, False
                    swAssy.DissolveSubAssembly
                    blnDone = False
                    Exit For
                End If
            End If
        Next
    Wend
End Sub

Trouver sur: https://forum.solidworks.com/thread/61078

1 « J'aime »

Merci c est exactement ce que je cherchais.

Bonne soirée