Hier ben ik op zoek naar een beetje macro om enerzijds de opname in 3D pdf te automatiseren. Het probleem is dat ik in hetzelfde deel verschillende configuraties heb. Ik heb al een macro om alle bladen van een plan onafhankelijk in pdf op te slaan, maar ik kan deze code voor de configuraties niet transcriberen. Misschien weet iemand de lijn(en) die zouden moeten worden gewijzigd om het te laten werken. Ik stuur je mijn code.
Voor mij zouden alle bladfuncties moeten worden vervangen door configuratiefuncties, maar ik ken de regels daarvoor niet. Als een goede liefdadige ziel zich verveelt, en me kan helpen, ben ik een nemer;)
'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
De PDF3D worden opgeslagen in dezelfde map als het Solidworks-bestand (onder de naam: "NomdufichierSolidworks_NumeroDeLaConfiguration.PDF") Het is aan jou om deze waarden aan te passen aan je wensen.
Ja, ik heb het gemerkt... Ik had problemen met het vergrendelen van het selectievakje "PDF3D" van "Opslaan als".... (Helaas) Ik heb mijn vorige bericht bijgewerkt, het zou nu moeten werken. Nou ja, normaal. Vriendelijke groeten
Nee nog steeds niet, het neemt nog steeds op in pdf en niet in 3D, maar ik denk dat het niet ver is, ik test ook wat modificatie aan mijn kant. Bedankt voor de snelle reactie;)
Vreemd, de nieuwste versie van mijn macro werkt erg goed op mijn computer (zelfs na het opnieuw opstarten van de pc). Ik wacht op de resultaten van uw wijzigingen.
Vereist uw code Document Manager? Want als dat zo is, is dat misschien mijn probleem
Vriendelijke groeten
Edit: Het is allemaal goed dat het werkt dank je, het is alleen ik die niet verwijderen een regel van de oude code (de stomme fout ^^'). Bedankt voor je hulp in ieder geval
Nou nee, deze macro heeft helemaal niets te maken met "Document Manager". Maar blij dat het goed voor je is. Vergeet niet om deze discussie te sluiten als u tevreden bent met de gegeven antwoorden.
Ik ben zo vrij geweest om de eerste code op te halen die elk blad in PDF opslaat, maar het herhaalt de bewerking niet, het maakt gewoon een pdf van de huidige pagina, kun je me begeleiden, mijn vaardigheden in VBA zijn zeer beperkt.
Bij voorbaat dank.
Update: na een herstart van de pc draait het programma correct, bedankt!