Zapisywanie serii planów w poprzedniej wersji

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?

Z góry dziękuję!

Cześć icome,
Wciąż jestem w 2022 SP4, nie mam jeszcze możliwości zapisania wersji, ale oto, co znalazłem w WEB=> Witamy w SOLIDWORKS Web Help

Powodzenia,
@+.
AR.

Odpowiedź AI:

Pytanie Odpowiedź
Znany błąd? :white_check_mark: Tak, szeroko zgłaszane (choć oficjalnie nie uznane za błąd)
Normalne zachowanie? :warning: Oficjalnie tak... ale bardzo sporne
Ogłoszono poprawkę? :x: Nie
Możliwe obejście? :white_check_mark: Makro VBA lub ręczna kopia zapasowa
Niezawodny zestaw i wybierz retro DRW? :x:

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.

2 polubienia

Dziękuję za poszukiwania!

Ale już spędziłem kilka godzin, próbując makro z drugim pilotem, zanim powiedzieli mi, że to w końcu niemożliwe.

Mam nadzieję, że coś przeoczyłem... :confused:

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.

w rzeczywistości funkcjonalność w VBA nie istnieje...