Snapshot catia to word

Soyez le premier à donner votre avis sur cette source.

Snippet vu 16 002 fois - Téléchargée 20 fois

Contenu du snippet

Ce code est une macro pour CATIA qui crée une impression d'écran uniquement de la pièce ou du produit affiché, sans l'arbre, ni la boussole, et sur fond blanc.
Ensuite, l'image est envoyée sur le fichier Word préalablement ouvert.

Rajoutez un bouton dans CATIA pour lancer cette macro. Vous verrez, c'est très pratique!

Source / Exemple :


Sub CATMain()
'****************************************************************************************************
'Pour permettre l'utilisation de cette Macro, activez la librairie word dans l'éditeur VB de Catia
'Outils->Reference->Microsoft Word 11.0 Object Librairy
'il faut aussi créer le raccourci clavier pour afficher la boussole avec F8
'Crée par : Wanours (Version 2, mise à jour du 5 avril 2007)
'****************************************************************************************************

On Error GoTo OupsGOublieWord

Call ShowHideTreeAndCompass

Dim MyViewer As Viewer
Set MyViewer = CATIA.ActiveWindow.ActiveViewer
Dim ADR As String

ADR = "C:\PrintScreen.bmp"

'-----Memorise le BackGround d'origine
    Dim color(2)
    Dim MyViewer_deb
    Set MyViewer_deb = MyViewer
    MyViewer_deb.GetBackgroundColor color

'-----Passe en fond blanc
    MyViewer_deb.PutBackgroundColor Array(1, 1, 1)

'-----Capture d'image
    MyViewer.CaptureToFile catCaptureFormatBMP, ADR

'-----Retour au fond d'écran d'origine
    MyViewer_deb.PutBackgroundColor (color) 

'-----On réaffiche Boussole et Arbre
    Call ShowHideTreeAndCompass 

'-----Insertion dans word
    Selection.InlineShapes.AddPicture FileName:=ADR, LinkToFile:=False, SaveWithDocument:=True
    Kill (ADR) 'Efface le fichier temporaire

Exit Sub

'-----Action en cas d'abscence de fichier Word préalablement ouvert
OupsGOublieWord:
A = MsgBox("Vous devez ouvrir un fichier word avant de lancer la macro!", 16, "Aucun fichier word Ouvert")
Kill (ADR)
End Sub

'-----Sub pour cacher/afficher la boussole et l'arbre de spécification------
Sub ShowHideTreeAndCompass()
'Cache la boussole (raccourci à configurer!)
SendKeys "{F8}"
Call Pause(0.1)
'cache l'arbre
SendKeys "{F3}"
Call Pause(0.1)
End Sub

'------Sub de temporisation générique----------------------------------------
Sub Pause(Temps As Long)

Dim Start As Long
Dim Check As Long
Dim Tempslim As Long

Start = Timer
Tempslim = Timer + Temps

Do Until Check >= Tempslim
   Check = Timer
   DoEvents
Loop

End Sub

Conclusion :


Cette mise à jour offre de nouvelles fonctionnalités.

-> Elle fonctionne avec n'importe quelle couleur du fond d'écran d'origine

-> Elle ne bug plus quand un fichier word n'est pas déjà lancé à l'avance. (un message apparaît simplement pour dire à l'utilisateur que ça ne marche qu'avec un

A voir également

Ajouter un commentaire

Commentaires

Drikce06
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
5 -
Salut, pourquoi tu n'ouvres pas toi une appliaction word depuis la macro?
Drikce06
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
5 -
On ne sait même pas à quoi ceci correspond:
Tu colles dans word serte, mais "selection", c'est quoi qui est sélectionné?
Selection.InlineShapes.AddPicture FileName:=ADR, LinkToFile:=False, SaveWithDocument:=True
zavier666
Messages postés
267
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
30 avril 2009
-
Les sources concernant Catia sont rares donc merci!

A ce sujet, j'en ai posté quelques unes sur API @ la Loupe, rubrique Catia V5
http://xav.prog.power.free.fr

slts!
-------------------------------------------------
Toujours plus de VB6 et d'API => API @ la Loupe
http://xav.prog.power.free.fr
cs_Wanours
Messages postés
11
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
22 juillet 2009
-
En fait, dans mon travail, il m'est utile de pouvoir faire des impressions écrans rapidement de ce qui s'affiche dans Catia pour l'intégrer à un rapport par exemple.

Donc, il ne me sert à rien d'ouvrir un nouveau fichier word puisque je lance la macro que quand je bosse sur un rapport.

Mon objectif n'était pas de pouvoir créer une macro qui permet de faire une bibliothèque de printscreen dans word, mais d'insérer des images extraites de Catia dans mon document word.

Et je colle dans word à l'endroit ou se trouve le curseur, d'où le "selection", le fichier image stocké temporairement à l'adresse "ADR", sans lien avec le fichier "linkToFile:=false"
3dflix
Messages postés
44
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
20 février 2013
-
Merci pour ton code.

Je m'en suis inspiré pour ecrire cela dans un module sous vba excel:

Sub SnapCatia()

Set CATIA = CreateObject("CATIA.Application")
Set MyViewer = CATIA.ActiveWindow.ActiveViewer

'-----Capture d'image
MyViewer.CaptureToFile catCaptureFormatJPEG, "G:\PrintScreen.jpg"

End Sub

Cela devrait permetre d'effectuer la capture directement depuis excel.
Or la capture en JPG est illisible.
C'est tu pourquoi?

(A savoir cette methode fonction pour toute les fonction mais pas pour la capture.)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.