[VBA CATIA] Animations

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

4 réponses

Messages postés
11
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2008

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à ^^
Messages postés
34
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
26 octobre 2012

Salut, peux-tu me dire en qu'elle versin de CATIA tu à réalisé ceci STP ?

Merci
Messages postés
11
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2008

V5R16
Messages postés
34
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
26 octobre 2012

Ok, merci.