ACIS
De Wikipedia, la enciclopedia libre
- Para otros usos de este término, véase ACIS (desambiguación).
Modelador 3D ACIS® | |
---|---|
Desarrollador: | Spatial Corporation |
Última versión: | Version R17 / Abril 2007 |
S.O.: | Windows 2000 (y superior), AIX (IBM), Solaris (Sun Microsystems), HP-UX (Hewlett-Packard), Mac OS X (Apple Computer) y Linux (Red Hat) |
Género: | Modelamiento de sólidos |
Licencia: | Software propietario |
En español: | No |
Sitio Web: | www.spatial.com |
El modelador (ACIS) es un núcleo (o motor) geométrico de modelamiento tridimensional propiedad de Spatial Corp. ACIS es usado por varios sistemas de Diseño asistido por computador (o en inglés CAD), Fabricación asistida por computadora (CAM), CAE, AEC, CMM, Animación en 3D y astilleros. ACIS provee la funcionalidad necesaria para modelar en 3D.
ACIS posee una arquitectura abierta, y orientada a objetos, en lenguaje C++ lo cual le permite tener capacidades de modelamiento de sólidos más robustas. Con ACIS se pueden construir aplicaciones con características mixtas, pues éste integra modelación de varios tipos: Superficie, mallas tipo Wireframe y modelamiento de sólidos de topología con y sin variedad, además de una gran colección de operaciones geométricas.
Tabla de contenidos |
[editar] Arquitectura
La línea de producción de ACIS usa tecnología de componentes de software, lo cual le permite a una aplicación utilizar solos los componentes que requiera. Esta comunicación se hace a través de una API (Application Programming Interface - Interfaz de Programación de Aplicaciones).
[editar] Plataformas disponibles y Sistemas Operativos
Plataforma | Sistema Operativo | Compilador | 32-bit | 64-bit |
---|---|---|---|---|
Microsoft® | Windows XP Professional SP2 | Visual C++ .NET 2005 | X | |
Microsoft® | Windows 2000 SP4 | Visual C++ .NET 2003 | X | |
Microsoft® | Windows Server 2003 | Visual C++ 6.0 SP5 | X | |
Microsoft® | Windows XP Professional x64 Edition | Platform SDK for Windows Server February 2003 Version 13.10.2240.8 | X | |
Red Hat® | Enterprise Linux, Version 3 | GNU C++ gcc 3.2.3 | X | X |
Apple® | OS X 10.4 (Native BSD) | GNU C++ gcc 4.0 and XCode 2.3 | X | |
IBM® | AIX® Version 5.1 | VisualAge® C++ Version 6.0 | X | X |
HP | HP-UX 11.0 | HP aC++ Version A.03.52 | X | X |
SunTM | SolarisTM 8&9 | Sun ONETM Studio 8 | X | X |
[editar] Functionalidad
[editar] Modelador ACIS
La distribución central de ACIS puede dividirse en tres categorías
[editar] Modelamiento de sólidos
- Extrusiones/Revoluciones/Barridos de conjuntos de curvas en 2D para crear superficies complejas o sólidos.
- Ajuste de superficies a conjuntos de curvas.
- Generación de patrones de formas repetidas.
- Sólidos huecos y engrosamiento de superficies.
- Doblado interactivo, torceduras, estiramientos y deformaciones de curvas, superficies y sólidos.
- Operaciones Booleanas de intersección/unión/diferencia de cualquier combinación de curvas, superficies y/o sólidos.
[editar] Gestión de modelamiento de sólidos
- Es posible adjuntar datos definidos por el usuario a cualquier nivel de un modelo.
- Rastrear cambios de geometría y topología.
- Modelamiento de sub-regiones de un sólido por medio de topología celular.
- Manejo de historia de construcción de modelo de manera independiente con capacidad de rehacer/deshacer cambios.
[editar] Visualización de modelos sólidos
[editar] Modelador ACIS con extensiones
- Modelamiento de sólidos deformables.
- Cobertura avanzada,
- Descomposición de características,
- Remoción de líneas ocultas (tecnología 3D PHL V5), basado en tecnología CATIA V5.
[editar] Interacción con ACIS
Existen dos maneras directas de interactuar con ACIS. La primera es por medio del conjunto de APIs invocadas a través de los componentes de software requeridos.
[editar] Interfaz en C++ ( API )
void main () { // Inicializar motor geométrico outcome res = api_start_modeller(0); res = api_initialize_kernel(); check_outcome(res); BODY *lingote, *htta; // // Crear pieza base SPAposition esquina_inf = SPAposition(0.0, 0.0, 0.0); SPAposition esquina_sup = SPAposition(20.0, 20.0, 10.0); res = api_solid_block(esquina_inf, esquina_sup, lingote); check_outcome(res); // // Crear pieza de operaciôn SPAposition p_inf = SPAposition(10.0, 10.0, 5.0); SPAposition p_sup = SPAposition(10.0, 10.0, 15.0); double rad_menor = 5.0, rad_mayor = 5.0, rad_sup = 5.0; res = api_solid_cylinder_cone(p_inf, p_sup, rad_menor, rad_mayor, rad_sup, NULL, htta); check_outcome(res); // // Realizar operación Booleana de unión res = api_boolean(lingote, htta, UNION); // if (!res.ok()){ cout << "Operación no exitosa" << endl; } else { // Guardar resultado ENTITY_LIST modelo_lista; modelo_lista.add(lingote); // // Gestion de archivo FileInfo fileinfo; res = api_save_version(15,0); check_outcome(res); fileinfo.set_units (1.0); fileinfo.set_product_id ("Wikipedia ACIS"); res = api_set_file_info (3, fileinfo); check_outcome(res); // FILE *output_file = acis_fopen ("acis_model.sat", "w"); res = api_save_entity_list (output_file, TRUE, elist); check_outcome(res); acis_fclose (output_file); } api_terminate_kernel(); api_stop_modeller(); }
[editar] Interfaz en Scheme
La segunda es haciendo uso de la interface Scheme AIDE (o en inglés Scheme ACIS Interface Driver Extension). Esta es una pequeña aplicación que hace uso de ACIS. Es muy útil para desarrolladores de aplicaciones en ACIS, pues permite correr pequeños programas tipo script en lenguaje Scheme, útil para la creación de código de prototipo. Otros propósitos suelen ser:
- Proveer una forma de comprobar la funcionalidad ofrecida por ACIS sin necesidad de escribir o compilar una aplicación en C++. Tal como se menciona antes, esto permite que los desarrolladores puedan aprender y crear prototipos de cualquier funcionalidad.
- Ayudar a dar una idea de cómo implementar alguna funcionalidad específica en una aplicación desarrollada en C++, dado que Spatial Corp proporciona el código fuente en C++ para la creación de las extensiones en Scheme utilizadas por Scheme AIDE,
- Servir como ejemplo para la creación de aplicaciones de ACIS en Scheme o el punto de partida para la creacion de una nueva aplicación de ACIS en Scheme.
- Finalmente, servir como una herramienta de comunicación con Spatial para reportar fallas o “bugs“ en el software.
Scheme AIDE es un programa tipo TUI (Text-based User Interface) que accepta comandos en Scheme y muestra los resultados en una ventana separada, estos comandos pueden ser instrucciones nativas en Scheme o extensiones Scheme para la manipulacion de ACIS.
(define lingote (solid:block (position 0 0 0) (position 20 20 10))) (define htta (solid:cylinder (position 10 10 5) (position 10 10 15) 5)) (bool:unite lingote htta) (part:save "acis_modl.sat")
[editar] Sistema de archivos
ACIS guarda información sobre los modelos en archivos externos los cuales tiene un formato abierto. Esto le permite a otras aplicación, aún aquellas que no están basadas en ACIS, el acceso y manipulación del modelo geométrico. La información mínima necesaria para entender el formado de archivo ACIS incluye la estructura del formato del archivo, como se guardan los datos, los tipos de datos escritos, los subtipos y las referencias.
[editar] Tipos de archivos
Existen dos tipos de archivos en ACIS. El tipo Standard ACIS Text (SAT) y el tipo Standar ACIS Binary (SAB). Ambos poseen la misma información, por lo tanto el término archivo SAT se utiliza cuando no se necesita hacer ninguna diferenciación. Los archivos tipo SAT son archivos de texto tipo ASCII y por lo tanto se pueden visualizar por medio de cualquier editor de texto. Los archivos tipo SAT tienen características de texto fáciles de leer tales como nueva línea, espacios entre palabras. Estos archivos tiene la extensión .sat. Los archivos tipo SAB, por el contrario, no se pueden visualizar fácilmente con un edidor de texto. Estos están diseñados para ser más compactos y no para la lectura por los humanos. Los archivos tipo SAB tienen la extensión .sab.
[editar] Estructura del archivo
La estructura del archivo está dividida en bloques tales como:
- Encabezado (tres renglones),
- Registros de entidades - La mayor parte de los datos,
- Opcional - Marcador de comienzo de historia de datos.
- Opcional - Registros de entidades antiguas necesarias para la historia y operaciones de navegación (rehacer/deshacer).
- Opcional - Marcador de final de historia de datos
- Marcador de fin de archivo.