Macro verander het voorvoegsel bij het exporteren van een bestand per blad DXF

Hallo

Wanneer u een DXF of DWG genereert van een plan dat meer dan één blad heeft, genereert SW één bestand per blad (als volgt ingesteld), behalve dat ze worden genoemd met het bladnummer als voorvoegsel:

Als het bestand van 3 vellen bijvoorbeeld "DEAL-D1.slddrw", zijn de DXF's als volgt:

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

Ik had het liever gehad

    • DEAL-D1_C - 01.dxf of DEAL-D1_C - Blad1.dxf
    • DEAL-D1_C - 02.dxf of DEAL-D1_C – Blad2.dxf
    • DEAL-D1_C - 03.dxf of DEAL-D1_C – Blad3.dxf

Heb je een idee, want als beginner in macro's heb ik er een gemaakt die uit een Draw een ZIP-bestand genereert met daarin de PDF+DXF van de Draw (alle vellen) + STEP+PDF3D van het geschaafde model.

Voorbeeld:

"AFFAIRE-Pièce8.sldprt" met 2 configuraties,waarvan de 1e bij index B wordt getekend in de trekking "AFFAIRE-D1.slddrw" die zich bij index C bevindt, geeft een ritssluiting met:

  • ZIP-bestandsnaam: AFFAIRE-D1_C.zip

Tevreden:

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

Dank u voor uw hulp.

Hallo

Je zou alles moeten vinden wat je wilt (en zelfs meer) in de macro die hier wordt gedeeld.

Vriendelijke groeten

3 likes

Hartelijk dank

Ik heb inderdaad een antwoord kunnen vinden met jouw voorbeeld , maar ook met deze:

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

door de bestanden die in V2.1 en V2.2 worden aangeboden te combineren

 

Uiteindelijk hoefde ik niet de functie te gebruiken om alle vellen in afzonderlijke bestanden te exporteren, maar om elk blad in één bestand te verwerken en te exporteren door de naam te definiëren volgens mijn voorwaarden. Het deel dat ik miste was:

 

'DXF exporteer handmatig om de juiste DXF-bestandsnaam te hebben en niet de systeemnaam 00_, 01_, ...
'Stel de DXF-exportoptie in op alleen actieve bladen exporteren
swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swDxfMultiSheetOption, swDxfMultisheet_e.swDxfActiveSheetOnly
sFilePath = Links(swModel.GetPathName, InStrRev(swModel.GetPathName, "\"))
Dim swView              als SldWorks.Bekijk
Stel swView = swDraw.GetFirstView in
Stel swView in = swView.GetNextView
vSheetName = swDraw.GetSheetNames

    Voor i = 0 TB UBound(vSheetName)
    bRet = swDraw.ActivateSheet(vSheetName(i))
    ' Bestandsnamen instellen
    FinalFileName_dxf = Strings.Left(swfilename, Len(swfilename) - 7) & DrawSepInd & DrawIndRev & " - " & vSheetName(i) & ".dxf"
    
    Als verificatie(FinalFileName_dxf) = waar dan
    PopupOverwriteFile = MsgBox ("Er bestaat al een DXF-bestand met dezelfde naam, wil je het vervangen?" & vbNewLine & vbNewLine & FinalFileName_dxf, vbYesNoCancel)
        Als PopupOverwriteFile = vbNo Dan
                    'Niets doen
            Anders
                Als pop-upOverwrite File = vbYes Dan
                bRet = swDraw.SaveAs4(FinalFileName_dxf, swSaveAsCurrentVersion, swSaveAsOptions_Silent, nErrors, nWarnings)
                    Anders
                        Als PopupOverwriteFile = vbCancel Dan
                    Sub afsluiten
                Einde als
            Einde als
        Einde als
    Anders
        bRet = swDraw.SaveAs4(FinalFileName_dxf, swSaveAsCurrentVersion, swSaveAsOptions_Silent, nErrors, nWarnings)
    Einde als
        
    volgende i

    ' Schakel terug naar het eerste blad
    bRet = swDraw.ActivateSheet(vSheetName(0))

 

Bedankt!