Een assemblage met meerdere niveaus opsplitsen in 1 niveau met behulp van een macro

Hallo allemaal,

In een van mijn gevallen heb ik een assemblage met 3 subassemblages op het 1e niveau op het 2e niveau deel + subassemblage. Ik heb 5 niveaus

Ik gebruik de functie Een subassemblage opsplitsen

Ik wil graag al mijn onderdelenbestanden op het 1e niveau plaatsen. (geen subassemblage functie in de hoofdassemblage) Ik gebruik SW2017

Is er een macro om met de verschillende niveaus om te gaan?

Alvast bedankt voor uw feedback

 


2020_02_22_12_52_56_window.png

Als ik het goed begrijp, wil je dan alle subassemblages opsplitsen?

Probeer het volgende:

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

Zoeken op: https://forum.solidworks.com/thread/61078

1 like

Bedankt, het is precies wat ik zocht.

Goedenacht