Copy Document and Its Dependencies Example (VB.NET)
This example shows how to copy a document and its dependencies to this
macro's folder.
'---------------------------------------------------------------------------
' Preconditions: Open an assembly document.
'
' Postconditions:
' 1. The assembly document is closed.
' 2. The assembly document and its dependencies are copied to the macro
folder.
'---------------------------------------------------------------------------
Imports
SolidWorks.Interop.sldworks
Imports
SolidWorks.Interop.swconst
Imports
System.Runtime.InteropServices
Imports
System
Partial
Class
SolidWorksMacro
Sub
main()
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
Object
Dim
sourcefiles() As
String =
Nothing
Dim
targetfiles() As
String =
Nothing
Dim
idx As
Integer
Dim
sourcecount As
Integer
Dim
copyopt As
Integer
Dim
errors As
Integer
Dim
doc As
ModelDoc2
doc = swApp.ActiveDoc
source = swApp.GetCurrentWorkingDirectory
sourcefile = Right(doc.GetPathName, (Len(doc.GetPathName) -
InStrRev(doc.GetPathName, "\")))
target = swApp.GetCurrentMacroPathName
target = Left(target, InStrRev(target,
"\"))
traverse = True
search =
True
addreadonlyinfo =
False
depends = swApp.GetDocumentDependencies2(sourcefile,
traverse, search, addreadonlyinfo)
If
IsNothing(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
End
While
swApp.CloseAllDocuments(True)
copyopt = swMoveCopyOptions_e.swMoveCopyOptionsOverwriteExistingDocs
errors = swApp.CopyDocument(source + sourcefile, target +
sourcefile, (sourcefiles), (targetfiles), copyopt)
End
Sub
Public
swApp As
SldWorks
End
Class