Annonces

Les forums de la communauté Autodesk ont un nouveau look. Pour en savoir plus sur ce qui a changé, consultez le tableau des annonces de la communauté.

Inventor : .idw export PDF incomplet (bug graphic)

tristan-haller
Collaborator

Inventor : .idw export PDF incomplet (bug graphic)

tristan-haller
Collaborator
Collaborator

Bonjour,

 

Je suis frustré de la fonction export PDF intégrer a Inventor, lorsque mes présentation atteigne une certaine taille (autour de 1000~1500 .ipt) l'export PDF n'est plus fiable.

Il "néglige" des couche d'information de manière chaotique, une fois il n'inclus pas les côtes d'une vue, une autre fois il retire les raster, ou les repères.

Plus mon plans est "lourd" plus c'est fréquent.

Je n'ai pas ce problème avec mon imprimante PDF mais le fichier produit est plus lourd et n'inclus pas les layer, contrairement à l'export PDF natif Inventor.

Dans la pratique, si je veux vraiment un PDF "natif" Inventor, il me faux relancer la fonction entre 3 et 15 fois pour obtenir un export propre...

 

Des idées?

 

 

tristanhaller_0-1658499922823.png

tristanhaller_1-1658500012873.png

tristanhaller_0-1658504815751.png

 

 

 

 

0 J'aime
Répondre
Solutions acceptées (1)
382 Visites
7 Réponses
Replies (7)

gmassart
Collaborator
Collaborator

Bonjour

J'ai souvenir d'avoir eu ce genre de soucis avec la version 2014 (oui ça date mais on l'utilisait encore il y a 6 mois) et à priori pour moi c'était les vues RASTER qui cassaient les pieds. On travaille aussi en plan multipages pour faciliter le travail d'export et de contrôle (et éviter d'ouvrir 30 plans...)

Pour les vues RASTER j'ai un code VBA qui parcourt toutes les pages et "dérastérise" toutes les vues, parfois c'est plus long mais ça aide.

