[VBA CATIA] Animations [Résolu]

gf18 11 Messages postés jeudi 24 janvier 2008Date d'inscription 9 juillet 2008 Dernière intervention - 24 mai 2008 à 16:08 - Dernière réponse : chocolatgc 34 Messages postés samedi 18 février 2006Date d'inscription 26 octobre 2012 Dernière intervention
- 11 juin 2008 à 17:25
Bonjour,

Je suis étudiant et dans le cadre d'un projet je dois modéliser un Rubik's Cube sous CATIA, et créér une macro qui permettra de faire tourner les différentes faces.
Le cube est déjà fait, la macro également. Cependant lorqu'on tourne une face avec la macro, du fait qu'il ne fait qu'une rotation de 90°, seules les couleurs des différentes faces changent, ce qui n'est pas très impressionnant .

Ce que je cherche à faire, c'est de permettre de "visualiser" la rotaion un peu mieux. Je m'explique :

J'ai fait une fonction qui permet de pivoter une pièce selon un axe que j'appelle dans mon script :

Call Pivote(doc.Item("Centre.Rouge"), 1, 1/2)
(Le premier argument est la pièce à tourner, le deuxième est l'axe, et le dernier, lorqu'il est multiplié à Pi, est l'angle en radians de rotation. Ici c'est une rotation de 90° sur l'axe Z)

Pour "Animer" ma rotation j'ai essayé :

For i = 1 To 100
    Call Pivote(doc.Item("Centre.Rouge"), 1, (1 / 2) * (1 / 100) )
    docc.Update
    doc.Item("Centre.Rouge").Update
    Sleep 1
Next

Mais l'effet est le même sauf qu'en plus il attend 100 ms...

Pour information, voici ce que sont "docc" et "doc" :
Set docc = CATIA.ActiveDocument.Product
Set doc = docc.Products

Ma question est la suivante : Apparament la fonction Update ne sert à rien, quelle fonction serait susceptible de pouvoir m'aider? Avez vous déjà programmé quelque chose de ce genre ou avez vous une idée de comment faire?
En gros : AIDEZ MOIIII !!!!!
Afficher la suite 

4 réponses

Répondre au sujet
gf18 11 Messages postés jeudi 24 janvier 2008Date d'inscription 9 juillet 2008 Dernière intervention - 27 mai 2008 à 15:40
+3
Utile
J'ai trouvé de moi même, je poste la solution au cas ou ca servirait à quelqu'un :

il faut utiliser la fonction : DoEvents

Donc mon code source devient :

For i = 1 To 100
    Call Pivote(doc.Item("Centre.Rouge"), 1, (1 / 2) * (1 / 100) )
    DoEvents
Next

Voilà ^^
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de gf18
chocolatgc 34 Messages postés samedi 18 février 2006Date d'inscription 26 octobre 2012 Dernière intervention - 27 mai 2008 à 15:56
0
Utile
Salut, peux-tu me dire en qu'elle versin de CATIA tu à réalisé ceci STP ?

Merci
Commenter la réponse de chocolatgc
gf18 11 Messages postés jeudi 24 janvier 2008Date d'inscription 9 juillet 2008 Dernière intervention - 11 juin 2008 à 14:34
0
Utile
V5R16
Commenter la réponse de gf18
chocolatgc 34 Messages postés samedi 18 février 2006Date d'inscription 26 octobre 2012 Dernière intervention - 11 juin 2008 à 17:25
0
Utile
Ok, merci.
Commenter la réponse de chocolatgc

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.