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;)
'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.
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;)
Seltsam, die neueste Version meines Makros funktioniert sehr gut auf meinem Computer (auch nach einem PC-Neustart). Ich warte auf die Ergebnisse Ihrer Änderungen.
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
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.
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!