Hallo an alle!
Um den Kontext zu erklären, versuche ich gerade, Dateien über ein PDM-Skript zu extrahieren und zu archivieren, wie im Bild zu sehen:
Hier sind die Details des Codes:
Option Explicit
Dim swApp As Object
Sub main()
Set swApp = Application.SldWorks
swApp.Visible = True
sAddinName = "C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS PDM\PDMSW.dll"
status = swApp.LoadAddIn(sAddinName)
modelPath = "<Filepath>"
Set swDocSpecification = swApp.GetOpenDocSpec(modelPath)
swDocSpecification.DocumentType = swDocPART
swDocSpecification.ReadOnly = False
swDocSpecification.Silent = True
swDocSpecification.ConfigurationName = ""
swDocSpecification.DisplayState = ""
swDocSpecification.IgnoreHiddenComponents = True
Set swModel = swApp.OpenDoc7(swDocSpecification)
errors = swDocSpecification.Error
Set swModel = swApp.ActiveDoc
Dim swPdmVault As IEdmVault5
Const VAULT_NAME As String = "XXXXXXXXXXXX"
Dim swPdmFile As IEdmFile5
Set swPdmVault = New EdmVault5
swPdmVault.LoginAuto VAULT_NAME, 0
Set swPdmFile = swPdmVault.GetFileFromPath(modelPath)
Dim swPdmFolder As IEdmFolder5
Set swPdmFolder = swPdmVault.GetFolderFromPath(Left(modelPath, InStrRev(modelPath, "\")))
swModel.ForceReleaseLocks
swPdmFile.LockFile swPdmFolder.ID, 0
End Sub
Ich möchte darauf hinweisen, dass ich zur Ausführung dieses Skripts eine PDM-Aufgabe verwende, die über das Add-In "SOLIDWORKS Task-Add-in" funktioniert, in dem ich auch die .dll zur Nutzung der PDM-Funktionen extrahieren, archivieren, etc. hinzugefügt habe.
Mein Problem ist, dass dieses Makro sehr gut funktioniert, wenn ich es von SolidWorks aus ausführe (indem ich natürlich den Pfad der betreffenden Datei ersetze ...) direkt, gibt mir aber den folgenden Fehler, wenn ich es über das PDM-Skript ausführe...
Da es keinen Hinweis darauf gibt , warum das Skript nicht richtig funktioniert, appelliere ich an Ihr Wissen!!
Ist jemand jemals auf dieses Problem oder eine Idee gestoßen? Denn ehrlich gesagt habe ich alle meine Ideen durchgespielt....
Vielen Dank im Voraus für diejenigen, die mir helfen und einen schönen Tag :)
Hallo
Auf diese Weise würde ich tendenziell sagen, dass es in PDM abstürzt (ich vermute, es ist im Windows Explorer), da das Skript im Grunde SW-Funktionen aufruft (daher die Tatsache, dass es in SW gut funktioniert).
Daher wäre es notwendig, Funktionen zum Öffnen der SW und der Zieldatei hinzuzufügen, um die Verarbeitung in der SW durchzuführen. Soweit ich weiß, öffnen die Aufgaben, ob es Skripte gibt oder nicht, notwendigerweise SW, um Konvertierungen oder Drucke durchzuführen.
1 „Gefällt mir“
Vielen Dank für Ihr Feedback, Cyril :)
Das PDM-Skript öffnet SolidWorks zu Beginn der Ausführung... und wenn ich nur den Teil des Skripts behalte, der es Ihnen ermöglicht, eine Datei in SW zu öffnen:
modelPath = "<Filepath>"
Set swDocSpecification = swApp.GetOpenDocSpec(modelPath)
swDocSpecification.DocumentType = swDocPART
swDocSpecification.ReadOnly = False
swDocSpecification.Silent = True
swDocSpecification.ConfigurationName = ""
swDocSpecification.DisplayState = ""
swDocSpecification.IgnoreHiddenComponents = True
Set swModel = swApp.OpenDoc7(swDocSpecification)
errors = swDocSpecification.Error
Das Skript funktioniert sehr gut... Ich habe also den Eindruck, dass es sich um ein Problem im Extraktions-/Archivteil des Skripts handelt!
Ups, tut mir leid, ich habe den Code falsch gelesen. Also habe ich schnell getestet, das gleiche Verhalten funktioniert nicht mit dem Explorer.
Ich denke, es gibt einen Konflikt zwischen dem, was das Skript an SW sendet, und der Funktionsweise von SW (z. B. können Sie sehen, dass die Datei nicht geöffnet wird).
1 „Gefällt mir“
Ja, denke ich auch, aber es ist eine Schande, keinen genauen Hinweis auf das Ausführungsproblem zu haben... denn plötzlich ist es kompliziert, die Lösung zu finden :/
Dies ist die Meldung "Das Solidworks Makro kann nicht ausgeführt werden". Ich habe den Eindruck, dass es auf die aktuellen Versionen der VB.NET wartet und nicht auf die VBA, aber es ist wahr, dass vorher die anderen Konvertierungsaufgaben im Skript so einfach analysiert werden konnten.
1 „Gefällt mir“
Ich werde weiterhin einige Code-Modifikationen ausprobieren, aber wenn ich wirklich nichts bekomme und niemand sonst Ideen hat, werde ich ein Ticket mit dem Support eröffnen!
Schließlich habe ich es weggelassen, es ist im Reiter "Ausgabedatei Detail" oder "Datei" (es hängt von der Aufgabe ab) und durch Klicken auf erweiterte Skriptoptionen (Sie erhalten den SW-Code).
1 „Gefällt mir“
Vielleicht sollte ich versuchen, meinen Code über diese Art von Aufgabe einzufügen?
Zum Testen habe ich die Aufgaben nie verwendet (nur eine Konvertierung, die von der Basisversion kopiert wurde, und ansonsten verwende ich dispatch für andere Funktionen)
1 „Gefällt mir“
Es funktioniert auch nicht mit den Aufgaben "Konvertieren" / "Drucken" !