[VBA CATIA] Animations

Résolu
gf18 Messages postés 11 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 juillet 2008 - 24 mai 2008 à 16:08
chocolatgc Messages postés 34 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 26 octobre 2012 - 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 !!!!!

4 réponses

gf18 Messages postés 11 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 juillet 2008
27 mai 2008 à 15:40
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à ^^
3
chocolatgc Messages postés 34 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 26 octobre 2012
27 mai 2008 à 15:56
Salut, peux-tu me dire en qu'elle versin de CATIA tu à réalisé ceci STP ?

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