Witam wszystkich, Korzystam z Solidworks 2024 Sp5, na którym stworzyłem ASM, części i około pięćdziesięciu plików planu.
Udało mi się zrobić " pack and go " w poprzednich wersjach (2022 i 2023), ale działa on tylko do części i montażu. Rysunki sprawdzone i wyeksportowane przez " pack and Go " pozostają w 2024 roku...
Po kontakcie i wymianie z pomocą odpowiedź brzmi: " to normalna operacja SolidWorks " (rozumiecie: do dzieła! to nie nasza sprawa!)
Próbowałem harmonogramu zadań, próbowałem przejść przez makro... krótko mówiąc, jestem suchy! Jedyną metodą, która działa, jest otwieranie planów pojedynczo, a następnie zapisywanie ich w wcześniejszej wersji. W mojej logice fenicantności (i jakości!) wydaje mi się to nie do pomyślenia przy 50 ujęciach, podobnie jak przy przyszłych projektach.
Czy ktoś wymyślił trik, by wykorzystać tę WSPANIAŁĄ funkcję " zapisz jako wczesną wersję " dla partii plików rysunkowych?
Tak, szeroko zgłaszane (choć oficjalnie nie uznane za błąd)
Normalne zachowanie?
Oficjalnie tak... ale bardzo sporne
Ogłoszono poprawkę?
Nie
Możliwe obejście?
Makro VBA lub ręczna kopia zapasowa
Niezawodny zestaw i wybierz retro DRW?
Rozwiązanie makra VBA do konwersji folderu planu (Nie testowane wyjście w obecnej formie przez 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
Nie mogę przetestować makro ze względu na sw2023, ale kod wydaje się poprawny na pierwszy rzut oka.
Spróbuj dać nam opinię, czy to błąd i gdzie (przechwycenie błędu). Jeśli funkcjonalność (zapisana w poprzedniej wersji) nie istnieje w API, niewiele zrobimy. Jeśli pojawi się kolejny błąd, możemy pomóc Ci w debugowaniu.