Hallo
Ich habe ein Programm geschrieben das Baugruppen kopieren kann (bitte keine Diskussion über die Sinnhaftigkeit)
Dazu werden alle Teile kopiert. Um die Informationen zum Kopieren zu bekommen verwende ich die GetDocumentDependencies2 Methode. Mein Problem ist das bei ein paar Baugruppen nicht ausgelesen werden können und die Variable "depends" leer bleibt und somit der Code abgebrochen wird.
Meine Frage ist was ist falsch an der Ausführung? bei den meisten geht's ja.
Hier ist noch der betroffene Codeausschnitt:
Code:
Sub Copy_parts() 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
Dim doc As SldWorks.ModelDoc2
'Set swApp = Application.SldWorks
Set swApp = CreateObject("SldWorks.Application")
Set doc = swApp.ActiveDoc
source = swApp.GetCurrentWorkingDirectory
sourcefile = Right(doc.GetPathName, (Len(doc.GetPathName) - InStrRev(doc.GetPathName, "\")))
Debug.Print "sourcefile = "; sourcefile
Ordnername = "C:\Temp\" & Left(sourcefile, Len(sourcefile) - 7)
Debug.Print "Ordnername = " & Ordnername
'Ordner erstellen fals noch nicht vorhanden.
If Not Dir(Ordnername, vbDirectory) <> "" Then MkDir Ordnername
target = Ordnername & "\"
Debug.Print "target = " & target
traverse = True
search = True
addreadonlyinfo = False
depends = swApp.GetDocumentDependencies2(sourcefile, traverse, search, addreadonlyinfo)
If IsEmpty(depends) Then
Debug.Print FehlerMerker
If FehlerMerker = 1 Then
MsgBox "Baugruppe konnten nicht ausgelesen werden."
End
End If
Quickpress_Beenden
MsgBox "Datei bitte schließen und neu laden (evtl. war Quickpress aktiv)"
End
End If
Noch zur Info:
Das ganze ist in Excel geschrieben und wird über SolidWorks ausgeführt
Falls das Zusatzmodul Quickpress aktiv ist funktioniert die Funktion auch nicht, wird aber abgefangen und ist hier nicht der Fall.
Mit den Werten
Code:
traverse = True
search = True
addreadonlyinfo = False
hab ich schon rumgespielt und bin zu keinem Ergebniss gekommen.
Meine Vermutung ist das die Variable swApp falsch befüllt ist (die Funktion swApp.GetCurrentWorkingDirectory funktioniert aber)
Falls noch andere Informationen benötigt werden einfach fragen.
Vielen Dank im voraus
Gruß Christoph
------------------
Wer einen Fehler findet darf ihn behalten,
wer zwei findet kann beide behalten,
ab fünf Fehler gibs Rabatt :-)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP