Bonjour,
Lorsqu’on génère un DXF ou DWG d’un plan qui a plus d’une feuille, SW génère un fichier par feuille (paramétré comme cela) sauf qu’il les nommes avec le numéro de feuille en préfixe :
Par exemple, si le fichier « AFFAIRE-D1.slddrw » à 3 feuilles, les DXF seront :
- 00_ AFFAIRE-D1_C.dxf
- 01_AFFAIRE-D1_C.dxf
- 02_AFFAIRE-D1_C.dxf
J’aurais aimé plutôt avoir
- AFFAIRE-D1_C - 01.dxf ou AFFAIRE-D1_C - Feuille1.dxf
- AFFAIRE-D1_C - 02.dxf ou AFFAIRE-D1_C – Feuille2.dxf
- AFFAIRE-D1_C - 03.dxf ou AFFAIRE-D1_C – Feuille3.dxf
Avez vous une idée car débutant dans les macros, j'en ai fait une qui génère, depuis un Draw, un fichier ZIP contenant le PDF+DXF du Draw (toutes les feuilles) + STEP+PDF3D du modèle mis en plan.
Exemple :
« AFFAIRE-Pièce8.sldprt » ayant 2 configurations dont la 1ère à l’indice B est mise en plan dans le draw « AFFAIRE-D1.slddrw » qui lui est à l’indice C donnera un zip avec :
- Nom du fichier ZIP : AFFAIRE-D1_C.zip
Contenu :
- AFFAIRE-D1_C.pdf
- 00_AFFAIRE-D1_C.dxf
- 01_AFFAIRE-D1_C.dxf
- AFFAIRE-Pièce8.1_B.step
- AFFAIRE-Pièce8.1_B(PDF3D).pdf
Merci de votre aide.
Bonjour,
Tu devrais trouver tout ce que tu veux (et même plus) dans la macro partagée ICI.
Cordialement,
3 « J'aime »
Merci beaucoup,
j'ai en effet pu trouver réponse avec votre exemple mais aussi celui-ci :
https://forum.solidworks.com/thread/75412#comment-397610
en combinant les fichiers proposé en V2.1 et V2.2
Il fallait au final ne pas utiliser la fonction d'export de toutes les feuilles dans des fichiers séparés mais traiter chaque feuille dans un fichier unique et l'exporter en définissant son nom en fonction de mes conditions. La partie qui me manquait était donc :
'Export DXF manuellement pour avoir le bon nom de fichier DXF et pas le nommage système 00_, 01_, ...
'Set the DXF export option to export active sheet only
swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swDxfMultiSheetOption, swDxfMultisheet_e.swDxfActiveSheetOnly
sFilePath = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, "\"))
Dim swView As SldWorks.View
Set swView = swDraw.GetFirstView
Set swView = swView.GetNextView
vSheetName = swDraw.GetSheetNames
For i = 0 To UBound(vSheetName)
bRet = swDraw.ActivateSheet(vSheetName(i))
' Définition des noms de fichiers
FinalFileName_dxf = Strings.Left(swfilename, Len(swfilename) - 7) & DrawSepInd & DrawIndRev & " - " & vSheetName(i) & ".dxf"
If Verification(FinalFileName_dxf) = True Then
PopupEcraserFichier = MsgBox("Un fichier DXF du même nom existe déjà, Voulez-vous le remplacer ?" & vbNewLine & vbNewLine & FinalFileName_dxf, vbYesNoCancel)
If PopupEcraserFichier = vbNo Then
'Ne rien faire
Else
If PopupEcraserFichier = vbYes Then
bRet = swDraw.SaveAs4(FinalFileName_dxf, swSaveAsCurrentVersion, swSaveAsOptions_Silent, nErrors, nWarnings)
Else
If PopupEcraserFichier = vbCancel Then
Exit Sub
End If
End If
End If
Else
bRet = swDraw.SaveAs4(FinalFileName_dxf, swSaveAsCurrentVersion, swSaveAsOptions_Silent, nErrors, nWarnings)
End If
Next i
' Switch back to first sheet
bRet = swDraw.ActivateSheet(vSheetName(0))
Merci !