Geometría constructiva de sólidos
Con su nombre derivado del inglés CSG (Constructive Solid Geometry), la geometría constructiva de sólidos o GCS es una técnica usada para modelado sólido, que consiste en crear cuerpos complejos[1][2] a partir de geometrías elementales (cubos, esferas, conos) combinándolos con operaciones booleanas como la unión y la intersección.[3] La generación de geometrías elementales y su combinación con operaciones booleanas se suele expresar como código en un lenguaje de programación. Existen lenguajes ad hoc para esta técnica, y también numerosas bibliotecas para usar GCS con lenguajes populares.
Primitivas
[editar]Se denominan primitivas las geometrías elementales disponibles para este tipo de modelado, que usualmente incluyenː
- cubos y paralelepípedos
- cilindros circulares y poligonales
- esferas y elipsoides
- conos de base poligonal, opcionalmente truncados
Las primitivas son los sólidos iniciales, objetos predefinidos en la aplicación de GCS y paramétricos (se les configuran dimensiones iniciales al momento de crearlas). El usuario modela partiendo de las primitivas disponibles y combinándolas para crear modelos complejos.
En la concepción de la geometría constructiva las primitivas forman un conjunto cerrado y el usuario no puede crear nuevas primitivas, sino solamente modelar combinando las primitivas disponibles. En la práctica las aplicaciones GCS suelen proporcionar al usuario medios para expresar otras geometrías iniciales. El caso más común es la extrusión de una figura 2Dː el usuario genera una polígono 2D arbitrario con segmentos, y a usa como plantilla para generar un sólido, dándole espesor es una tercera dimensión.
Parámetros
[editar]El usuario incorpora una primitiva a su modelo creando una instancia de ésta, con una serie de parámetros, algunos generales y otros específicos de la primitiva, por ejemploː
- Escala
- tamaño de la primitiva
- comienza siendo de tamaño unitario, el tamaño final se expresa como un escalamiento compuesto en cada una de las tres dimensiones
- usualmente representado como la escala en los ejes cartesianos x, y, z
- Traslación (posición 3D del cuerpo)
- cada primitiva tiene un punto ancla usado para definir su posición
- este punto suele ser un vértice, en otros casos es el baricentro de la primitiva
- Rotación (orientación 3D)
- usualmente representada como una sucesión de 3 rotaciones alrededor de los ejes cartesianos x, y, z
- las primitivas se crean en las coordenadas canónicas, y requieren ser trasladadas y rotadas para lograr la pose correcta en el modelo
- Parámetros específicos de la primitiva
- por ejemplo, un cono y un cilindro requieren determinar la cantidad de lados del polígono regular que servirá de base
Operaciones de construcción
[editar]El modelado se realiza mediante la combinación de primitivas. Algunas operaciones sobre cuerposː
- Unarias, sobre un cuerpo
- Binarias, sobre dos cuerpos
Aplicaciones
[editar]Esta técnica de modelado encuentra su nicho en el modelado mecánico, específicamente en el diseño paramétrico, donde se diseñan piezas con dimensiones y especificaciones técnicas precisas. Este tipo de diseño contrasta con el diseño artístico, más intuitivo y espontáneo. Por este motivo esta técnica de modelado casi no se utiliza fuera de la ingeniería.
Referencias
[editar]- ↑ Roth, Scott D (1982-02). «Ray casting for modeling solids». Computer Graphics and Image Processing (en inglés) 18 (2): 109-144. doi:10.1016/0146-664X(82)90169-1. Consultado el 29 de septiembre de 2020.
- ↑ Bloomenthal, Jules.; Bajaj, Chandrajit. (1997). Introduction to implicit surfaces. Morgan Kaufmann Publishers. ISBN 1-55860-233-X. OCLC 37644825. Consultado el 29 de septiembre de 2020.
- ↑ Foley, James D., 1942- (1995). Computer graphics : principles and practice (2nd ed. in C edición). Addison-Wesley. ISBN 0-201-84840-6. OCLC 32237630. Consultado el 29 de septiembre de 2020.
- OpenJSCAD Archivado el 29 de septiembre de 2020 en Wayback Machine., software gratuito de código abierto para usar GCS en lenguaje Javascript. El sitio web alberga una versión funcional en línea lista para usar.