Modelador 3D ACIS® | ||
---|---|---|
Información general | ||
Tipo de programa | geometric modeling kernel | |
Desarrollador | Spatial Corporation | |
Licencia | Software propietario | |
Información técnica | ||
Programado en | C++ | |
Versiones | ||
Última versión estable | Versión R20 ( Julio 2009) | |
Archivos legibles | ||
| ||
Archivos editables | ||
| ||
Enlaces | ||
El modelador ACIS es un núcleo (o motor) geométrico de modelado tridimensional propiedad de Spatial Corporation. ACIS es usado por varios sistemas de diseño asistido por computadora (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 modelado 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 modelado de sólidos de topología con y sin variedad, además de una gran colección de operaciones geométricas.
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).
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 Versión 13.10.2240.8 | X | |
Red Hat® | Enterprise Linux, Versión 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® Versión 5.1 | VisualAge® C++ Versión 6.0 | X | X |
HP | HP-UX 11.0 | HP aC++ Versión A.03.52 | X | X |
SunTM | SolarisTM 8&9 | Sun ONETM Studio 8 | X | X |
La distribución central de ACIS puede dividirse en tres categorías
Existen tres maneras de interactuar con ACIS.
int main (int argc, char* argv)
{
// 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 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();
return EXITOSO;
}
Como se mencionó anteriormente, la tercera manera de interactuar con ACIS es haciendo uso de la interfaz 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:
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 manipulación 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")
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.
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.
La estructura del archivo está dividida en bloques tales como: