Nie znam się na makrach i chciałbym wiedzieć, czy możliwe jest utworzenie makra eksportu DXF , które eksportuje wszystkie arkusze rysunku w osobnych plikach z zachowaniem nazw arkuszy.
Po poszukiwaniach na forum znalazłem ten temat z załączonym makrem, czyli tego czego w zasadzie szukam, tylko że robi PDF-y a nie DXF-y:
Czy dobra dusza forum mogłaby zmodyfikować to makro dla mnie, aby zastąpić PDF DXF. Czy makro zachowa opcje "zapisz jako" SolidWorks, których używam, gdy robię to ręcznie, na przykład przy użyciu pliku projekcji?
Nie jestem pewien, czy dobrze rozumiem poprzednią wiadomość.
Czy to jest makro PDF, czy makro DXF powinno zrobić, co musimy zrozumieć?
Nie otwierałem makra, ale jeśli nastąpiła po prostu zmiana rozszerzenia pliku w całym kodzie, logicznie rzecz biorąc, zapisuje się tylko w innym formacie.
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDraw As SldWorks.DrawingDoc
Dim sPathname As String
Dim vSheetName As Variant
Dim nErrors As Long
Dim nWarnings As Long
Dim i As Long
Dim bRet As Boolean
Dim lParam As Long
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swDraw = swModel
lParam = swApp.GetUserPreferenceIntegerValue(swDxfMultiSheetOption)
'Changement paramétrage export dxf si différent de feuille active
If lParam <> 0 Then
bRet = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swDxfMultiSheetOption, swDxfMultisheet_e.swDxfActiveSheetOnly)
End If
sPathname = swModel.GetPathName
sPathname = Left(sPathname, Len(sPathname) - 7)
vSheetName = swDraw.GetSheetNames
For i = 0 To UBound(vSheetName)
bRet = swDraw.ActivateSheet(vSheetName(i))
bRet = swModel.SaveAs4(sPathname & "_" & vSheetName(i) & ".dxf", swSaveAsCurrentVersion, swSaveAsOptions_Silent, nErrors, nWarnings)
Next i
' Retour à la Feuille 1
bRet = swDraw.ActivateSheet(vSheetName(0))
' Remise en place du paramétrage initial
bRet = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swDxfMultiSheetOption, lParam)
End Sub