Macro pdf 3D

Hoi allemaal

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

 

Bedankt

Vriendelijke groeten


macro-export-pdf-zpf.swp
1 like

Hallo;

Probeer eens zoiets.

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

Vriendelijke groeten

 

 

3 likes

Bedankt voor het frame, helaas neemt de code niet op in 3D, het slaat op in eenvoudige pdf. Iemand een idee??

Vriendelijke groeten

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

Goedenacht

Vriendelijke groeten

  Hallo quentin.fouillouse;

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.

Vriendelijke groeten.

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 

Fijne dag

Vriendelijke groeten

2 likes

Hallo;

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.

Vriendelijke groeten.

3 likes

Hallo 

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!