EDICIÓN DE ELEMENTOS EN TRES DIMENSIONES.

Las opciones para edición en 3D son accesibles pulsando el botón derecho del ratón sobre el panel de simulación. Las dos primeras opciones no tienen efecto si se pulsan, solo son un recordatorio para mover y escalar todo el contenido de la simulación. Anular desplazamiento y escala recupera la escala 1:1 y recupera la posición por defecto (el origen de coordenadas queda en la esquina superior izquierda). El resto de las opciones se irán describiendo en los siguientes apartados.

EL ORIGEN DE COORDENADAS.

El siguiente dibujo en perspectiva representa en color gris lo que sería el panel de simulación. El aspa de color rojo es el origen de coordenadas que podemos mover a la vez que movemos todo el contenido y las coordenadas que indica la paleta de herramientas están referidas a este origen. Sin embargo, es necesario un origen de coordenadas absoluto (que se encuentra en la esquina superior izquierda) y un observador, representado como un punto grueso de color negro que dista de la pantalla 2000 pixels (valor por defecto). Visto en pantalla, la posición del observador se localiza por un aspa de color verde, que puede moverse con el ratón en proceso de edición, pero no es posible mover el punto del observador en dirección Z. Por programa sí es posible mover el observador en las 3 direcciones. Nótese que las coordenadas del observador se refieren al origen absoluto, mientras que los puntos de cualquier elemento se refieren al origen movil.

SELECCIONAR VISTA.

Dibujar en tres dimensiones significa definir 3 coordenadas por cada punto, pero en la pantalla solo es posible ajustar dos coordenadas simultáneamente por lo que se necitan varias vistas en las que se representen coordenadas diferentes. Cuando se pulsa la opción "Seleccionar vista" aparecen 3 recuadros pulsables para seleccionar la deseada (véase la siguiente imagen). Se ha representado un ejemplo en perspectiva con los 3 ejes de coordenadas y lo que se vería de la pieza en cada una de las 3 vistas.

La vista principal es la XY, que estará seleccionada por defecto. En esta vista es donde se dibujan y funcionan las transformaciones, es decir, los componentes solo tienen sus movimientos en el plano XY. Sin embargo, esto no impide crear objetos tridimensionales que se muevan con cualquier orientación en el espacio, porque el plano que contiene sus movimientos (el XY) se podrá orientar y posicionar en el espacio por medio de 3 coordenadas y 3 ángulos. De momento, el concepto principal a recordar es el siguiente: Cuando tengamos que diseñar un objeto que tendrá movimientos, debemos imaginar cuál será su plano de movimiento y ése será el que corresponderá a la vista XY. En el objeto de la figura anterior y suponiendo que girará alrededor de su eje, se ha representado en vista XY con su eje perpendicular al plano XY, para que su rotación se desarrolle en esa vista.

CONSTRUCCIÓN DE SUPERFICIES EN 3 DIMENSIONES

Todas las superficies en 3 dimensiones se crean con el botón de la paleta de herramientas que está dividido en dos partes. La parte izquierda genera lineas abiertas que no tienen nada que ver con superficies en 3 dimensiones, pero sirven como referencia para crearlas dibujando solamente unos pocos puntos que definen la geometría de la superficie. Según la siguiente imagen, la linea abierta A se ha utilizado para generar por revolución la superficie B y la linea abierta C para generar la superficie D por el procedimiento de seguir una trayectoria. Puesto que la linea abierta solo es auxiliar, se podrá borrar una vez generada la superficie, a menos que se quiera reservar para otros fines. Pulsando la parte derecha del botón se solicitará el número de divisiones en horizontal y en vertical para crear directamente una malla plana pulsando y arrastrando el ratón sobre el panel de simulación, este es el caso de la figura G, donde vemos una malla plana de 1 por 2 divisiones. Una vez que se suelta el ratón se podrá mover cada punto de forma independiente o mover toda la malla si se pulsa y arrastra fuera de todos los puntos de control. El movimiento se producirá en el plano que corresponda a la vista seleccionada. Si algo se mueve estando en perspectiva es más dificil posicionar correctamente porque las distancias no se verán en verdadera magnitud.

La linea abierta siempre debe fragmentarse, de forma que el primer fragmento será el eje de revolución o bien la trayectoria, dependiendo del procedimiento. El segundo fragmento será la generatriz de la superficie (la generatriz puede estar formada por varios fragmentos, cada uno de los cuales formará una superficie). Los puntos 0 y 1 de la figura A forman el eje y el resto de puntos forman la generatriz, que al girar alrededor del eje genera la superficie. Los puntos 0 a 9 en la figura C forman una trayectoria y los demás forman la generatriz, que al moverse paralelamente a la trayectoria genera la superficie. Para crear una superficie con una linea abierta, ésta debe estar seleccionada y a continuación se pulsa el botón derecho y la opción "Crear malla con linea abierta seleccionada". Aparecerá un cuadro preguntando por el tipo de superficie a crear (por rotación o por trayectoria) y en el caso de seleccionar rotación se pedirá el número de partes en que queramos dividir el contorno.

