groli Posté(e) le 11 décembre 2006 Posté(e) le 11 décembre 2006 Boujour tout le monde, me revoici avec un nouveau problème : Je vais essayer d'être clair. Le but du jeu est de générer automatiquement des plans au format PDF en insérant un signature à un endroit précis; à ce jour je sais générer des pdf automatiquement, je sais insérer une image de la signature mais la problématique viens du fait que l'origine d'un CatDrawing est en bas à gauche alors que mon image est fixe par rapport au coté droit du coup si je positionne bien ma signature pour un A4, elle n'est plus au bon endroit lorsque je traite un A3 ou autre... Je vois deux solutions : soit je peux modifier mon origine et la placer à droite soit il me faut quelques lignes de programmes du genre : if Active.Document = A4 then 'insérer l'image à tel endroit'if Active.Document = A3 then 'insérer l'image à tel endroit'etc(sauf que je n'ai pas les commandes exactes...) Quelqu'un aurait une idée? je suis bien sûr prêt à partager ma macro lorsqu'elle sera finie. Olivier
8_pool Posté(e) le 12 décembre 2006 Posté(e) le 12 décembre 2006 Salut Groli, Le mieux pour insérer ton image est à mon avis de récupérer les dimensions du calque, donc les positions des bords droit et haut, et de placer ton image par rapport à ces coordonnées. V'la un p'tit bout de code pour lire ces infos : ' Déclaration des varaibles Dim oDrw_Doc As DrawingDocument Dim cDrw_Sheets As DrawingSheets Dim oDrw_Sheet As DrawingSheet Dim oView As DrawingView Dim oFormat As CatPaperSize Dim dSh_Width As Double, dSh_Height As Double ' Affectation des variables Set oDrw_Doc = CATIA.ActiveDocument Set cDrw_Sheets = oDrw_Doc.Sheets Set oDrw_Sheet = cDrw_Sheets.ActiveSheet ' Lecture du format et des dimensions du calque oFormat = oDrw_Sheet.PaperSize dSh_Height = oDrw_Sheet.GetPaperHeight dSh_Width = oDrw_Sheet.GetPaperWidth Je te conseille également de parcourir la doc Catia, qui si elle n'est pas d'une limpidité merveilleuse, a le mérite d'exister et de contenir pas mal d'infos (mais que tu devras trouvé petit scarabé !).Tu peux la trouver au format html dans la doc standard ou bien en chm : V5Automation.chm dans le répertoire intel_a/code/bin de Catia Ciao :cool:
groli Posté(e) le 12 décembre 2006 Auteur Posté(e) le 12 décembre 2006 merci beaucoup 8_pool, j'ai réussi à faire ce que je voulais en utiliisant une partie de ton code
poulcyber Posté(e) le 17 décembre 2006 Posté(e) le 17 décembre 2006 je suis interresse par ton appli.je travaille dans le secteur CFAOnous sortant des plan mais les signature son faite à la mainpourrais tu si tu le veux bien sur me partager ton appli.merci...
groli Posté(e) le 18 décembre 2006 Auteur Posté(e) le 18 décembre 2006 bien sûr pas de soucis :Attention ce code fonctionne pour des calques en paysage; si tes calques sont en portrait il faut adapter les valeurs dans la ligne au début de chaque boucle de signature.IL faut aussi adapter un certains nombre d'info selon ton cas (chemin d'accès à l'image, positionnement de l'image...).D'autres part il s'agit de Vbscript et non pas de vba donc il faut coller ce code dans une macro vbscript...Pour faire fonctionner cette macro il faut avoir le chemin d'un répertoire qui ne contient que des catdrawing.Seuls les pdf sont signés car je ne fais psa de save avant la fermeture du doc. Si tu as un soucis demande moiOlivier Language="VBSCRIPT" Sub CATMain()msgbox("Vous allez générer des pdf SIGNES")folderinput = InputBox ("Indiquer le dossier contenant les plans CatDrawing Attention le chemin d'accès doit se terminer par \ Les PDF seront crées dans le répertoire source","Source","Collez l'adresse source",2000,4000) Dim fs, f, f1, fc, sSet fs = CreateObject("Scripting.FileSystemObject")Set f = fs.GetFolder(folderinput)Set fc = f.Files For Each f1 in fc Dim PartDocument1 'As Document Set documents1 = CATIA.Documents Dim document1 'As Document INTRARE = folderinput & f1.name Set PartDocument1 = CATIA.Documents.Open(INTRARE) ' déf des variablesSet oDrw_Doc = CATIA.ActiveDocumentSet cDrw_Sheets = oDrw_Doc.SheetsSet oDrw_Sheet = cDrw_Sheets.ActiveSheet ' Lecture du format et des dimensions du calqueoFormat = oDrw_Sheet.PaperSize dSh_Width = oDrw_Sheet.GetPaperWidth 'Boucle de signature pour un A4 If ( dSh_Width=297 ) Then Set MySheet = CATIA.ActiveDocument.Sheets.ActiveSheet Set MyView = MySheet.Views.ActiveView Set SignatureSignature1 = MyView.Pictures.Add("C:\signature\signature 1.jpg", 260., 30.)Set SignatureSignature2 = MyView.Pictures.Add("C:\signature\signature 2.jpg", 263., 42.) End If 'Boucle de signature pour un A3 If ( dSh_Width=420 ) Then Set MySheet = CATIA.ActiveDocument.Sheets.ActiveSheet Set MyView = MySheet.Views.ActiveView Set SignatureSIGNATURE1 = MyView.Pictures.Add("C:\signature\signature 1.jpg", 383., 30.)Set SignatureSIGNATURE2 = MyView.Pictures.Add("C:\signature\signature 2.jpg", 386., 42.) End If 'Boucle de signature pour un A2 If ( dSh_Width=594 ) Then Set MySheet = CATIA.ActiveDocument.Sheets.ActiveSheet Set MyView = MySheet.Views.ActiveView Set SignatureSIGNATURE1 = MyView.Pictures.Add("C:\signature\signature 1.jpg", 552., 40.)Set SignatureSIGNATURE2 = MyView.Pictures.Add("C:\signature\signature 2.jpg", 550., 52.) End If 'Boucle de signature pour un A1 If ( dSh_Width=841 ) Then Set MySheet = CATIA.ActiveDocument.Sheets.ActiveSheet Set MyView = MySheet.Views.ActiveView Set SignatureSIGNATURE1 = MyView.Pictures.Add("C:\signature\signature 1.jpg", 799., 40.)Set SignatureSIGNATURE2 = MyView.Pictures.Add("C:\signature\signature 2.jpg", 799., 52.) End If 'Boucle de signature pour un A0 If ( dSh_Width=1189 ) Then Set MySheet = CATIA.ActiveDocument.Sheets.ActiveSheet Set MyView = MySheet.Views.ActiveView Set SignatureSIGNATURE1 = MyView.Pictures.Add("C:\signature\signature 1.jpg", 1147., 40.)Set SignatureSIGNATURE2 = MyView.Pictures.Add("C:\signature\signature 2.jpg", 1147., 52.) End If IESIRE = folderinput & f1.name & ".pdf" PartDocument1.ExportData IESIRE, "pdf" s = s & f1.name s = s & vbCrLf CATIA.ActiveDocument.Close Next End Sub
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant