Engranajes y movimiento sincronizado

st_martin - 17/11/2004 19:22
Hola. Estoy haciendo unos engranajes que se mueven, o sea rotan sobre su eje. Son de distinto número de dientes, por lo que algunos rotan 1 vuelta por cada 5 segundos, y otros más rápido o lento.

Por ahora logre calculando los tiempos, no sé cómo decirlo. Me pase al segundo 4 y rote el engranaje 1 a 360 grados, y el engranaje 2 lo rote 720 (2 vueltas).

La duda es que, si yo puedo relacionar los números de vueltas o algo por el estilo, porque cuando quiero hacer que desaceleren, tengo que ponerme a sacar cuentas de cuantos grados girar por segundo y eso, para cada uno de los engranajes.

Escucho cualquier sugerencia. Muchas gracias a todos.

Martin.
Quel - 17/11/2004 21:51
En lugar de calcular las rotaciones individualmente, usa relaciones. Osea, hay un engranaje que debe ser el primero que se mueve. El padre de todos. Ese es el que animaras como desees.

Después tenemos que si el padre tiene 45 dientes y otra rueda esta pegada a el y tiene 65, es una simple regla de tres. Después de un par de simples cálculos, tenemos que la segunda rueda gira a una relación de 0,6293. Traducido, la rotación de la segunda rueda, será x * 0,6293, donde x es la rotación de la primera.

Calculando así una rueda tras otra, todas se mueven correctamente a la velocidad marcada por la primera.

Al final, tendrás que solo necesitas animar una rueda y que puedes acelerar y decelerar tranquilamente la velocidad y todas las demás van a girar siempre correctamente.
¿No son geniales las matemáticas?
st_martin - 17/11/2004 22:18
Eso lo entiendo, pero el problema es que no sé cómo relacionar el movimiento del engranaje padre con el de los otros engranajes.

No tengo mucha experiencia en animación, más bien ninguna experiencia.
Quel - 17/11/2004 22:26
Pues como no indiques que programa usas, la cosa está chunga.
st_martin - 17/11/2004 22:32
El programa que uso es 3dsMax 6.
Quel - 17/11/2004 23:09
Pues ni idea, no uso el max desde hace mucho tiempo. Pero te aconsejo que le des al f1 y busca en la ayuda e investiga.
Leander - 18/11/2004 00:13
Yo usaría colisiones a base de objetos activos y pasivos, así solo me preocuparía de rotar un solo eje y el resto viene por sí solo. Pero claro, eso lo haría con el XSI.
st_martin - 18/11/2004 00:18
El problema es que no uso XSI.
Leander - 18/11/2004 00:30
Traquí, seguro que los maxeros te van a responder, que son muchos y cobardes o. Paciencia.
Fiz3d - 18/11/2004 00:59
Wire parameters, mira en la ayuda del 3ds Max, es que entre lo mal que me explico y que el tema es un poco complejo, bueno este caso no, pero terminaras antes mirando en la ayuda, si después de mirartela tienes dudas pregunta.

Con los wire parameters, que están en el menú de animación, puedes asociar animaciónes, por ejemplo, en tu caso le puedes decir, que el objeto x rote en el eje Z, 1,4 veces más rápido que el objeto a y que a su vez el objeto c rote 0,4 veces más lento que el objeto a, incluso podría existir la forma que, dándole la circunferencia no tengas que calcular nada y el solo ya calcule a que velocidad tiene que ir cada objeto, y así lo que quieras en el eje que quieras y asociando cualquier parámetro animable con otro, eso sí, el tema funciona por expresiones, y con esto tocamos un poco el tema programación, una programación muy fácil es casi matemáticas simples, pero, si eres como yo un negado para la programación, mal lo pasaras.

Por supuesto también se puede hacer por script por dinámicas a mano, en fin.

Bueno pues saludos y suerte.
st_martin - 18/11/2004 01:13
Muchas gracias, voy a probar.
ikerCLoN - 18/11/2004 10:37
Como dice Fiz, con wire parameters lo tienes casi chupado. En el trabajo hicimos una escena parecida, y la animamos de esa forma: haciendo que la animación (movimiento/rotación) de unos engranajes controlaran o condujeran la animación de otros. Y queda bastante bien.
Quel - 18/11/2004 13:02

Yo usaría colisiones a base de objetos activos y pasivos, así solo me preocuparía de rotar un solo eje y el resto viene por sí solo. Pero claro, eso lo haría con el XSI.

No sé, eso es pasarse un poco, ¿no? Es como matar mosquitos a cañonazos.
st_martin - 18/11/2004 13:15
Logre hacerlo con wire parameters, y quedo muy bien, ahora tengo que trabajar mejor el movimiento del principal y en algunos efectos que hay que hacer. Muchas gracias por el dato, y luego de esto tengo que hacer un pequeño tutorial explicando, para que ya le quede la información al foro. Saludos.
Rashek - 18/11/2004 15:39
Leander, si que te has pasado un poco, yo lo haría con el enlace with o con alguna expresión sencilla.