Makro zmienia prefiks podczas eksportowania pliku za pomocą arkusza DXF

Witam

Podczas generowania pliku DXF lub DWG planu, który ma więcej niż jeden arkusz, oprogramowanie generuje jeden plik na arkusz (ustawiony w następujący sposób), z tą różnicą, że nazywa je z numerem arkusza jako prefiksem:

Na przykład, jeśli plik składający się z 3 arkuszy "DEAL-D1.slddrw", pliki DXF będą:

    • 00_ DEAL-D1_C.dxf
    • 01_AFFAIRE-D1_C.dxf
    • 02_AFFAIRE-D1_C.dxf

Wolałbym, żeby

    • DEAL-D1_C - 01.dxf lub DEAL-D1_C - Arkusz1.dxf
    • DEAL-D1_C - 02.dxf lub DEAL-D1_C – Arkusz2.dxf
    • DEAL-D1_C - 03.dxf lub DEAL-D1_C – Arkusz3.dxf

Czy masz pomysł, ponieważ jako początkujący w makrach zrobiłem taki, który generuje z Draw plik ZIP zawierający PDF+DXF Draw (wszystkie arkusze) + STEP+PDF3D struganego modelu.

Przykład:

"AFFAIRE-Pièce8.sldprt" o 2 konfiguracjach,z których pierwsza w indeksie B jest wylosowana w losowaniu "AFFAIRE-D1.slddrw", który znajduje się w indeksie C, da zamek błyskawiczny z:

  • Nazwa pliku ZIP: AFFAIRE-D1_C.zip

Zawartość:

    • AFFAIRE-D1_C.pdf
    • 00_AFFAIRE-D1_C.dxf
    • 01_AFFAIRE-D1_C.dxf
    • DEAL-Pièce8.1_B.step
    • SPRAWA Pièce8.1_B(PDF3D).pdf

Dziękuję za pomoc.

Witam

Powinieneś znaleźć wszystko, czego potrzebujesz (a nawet więcej) w udostępnionym tutaj makrze.

Pozdrowienia

3 polubienia

Dziękuję bardzo

Rzeczywiście, udało mi się znaleźć odpowiedź na twoim przykładzie , ale także tym:

https://forum.solidworks.com/thread/75412#comment-397610

łącząc pliki oferowane w V2.1 i V2.2

 

W końcu nie musiałem korzystać z funkcji eksportowania wszystkich arkuszy w osobnych plikach, ale przetworzyć każdy arkusz w jednym pliku i wyeksportować go, definiując jego nazwę zgodnie z moimi warunkami. Część, której mi brakowało, to:

 

'Ręczny eksport DXF w celu uzyskania poprawnej nazwy pliku DXF, a nie nazwy systemowej 00_, 01_, ...
'Ustaw opcję eksportu DXF, aby eksportować tylko aktywny arkusz
swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swDxfMultiSheetOption, swDxfMultisheet_e.swDxfActiveSheetOnly
sFilePath = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, "\"))
Dim swView              As SldWorks.View
Ustaw swView = swDraw.GetFirstView
Ustaw swView = swView.GetNextView
vSheetName = swDraw.GetSheetNames

    Dla i = 0 TB UBound(vSheetName)
    bRet = swDraw.ActivateSheet(vSheetName(i))
    ' Ustawianie nazw plików
    FinalFileName_dxf = Strings.Left(swfilename, Len(swfilename) - 7) & DrawSepInd & DrawIndRev & " - " & vSheetName(i) & ".dxf"
    
    Jeśli Verification(FinalFileName_dxf) = Prawda, to
    PopupOverwriteFile = MsgBox ("Plik DXF o tej samej nazwie już istnieje, czy chcesz go zastąpić?" & vbNewLine & vbNewLine & FinalFileName_dxf, vbYesNoCancel)
        Jeśli PopupOverwriteFile = vbNo to
                    – Nie rób nic
            Inaczej
                Jeśli PopupNadpisz plik = vbTak to
                bRet = swDraw.SaveAs4(FinalFileName_dxf, swSaveAsCurrentVersion, swSaveAsOptions_Silent, nErrors, nWarnings)
                    Inaczej
                        Jeśli PopupOverwriteFile = vbAnuluj, to
                    Wyjdź z subwoofera
                Zakończ jeżeli:
            Zakończ jeżeli:
        Zakończ jeżeli:
    Inaczej
        bRet = swDraw.SaveAs4(FinalFileName_dxf, swSaveAsCurrentVersion, swSaveAsOptions_Silent, nErrors, nWarnings)
    Zakończ jeżeli:
        
    Dalej i

    ' Przełącz z powrotem na pierwszy arkusz
    bRet = swDraw.ActivateSheet(vSheetName(0))

 

Dziękuję!