Aller au contenu

positionnement d\'image sur condition


Messages recommandés

Posté(e)

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

Posté(e)

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:

Posté(e)

je suis interresse par ton appli.

je travaille dans le secteur CFAO

nous sortant des plan mais les signature son faite à la main

pourrais tu si tu le veux bien sur me partager ton appli.

merci...

Posté(e)

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 moi

Olivier

 

 

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, s

Set 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 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_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

 

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité