Copy Document and Its Dependencies Example (VBA)
This example shows how to copy a document and its dependencies to a
different folder.
'-----------------------------------------
'
' Preconditions:
' (1)
No documents are open in the SolidWorks application.
' (2)
Specified assembly document and its
' dependencies
exist in the specified folder.
'
' Postconditions: Specified assembly document and its
dependencies
' are
copied to the folder where this macro exists.
'
'------------------------------------------
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim source As String
Dim target As String
Dim sourcefile As String
Dim traverse As Boolean
Dim search As Boolean
Dim addreadonlyinfo As Boolean
Dim depends As Variant
Dim sourcefiles() As String
Dim targetfiles() As String
Dim idx As Integer
Dim sourcecount As Integer
Dim copyopt As Long
Dim errors As Long
Set swApp = Application.SldWorks
' Source path and file: disk:\one_folder_above_macro_folder\Models
source = swApp.GetCurrentMacroPathName
source = Left(source, InStrRev(source, "\")
- 1)
source = Left(source, InStrRev(source, "\"))
+ "Models\"
sourcefile = "name_of_file.SLDASM"
' Target path: disk:\macro_folder
target = swApp.GetCurrentMacroPathName
target = Left(target, InStrRev(target, "\"))
traverse = True
search = True
addreadonlyinfo = False
depends = swApp.GetDocumentDependencies2(source
+ sourcefile, traverse, search, addreadonlyinfo)
If IsEmpty(depends) Then Exit Sub
idx = 1
While idx <= UBound(depends)
ReDim
Preserve sourcefiles(sourcecount)
ReDim
Preserve targetfiles(sourcecount)
sourcefiles(sourcecount)
= depends(idx)
targetfiles(sourcecount)
= target + Right(sourcefiles(sourcecount), Len(sourcefiles(sourcecount))
- InStrRev(sourcefiles(sourcecount), "\"))
sourcecount
= sourcecount + 1
idx
= idx + 2
Wend
copyopt = SwConst.swMoveCopyOptions_e.swMoveCopyOptionsOverwriteExistingDocs
errors = swApp.CopyDocument(source
+ sourcefile, target + sourcefile, (sourcefiles), (targetfiles), copyopt)
End Sub