Mirando la linea abierta C en la imagen anterior, vemos que debería generar un tubo curvado y de sección pentagonal, ya que la generatriz es cerrada y con forma de pentágono. Sin embargo el resultado no es el esperado (en la malla D no aparece la superficie interior del tubo). No se trata de un fallo, se debe a que cada polígono de una malla solo tiene visible uno de sus lados y en la malla D es visible el exterior. Si a esta malla en forma de tubo la ponemos tapas como muestra la figura I, resulta un cuerpo sólido correcto, ya que los sólidos no tienen interior y solo vemos su superficie externa. Si lo que nos interesa es representar un tubo hueco como si estuviera creado con papel, solo tendremos que copiar la malla, pegarla y cambiar la cara visible de la copia pegada. Para cambiar la cara visible basta con pulsar la tecla X y así tendremos el interior del tubo como veremos en la figura E. La combinación de la malla original y la copia dará como resultado la superfie esperada, tal como vemos en la figura F. La razón por la que las mallas tienen cara oculta es que se reduce aproximadamente a la mitad el número de polígonos a calcular y a dibujar, lo que es muy necesario para ganar velocidad de animación. En AutoJava se calculan todos los puntos con cada actualización de pantalla porque se puede interactuar con los objetos en tiempo real (no se trata de proyección de fotogramas) y esto exige un gran esfuerzo de cálculo que se reduce de forma importante gracias a la cara oculta.

El último detalle por aclarar de la imagen anterior es la creación de las tapas: Se comenzó creando la malla plana G y sus puntos se desplazaron uno a uno hasta su posición final como muestra la figura H. Hacer esto manualmente sería demasiado laborioso, especialmente porque al ajustar la posición en una vista solo ajustamos dos coordenadas y tendríamos que hacer lo mismo en otra vista. Pero existe un procedimiento rápido que consiste en lo siguiente:

a) Seleccionamos un punto y pulsamos la tecla C las veces que sean necesarias hasta ver que el punto se conecta con la malla deseada (la superficie tubular).
b) Con las tecla + (suma) y - (resta) hacemos que el punto vaya recorriendo los puntos de la malla en la que se ha conectado, hasta que esté donde queremos.
c) Con las tecla de dirección (flecha a derecha o izquierda) pasamos a otro punto.
d) Repitiendo los pasos b y c las veces necesarias podremos conectar todos los puntos de la malla.

Como resumen para conectar puntos: Las teclas de dirección cambian de punto seleccionado. Las teclas + y - conectan el punto seleccionado con el siguiente o el anterior de la malla en la que se ha conectado. Por último, la tecla C cambia de malla conectada. Es posible conectar puntos con mallas y con lineas abiertas por ser los únicos elementos que se dibujan en tres dimensiones. Cuando hay demasiados elementos puede existir confusión en cuanto a la malla o linea con la que se conecta, esto puede evitarse ocultando temporalmente (con tecla D) lo que no sea necesario, ya que solo es posible conectar con elementos visibles.

OTRAS CARACTERÍSTICAS DE LAS MALLAS.

En la siguiente imagen se muestra el aspecto de una malla en vistas (no en perspectiva) y en perspectiva, la opción "Activar / Desactivar perspectiva" permite cambiar entre los modos de visualización.. Al seleccionar un punto, algunas opciones de la paleta cambian para posibilitar la ocultación del polígono y el segmento exterior del polígono seleccionado. Ocultar polígonos facilita crear superficies con agujeros y ocultar segmentos exteriores hace posible que en dos mallas juntas no se vea una linea separadora, simulando una sola superficie. En una malla, el color de linea corresponde a la linea de contorno de la malla, el color de fondo o relleno corresponde al color interior de los polígonos y el color de gradiente corresponde a las lineas interiores de la malla, no es posible dibujar mallas con gradiente (cambio progresivo de color). Si en una malla no se desea ver las lineas interiores deberá hacerse coincidir su color con el de relleno, es decir, se harán iguales los colores de gradiente y de relleno. Si además quiere ocultarse completa la linea exterior, habrá que hacer su color igual que los otros dos.

POSICIONADO Y ORIENTACIÓN EN 3D.

