Voila je cherche un bout de macro pour automatiser l'enregistrement en pdf 3D d'un part. Le problème étant que dans ce même part j'ai plusieurs config. J'ai déjà une macro pour enregistrer toutes les feuilles d'un plan indépendamment en pdf mais j'arrive pas à retranscrire ce code pour les configurations. Quelqu'un connaît peut-être la/les lignes qu'il faudrait changer pour que ça marche. Je vous envoie mon code.
Pour moi, toutes les fonctions sheet devraient être remplacées par des fonctions config, mais je ne connais pas les lignes pour ça. Si une bonne âme charitable s'ennuie, et qu'elle peut m'aider je suis preneur ;)
'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
Les PDF3D sont sauvegardés dans le même répertoire que le fichier Solidworks ( sous le Nom : "NomdufichierSolidworks_NumeroDeLaConfiguration.PDF") A vous de modifier ces valeurs selon vos envies.
Oui, je l'ai remarqué... j'ai eu du mal à vérouiller la case à cocher "PDF3D" de "Enregistrer Sous".... (Desolé) J'ai mis à jour mon post précédant, cela devrait fonctionner maintenant. Enfin Normalement. Cordialement
Non toujours pas, ça enregistre toujours en pdf et non en 3D, mais je pense que c'est pas loin, je test quelque modif de mon côté aussi . Merci pour la rapidité de réponse ;)
Etrange, la dernière version de ma macro fonctionne très bien sur mon poste (Même après un redémarrage du PC). J'attend les résultats de vos modifications.
Votre code nécessite d'avoir Document Manager ? Car si oui c'est peut-être ça mon problème
Cordialement
Edit : C'est tout bon ça marche merci, c'est juste moi qui avait pas supprimé une ligne de l'ancien code (l'erreur bête ^^'). Je vous remercie pour votre aide en tout cas
Ben non, cette macro n'a rien à voir avec "Document Manager" du tout. Mais ravis qu'elle vous convienne. Merci de bien penser à clore cette discussion si vous êtes satisfait des réponses apportées.
Je me suis permis de récupérer le premier code qui enregistre chaque feuille en PDF , mais il ne répète pas l'opération , il se contente de crée un pdf de la page actuelle , pourriez vous m'aiguiller , mes compétences en VBA sont très limitées.
Merci d'avance.
Update : apres un redémarrage du PC le programme c'est exécuter correctement merci !