DXF-Makro-Export Blatt für Blatt

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:

https://www.lynkoa.com/forum/solidworks/export-diff%C3%A9renci%C3%A9-en-pdf-et-dxf-des-onglets-de-mise-en-plan-par-une-macro

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?

 

Vielen Dank


pdf_page_par_page.swp

Hallo

Ich habe ".pdf" durch ".dxf" im Makro ersetzt

Probieren Sie es aus, sollte es funktionieren


dxf_page_par_page.swp

Vielen Dank
Aber es funktioniert nicht richtig, 

Meine Zeichnung hat eine Ansicht mit Abmessungen für die Fab (Registerkarte "Blatt 1") und ein abgewickeltes Blech zum Laserschneiden (Registerkarte "Rep A")

Das PDF-Makro führt Folgendes aus:

eine Datei: "Name des fichier_Feuille 1.PDF"

eine Datei mit dem Namen der fichier_Rep A.PDF

Das DXF-Makro führt Folgendes aus:

eine Datei:" 00_nom von fichier_Feuille1.dxf"

eine Datei: "00_nom der A.dxf-fichier_Rep"

eine Datei: "01_nom von fichier_Feuille1.dxf"

eine Datei:"01_nom der A.dxf-fichier_Rep"

Hallo

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 stimmt

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:

1 Datei "TOTO_PLAN" nur mit dem Blatt "PLAN"

1 Datei "TOTO_Rep A" nur mit dem Blatt "Rep A"

Das ist es, was ich mit DXF machen möchte.

Mit dem Makro "dxf_page_par_page.swp" gibt es 4 Dateien

"00_TOTO_PLAN" nur mit dem Blatt "PLAN"

"00_TOTO_Rep a" nur mit dem Blatt "Rep A"

"01_TOTO_PLAN" nur mit dem Blatt "PLAN"

"01_TOTO_Rep a" nur mit dem Blatt "Rep A"

Hallo

Wenn das verwendete Makro verwendet wird, müssen Sie die Exportoptionen der dxf/dwg-Formate in den SOLIDWORKS Optionen ändern:

Herzliche Grüße

Hallo

Das Ergebnis ist das gleiche, ich habe immer noch 4 Dateien bei 2

Im Gegensatz zu PDFs

Hallo

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).

SW hatte die Einstellung "Alle Blätter in eine Datei exportieren" nicht berücksichtigt

Ich habe 2 Dateien mit der richtigen Syntax , aber es ist das gleiche Blatt in den 2, das auf dem Bildschirm "aktiv" ist.

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?

Hoppla, ich schaue mir das genauer an, ich habe die Dateien nicht geöffnet.

Re

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

 

3 „Gefällt mir“

Vielen Dank
Es funktioniert perfekt ;-)