Het openen van alle tekeningen onder een solidworks assemblage

Heeft iemand een macro waarmee u ALLE tekeningen van subassemblages en onderdelen van een hoofdassemblage kunt openen? De tekeningen hebben hetzelfde nee als referentie.

Hallo

Probeer het volgende:

Option Explicit

Dim swApp As Object
Dim swModel As SldWorks.ModelDoc2
Dim swDraw As SldWorks.ModelDoc2
Dim Assembly As ModelDoc2
Dim myAssy As AssemblyDoc
Dim fileerror As Long
Dim filewarning As Long
Dim i As Long
Dim nRetval As Long
Dim myCmps As Variant
Dim myCmp As Component2
Dim myName As String

Sub main()
    Set swApp = Application.SldWorks
    Set Assembly = swApp.ActiveDoc
    Set myAssy = Assembly

    myCmps = myAssy.GetComponents(False)
    For i = 0 To UBound(myCmps)
        Set myCmp = myCmps(i)
        Set swModel = myCmp.GetModelDoc2
        myName = swModel.GetPathName
        myName = Left(myName, (Len(myName) - 7)) & ".slddrw"
        
        Set swDraw = swApp.OpenDoc6(myName, swDocumentTypes_e.swDocDRAWING, swOpenDocOptions_Silent, "", fileerror, filewarning)

        myAssy.EditAssembly
    Next i
    
    Set Assembly = swApp.ActivateDoc2(myAssy.GetPathName, True, nRetval)
    
    MsgBox "Traitement terminé", vbExclamation

End Sub

Vriendelijke groeten

3 likes

Hallo;

Ik heb een kleine vraag voor Our Doctor S Macro d.roger nationnal.
Waarom heb je ervoor gekozen om de variabele 'myName' te vullen met  '=swmodel.getplathName'?
in plaats van met "= myCmps(i). GetPathName"?
Ik begrijp deze keuze niet.

Aan de andere kant is de rest zoals gewoonlijk, eenvoudig, nauwkeurig, effectief.... Goed gedaan.

Vriendelijke groeten.

1 like