Hallo allemaal!
Om de context uit te leggen, probeer ik momenteel bestanden uit te pakken en te archiveren via een PDM-script, zoals te zien is in de afbeelding:

Hier zijn de details van de code:
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
Ik wil erop wijzen dat ik voor het uitvoeren van dit script een PDM-taak gebruik die werkt via de add-in "SOLIDWORKS Task-Add-in" waarin ik ook de .dll heb toegevoegd om de PDM-functies te gebruiken, extraheren, archiveren, enz.

Mijn probleem is dat deze macro heel goed werkt als ik hem vanuit SolidWorks uitvoer (door natuurlijk het pad van het betreffende bestand te vervangen ...) direct, maar geeft me de volgende foutmelding als ik het via het PDM-script uitvoer...

Aangezien er geen indicatie is waarom het script niet goed werkt, doe ik een beroep op uw kennis!!
Is iemand ooit dit probleem of een idee tegengekomen? Want eerlijk is eerlijk, ik heb al mijn ideeën doorgenomen....
Bij voorbaat hartelijk dank voor degenen die me zullen helpen en een goede dag zullen hebben :)
Hallo
Op die manier zou ik de neiging hebben om te zeggen dat het crasht in PDM (ik denk dat het in Windows Verkenner is), omdat het script in feite SW-functies aanroept (vandaar het feit dat het goed werkt in SW).
Daarom zou het nodig zijn om functies toe te voegen om SW te openen en het beoogde bestand om de verwerking in SW uit te voeren. Voor zover ik weet, openen de taken, of er nu scripts zijn of niet, noodzakelijkerwijs SW om conversies of afdrukken uit te voeren.
1 like
Bedankt voor je feedback Cyril :)
Het PDM-script opent SolidWorks aan het begin van de uitvoering... en als ik alleen het deel van het script dat u in staat stelt om een bestand te openen in SW :
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
Het script werkt erg goed... Dus ik heb de indruk dat het een probleem is in het extract/archiveer gedeelte van het script!
Oeps, sorry, ik heb de code verkeerd gelezen. Dus ik heb snel getest, hetzelfde gedrag werkt niet vanuit de verkenner.
Ik denk dat er een conflict is tussen wat het script naar SW stuurt en hoe SW werkt (je kunt bijvoorbeeld zien dat het bestand niet opent).
1 like
Ja, dat denk ik ook, maar het is zonde om geen precieze indicatie te hebben van het uitvoeringsprobleem... Want ineens is het ingewikkeld om de oplossing te vinden :/
Dit is de "Kan de Solidworks-macro niet uitvoeren". Ik heb de indruk dat het wacht op de huidige versies van de VB.NET en niet op de VBA, maar het is waar dat voordat de andere conversie taken waren in het script zo gemakkelijk te analyseren.
1 like
Ik zal blijven proberen wat code-aanpassingen te doen, maar als ik echt niets kan krijgen en niemand anders ideeën heeft, open ik een ticket met ondersteuning!
Ten slotte heb ik het weggelaten in het tabblad "output file detail" of "File" (het hangt af van de taak) en door te klikken op geavanceerde scriptopties (je krijgt de SW-code).
1 like
Misschien moet ik proberen mijn code in te voeren via dit soort taken ?
Om te testen, heb ik de taken nooit gebruikt (alleen een conversie die is gekopieerd van de basistaken en anders gebruik ik dispatch voor andere functies)
1 like
Het werkt ook niet met de "conversie" / "print" taken!