Professional Documents
Culture Documents
RESUMEN
1. Introducción
poder ver las características de montaje, geométricas, etc. de cada una de ellas lo mejor
posible.
Para llevar a cabo estos objetivos, se concreta en la representación del primer
elemento de un futuro catálogo industrial de luminarias. Los objetivos quedan fijados en
los siguientes:
♦ Representación tridimensional en VRML de la luminaria
♦ Permitir el movimiento en todas las direcciones, así como el giro de las distintas
piezas de la luminaria.
♦ Creación de diversas animaciones que permitan comprender como se realizan las
operaciones de montaje, regulación y mantenimiento.
♦ Creación del entorno necesario para la gestión de todas estas posibilidades.
♦ Creación de todas las funciones complementarias necesarias para mejorar tanto
el comportamiento como la estética del futuro catálogo.
Además de los objetivos marcados, hay que tener en cuenta un factor clave es el
tamaño del fichero. El tamaño del fichero es un factor importante en todos los proyectos
de programación, pero en este caso al tratarse de Internet este factor es fundamental y se
tendrá que tener en cuenta en todo momento, para tratar lógicamente que éste sea lo
menor posible.
Los routes son las sentencias que relacionan los eventos de salida con los de entrada,
es decir, los eventOut con los eventIn. La forma que tienen es la siguiente:
VRML dispone de una herramienta muy útil llamada "Sensor de tiempo" o nodo
TimeSensor. Este nodo tiene un reloj que se puede utilizar para poder aprovechar el
paso del tiempo como referencia para la consecución de determinados sucesos. Puede
servir por ejemplo como motor para mover objetos, variar orientaciones, etc.
Un nodo TimeSensor se basa en el reloj de tiempo real del sistema, midiendo el
tiempo actual, en segundos transcurridos a partir de las 00:00 horas del 1 de enero de
1970.
XIV Congreso Internacional de Ingeniería Gráfica
Una vez definidos los campos hay que definir el conjunto de geometrías,
apariencias, etc. que contiene el prototipo, tal y como se haría en un objeto normal, con
la diferencia que en este caso los valores de las variables han de ser relacionadas con sus
respectivos field mediante en comando IS. Para comprender mejor esto analicemos un
ejemplo.
Supongamos que en nuestro mundo vamos a utilizar muchos cilindros de distintos
colores, distribuidos a lo largo del espacio. Para ello podríamos escribir cada uno de los
cilindros junto con un nodo Appearance y un nodo Transform que nos permita situarlos
en cualquier lugar del espacio, o bien podemos crear un prototipo cilindro dotado de un
campo posición y otro color.
3.2 VRML
El resultado de la exportación fue bastante bueno, los cuerpos se crearon sin dar
demasiados problemas y la adaptación no era muy complicada, pero la apariencia que
mostraban los cuerpos no era tan buena como en Autocad o 3DStudio. En estos
programas las superficies tienen aspecto de superficies contínuas o con alto grado de
continuidad, los cilindros de cilindros, etc. Sin embargo, al exportarlos estas curvas y
superficies se convierten en conjuntos de puntos unidos por triángulos, por lo que la
calidad de la representación es menor. Para mejorar ésta la primera de las opciones que
XIV Congreso Internacional de Ingeniería Gráfica
se plantean es aumentar el número de puntos, pero esto aumenta el tamaño del fichero y
también el de elementos a representar en nuestra escena, lo que relentiza los
movimientos y estos son un factores críticos en nuestro objetivo. Así que hay que
buscar otra opción dentro de VRML que nos permita mejorar la calidad sin aumentar el
número de puntos. Investigando en los campos variables del nodo IndexedFaceSet
existen varias opciones que permiten teóricamente eliminar el efecto de los triángulos.
En la práctica se ha obtenido un resultado muy aceptable sin demasiado esfuerzo gracias
al campo creaseAngle, con este campo se especifica un ángulo en radianes a partir del
cual se redondean las uniones de caras. Este redondeo es ficticio, solo a la vista del
observador, pero el resultado es totalmente satisfactorio. Veamos la diferencia entre la
luminaria antes y después de modificar este campo.
El otro botón de la segunda línea del panel de control nos permite acceder a un
menú, donde se encuentran representadas todas las piezas de la luminaria, de tal forma
que se pueden eliminar de nuestra representación, o bien agregar en el caso de no estar
activas en ese momento. El menú se define de igual modo que el de configuración y
cada una de las piezas se representan y se programan como se hizo con las tres opciones
del mencionado menú. El efecto de seleccionar o no, dentro de este menú una
determinada pieza se transforma mediante una función de JavaScript en la selección de
una representación vacía o en la representación normal de la pieza. Para ello se ha
definido cada pieza como un nodo Switch.
XIV Congreso Internacional de Ingeniería Gráfica
5. Animaciones
5.1 Interpoladores
Todos estos nodos tienen cuatro campos que podemos apreciar en la siguiente tabla
junto con su significado.
XIV Congreso Internacional de Ingeniería Gráfica
las variables que componen una escena. De forma general podemos considerar tres
elementos fundamentales en todas las animaciones, estos son: el tiempo, las variables
sobre las que se actúa y la función que relaciona los dos primeros. El tiempo se obtiene
mediante el nodo TimeSensor, en el cuál se ajustan los diferentes campos según lo que
se quiera conseguir. Para cada animación se ha creado un nodo de este tipo al que se ha
denominado motorN, siendo la N un número. Las variables sobre las que se ha actuado
son fundamentalmente la posición y orientación de las piezas, por lo que los valores de
salida de las funciones van a parar a los campos translación y rotación de un
determinado nodo Transform. Por último, las funciones que relacionan el tiempo y las
variables serán interpoladores de posición y de orientación definidas con los nodos
PositionInterpolator y OrientationInterpolator. Además, también se han usado
funciones javaScript en algunos casos, sobre todo para el control de otras variables
como: el punto de vista del observador, la activación y desactivación de piezas, el color
de las mismas, etc.
Esta animación consiste en separar todas las piezas de la luminaria y con ella se
ha pretendido mostrar de una forma más clara las partes de la misma, es decir, lo que se
denomina el despiece.
La animación en si, consiste en el cambio de posición de cada una de las piezas.
Para su realización se han definido tantos nodos CoordenateInterpolator como
XIV Congreso Internacional de Ingeniería Gráfica
desplazamientos diferentes se tienen, es decir, prácticamente uno por cada pieza. Las
piezas que han compartido aparecen referidas en la tabla VII.1. En el caso los ejes de
bisagra situados en la cubierta y los ejes bisagra situados en el chasis se podía haber
usado un único interpolador para todos, ya que en la última versión de la animación
tenían todos el mismo movimiento, pero se dejo con dos por si finalmente se cambiaba.
La nomenclatura de estos nodos es mueve_adaptador, mueve_cubierta, etc. Los
nombres de todos los interpoladores que intervienen en esta animación así como las
piezas sobre las que intervienen, aparecen en la tabla VII.1. A continuación se muestra
un ejemplo de la definición de uno de estos nodos:
2. El nodo "motor" se encarga de mandar valores de entrada a cada uno de los nodos
CoordenateInterpolator que intervienen en la animación.
3. Los interpoladores para cada valor de tiempo dan una posición a sus piezas
correspondientes.
mueve_aldabilla Aldabilla
mueve_aldabilla_tor Tornillo Aldabilla
mueve_cubierta Cubierta
mueve_vidrio Vidrio
mueve_brida_tor Tornillo Brida1
Tornillo Brida2
Tornillo Brida3
mueve_brida Brida1
Brida2
Brida3
mueve_chasistapa Tapa del chasis
mueve_bisagra1 Bisagra corta izquierda
Bisagra larga derecha
mueve_bisagra2 Bisagra corta derecha
Bisagra larga derecha
mueve_eje_bisagr Eje bisagra
Eje bisagra
Eje bisagra
Eje bisagra
mueve_eje_bisagr2 Eje bisagra
Eje bisagra
Eje bisagra
Eje bisagra
mueve_t_bisagra Taco eje bisagra
Taco eje bisagra
Taco eje bisagra
Taco eje bisagra
mueve_t_bisagra2 Taco eje bisagra
Taco eje bisagra
Taco eje bisagra
Taco eje bisagra
mueve_adaptador Adapatador
mueve_adaptador_tornillo Tornillo adaptador
mueve_adaptador_arandel Arandela adaptador
a
mueve_adaptador_tuerca Tuerca adaptador
XIV Congreso Internacional de Ingeniería Gráfica
Referencias
Bibliografía
§ ALARCÓN, E.; PARÉS, N. Manual Práctico de VRML 2.0. Ed. Prensa Técnica.
§ AMES, A.L.; NADEAU, D.R.; MORELAND, J.L. VRML 2.0 Sourcebook. Ed
John Wilder & Sons,Inc.
§ EVANS, T. HTML 3.2. Ed Prentice Hall.
§ GROS, J. Autocad 14 Práctico. Ed Infor Book´s
§ LOPEZ, J.; TAJADURA, J.A. Autocad 2000 Avanzado. Ed Mc Graw Hill.
§ MILLER, E. 3DStudio Max 2. Ed Prentice Hall
§ PHILIPS, A. HTML 4.0. Ed Prentice Hall.
§ Perl, CGI y JavaScript. Ed Anaya Multimedia.
Direcciones de interés
§ http://www.vrml.org/Specifications/VRML97
§ http://www.wmaestro.com/web3d/
§ http://www.web3d.org/vrml/vrml.htm
§ http://www.qsl.net/eb7dtm/Javascrit/cusso%20java.htm
§ http://www.sdsc.edu/siggraph96vrml/
§ http://www.fortunecity.es/imaginapoder/participacion/153/vmrl.html
§ http://usuarios.tripod.es/max3d/vrml-e.html