Communauté
Inventor - Français
Bienvenue sur les forums Inventor d’Autodesk. Partagez vos connaissances, posez des questions, collaborez sur des idées, et explorez les sujets Inventor populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

Commande Exporter PDF

12 RÉPONSES 12
RÉSOLU
Répondre
Message 1 sur 13
Sébastien_G
749 Visites, 12 Réponses

Commande Exporter PDF

Bonjour à Tous,

Est-il possible d'activer par défaut le paramètre "Noir et blanc" dans la commande Exporter PDF ?

Pour être plus clair, je joins une image.

Cordialement.

SGPDF - Paramètres Noir et blanc.jpg

 

12 RÉPONSES 12
Message 2 sur 13
ThomasB44
en réponse à: Sébastien_G

Salut @Sébastien_G 

Non...enfin sauf si tu créés un code en iLogic...

oPDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
Dim oOptions As NameValueMap
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
Dim oDataMedium As DataMedium
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
If oPDFAddIn.HasSaveCopyAsOptions(oDoc, oContext, oOptions) Then
	'oOptions.Value("All_Color_AS_Black") = 0
	'oOptions.Value("Remove_Line_Weights") = 0
	oOptions.Value("Vector_Resolution") = 4800
	oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintAllSheets
	'oOptions.Value("Custom_Begin_Sheet") = 2
	'oOptions.Value("Custom_End_Sheet") = 4
End If
'Set the PDF target file name
oDataMedium.FileName = oPath & PartNumber & Rev & ".pdf"
'Publish document
oPDFAddIn.SaveCopyAs(oDoc, oContext, oOptions, oDataMedium)

Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 3 sur 13
Sébastien_G
en réponse à: ThomasB44

Bonjour Thomas,

Toujours présent pour répondre à mes questions, merci à toi.

Quel est l'élément déclencheur du programme que tu me fournis.

Message 4 sur 13
ThomasB44
en réponse à: Sébastien_G

Ce code modifié devrait fonctionner :

  1. Ne fonctionne que sur un dessin
  2. Enregistre en pdf au même endroit que le fichier source
Dim oDoc As Document
oDoc = ThisDoc.Document
If oDoc.DocumentType <> kDrawingDocumentObject Then
	MessageBox.Show("Ce n'est pas un dessin", "iLogic")
	Return
End If

Dim oFileName, oPdfName As String
oFileName = oDoc.FullDocumentName
oPdfName = Left(oFileName, Len(oFileName)-3) & "pdf"

oPDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
Dim oOptions As NameValueMap
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
Dim oDataMedium As DataMedium
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
If oPDFAddIn.HasSaveCopyAsOptions(oDoc, oContext, oOptions) Then
	oOptions.Value("All_Color_AS_Black") = 1
	'oOptions.Value("Remove_Line_Weights") = 0
	oOptions.Value("Vector_Resolution") = 4800
	oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintAllSheets
	'oOptions.Value("Custom_Begin_Sheet") = 2
	'oOptions.Value("Custom_End_Sheet") = 4
End If
'Set the PDF target file name
oDataMedium.FileName = oPdfName
'Publish document
oPDFAddIn.SaveCopyAs(oDoc, oContext, oOptions, oDataMedium)

Maintenant pour le déclencher, tu peux par exemple créer une règle externe :

Capture.JPG

Coller ce code dedans et sauvegarder. Attention à l'emplacement où sont sauvegardées ces règles.

Cette règle est désormais accessible par le navigateur/iLogic.

Ou alors on peut en plus régler un évènement déclencheur : Gérer/iLogic/Evènement déclencheur qui lancera la règle, avant chaque sauvegarde par exemple.


Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 5 sur 13
Sébastien_G
en réponse à: ThomasB44

 

Bonjour Thomas,

Je viens de tester le programme...

Malheureusement petit soucis...voir image!

Bug NetB.png

Message 6 sur 13
ThomasB44
en réponse à: Sébastien_G

Salut @Sébastien_G 

L'erreur provient de ces 2 lignes :

oFileName = oDoc.FullDocumentName
oPdfName = Left(oFileName, Len(oFileName)-3) & "pdf"

La 1ère ligne va chercher le chemin + le nom du fichier.

La seconde retire les 3 derniers caractères de la chaîne textuelle (donc idw ou dwg) en utilisant la fonction Left (extrait les caractères par la gauche) et Len (nombre de caractères dans une chaîne)

L'erreur indique que la fonction Len échoue, car la chaîne est vide.

Donc ton document ne doit pas être enregistré.

 

