PDA

Voir la version complète : Engrenages



César Vonc
02/06/2008, 12h04
Bonjour, je tâte Expresso depuis hier soir, et me suis amusé à réaliser un petit engrenage :

http://pix.nofrag.com/5/5/2/c3c0d6ed15a4ae11322a4089b4853tt.jpg (http://pix.nofrag.com/5/5/2/c3c0d6ed15a4ae11322a4089b4853.jpg)

Ici, la rotation du pignon n°2 engendre celle du pignon n°1.

J'aimerais que l'inverse soit possible également ; est-ce possible ?

base80
02/06/2008, 12h23
Soit c'est l'un qui engendre la rotation de l'autre soit c'est l'autre qui engendre la rotation de l'un.
Donc pas les deux calculs en même temps.

shtl
02/06/2008, 12h46
Par contre avec un switch ça doit être possible non?

base80
02/06/2008, 13h37
oui.
il faut faire un calcul A->B et un B->A , ensuite trouver une méthode pour choisir l'un ou l'autre calcul.

xs_yann
02/06/2008, 15h54
En COFFEE ce doit être possible.

César Vonc
02/06/2008, 16h03
Je vois, merci bien.

Je comptais aussi vous demander de l'aide sur l'animation d'une courroie, mais j'ai finalement réussi tout seul. :mrgreen:

http://xt.serv2.free.fr/temporaire/Cinematique.mov

phanault
02/06/2008, 19h59
Super ton animation. Juste un peu étrange le délai qu'il y a avant que les engrenages No. 3 et + se mettent à tourner en début d'animation. Il y a comme un lag.

César Vonc
03/06/2008, 21h06
Étrange ?
Enfin, ça me paraît normal.

Pour ceux que ça intéresse, j'ai concocté un petit tutoriel sur l'animation de la courroie :

http://www.cesar3d.fr/tutoriels/tutocourroie.html

base80
03/06/2008, 21h41
ça a l'air très compliqué (trop)
http://www.cesar3d.fr/tutoriels/tuto/tutocourroie05min.jpg

la rotation et le diamètre d'une roue suffit pour faire avancer la courroie

