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!