Ich weiß nichts über Makros und würde gerne wissen, ob es möglich ist, ein DXF-Exportmakro zu erstellen, das alle Blätter einer Zeichnung in separate Dateien exportiert und die Namen der Blätter beibehält.
Nach der Suche im Forum habe ich dieses Thema mit dem angehängten Makro gefunden, das ich im Prinzip suche, nur dass es PDFs und keine DXFs macht:
Könnte eine gute Seele des Forums dieses Makro für mich ändern, um das PDF durch das DXF zu ersetzen? Behält das Makro die SolidWorks "Speichern unter"-Optionen bei, die ich verwende, wenn ich es manuell ausführe, z. B. bei der Verwendung einer Projektionsdatei?
Meine Zeichnung hat eine Ansicht mit Abmessungen für die Fab (Registerkarte "Blatt 1") und ein abgewickeltes Blech zum Laserschneiden (Registerkarte "Rep A")
Ich bin mir nicht sicher, ob ich die vorherige Nachricht verstanden habe.
Ist das PDF-Makro fertig und sollte das DXF-Makro das tun, was wir verstehen müssen?
Ich habe das Makro nicht geöffnet, aber wenn es einfach eine Änderung der Dateierweiterung im gesamten Code gab, wird es logischerweise nur in einem anderen Format gespeichert.
Das Makro "pdf_page_par_page.swp" erstellt 1 Datei pro Zeichnungsblatt und enthält im PDF-Dateinamen den Namen der Zeichnungsdatei + den Namen des Blattes
Wenn die Zeichnungsdatei z. B. "TOTO" heißt und 2 Blätter enthält, "PLAN" und "Rep A", führt das PDF-Makro Folgendes aus:
Ich für meinen Teil bin auf "Alle Blätter in einer Datei exportieren" eingestellt und habe kein Problem.
Nur wenn die Einstellung "Alle Blätter in separaten Dateien exportieren" ist, erzeugt der Export 4 Dateien.
Was mir auch aufgefallen ist, ist, dass man die Änderung der Einstellungen zweimal erzwingen muss, damit sie korrekt berücksichtigt wird (wahrscheinlich SW2020-Fehler).
Wenn man sich das Makro ansieht, gibt es mehrmals "swExpPdfData" und "SldWorks.ExportPdfData"
und eine Zeile outFile = outFile & IIf(INCLUDE_DRAWING_NAME, drawName & "_", "") & sheetName & ".dxf" oder es ist ".pdf" im PDF-Makro, die funktioniert
Ist es die ..... ExpPdfData, die durch das Äquivalent für DXFs ersetzt werden sollten?
Normalerweise erfüllt der folgende Code die Anforderungen
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