Académique Documents
Professionnel Documents
Culture Documents
En muchas aplicaciones los elementos que se disean representan objetos fsicos tridimensionales, de los que es necesario calcular propiedades tales como su peso, su volumen o su momento de inercia. Estos objetos no pueden modelarse con las tcnicas vistas en los temas anteriores. Este tema aborda el estudio del modelado de slidos, que es el conjunto de mtodos y tcnicas utilizadas para representar slidos. En el se aborda la problemtica especial planteada en la representacin de slidos y los tres mtodos de modelado ms utilizados en aplicaciones comerciales: la representacin de fronteras, la geometra constructiva de slidos y los octrees.
Indice
5.1. Introduccin. 5.1.1. Modelo topolgico. 5.1.2. Modelo de superficies 5.1.3. Propiedades volumtricas. 5.1.4. Propiedades de los mtodos de representacin. 5.1.5. Operaciones regularizadas 5.1.6. Mtodos de representacin 5.2. Modelo de fronteras (b-rep) 5.2.1. Representacin 5.2.2. Clculo de propiedades 5.2.3. Edicin 5.2.4. Propiedades formales 5.3. Modelos de descomposicin 5.3.1. Enumeracin 5.3.2. Octrees 5.3.3. Almacenamiento 5.3.4. Bsqueda 5.3.5. Operaciones booleanas 5.3.6. Propiedades 5.4. Modelos constructivos: CSG 5.4.1. Representacin 5.4.2. Visualizacin 5.4.3. Propiedades
5.1 Introduccin
Muchas aplicaciones (CAD/CAM) necesitan trabajar con elementos volumtricos con los que se puedan calcular propiedades, como por ejemplo el volumen, tamao, tensiones, temperaturas y realizar operaciones como unir objetos, calcular su interseccin, ver colisiones de elementos (robot, objeto), etc. En otros casos, el objeto que se disea se debe fabricar mediante algn proceso automtico, siendo fundamental el garantizar que representa realmente a un slido. El modelado de slidos es el conjunto de teoras, tcnicas y sistemas orientados a la representacin completa en cuanto a informacin de slidos. Dicha representacin debe permitir (al menos en principio) calcular automticamente cualquier propiedad bien conocida de cualquier slido almacenado [Requi83]. Con los slidos representados necesitaremos, adems de visualizarlos y editarlos, calcular sus propiedades fsicas (por ejemplo su peso o su centro de gravedad), y simular sobre ellos procesos fsicos (como la transmisin de calor en su interior).
Figura 5.1. Niveles de representacin Antes de plantearnos como realizar la representacin, es necesario concretar cuales son los aobjetos a representar. Es decir, formalizar lo que entenderemos por slido [Mntyla 88]. Hay dos aproximaciones diferentes al problema, una que caracteriza al slido como un conjunto de puntos 3D, conocida como modelo topolgico o de conjunto de puntos, y otra que caracteriza matemticamente al slido a partir de la superficie que lo delimita, esto es, su piel o frontera. De este modo estableceremos un sistema de representacin con tres niveles: slidos fsicos, modelos matemticos de slidos y representaciones [Mant88, pp.32].
espacio.
dos slidos que se diferencian tan solo en una transformacin rgida son el mismo slido. Homogeneidad tridimensional. El slido debe ser tridimensional en todos sus puntos, es decir, en cualquier punto de l debe ser posible en tres direcciones ortogonales.
Esta ltima propiedad se suele caracterizar mediante el concepto topolgico de regularizacin. La regularizacin de un conjunto se define como la clausura de su interior: r(S) = c(i(S)) El interior de un conjunto es el subconjunto de sus puntos que no estn en su frontera. La clausura de un conjunto es el conjunto formado por todos sus puntos y todos sus puntos adherentes (los que estn es su frontera). Un conjunto es regular si es igual a su regularizacin S = r(S) Es fcil comprobar que cualquier punto o plano aislado no estar en la regularizacin del conjunto, es decir ser regular es equivalente a ser tridimensional en todos sus puntos. Un conjunto regular acotado se denomina un r-set (ver figura 4.2).
Diseo Asistido por Ordenador Los dos modelos son equivalentes, con determinadas restricciones. Para que el slido sea representable se suele imponer una condicin adicional de suavidad en su frontera, ms concretamente se suele exigir que la frontera sea sea algebraica (o al menos analtica). Esto es, debe ser representable por un polinomio de grado finito. Este modelo nos permite utilizar representaciones de los slidos basadas el almacenamiento de la frontera, que es una entidad bidimensional. Para facilitar la representacin se suele exigir, adems que la frontera sea 2-variedad., esto es, cada punto de la frontera es homeomorfo a un disco en E2. No todos los slidos satisfacen esta propiedad, por ejemplo, dos pirmides unidas por un vrtice no son 2-variedad (2manifold).
Propiedad Slido =
Vol Slido
G p x , y , z dV
La funcin a integrar, Gp, cambiar dependiendo de la propiedad a calcular. La siguiente tabla recoge algunas de las propiedades ms usuales. Propiedad Volumen Masa Centro de gravedad Momento de inercia(eje z) Gp 1 P/Masa X2 +Y2
Diseo Asistido por Ordenador Otras propiedades interesantes de las representaciones son:
A B A,B A B
A *B=c(i(A B))
i(A B)
A *B
Diseo Asistido por Ordenador A * B = r( A B) = c(i(A B)) A * B = r( A B) = c(i(A B)) A -* B = r( A - B) = c(i(A - B)) El conjunto de slidos con las operaciones regularizadas constituye un lgebra de Boole.
Figura 5.5. Instanciacin de primitivas Barrido (sweep). Se puede ver como una generalizacin de los mtodos de desarrollo de superficies a partir de curvas. El elemento a desplazar es ahora una superficie, que describe un volumen al desplazarse a lo largo de una trayectoria o al rotarse.
Figura 5.6. Construccin de slido por barrido Descomposicin. El slido se describe en base a una descomposicin del espacio en una coleccin de elementos simples disjuntos, celdas (por ejemplo tetraedros o cubos). La representacin de un slido es el conjunto de celdas que ocupa.
Figura5.7. Enumeracin espacial Fronteras. El slido se representa mediante un conjunto de caras que describen su frontera. La mayor parte de los sistemas utilizan representaciones de fronteras, con caras poligonales.
Figura 5.8. Representacin de fronteras CSG. Se almacena una expresin booleana que construye el slido a partir de primitivas simples.
Figura 5.9. Construccin de un slido CSG ASM. El modelado analtico de slidos describe los slidos a partir de mallas 3D de puntos de control, combinados usando funciones mezcla, generalizando los mtodos de diseo de superficies.
Cuando las caras permitidas por el sistema son polgonos el conjunto de objetos representable es el conjunto de poliedros. En este caso, las caras deben ser polgonos cualesquiera, incluyendo polgonos cncavos y con agujeros (de otro modo el conjunto de presentaciones no sera cerrado bajo operaciones booleanas). Por este mismo motivo se suele considerar como un nico slido un conjunto de poliedros separados.
5.2.1. Representacin
Existen diversas representaciones que permiten almacenar modelos de fronteras. Su complejidad varia en funcin de las relaciones topolgicas almacenadas. La opcin ms simple es no almacenar ningn tipo de relacin, con lo que la
Diseo Asistido por Ordenador representacin puede ser una simple lista de caras. No obstante, esta aparente simplicidad en la estructura de datos da lugar a procesos complejos para realizar cualquier operacin con el modelo, desde la comprobacin de validez hasta la edicin o clculo. A modo de ejemplo, supongamos que deseamos comprobar que la frontera es cerrada (condicin indispensable para que la representacin sea vlida). Tendremos que comprobar que en cada arista confluyen dos caras con la misma orientacin. Para ello tendremos que comparar cada par de puntos consecutivos de cada cara con los pares de puntos consecutivos del resto de las caras. Este proceso es complejo (depende del cuadrado del nmero de caras) e impreciso, la comparacin de puntos puede generar errores numricos. Obsrvese que esta es la estructura habitualmente usada en los sistemas que dibujan poliedros, cuando no interesa editar el objeto como un slido, ni que represente un slido vlido, ni calcularle propiedades. Por otra parte, esta estructura es muy redundante, los puntos asociados a cada vrtice se almacenan en la lista de puntos de cada cara que comparte el vrtice. La existencia de informacin redundante conlleva la utilizacin de un mayor espacio, y puede ser origen de inconsistencias. La siguiente tabla muestra la representacin de las dos caras visibles del poliedro de la figura 5.11. Cara 1 2 3 Vrtices (0,0,0) (0,2,-1) (0,3,2) (0,1,2) NULL (0,2,-1) (2,3,.-1) (2,4,1) (0,3,2) NULL
Una alternativa simple es almacenar el modelo en una estructura jerrquica heterognea, en la que la informacin asociada a cada cara sea una lista de aristas, y la normal a la cara. De cada arista se almacenen los dos vrtices que la delimitan, y para cada vrtice el punto en el que se encuentra. La estructura se puede completar con relaciones hacia arriba (de vrtices a aristas, y de estas a caras). De este modo se eliminan las redundancias y se almacenan parte de las relaciones topolgicas. Las superficies de las caras y las lneas de las aristas se pueden calcular cuando sea necesario a partir de los puntos que las delimitan.
3 2 4
Cara 1 2 3
Aristas 0 1 4 5
2 6
3 1
NULL NULL
0 5
Aristas 0 1 2 3 4 5 6
Vi 0 1 2 3 1 5 4
Vf 1 2 3 0 5 4 2
Cizq 1 1 1 1 2 2 2
Cder 3 2 4 5 3 6 4
10
Diseo Asistido por Ordenador Para poder utilizar caras con agujeros es necesario complicar la estructura, almacenando para cada cara una secuencia de ciclos de aristas, de los que el primero es el permetro exterior, y el resto agujeros practicados en l. Otra alternativa es utilizar falsas aristas, o aristas puente, para unir los permetros interiores al exterior.
Vi
0 1 2 3 5 4 2 Y 0 2 3 1 4 3
Vf
1 2 3 0 1 5 4 Z 0 -1 2 2 1 -1
fcw
1 1 1 1
ncw
4
2 2 2 Cara Arista 1 0 2 4
1 4 5
Cuando se utilizan aristas puente es necesario marcarlas para evitar dibujarlas. Con la estructura de aristas aladas esto no es necesario ya que se detectan por tener la misma cara a derecha e izquierda.
11
nccw
6
pcw
2 4
fccw
0
fcw
4
0 5 1
Figura 5.13. Slido ejemplo.
pccw
ncw
Obsrvese que esta estructura no se puede utilizar para poliedros no variedad, ya que en ellos una arista podra tener ms de dos caras vecinas. La alternativa para tratar este tipo de slidos con estas representaciones es modificar el slido para eliminar la singularidad, bien convirtiendo la arista en una unin slida o desdoblndola (ver figura 5.14).
Figura 5.14. El slido no varidad de la izquierda se puede convertir para obtener un slido 2-variedad
div F d V = F n d S
V S
siendo S la superficie que encierra a V, n el vector normal a dicha superficie, (obsrvese que los vectores estn notados usando negrita), y div el operador divergencia.
2
Apostol T.M.: "Calculus. Clculo con funciones de varias variables y lgebra lineal, con aplicaciones a las ecuaciones diferenciales y a las probabilidades". Reverte 1980. Pp. 537-560.
12
Diseo Asistido por Ordenador Para una funcin vectorial F, dada por F(x,y,z) = (Fx,Fy,Fz) la divergencia se calcula como:
div F =
Fx F y Fz , , x y z
Calcular la propiedad volumtrica se reduce a una funcin F cuya divergencia sea igual a Gp, e integrar dicha funcin en la superficie del slido.
div( F) = g
r
h
Ejemplo. Clculo del peso de un cilindro. Supongamos un cilindro, cuyos eje sea paralelo al eje y, con altura h y radio de base r. Para calcular el peso se debe integrar la funcin constante r. Hay infinidad de funciones que cumplen esta condicin, por ejemplo: Fa(x,y,z) = (x/3, y/3, z/3) y Fb(x,y,z) = (0, y, 0)
En general, no es posible adaptar la funcin usada a la forma del slido. En este caso es evidente, no obstante, que es ms fcil integrar la segunda funcin. Podemos pues calcular el peso de un objeto integrando F n en su superficie. Si el objeto es un cilindro vertical, bastara con integrar en las dos caras horizontales, ya que el producto escalar es cero en el resto. Por tanto el volumen ser:
div F dV = F n d S =
V S
y dS = r 2 h
tapa
5.2.3. Edicin
La edicin directa, moviendo puntos de control, aunque es factible cuando se restringe el mtodo para utilizar caras triangulares, no es aconsejable, pues es demasiado laborioso.
13
Diseo Asistido por Ordenador Los mtodos de edicin usuales en modeladores que trabajan con modelos de fronteras son:
La combinacin de instanciacin de primitivas prediseadas operaciones de barrido sobre las caras. Las operaciones booleanas La modificacin local del modelo por biselado de las aristas o vrtices.
con
Hablaremos brevemente de cada una de estas opciones. Las operaciones booleanas usadas son la unin, la interseccin y la diferencia. No se usa el complemento, ya que produce slidos no vlidos. Para realizar una operacin boolena entre dos slidos se sigue el siguiente proceso: a) Clasificacin de caras 1. Calcular todas las lneas de interseccin de las caras de A con las caras del slido B y viceversa. 2. Dividir las caras que estn partidas por estas lineas. Para ello se unen las aristas consecutivas entre si para formar nuevas caras. 3. Clasificar las caras de cada slido respecto al otro slido en externas e internas. b) Seleccin de caras 4. En funcin de la operacin a realizar se clasifican las caras eligiendo las que forman parte del slido resultado. Operacin Caras AB AB A-B Caras de A externas a B y caras de B externas a A Caras de A internas a B y caras de B internas a A Caras de A externas a B y caras de B internas a A
A B A
Unin InterseccinDiferencia B
14
Se debe tener un cuidado especial al tratar las caras coplanarias, realizando la clasificacin de la las caras teniendo en cuenta la orientacin de las dos caras. La figura 5.15 muestra el resultado que se obtendra con dos slidos a los que coincide una cara si esto no se tiene en consideracin, y como se deben clasificar dos caras coplanarias con la misma y distinta orientacin en cada uno de las operaciones. El biselado consiste en sustituir una arista o un vrtice por una cara. Aplicando reiteradas veces se puede obtener un slido con perfil redondeado. El sistema modifica la representacin del slido creando las nuevas caras y modificando las relaciones de vecindad.
Figura 5.16. Biselado de un cubo Una operacin de barrido define un slido por el volumen del espacio ocupado por una superficie cuando se desplaza a lo largo de una trayectoria, de un modo anlogo a la construccin de una superficie por desplazamiento de una curva. La construccin ms simple es realizar traslaciones o revoluciones, pero se pueden igualmente construir slidos realizando un barrido generalizado, escalando y rotando la superficie mientras se desplaza a lo largo de una trayectoria arbitraria. An en este ltimo caso, el conjunto de slidos que se pueden generar es muy reducido. Por este motivo su utilizacin como mtodo de representacin en si mismo est muy limitada. No obstante es muy til como mtodo de modificacin local de un modelo de fronteras, permitiendo su edicin. De este modo se puede aadir materia a una cara del modelo realizando un extrusin a partir de la cara, o realizar una perforacin haciendo una intrisun en la cara. En cualquier caso, el usuario dibuja la superficie a desplazar sobre la cara del slido e indica el vector de desplazamiento. A partir de esta informacin el sistema puede generar automticamente la informacin de las caras creadas (Figura 5.17).
15
16
S = Ci
La representacin del slido es la lista de celdas que ocupa, que se puede codificar como un bit de ocupacin por cada celda (Ci), si la geometra de las celdas es fija, o como la lista de parmetros de las celdas ocupadas. Los mtodos que utilizan celdas de geomtrica fija suelen utilizarse para realizar representaciones aproximadas. Estos mtodos se pueden utilizar para representar slidos heterogneos, aadiendo simplemente el valor de propiedad de cada celda. Los mtodos de descomposicin puede estructurar las celdas en una estructura jerrquica, lo que ayuda a localizar informacin y a compactar la representacin del modelo, este es el caso de los rboles octales (o de octantes, octrees), y de los rboles de particin binaria del espacio (BSP). Cuando la representacin no es jerrquica se dice que el mtodo de representacin es una enumeracin de celdas. En la siguiente seccin se estudia la enumeracin espacial y en la seccin 3.2 los Octrees.
5.3.2. Octrees
Un octree describe, dentro de un cubo inicial, y recursivamente los octantes ocupados por el slido. Dado un cubo que encierra al slido, se divide en ocho octantes, que podrn estar totalmente ocupados por el slido, vacos o parcialmente ocupados. Para los octantes que estn parcialmente ocupados se repite el mismo proceso. As hasta alcanzar un nivel de precisin prefijado. La representacin puede verse como una compactacin de una enumeracin espacial.
5.3.3. Almacenamiento
De forma natural la representacin se puede almacenar como un rbol octal, en el que cada nodo interno representa un cubo parcialmente ocupado, y los nodos terminales puede estar ocupados o vacos. Los ocho hijos de cada nodo interno representan los ocho subcubos en que se divide el cubo. Esta representacin permite localizar de forma rpida la informacin de un nodo, pero requiere un espacio adicional para alojar los punteros a los hijos. Cuando no se va a operar con el
17
Diseo Asistido por Ordenador slido, por ejemplo para almacenarlo en un fichero, suele ser preferible una codificacin lineal, obtenida mediante un recorrido del rbol (por ejemplo en orden central).
BBW(BBWBWBWW)BBBW
5.3.4. Bsqueda
La localizacin de un punto del espacio en el rbol, que es necesaria para la mayor parte de las operaciones, y en concreto para saber si el punto est dentro del slido se puede realizar de forma rpida si se ha realizado el etiquetado de los nodos de forma adecuada. Concretamente se puede hacer que el ndice del nodo hijo se obtenga por yuxtaposicin de su posicin relativa en las tres direcciones (ver figura). Asumiendo una resolucin mxima conocida, esto es un tamao conocido, d, del voxel de ms pequeo a usar, podemos calcular los ndices de un voxel dado en coordenadas enteras, en el rango 0 a 2n, siendo n la mxima profundidad del rbol.
d2n
2 6 7 5 3 1 0
d2n
d2n
d2n-2
d2n
d2n-1
18
2 6 4 zyx 1,0,1 7 5 3 1 0
0001 0000 0100 0010 1000
101 = 5
19
5.3.6. Propiedades
Los principales inconvenientes de la representacin son su carcter aproximado y el espacio ocupado. Por otra parte, no es trivial realizar transformaciones geomtricas, salvo rotaciones de mltiplos de 90 grados, escalados por mltiplos de dos o traslaciones en mltiplos del tamao de un voxel. Como ventajas destacan la facilidad para realizar operaciones booleanas y calcular propiedades. Las propiedades volumtricas se pueden calcular realizando una simple sumatoria sobre el conjunto de nodos terminales ocupados:
Propiedad Slido =
Vol Slido
G p x , y , z dV =
nodos llenos
G p voxel V voxel
Se han realizado varias extensiones del mtodo de representacin para permitir una representacin exacta de slidos polidricos. Entre estas cabe destacar los octrees extendidos, que incluyen informacin de la geometra de la frontera en los nodos terminales.
5.4.1. Representacin
La representacin usual de un modelo CGS es como un rbol binario, en el que los nodos terminales contienen primitivas y los nodos internos operadores booleanos. Asociado a cada arco hay una transformacin geomtrica. Las primitivas, que puede estar parametrizadas, se representan como interseccin de semiespacios, lo que permite un tratamiento homogneo de todo el rbol.
20
S 17=S 15 - S16
S16=S 11 S12
S15=S 13 - S14
S8=T5C3
S 7=S5 S 6
S5=S 1 S2
S6=S 3 S4
S 1=T1B1
S 2=T2C1
S3=T3B
2
S 4=T4C2
21
5.4.2. Visualizacin
La visualizacin del modelo debe realizarse convirtiendolo a Brep, usando ray casting o por lineas de barrido (scan line). Para convertir el modelo CSG a Brep se transforman a Brep las primitivas y se evala el rbol CSG. La visualizacin directa por trazados de rayos o lneas de barrido resuelve el problema en 1D o 2D calculando la interseccin de cada primitiva con los rayos que pasan por cada pixel, o los planos que contienen cada linea de barrido.
5.4.3. Propiedades
La geometra constructiva de slidos es un mtodo de modelado no ambiguo, con un dominio amplio (condicionado por el repertorio de primitivas disponibles) y vlido. La principal debilidad del mtodo es la no unicidad de las representaciones, ya que hay infinidad de formas de representar cualquier slido.3
Bibliografa:
Fole90 Brun93 Foley J.D.; van Dam A.; Feiner S.K.; Hughes J.F.: "Computer Graphics. Theory and Practice". Addison-Wesley 1990. Brunet, P.; "Modelado geomtrico de volmenes" Cursos del CEIG'93
Manty88 Mantyla, M.; "An introduction to solid modeling". Computer Science Press 1988 Bron87 Bronsvoort W.; "Geometric Modeling" Tutorial EG'87
22