lenogre
19/09/2008, 14h06
Après m'être cassé les dents sur l'élévateur de Gaaz (mais un jour, j'y arriverai), je me suis lancé dans le monde merveilleux Xpresso sur des choses plus abordables pour mon niveau et je suis tombé sur ce post. C'est à vous dégouter d'expresso ce que vous avez pondu !

De mon côté, j'arrive à la même chose en bcp plus simple.
J'ai juste un pb : Tant que le paramètre de vitesse est supérieur à 1, ça marche nickel. Par contre, dès que c'est inférieur, la texture de ma courroie ne suit pas.

Je soumets mon fichier à vos remarques acerbes.

base80
19/09/2008, 14h54
Non non c'est pas comme ça qu'on fait!

Pour ne pas devenir complètement zinzin voilà la méthode de base.
On crée un "moteur" et une "boite de vitesse"
Le moteur c'est Time (en frame) x une constante
La boite de vitesse c'est ce moteur / un facteur (le rayon de tes cylindres ou la longueur de ta spline)
Le résultat c'est que ça marche.

http://www.base80.com/xpresso-files/methods-rules/motor-factor-gear-result.jpg

Pourquoi compliquer plus que ça. Le moteur engendre tout. on ne prend pas le résultat d'une rotation pour la passer a une autre, c'est a devenir complètement fou quand ça foire

lenogre
19/09/2008, 15h10
Pas taper, hein pas taper.

Je vais regarder ça plus en détails (c'est sûrement la meilleure solution) mais ça n'explique pas mon problème.

En tout cas, tu as sérieusement dégraissé l'xpresso !

base80
19/09/2008, 15h16
... mais ça n'explique pas mon problème...

Ben je vais pas éplucher la relation entre la rotation d'un cylindre et la longueur d'une spline, trop dur pour ma petite tête.

lenogre
19/09/2008, 15h46
Y a pas de relation, c'est le calcul du décalage de la texture qui foire quand on entre 0,... dans le paramètre vitesse.

base80
19/09/2008, 15h54
oui mais bon puisque ton xpresso ne suit pas une logique de base (moi) j'y comprend forcement rien :nono:

Jean-Laurent
19/09/2008, 20h36
Pour ceux qui n'ont pas déjà mal à la tête:

Rotation.B correspond à un angle.

Pour les rotations comme ça on définit une vitesse angulaire notée w.
w = Rot.B / t si t est le temps. Cette vitesse peut-être en tours par minutes , en ° par seconde etc ...
Mais si on met w en radians/s alors on obtient directement la vitesse de l'extérieur de la roue par la formule:

v = R*w où R est le rayon de la roue.

Le principe fondamental à comprendre c'est que les deux roues ont la même vitesse extérieure. Qui est aussi la vitesse de la courroie et donc du offset.

Du coup, pour la roue 1 : v = R1*w1
pour la roue 2: v= R2*W2
Et donc R1*w1 = R2*w2 ou encore R1/R2 = w2/w1

C'est pourquoi les vitesses de rotations sont inversement proportionnelles aux rayons des roues.

Quand tu multiplies time par 3, c'est comme si tu disais w=3. (puisque Rotation.B = 3 * t)
Donc si une roue fait 80 et l'autre 50 on trouve pour la rotation de l'autre roue: 80*3/50 = 4,8

Pour la roue 1 (celle de 80) tu multiplies le temps par 3. (time * 3)
Et pour la roue 2 (celle de 50) il faut le multiplier par 4.8.
C'est ce que tu fais en faisant d'abord par 3, puis par 1.6 (puisque 3*1.6=4.8 )

Maintenant comme le souligne base ça n'a pas de sens d'organiser ton Xpresso comme ça.
Le noeud 80 avec rotation.B en entrée et en sortie ne sert à rien.
Tu peux laisser rotation.B en entrée mais tu peux reprendre la même valeur à la sortie de ton noeud math.

De même pour les deux nœuds math qui se suivent.

La présentation de base est la présentation correcte et logique.

Pour la courroie il faut donc qu'elle est la même vitesse que les roues, soit v = R1w1 ou v = R2w2.

Je n'ai pas compris ce que tu appelles un paramètre de vitesse inférieur à 1. :?:

luistappa
20/09/2008, 03h28
Pourtant Lenogre tes formules marchent correctement, mais effectivement et pas seulement quand la "vitesse" est <1 mais quand elle comporte des dixièmes, l'offset se comporte étrangement, il accelère trop voir même part en marche arrière.

base80
20/09/2008, 04h37
pourquoi faire simple quand on peux faire compliqué

Ma méthode marche impeccablement bien avec les solutions interne de xpresso.

Jean-Laurent
20/09/2008, 09h25
pourquoi faire simple quand on peux faire compliqué

Ma méthode marche impeccablement bien avec les solutions interne de xpresso.


C'est ce que tout le monde dit. Ta présentation est la bonne et correspond à ce qu'il faut faire.
Mais lenogre veut savoir pourquoi ce qu'il a fait ne marche pas.



Pourtant Lenogre tes formules marchent correctement


Non.
Son utilisation de l'offset n'est pas correcte. En tout cas je n'en comprend pas la logique. J'ai l'impression que c'est un bidouillage visuel.

Le range mapper ajouté ne sert à rien. (C'était sans doute au départ pour ajuster l'offset)
Lorsque la roue de 50 fait un tour (6.28 rad) l'offset est à -628 %.
Ce n'est pas du tout la bonne valeur.
Du coup ça donne une impression visuelle correcte mais c'est un coup de pot.
C'est un effet stroboscopique. (Comme les hélices d'un avion)
Dès qu'on bouge un peu la vitesse, ça ne marche plus.


l'offset se comporte étrangement, il accelère trop voir même part en marche arrière.


En réalité sa courroie tourne des centaines de fois trop vite, c'est pour ça.
La bonne vitesse de la courroie avec l'offset nécessite d'utiliser la longueur de la courroie dans les calculs.
(comme le fait base d'ailleurs).

Pour plus de détails c'est mon calcul dans le post précédent.

lenogre
20/09/2008, 11h37
L'effet stroboscopique. J'avais envisagé cette piste car j'avais changé la taille de ma texture sur la courroie et ça faisait n'imp'.

Donc, je vais potasser le code de Base...

Slimmy
20/09/2008, 12h30
Bon je vais pas apporter grand chose au débat mais j'ai du réaliser un engrenage dernièrement pour un taf :

http://www.clement-morin.com/temp/im/meca.swf

c'est pas la version finale, enfin bon l'expresso est super simple; j'ai une DU qui contrôle l'ensemble de l'engrenage et des vibrations pour les aiguilles et les espèces de soupapes.

Jean-Laurent
20/09/2008, 13h01
En tout cas c'est très beau. :efface:

Slimmy
20/09/2008, 19h42
Merci :mrgreen:

GaazMaster
30/09/2008, 19h02
Il tombe à pique ce topic !

Méthode de Base testée ...
Méthode de Base approuvée !!

Et en plus j'ai tout compris ... :mrgreen:

http://www.gaazmaster.com/fc4d/wip/doorslammer/timing_chain_001.swf

Merkii ! :poucehaut:

phanault
01/10/2008, 14h29
Super GaazMaster ton anim.

Une chose m'agace toutefois. Je suppose que c'est une illusion d'optique dû à la vitesse mais il semble que les engrenages "rotationnent ©" (J'ai inventé un mot moi là) à droite alors que la chaîne semble rotationner © vers la gauche.

Bravo à Base80 pour cette solution simple, facile à comprendre et à mettre en oeuvre.

Jean-Laurent
01/10/2008, 18h11
Très chouette. :poucehaut:



Une chose m'agace toutefois. Je suppose que c'est une illusion d'optique dû à la vitesse mais il semble que les engrenages "rotationnent ©" (J'ai inventé un mot moi là) à droite alors que la chaîne semble rotationner © vers la gauche.


C'est effectivement une illusion d'optique. Effet stroboscopique. L'ensemble tourne dans le sens des aiguilles d'une montre.
Il faudrait un mouvement un peu plus lent pour qu'on puisse mieux apprécier le mouvement synchro.

moebius
02/10/2008, 09h38
un petit flou vectoriel peut le faire aussi ;)