Hallo allemaal, Ik zit op Solidworks 2024 Sp5 waarop ik een ASM, onderdelen en ongeveer vijftig planbestanden heb gemaakt.
Het is me gelukt om in de vorige versie (2022 en 2023) een " pack and go " te maken, maar dit functioneert alleen voor onderdelen en assemblage. De tekeningen gecontroleerd en geëxporteerd via de " pack and go " blijven in 2024...
Na contact en uitwisseling met de support is het antwoord: " dit is de normale werking van Solidworks " (begrijp het: ga door! het is niet onze zaak!)
Ik heb de taakplanner geprobeerd, ik probeerde een macro te doorlopen... Kortom, ik ben droog! De enige methode die werkt is om de plannen één voor één te openen en ze vervolgens in een eerdere versie op te slaan. Volgens mijn redenering van fenicant (en kwaliteit!) lijkt het mij ondenkbaar voor 50 shots en voor toekomstige projecten.
Heeft iemand een truc gevonden om deze GEWELDIGE functie " als vroege versie opslaan" te benutten voor batches tekenbestanden?
Ja, breed gemeld (maar niet officieel erkend als een bug)
Normaal gedrag?
Officieel wel... maar zeer betwist
Reparatie aangekondigd?
Nee
Een levensvatbare workaround?
VBA-macro of handmatige back-up
Betrouwbaar pak-en-go voor retro DRW?
VBA-macrooplossing om een planmap te converteren (niet getest output zoals het is door AI copilot):
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim errors As Long
Dim warnings As Long
Sub main()
Set swApp = Application.SldWorks
' ⚠️ MODIFIER LE CHEMIN DU DOSSIER ICI
Dim folderPath As String
folderPath = "C:\TEMP\Plans_2024"
' Choisir la version cible :
' swSaveAsVersion_e.swSaveAsCurrentVersion
' swSaveAsVersion_e.swSaveAs2023
' swSaveAsVersion_e.swSaveAs2022
Dim targetVersion As Long
targetVersion = swSaveAsVersion_e.swSaveAs2023
Dim fileName As String
fileName = Dir(folderPath & "\*.slddrw")
Do While fileName <> ""
Dim fullPath As String
fullPath = folderPath & "\" & fileName
Set swModel = swApp.OpenDoc6( _
fullPath, _
swDocumentTypes_e.swDocDRAWING, _
swOpenDocOptions_e.swOpenDocOptions_Silent, _
"", _
errors, _
warnings)
If Not swModel Is Nothing Then
swModel.ForceRebuild3 False
Dim savePath As String
savePath = folderPath & "\OLDVER_" & fileName
swModel.SaveAs4 _
savePath, _
targetVersion, _
swSaveAsOptions_e.swSaveAsOptions_Silent, _
errors, _
warnings
swApp.CloseDoc swModel.GetTitle
End If
fileName = Dir
Loop
MsgBox "Conversion terminée !", vbInformation
End Sub
Het is voor mij niet mogelijk om de macro te testen vanwege sw2023, maar de code lijkt op het eerste gezicht correct.
Probeer ons feedback te geven, als er een bug is en waar (het vastleggen van de fout). Als de functionaliteit (opgeslagen in de vorige versie) niet in de API aanwezig is, doen we niet veel. Als er nog een bug is, kunnen wij je helpen met debuggen.
Probeer deze voor de zekerheid met SaveAs3 Method (IModelDocExtension) in plaats van saveas4. Deze functie bestaat nadat deze goed is gedocumenteerd met een versie-optie, dus om getest te worden.
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swExt As SldWorks.ModelDocExtension
Dim errors As Long
Dim warnings As Long
Sub main()
Set swApp = Application.SldWorks
' ⚠️ CHEMIN À ADAPTER
Dim folderPath As String
folderPath = "C:\TEMP\Plans_2024"
' Version cible
Dim targetVersion As Long
targetVersion = swSaveAsVersion_e.swSaveAs2023
' swSaveAs2022 possible aussi
Dim fileName As String
fileName = Dir(folderPath & "\*.slddrw")
Do While fileName <> ""
Dim fullPath As String
fullPath = folderPath & "\" & fileName
Set swModel = swApp.OpenDoc6( _
fullPath, _
swDocumentTypes_e.swDocDRAWING, _
swOpenDocOptions_e.swOpenDocOptions_Silent, _
"", _
errors, _
warnings)
If Not swModel Is Nothing Then
Set swExt = swModel.Extension
swModel.ForceRebuild3 False
Dim savePath As String
savePath = folderPath & "\OLDVER_" & fileName
swExt.SaveAs3 _
savePath, _
swSaveAsOptions_e.swSaveAsOptions_Silent, _
targetVersion, _
errors, _
warnings
swApp.CloseDoc swModel.GetTitle
End If
fileName = Dir
Loop
MsgBox "Conversion terminée", vbInformation
End Sub
Hallo Is het niet mogelijk om een macro te laten inzetten om alle clips één voor één te openen en af te drukken? onder 2024 buitengewoon Heb je PDM? Het was een macro die dit bij ons deed in een ander tijdperk na het selecteren van MEP's.
De grenzen van AI! Laatste poging, niet makkelijk als je niet kunt testen. Blijkbaar moet je " AdvancedSaveAsOptions.SaveAsPreviousVersion' "gebruiken:
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swExt As SldWorks.ModelDocExtension
Dim advOpts As SldWorks.AdvancedSaveAsOptions
Dim errs As Long
Dim warns As Long
Sub main()
Set swApp = Application.SldWorks
' >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' A MODIFIER
Dim folderPath As String
folderPath = "C:\TEMP\Plans_2024"
' -1 = version précédente
' -2 = deux versions précédentes
Dim previousOffset As Long
previousOffset = -1 ' 2024 -> 2023
' previousOffset = -2 ' 2024 -> 2022
' >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Dim fileName As String
fileName = Dir(folderPath & "\*.slddrw")
Do While fileName <> ""
Dim fullPath As String
fullPath = folderPath & "\" & fileName
Set swModel = swApp.OpenDoc6( _
fullPath, _
swDocumentTypes_e.swDocDRAWING, _
swOpenDocOptions_e.swOpenDocOptions_Silent, _
"", _
errs, _
warns)
If swModel Is Nothing Then
Debug.Print "❌ Impossible d’ouvrir : " & fileName
GoTo NextFile
End If
Set swExt = swModel.Extension
Set advOpts = swExt.GetAdvancedSaveAsOptions( _
swSaveWithReferencesOptions_e.swSaveWithReferencesOptions_None)
advOpts.SaveAsPreviousVersion = previousOffset
advOpts.SaveAllAsCopy = True
Dim savePath As String
savePath = folderPath & "\OLDVER_" & fileName
If False = swExt.SaveAs3( _
savePath, _
swSaveAsVersion_e.swSaveAsCurrentVersion, _
swSaveAsOptions_e.swSaveAsOptions_Silent, _
Nothing, _
advOpts, _
errs, _
warns) Then
Debug.Print "❌ ERREUR SaveAs : " & fileName & _
" | Code = " & errs
Else
Debug.Print "✅ OK : " & fileName
End If
swApp.CloseDoc swModel.GetTitle
NextFile:
fileName = Dir
Loop
MsgBox "Traitement terminé (voir Ctrl+G pour le log)", vbInformation
End Sub
``
Sorry voor de koude sporen. De meest ernstige aanwijzing is deze:
Test het op een MEP als het werkt, dat betekent dat het mogelijk is om het in batches te doen. (Via integratie, of door deze macro aan te passen). Codestack is een betrouwbare bron, in tegenstelling tot AI...