Pour éviter cela, voici ce qu'il faut corriger :

Dim oDoc As Document
oDoc = ThisDoc.Document
If oDoc.DocumentType <> kDrawingDocumentObject Then
	MessageBox.Show("Ce n'est pas un dessin", "iLogic")
	Return
End If

Dim oFileName, oPdfName As String
oFileName = oDoc.FullDocumentName
If oFileName Is Nothing Then
	MessageBox.Show("Veuillez d'abord sauvegarder votre document", "iLogic")
	Return
End If

oPdfName = Left(oFileName, Len(oFileName)-3) & "pdf"

oPDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
Dim oOptions As NameValueMap
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
Dim oDataMedium As DataMedium
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
If oPDFAddIn.HasSaveCopyAsOptions(oDoc, oContext, oOptions) Then
	oOptions.Value("All_Color_AS_Black") = 1
	'oOptions.Value("Remove_Line_Weights") = 0
	oOptions.Value("Vector_Resolution") = 4800
	oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintAllSheets
	'oOptions.Value("Custom_Begin_Sheet") = 2
	'oOptions.Value("Custom_End_Sheet") = 4
End If
'Set the PDF target file name
oDataMedium.FileName = oPdfName
'Publish document
oPDFAddIn.SaveCopyAs(oDoc, oContext, oOptions, oDataMedium)

Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 7 sur 13
Sébastien_G
en réponse à: ThomasB44

Bonjour Thomas,

Je viens de tester le code.

Malheureusement rien ne se passe.

Le paramètre Noir et blanc de l'option Exporter PDF reste décochée !?!

code2.jpg 

Message 8 sur 13
ThomasB44
en réponse à: Sébastien_G

Oui, maintenant que tu as créé la règle, tu fais clic droit dessus, puis, "exécuter la règle"

Cela va lancer le code, et exporter en PDF.


Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 9 sur 13
Sébastien_G
en réponse à: ThomasB44

Thomas,

J'ai changé mon évènement déclencheur sur "après l'enregistrement du document".

Maintenant le code fonctionne PARFAITEMENT.

Merci à toi

Sébastien

Message 10 sur 13
ThomasB44
en réponse à: Sébastien_G

Excellent Smiley très heureux


Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 11 sur 13
pcottenceau
en réponse à: ThomasB44

Bonjour, 

J'ai utiliser le code que vous avez généré pour imprimé cela fonctionne très bien merci. 

Je suis une bille en code, je souhaiterai enregistrer l'impression en PDF dans un dossier bien spécifique et non dans le fichier natif du fichier de base. 

J'imagine que cela n'ai pas très compliqué quelqu'un peux m'aider à modifier le code existant pour faire ceci. 

Merci d'avance

Pierre

Message 12 sur 13
vpeuvion
en réponse à: pcottenceau

Bonjour, vous pouvez essayer ce code modifié :

Dim oDoc As Document
oDoc = ThisDoc.Document
If oDoc.DocumentType <> kDrawingDocumentObject Then
	MessageBox.Show("Ce n'est pas un dessin", "iLogic")
	Return
End If

Dim oFileName, oPdfName, oFolderPath As String
oFolderPath = "C:\...\...\...\MonDossierSpecifique"
oFileName = oDoc.displayname
If oFileName Is Nothing Then
	MessageBox.Show("Veuillez d'abord sauvegarder votre document", "iLogic")
	Return
End If

oPdfName = oFolderPath & "\" & Left(oFileName, Len(oFileName) -3) & "pdf"

oPDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
Dim oOptions As NameValueMap
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
Dim oDataMedium As DataMedium
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
If oPDFAddIn.HasSaveCopyAsOptions(oDoc, oContext, oOptions) Then
	oOptions.Value("All_Color_AS_Black") = 1
	'oOptions.Value("Remove_Line_Weights") = 0
	oOptions.Value("Vector_Resolution") = 4800
	oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintAllSheets
	'oOptions.Value("Custom_Begin_Sheet") = 2
	'oOptions.Value("Custom_End_Sheet") = 4
End If
'Set the PDF target file name
oDataMedium.FileName = oPdfName
'Publish document
oPDFAddIn.SaveCopyAs(oDoc, oContext, oOptions, oDataMedium)

 Il suffit de mettre le chemin complet de votre dossier sur cette ligne entre les "" :

oFolderPath = "C:\...\...\...\MonDossierSpecifique"

 Vincent.

Message 13 sur 13
pcottenceau
en réponse à: Sébastien_G

Super ça fonctionne merci beaucoup 👌

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report