Makro pdf 3D

Hallo ihr alle

Hier suche ich ein bisschen Makro, um einerseits die Aufnahme in 3D pdf zu automatisieren. Das Problem ist, dass ich in diesem Teil mehrere Konfigurationen habe. Ich habe bereits ein Makro, um alle Blätter eines Plans unabhängig voneinander in pdf zu speichern, aber ich kann diesen Code nicht für die Konfigurationen transkribieren. Vielleicht kennt jemand die Zeile(n), die geändert werden müssten , damit es funktioniert. Ich schicke Ihnen meinen Code.

Für mich sollten alle Blattfunktionen durch Konfigurationsfunktionen ersetzt werden, aber ich kenne die Zeilen dafür nicht. Wenn eine gute wohltätige Seele sich langweilt und mir helfen kann, bin ich ein Nehmer;)

 

Vielen Dank

Herzliche Grüße


makro-export-pdf-zpf.swp
1 „Gefällt mir“

Hallo;

Versuchen Sie so etwas.

'Option Explicit

Sub main()

'Sauvegarde en PDF3D toutes les configurations.

    Dim swApp                       As SldWorks.SldWorks
    Dim swModel                     As SldWorks.ModelDoc2
    Dim swConfigMgr                 As SldWorks.ConfigurationManager
    Dim swConfig                    As SldWorks.Configuration
    Dim vConfigName                 As Variant
    Dim stnameConfig                As String
    Dim vConfigNameArr              As Variant
    Dim ConfCount                   As Variant
    Dim X                           As Variant
    Dim i                           As Integer
    Dim Chemin                      As String
    Dim PDF3dPath                   As String
    Dim status                      As Boolean
    Dim swExportPDFData             As SldWorks.ExportPdfData
    Dim ExportAs3D                  As Boolean
    Dim lErrors                     As Long
    Dim lWarnings                   As Long
   
    Set swApp = Application.SldWorks
    'on récupére le document actif
    Set swModel = swApp.ActiveDoc
    
    Set swConfigMgr = swModel.ConfigurationManager
    'on récupére la configuration active
    Set swConfig = swConfigMgr.ActiveConfiguration
    'on récupére de nom de la configation active
    stnameConfig = swConfig.Name
    'on récupére le nom de toutes les configurations
    vConfigNameArr = swModel.GetConfigurationNames
    
    ConfCount = UBound(vConfigNameArr)

    If ConfCount = 0 Then Exit Sub

    If ConfCount > 0 Then
       
        i = 1
        'on boucle
        For Each vConfigName In vConfigNameArr
    
            'on affiche la configuration
            swModel.ShowConfiguration2 vConfigName
        
            swModel.ShowNamedView2 "*Isometric", -1
            swModel.ViewZoomtofit2
        
            'on force la reconstruction
            swModel.ForceRebuild3 False
                
            'Creation du Chemin et du Nom des fichiers PDF3D
            Chemin = swModel.GetPathName
            X = Split(Chemin, ".")
            Chemin = X(LBound(X))
            PDF3dPath = UCase(Chemin & "Config_" & i) & ".PDF"
            
            'Sauvegarde en PDF 3D de cette configuration
            
            'Verouillage de l'option Saveas PDF 3D
            ExportAs3D = True
            Set swExportPDFData = swApp.GetExportFileData(1)
            swExportPDFData.ExportAs3D = True

            'Sauvegarde du document en PDF 3D
            Dim swModelDocExt      As SldWorks.ModelDocExtension
            Set swModelDocExt = swModel.Extension
            status = swModelDocExt.SaveAs(PDF3dPath, 0, 2, swExportPDFData, lErrors, lWarnings)
 
            i = i + 1
        Next vConfigName
        
    End If
        
    'on Retourne sur la configuration active avant le traitement
    swModel.ShowConfiguration2 stnameConfig
    swModel.ShowNamedView2 "*Isometric", -1
    swModel.ViewZoomtofit2
    
    'on force la reconstruction
    swModel.ForceRebuild3 False
    'on sauvegarde le document
    swModel.Save3 swSaveAsOptions_e.swSaveAsOptions_Silent, 0, 0

End Sub

 

Die PDF3D-Dateien werden im selben Verzeichnis wie die Solidworks-Datei gespeichert (unter dem Namen: "NomdufichierSolidworks_NumeroDeLaConfiguration.PDF")
Es liegt an Ihnen, diese Werte nach Ihren Wünschen zu ändern.

Herzliche Grüße

 

 

3 „Gefällt mir“

Danke für den Rahmen, leider zeichnet der Code nicht in 3D auf, sondern speichert in einfachen PDFs. Hat jemand eine Idee??

Herzliche Grüße

Ja, ich habe es bemerkt... Ich hatte Probleme, das Kontrollkästchen "PDF3D" von "Speichern unter" zu sperren.... (Entschuldigung)
Ich habe meinen vorherigen Beitrag aktualisiert, es sollte jetzt funktionieren. Naja, normalerweise.
Herzliche Grüße

Nein, immer noch nicht, es zeichnet immer noch in pdf und nicht in 3D auf, aber ich denke, es ist nicht mehr weit, ich teste auch einige Modifikationen auf meiner Seite. Vielen Dank für die schnelle Antwort;)

Gute Nacht

Herzliche Grüße

  Hallo quentin.fouillouse;

Seltsam, die neueste Version meines Makros funktioniert sehr gut auf meinem Computer (auch nach einem PC-Neustart).
Ich warte auf die Ergebnisse Ihrer Änderungen.

Herzliche Grüße.

Erfordert Ihr Code Document Manager? Denn wenn ja, dann ist das vielleicht mein Problem

Herzliche Grüße

 

Bearbeiten: Es ist alles gut, es funktioniert danke, es bin nur ich, der keine Zeile des alten Codes gelöscht hat (der dumme Fehler ^^'). Vielen Dank auf jeden Fall für Ihre Hilfe

Schönen Tag

Herzliche Grüße

2 „Gefällt mir“

Hallo;

Nun, nein, dieses Makro hat überhaupt nichts mit "Document Manager" zu tun. Aber ich bin froh, dass es das Richtige für Sie ist.
Bitte denken Sie daran, diese Diskussion zu schließen, wenn Sie mit den Antworten zufrieden sind.

Herzliche Grüße.

3 „Gefällt mir“

Hallo 

Ich habe mir die Freiheit genommen, den ersten Code abzurufen, der jedes Blatt in PDF speichert, aber es wiederholt den Vorgang nicht, es erstellt nur ein PDF der aktuellen Seite, könnten Sie mir helfen, meine Fähigkeiten in VBA sind sehr begrenzt. 

Vielen Dank im Voraus.

Update: Nach einem Neustart des PCs läuft das Programm korrekt, danke!