Sinon pour éviter de refaire des gros exports, un contournement qui n'est pas une solution mais en attendant, c'est d'utiliser un code d'export PDF pour faire page par page vers un pdf unique, passer par un logiciel qui regroupe les pdf (c'est rapide avec par exemple PDF Split and Merge), si une page merde tu peux ressortir que celle ci et refaire la fusion.

Concernant le bug, il faut le remonter à Autodesk, ils vont demander le jeux de fichiers complet pour refaire le bug.

Guillaume MASSART
AFFIVAL SAS
Inventor Pro 2022
EESignature

tristan-haller
Collaborator
Collaborator

Bonjour @gmassart ,

 

Merci de t'as réponse.
Actuellement je contourne le problème en exportant par "portion" mon jeux de plan puis en le "recollant", ce qui est proche de ta solution mais beaucoup plus manuel, je vais regarder si je trouve des informations pour faire un code d'export PDF pages à pages.
Ton code VBA ne semble pas utile ici, les vues exportées sont toutes en affichage normale pas en affichage raster, bien qu'elle "contiennent" une couche raster.
tristanhaller_0-1658735001395.png

 

Pour ce qui est de fournir l'ensembles des fichier sources à Autodesk, je ne pense pas que ce seras choisi.


Je vais quand même ouvrir un ticket pour voir ce qui peut être avancer de leur côté.

 

 

0 J'aime

ThomasB44
Mentor
Mentor

Salut @tristan-haller 

Quelles options as tu réglées avant l'export PDF ?

Je pense à l'option "Résolution du vecteur" qui peut vite devenir gourmande. En général 300 DPI suffisent pour un affichage tout à fait correct.

Je ne crois pas que cela soit lié à la taille du fichier en particulier. Tu as je suppose, vérifié tes mises à jour graphique et Adobe ?


Thomas
Mechanical Designer / Inventor Professionnal 2025
Inventor Professional EESignature

0 J'aime

tristan-haller
Collaborator
Collaborator

Bonjour @ThomasB44 ,

 

Pour ce qui est du raster je suis à 720DPI (résolution de mon traceur) de façon à ce que mes captures d'écran intégrée aux plans soient nettes (peut être une mauvaise idée du coup...)

tristanhaller_0-1658737903775.png

 

Pour ce qui est des mises à jour, je ne savais pas qu'Adobe fournissait les drivers utilisés par Inventor pour l'export PDF... Je vais vérifier que toutes les mise à jour possible sont installé et refaire une batterie de test.
Merci pour la piste !

0 J'aime

gmassart
Collaborator
Collaborator
Solution acceptée

Les bouts de code VBA :

Supprimer les vues RASTER :

 

Sub RasterViewRemove()
    Dim oDrawing As DrawingDocument
    Dim oSheet As Sheet
    Dim oView As DrawingView
    If ThisApplication.ActiveDocument.DocumentType = kDrawingDocumentObject Then
    Set oDrawing = ThisApplication.ActiveDocument
        For Each oSheet In oDrawing.Sheets
            If oSheet.DrawingViews.Count > 0 Then
                For Each oView In oSheet.DrawingViews
                    oView.IsRasterView = False
                Next
            End If
        Next
    End If
End Sub

 

Export PDF :

 

Sub ExportPDF(oPath As String, oFileName As String, oDocument As Document, oOptions As NameValueMap)
    ' Get the PDF translator Add-In.
    Dim PDFAddIn As TranslatorAddIn
    Set PDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
    Dim oContext As TranslationContext
    Set oContext = ThisApplication.TransientObjects.CreateTranslationContext
    oContext.Type = kFileBrowseIOMechanism
    ' Create a DataMedium object
    Dim oDataMedium As DataMedium
    Set oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
    'Set the destination file name
    oDataMedium.filename = oPath & oFileName
    'Publish document.
    Call PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
End Sub

 

La fonction qui appelle celle d'avant avec le oOptions

 

Private Sub btnExportPdf_Click()
    ' Create a NameValueMap object
    Dim oOptions As NameValueMap, oDirectory As String, oFileName As String, oFileDialog As Inventor.FileDialog
    Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap
    oOptions.value("All_Color_AS_Black") = cbBW.value
    oOptions.value("Remove_Line_Weights") = cbLineWeights.value
    Dim Vector As Integer
    Vector = tbResolution.value
    oOptions.value("Vector_Resolution") = Vector
    If optbtnAllSheets.value Then
        oOptions.value("Sheet_Range") = kPrintAllSheets
    End If
    If optbtnCurrentSheet Then
        oOptions.value("Sheet_Range") = kPrintCurrentSheet
    End If
    If optbtnSheets Then
        Dim sFrom As Integer
        Dim sTo As Integer
        sFrom = tbSheetFrom.value
        sTo = tbSheetTo.value
        oOptions.value("Sheet_Range") = kPrintSheetRange
        oOptions.value("Custom_Begin_Sheet") = sFrom
        oOptions.value("Custom_End_Sheet") = sTo
    End If
    If optbtnDirectoryChoice Then
        Set oFileDialog = Nothing
        Call ThisApplication.CreateFileDialog(oFileDialog)
        oFileDialog.Filter = "Adobe Acrobe PDF files (*.pdf)|*.pdf"
        oFileDialog.InitialDirectory = ThisApplication.DesignProjectManager.ActiveDesignProject.WorkspacePath
        oFileDialog.CancelError = True
        If optbtnCustomFileName Then
            oFileDialog.filename = tbCustomFileName.text
        Else
            oFileDialog.filename = getFileName(ThisApplication.ActiveDocument.FullFileName) & ".pdf"
        End If
        On Error Resume Next
        Call oFileDialog.ShowSave
        
        If err.Number <> 0 Then
            Exit Sub
        ElseIf oFileDialog.filename = "" Then
            MsgBox "Le nom du fichier est vide"
            Exit Sub
        Else
            oFileName = oFileDialog.filename
        End If
    Else
        oDirectory = getPath(ThisApplication.ActiveDocument.FullFileName)
        If optbtnCustomFileName Then
            oFileName = tbCustomFileName.text & ".pdf"
        Else
            oFileName = getFileName(ThisApplication.ActiveDocument.FullFileName) & ".pdf"
        End If
    End If
    Call ExportPDF(oDirectory, oFileName, ThisApplication.ActiveDocument, oOptions)
End Sub

Il faut ensuite boucler sur chaque page, personnaliser le nom du fichier de sortie. J'ai des options avec des cases à cocher pour notre application mais il faut juste prendre kPrintCurrentSheet et supprimer le reste pour le choix des pages.

 

Guillaume MASSART
AFFIVAL SAS
Inventor Pro 2022
EESignature

tristan-haller
Collaborator
Collaborator

Merci @gmassart,

 

Je vais explorer ces codes, et essayer de les intégrer dans ma façon de travailler. Je vais avoir besoins de temps pour mettre tout ça en pratique, ça viendra plus tard.

 

 

0 J'aime

gmassart
Collaborator
Collaborator

Personnellement on renomme les feuilles (avec une macro bien sûr 🙂 ) et on utilise le nom des feuilles + le nom de fichier pour créer les noms des fichiers pdf.

On a parfois des clients qui veulent absolument un pdf par page et pas de multipage.

Guillaume MASSART
AFFIVAL SAS
Inventor Pro 2022
EESignature