Makro: Ändern Sie das Präfix beim Exportieren einer Datei nach Blatt-DXF

Hallo

Wenn Sie eine DXF- oder DWG-Datei eines Plans generieren, der mehr als ein Blatt enthält, generiert SW eine Datei pro Blatt (wie folgt festgelegt), mit der Ausnahme, dass sie mit der Blattnummer als Präfix benannt werden:

Wenn es sich beispielsweise um die 3-Blatt-Datei "DEAL-D1.slddrw" handelt, lauten die DXFs:

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

Ich hätte es vorgezogen,

    • DEAL-D1_C - 01.dxf oder DEAL-D1_C - Sheet1.dxf
    • DEAL-D1_C - 02.dxf oder DEAL-D1_C – Sheet2.dxf
    • DEAL-D1_C - 03.dxf oder DEAL-D1_C – Sheet3.dxf

Haben Sie eine Idee, denn als Anfänger in Makros habe ich eines erstellt, das aus einer Zeichnung eine ZIP-Datei generiert, die das PDF+DXF der Zeichnung (alle Blätter) + SCHRITT+PDF3D des geplanten Modells enthält.

Beispiel:

"AFFAIRE-Pièce8.sldprt" mit 2 Konfigurationen,von denen die 1. bei Index B in der Ziehung "AFFAIRE-D1.slddrw" bei Index C gezogen wird, ergibt eine ZIP-Datei mit:

  • Name der ZIP-Datei: AFFAIRE-D1_C.zip

Inhalt:

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

Danke für Ihre Hilfe.

Hallo

Sie sollten alles, was Sie wollen (und sogar noch mehr), in dem hier geteilten Makro finden.

Herzliche Grüße

3 „Gefällt mir“

Vielen Dank

Ich konnte in der Tat mit Ihrem Beispiel , aber auch mit diesem, eine Antwort finden:

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

durch Kombination der in V2.1 und V2.2 angebotenen Dateien

 

Am Ende musste ich nicht die Funktion verwenden, alle Blätter in separate Dateien zu exportieren, sondern jedes Blatt in einer einzigen Datei zu verarbeiten und zu exportieren, indem ich seinen Namen gemäß meinen Bedingungen definierte. Der Teil, der mir fehlte, war:

 

'DXF-Export manuell, um den korrekten DXF-Dateinamen und nicht den Systemnamen 00_, 01_, ...
'Stellen Sie die DXF-Exportoption so ein, dass nur das aktive Blatt exportiert wird.
swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swDxfMultiSheetOption, swDxfMultisheet_e.swDxfActiveSheetOnly
sFilePath = Links(swModel.GetPathName, InStrRev(swModel.GetPathName, "\"))
Dim swView              As SldWorks.View
Legen Sie swView = swDraw.GetFirstView fest
Legen Sie swView = swView.GetNextView fest
vSheetName = swDraw.GetSheetNames

    Für i = 0 TB UBound(vSheetName)
    bRet = swDraw.ActivateSheet(vSheetName(i))
    ' Festlegen von Dateinamen
    FinalFileName_dxf = Strings.Left(swfilename, Len(swfilename) - 7) & DrawSepInd & DrawIndRev & " - " & vSheetName(i) & ".dxf"
    
    Wenn verification(FinalFileName_dxf) = true, dann
    PopupOverwriteFile = MsgBox ("Eine DXF-Datei mit dem gleichen Namen existiert bereits, möchten Sie sie ersetzen?" & vbNewLine & vbNewLine & FinalFileName_dxf, vbYesNoCancel)
        Wenn PopupOverwriteFile = vbNo dann
                    »Nichts tun
            Oder
                Wenn PopupOverwrite Datei = vbJa dann
                bRet = swDraw.SaveAs4(FinalFileName_dxf, swSaveAsCurrentVersion, swSaveAsOptions_Silent, nErrors, nWarnings)
                    Oder
                        Wenn PopupOverwriteFile = vbCancel, dann
                    Sub beenden
                Ende, wenn
            Ende, wenn
        Ende, wenn
    Oder
        bRet = swDraw.SaveAs4(FinalFileName_dxf, swSaveAsCurrentVersion, swSaveAsOptions_Silent, nErrors, nWarnings)
    Ende, wenn
        
    Weiter i

    ' Wechseln Sie zurück zum ersten Blatt
    bRet = swDraw.ActivateSheet(vSheetName(0))

 

Vielen Dank!