En la imagen siguiente vemos un componente articulado que representa un brazo de robot al que solo le falta la pinza en el extremo. Todas las rotaciones se han creado en vista XY, lo que no podía ser de otra forma por ser ésta el plano de transformaciones. Suponiendo que la pinza tendrá una rotación en un plano perpendicular al XY se hace imposible añadirla en el mismo componente. En perspectiva, se accede a las opciones de posición y orientación en 3D pulsando el botón derecho del ratón y luego la opción deseada de la lista. Una vez pulsada una opción, seguiremos pulsando y arrastrando el ratón para modificar el parámetro pulsado. Una vez que soltamos el ratón queda fijado el valor y ya no se modifica hasta una nueva selección. Cuando el parámetro es un ángulo, el arrastre del ratón debe hacerse alrededor del origen movil (el aspa de color rojo) y si el parámetro es un desplazamiento se arrastrará el ratón en horizontal o en vertical. El valor del parámetro se actualiza en la barra de título de la ventana de simulación hasta que el valor queda fijado soltando el ratón.

Para orientar líbremente un objeto en el espacio se necesitan 3 ángulos independientes. Alguno de estos ángulos pudiera ser util para simular rotación en un plano distinto al de las transformaciones (vista XY). Esto puede ser sencillo si la rotación necesaria se consigue variando un solo ángulo, pero si el eje de rotación es oblicuo a todos los ejes de coordenadas sería necesesario calcular la variación en dos o en los tres ángulos para conseguir el giro deseado. Por suerte, el control de estos ángulos y los desplazamientos en las tres direcciones es automático en todo componente al que asignemos una transformación de otro componente. Por ejemplo, si creamos una pinza para el brazo de la imagen anterior y asignamos a la pinza la rotación de la muñeca, resultará que cuando el brazo tenga cualquier movimiento será seguido correctamente por la pinza. Si a pesar de todo necesitamos manipular directamente alguno de los tres ángulos, puede ser importante dibujar el componente correctamente posicionado respecto del origen movil, ya que cualquier eje de giro pasará necesariamente por el origen

El ángulo alfa es una rotación respecto del eje Z (siempre en el plano de la pantalla). El ángulo beta es una inclinación respecto del plano de la pantalla (el plano del componente solo es paralelo al plano de la pantalla si beta es cero grados). El ángulo gamma es una rotación en el plano del componente. La opción para mover el componente en X-Y nos permite mover el componente paralelamente al plano de la pantalla y la opción para mover el componente en dirección Z nos permite moverlo en dirección perpendicular a la pantalla (es un alejamiento o acercamiento). Las trayectorias, rotaciones y escalados que contenga el componente siempre actúan en el plano del componente. Los 3 ángulos y los tres desplazamientos se anulan pulsando la opción "Posicionado por defecto en 3D". Con esta opción también se recupera la posición del observador (aspa de color verde).

ASIGNACIÓN DE TRANSFORMACIONES EN 3D.

La siguiente imagen muestra un componente que simula un brazo de robot dibujado de forma que su plano de transformaciones (tres rotaciones) coincidiera en vista XY. Si se pretende colocar una pinza en su extremo que tenga una rotación como se detalla en el recuadro verde, entonces hay que crear un nuevo componente solamente para la pinza porque su plano de rotación no coincide con el plano de transformaciones del brazo (son perpendiculares). La pinza debe dibujarse con su plano de rotación en vista XY. Si los ángulos alfa, beta y gamma del brazo son 0, la pinza tendrá la orientación correcta girándola un ángulo beta de 90º. Moviendo seguidamente la pinza en direcciones X e Y la podemos colocar en posición. A continuación se asignó a la pinza la rotación 02 del brazo y se comprueba que la pinza sigue en su lugar al mover el brazo de cualquier forma. Dadas las posiciones en que se dibujaron los dos componentes no fué necesario ningún ajuste adicional, pero una vez hecha la asignación sigue siendo posible ajustar la posición y orientación del componente ligado (la pinza en el ejemplo).

Las asignaciones necesarias en el ejemplo anterior serán: rotacion00 se asigna a rotacion01, rotacion01 se asigna a rotacion02 y rotacion02 se asigna al componente de la pinza. En cuanto a los elementos: rotacion00 se asigna al brazo (superficies de color verde), rotacion01 se asigna al antebrazo (superficies de color azul) y rotacion02 se asigna a la muñeca (superficies de color verde).

Asignar a un componente una transformación de otro componente funciona como se ha descrito si el componente ligado está en perspectiva. Si el componente no está en perspectiva, la transformación asignada le afecta en su plano de movimiento pero no le posiciona y orienta en el espacio. Por último, no será apropiado en 3D hacer asignaciones de escalas porque deformarán al componente ligado y el movimiento resultante puede ser muy poco realista.

Volver a edición en dos dimensiones