Uso del script bmg
por stefano selleri. Resumen: este artículo trata acerca de la animación y modelado de engranajes, junto con un breve tutorial sobre el uso del script Blender Mechanical gears (bmg).
Introducción uno de los puntos clave para el modelado y animación de dispositivos mecánicos es la necesidad de crear engranajes. Los engranajes no son meramente ruedas dentadas. Estos fueron así en la antigüedad, pero la mecánica moderna estudió en profundidad diferentes modos en como los giros pueden ser transferidos de un eje a otro, definiendo exactamente como debe ser diseñado un engranaje para obtener una máxima eficacia.
Algo de teoría se puede obtener de la documentación en [ (no quiero hacer publicidad de un fabricante en particular, pero ésta es la referencia que usé para crear mis engranajes), del mismo modo que de la documentación del script Blender Mechanical gears [. Básicamente, un engranaje debe ser diseñado de tal manera, que no ocurra ningún tipo de fricción en el acoplamiento entre los dientes de 2 engranajes. Esto asegura eficacia, poco ruido y una gran duración.
La descripción matemática de un engranaje esta basada en el concepto del evolvente. El evolvente de un círculo tiene diversas propiedades, la más importante de las cuales es que el perfil mismo de los dientes de los engranajes es un evolvente, que no desliza uno sobre el otro mientras los engranajes rotan, y el ángulo de presión con el cual un engranaje empuja al otro permanece constante.

No profundizaré más en el tema, no necesita saber más, porque el script se encargara de las matemáticas, pero si siente curiosidad, revise los apartados [1,.
El script bmg es una suite de scripts que puedes descargar desde aquí [. Comprende dos scripts, un mesher (modelador) (bmgm) y un spinner (rotador) (bmgs). Nos centraremos en el primero, modelador. Bmgm pertenece a la categoría de las mallas por si elige instalarlo en el directorio apropiado en el árbol.blender. De todos modos, una vez ejecutado, aparece en pantalla una imagen cómo se muestra en la fig. 1.
Bmgm puede crear engranajes cilíndricos y cónicos, la opción worm (tornillo sin fin) aún no funciona. En este artículo nos centraremos en el cilíndrico para entender el uso del script.
Parámetros del engranaje principal este grupo de opciones definen el aspecto básico del engranaje. Cuando dos mallas de engranajes son puestos en escena, lo que define la geometría es el pitch Radius, que es el radio ideal del círculo en el cual la malla de los dientes de los dos engranajes se tocan. Es el pitch Radius quien define gran parte de la geometría del engranaje.
Éste, como la mayoría de las opciones, se define en unidades Blender. Mantendremos el valor predeterminado 5 por ahora. El valor eth number define el número de dientes que tiene el engranaje. Éste es el segundo parámetro más importante, y lo pondremos en 25 para este ejemplo. El pressure angle (ángulo de presión) es vital desde el punto de vista mecánico, pero resulta irrelevante para los gráficos por ordenador.
Éste define el ángulo entre el plano de la tangente del diente del engranaje hacia el punto de contacto y el plano que contiene ambos ejes de rotación. Es mejor dejar este parámetro en el valor por defecto que es 20°. Helical angle, define la forma helicoidal del engranaje. Los engranajes comunes tienen dientes rectos. Los engranajes helicoidales tienen dientes oblicuos. Estos engranajes emiten menos ruido y son más rápidos en operación, pero su fabricación es más costos a. En gráficos 3d, todo eso es irrelevante, así que, mantendremos este valor en 0.
El addendum y el dedendum definen cómo se extiende el pitch Radius del diente por encima y por debajo. Estos parámetros son críticos. Primero, el addendum no debe ser mayor que el dedendum, o tendrá problemas con la malla. Segundo, su valor debe estar en consonancia al número de dientes. Cuantos más dientes, más bajos deben ser estos valores, y a menor cantidad de dientes, mayores pueden ser. Para nuestro ejemplo, 25 dientes es un número promedio, de modo que podemos mantener estos valores en 0.4.
Biselado: ningún dispositivo mecánico tiene bordes puntiagudos. Fillet define el radio del redondeo en la parte superior e inferior del diente. Bevel define el biselado de todos los bordes inferiores y superiores del engranaje.
Parámetros de malla (Mesh parameters): el script genera un sólo diente para el engranaje, con un nivel de refinamiento en la malla. El nivel de refinamiento se da como una resolución a lo largo del perímetro del diente, que debería mantenerse en 2, a no ser que plane aplicar mucho zoom (acercarlo) o lo contrario (alejarlo) sobre sus engranajes, y una resolución longitudinal a lo largo del espesor del diente.
Esto es sólo necesario para engranajes helicoidales, que tienen giros longitudinales. Finalmente thickness define que tan grueso es el engranaje y width define cuanto hacia dentro se extiende el cuerpo del engranaje, con respecto al grado de inclicacción, al otro lado del diente. Deje estos valores como vienen por defecto.

Pinion (piñón): no tiene sentido hablar de un engranaje sin su piñón contrario. Éste puede ser un piñón estándar (el de un engranaje), una cremallera (un elemento dentado recto) o una corona (un gran engranaje con dientes en su interior). Mantengamos la opción pinion y la cantidad de dientes en 12, si presiona el botón generate vera algo similar a la figura 2. Notar que el script generó una pareja de dientes, uno para el engranaje principal y uno para el piñón.
El centro del engranaje principal está en el punto de origen, el radio de inclinación (pitch Radius) está en 5 unidades Blender, podrá ver esto cuando el diente toque ahí, una vez rotado. El radio del piñón (pinion Radius) ha sido automáticamente calculado por el script, su centro se ubica a la derecha para un engranado correcto (el punto amarillo más a la derecha) y el diente se ha creado ligeramente rotado para una mayor claridad.
Nuestra siguiente tarea será completar el engranaje y la malla del piñón.
Correcciones de las mallas de engranajes primero de todo, rote el diente del engranaje principal 1/50 de 360° (7,5°) (fig. 3.1). É esto hace que el borde inferior del diente quede alineado con plano xz. En vista frontal y modo edición (Edit Mode) podemos extruir el vértice superior para completar el perfil (fig. 3.2). Duplicando esto y moviéndolo en torno al plano xz creara el perfil para el interior del engranaje (fig. 3.3). Ahora dupliquemos todos estos nuevos vértices y reflejémoslos a lo largo a la coordenada global z con respecto al cursor.

Ahora volvamos a la vista superior con todos esos nuevos vértices seleccionados. Idealmente deberíamos girar (en el sentido de las agujas del reloj) tres copias en un ángulo de 14,4°. Desgraciadamente Blender no acepta decimales aquí. Así que giraremos 15 copias en un ángulo de 72°. (fig 4.1). Ahora seleccione el diente y hagale un Spin Dup 5 veces en 72°. T endra una copia extra de el (fig 4.2), que debería borrar. Ahora remove doubles (elimine puntos dobles).

Rote el engranaje 36° en el sentido de las agujas del reloj, para tenerlo situado simétricamente respecto al plano xz. Ahora extruya algunos vértices desde su parte interior (fig. 5.1 y 5.2) y extrúyalos hacia el anillo exterior, fusione (función merge) alguno vértices donde sea necesario. También es una buena idea usar bevelscript para hacer este brazo mejor.

Ahora sólo debe hacer Spin Dup en 288°, 4 copias y remove doubles. Quizás también dese escalar un poco la parte interna sólo a lo largo del eje Z para hacer el engranaje menos plano. Haga algo similar también con el piñón. Pero no tendrá el espacio suficiente para hacer la malla tan compleja. Recuerde que el piñón tiene 12 dientes, de modo que éste ocupa 30° (360°/12) de anchura. Al final debería tener algo similar a la fig. 6. De al objeto engranaje un nombre memorizable (como gear), y al objeto piñón, otro (pinion es una gran opción).

Preparando para hacer spinning (girado). Para tener los engranajes girados apropiamente deberá configurar un par de cosas, pero primero, puesto que dos engranajes es un modelo demasiado simple, seleccione ambos engranajes, duplíquelos y mueva las copias de modo que el nuevo engranaje quede coaxial y bajo el piñón original (fig. 7). Dé a los duplicados nombres cortos, como gearb y pinionb. T venga cuidado, los objetos pinion y gearb deben tener la misma localización X e Y, y un offset en z.

Ahora agregue un hueco para cada engranaje, localizado en su centro, con el eje Z apuntando en dirección de su eje rotacional, luego emparente los engranajes a los huecos. Deles nombres similares (fig.
Esto es necesario porque el spinning script (bmgs) manejara las rotaciones para el engranaje de modo relativo al eje Z. Si los engranajes están siendo movidos y no están sobre el plano xy, esto desencadenara un comportamiento extraño. Al emparentar engranajes con huecos y moviendo/rotando solo huecos de ahora en adelante -nunca los engranajes- La animación se comportara de manera apropiada.

Ahora, ejecute el script bmgs. Este es un script tipo animación. Mostrara una interfaz casi vacía, con tan sólo el botón add. Presiónelo cuatro veces y aparecerán 4 líneas. En la primera línea y columna se muestra el campo gear object. Ponga gear en el primero y pinion en el segundo, gearb en el tercero y pinionb en el cuarto. La segunda columna especifica el número de dientes. gear y gearb tienen 25, pinion y pinionb tienen 12. Esto completa nuestra base de datos de engranajes. (fig. 9.1) la base de datos contiene información sobre que objeto en tu escena es realmente un engranaje que debería ser girado. Puede guardar y cargar la base de datos desde o hacia un disco, el script genera archivos xml. Es aconsejable que haga esto porque la base de datos se perderá cuando cierre Blender (el script generado automáticamente para el girado no se perderá).

Ahora vaya al panel enlace. Añada 3 líneas con el botón add. Las nuevas líneas contienen información sobre que engranaje está conectado con otro. La primera columna de cada línea contiene el engranaje conductor y la segunda el engranaje conducido. La tercera columna especifica el tipo de enlace, el cual puede ser un tipo de enlace malla Mesh, en la que el piñón rota en dirección opuesta con respecto al engranaje y la velocidad viene dada por la velocidad del engranaje modificada por la relación del número de dientes.
Para engranajes coaxiales, es decir, para engranajes no engranados sino más bien montados en el mismo eje, el tipo de enlace es fijo fixed porque la velocidad de rotación es la misma. En casos especiales, con engranajes de corona y helicoidales, la velocidad podría estar en relación al número de dientes, pero no en la dirección opuesta. Para estos casos existe la opción invmesh.
En nuestro ejemplo, en la primera línea estableceremos que gear es el conductor principal y pinion es el conducido y la conexión es del tipo Mesh. En la segunda línea pinion es ahora el conductor principal, gearb es el conducido y el tipo de enlace es fixed, ya que están rígidamente unidos. Al final, la tercera línea, establece que gearb es el conductor para pinionb en un enlace tipo Mesh.
La base de datos de los enlaces define una secuencia de acciones. Si un engranaje conductor es rotado su movimiento se propaga a sus piñones conducidos y de estos a sus propios engranajes conducidos, y así sucesivamente. Los 2 botones a la derecha permiten cambiar el orden de los enlaces. Una vez que la base de datos de los enlaces ya está echa (fig. 9.2), estamos listos. Al presionar el botón generate. Éste crea un nuevo script, llamado driversl (fig. 10). Éste nuevo script es guardado en el archivo (*.blend) y no se perderá cuando cierre Blender (obviamente debe haber guardado su archivo).

Para completar la puesta en escena, vaya al contexto script en la buttons window y añada un enlace scene script sobre un evento framechanded. Poner driversl como un script enlazado (fig. 11).
Vamos. Estamos casi listos. Primero haga un pequeño avance del frame 1 al 2 y de vuelta. Si algunos engranajes no están en la rotación 0, se devolverán a ésta (en este caso, nuestros piñones) y debería hacer que roten sus huecos (no los engranajes mismos.) para volver a un engranado mutuo entre los engranajes.

Ahora seleccione el engranaje conductor, en nuestro ejemplo, gear. Y añada a éste una rotación ipo no constante en rotz (sólo en rotz).

Ahora presione al t+a. El engranaje conductor comenzara a rotar y el piñón y todos los demás engranajes lo seguirán a una velocidad correcta. Conclusiones.
Por stefano selleri.
|Agradecer cuando alguien te ayuda es de ser agradecido|