1 1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones 1 Programación en el diseño industrial: CATIA v5 y Visual Basic para Aplicaciones En este capítulo se pretende dar una idea general del programa CATIA v5 y de las herramientas que ofrece al permitir la programación en el lenguaje Visual Basic for Applications. Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 11 1 1 1.1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones Introducción a la aplicación industrial La capacidad de crear macros y scripts que permitan automatizar procesos con garantías es una herramienta de gran importancia dentro de la aplicación industrial. Para crear estas aplicaciones en Catia, usaremos el lenguaje de programación Visual Basic. La característica principal del mismo es que está orientado a eventos, lo que produce un estilo de programación especialmente adaptado a los interfaces gráficos. La fuerza de este tipo de programación reside en la interactuación que se produce entre el usuario final y el programa, permitiendo de esta manera una mayor y más flexible capacidad de operaciones. En general, cuando se habla de Visual Basic nos viene a la cabeza la programación para el sistema ofimático MS Office. En cambio, su ámbito de acción llega mucho más lejos. Si bien es cierto que esta herramienta puede facilitar enormemente la tarea de trabajar con programas de cálculo, bases de datos y gestión de archivos, no es menos cierto que hay multitud de programas de aplicación industrial que la recogen. Uno de sus puntos fuertes, es la capacidad de intercomunicar a los diferentes programas que la soportan y otro es la facilidad para generar trabajo con procesos por lotes. Dentro de nuestro ámbito de acción, Catia permite que un usuario con cierto manejo de su entorno pueda programar con Visual Basic. De esta manera puede simplificar y automatizar algunas tareas diarias o repetitivas, crear herramientas adaptadas a su necesidad profesional, realizar cálculos desde otros interfaces, generar informes, modificar diseños,… En definitiva, facilitar el trabajo, conseguir ahorro de tiempo y aumentar la productividad y la eficacia. 1.1.1 La ingeniería basada en el conocimiento (KBE) La ingeniería basada en el conocimiento (KBE Knowledge Based Engineering) es una aplicación de la denominada gestión del conocimiento: recopilación de las mejores prácticas de una organización para realizar su función con éxito. Los sistemas KBE son aquellos que integran en el proceso el conocimiento que se posee, los equipos o sistemas de diseño existentes, las normativas relevantes para el diseño del producto y la experiencia de la organización. De esta forma, podemos decir que este proyecto es una aplicación de los conceptos del KBE. En él, se desarrolla un sistema que conforme a unas normas preestablecidas, facilita el trabajo a través de las herramientas de diseño teniendo en cuenta la organización del proceso. Profundizando un poco más en los conceptos del KBE, podemos decir que el conocimiento abarca tres campos: Los simples datos, el proceso de la creación de la información y la comprensión por la mente humana. Los datos se estructuran, se capturan y se transfieren con facilidad. La información es la estructuración de los datos en un contexto, volviendo a estos Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 12 1 1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones comprensibles. Finalmente, la comprensión es la información organizada con significado para nosotros. En el proceso de transformación de datos a conocimiento, la participación humana es creciente, mientras que el uso de tecnologías de la información es decreciente. Figura 1.1 Proceso del Conocimiento Algunas de las herramientas más importantes para desarrollar el conocimiento aplicado a la ingeniería son: - Sistemas de gestión documental. - Sistemas de ingeniería basados en el conocimiento (KBE). - La ingeniería concurrente. - Sistemas PDM Un sistema KBE puede proveer un entorno de software con el que un ingeniero experimentado puede crear aplicaciones informáticas con la finalidad de que sean usadas por otros ingenieros y diseñadores (usuarios finales). Permitiendo además que se puedan realizar futuras revisiones de forma que se incorporen nuevos conocimientos y experiencias. Dentro de Catia, podemos tomar una doble ruta para implementar los conceptos KBE: Cuando hablamos de software de diseño pretendemos añadir funciones que reproduzcan el trabajo repetitivo. Por ejemplo, la reproducción de elementos geométricos usuales como tornillos, arandelas o remaches. La parametrización del modelo y la creación de reglas, en la que se trata de diseñar conforme a unos valores geométricos (o normas) generales, de forma que en vez de contar con una gran cantidad de modelos semejantes, se puede disponer de un elemento básico que altera sus dimensiones mediante relaciones y variables. Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 13 1 1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones Aplicar ambas ideas permite que el tiempo empleado en crear nuestro diseño sin aporte real de ‘conocimiento’ se reduzca drásticamente, pudiendo usar este ‘excedente de tiempo’ en mejorar el diseño en sí mismo. Sin Aplicar KBE Creatividad 20% Aplicando KBE Rutina 80% Creatividad Rutina 80% 20% Tabla 1.1 Empleo del Tiempo según Métodos KBE 1.2 Catia v5 como herramienta de diseño Catia v5 es un programa informático de alto nivel que es utilizado en grandes y relevantes áreas de la ingeniería como la aeronáutica y la automoción. En realidad, está constituido por una serie de programas que se relacionan entre sí para conseguir simular el proceso de creación. Permite realizar tanto el diseño como el análisis y la simulación de la fabricación de los productos. Cuenta con grandes prestaciones como crear superficies complejas (Los alerones de un automóvil de F1) o modelar el trabajo que realizaría un operario al fabricar un producto. La industria de la construcción ha requerido de su uso en algunos casos cuando la complejidad del edificio así lo requería, como fue el caso del Museo Guggenheim de Bilbao. Se trata de un software CAD/CAM/CAE, es decir: CAD (Computer - Aided Design): el diseño asistido por ordenador. CAE (Computer - Aided Engineering): la ingeniería asistida por ordenador. CAM (Computer - Aided Manufacturing): la fabricación asistida por ordenador. Puesto que facilita una arquitectura abierta, podemos desarrollar aplicaciones o personalizar el programa a través de la interfaz de programación orientada a los diferentes lenguajes que soporta. En este proyecto vamos a centrarnos en las funciones CAD y CAE. De manera que utilizaremos algunas de sus herramientas CAE para mejorar la experiencia de los usuarios de las herramientas CAD. Principalmente en la generación de planos de los diferentes productos. Relacionándolo con el apartado anterior, diremos que dentro de la experiencia KBE, nos centramos en el primero de los conceptos al facilitar mejoras de software. Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 14 1 1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones Diagrama 1.1 Proceso CAD 1.2.1 Módulo Knowledgeware y Entorno de Programación El software de Catia v5 nos ofrece dos formas diferentes para capturar el conocimiento y permitir que el usuario final mejore su experiencia. Uno de ellos es el módulo Knowledgeware y el otro es el Entorno de Programación (desde donde crearemos las macros). A continuación vamos a explicar el módulo Knowledgeware que nos permite desarrollar soluciones desde tres herramientas diferentes. a) El consejero del conocimiento (Knowledge Advisor) Esta herramienta permite a los usuarios incluir el conocimiento dentro de un plan de trabajo de forma que pueda influenciar en el diseñador para tomar decisiones, reducir errores o automatizar procesos. Dentro de esta herramienta estarían recogidos los módulos de programación (si bien es cierto que tienen, como hemos visto en el apdo. 1.1.1, diferente naturaleza) Además de las herramientas de programación, se pueden utilizar parámetros y fórmulas bajo el concepto de ‘Diseño Parametrizado’ Parámetros: Los parámetros son elementos que permiten controlar variables que están destinadas a formar parte de algún aspecto del diseño. Generalmente hablamos de parámetros Intrínsecos al sistema cuando se definen automáticamente al trabajar con Catia y Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 15 1 1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones parámetros del Usuario cuando los creamos desde el exterior (medida, masa, reales, booleanos, grados,…). Fórmulas: Las fórmulas son los elementos de enlace entre los parámetros y aquellos que conforman el diseño. Catia tiene su propio editor de fórmulas que contiene no sólo una lista con todos los parámetros que contiene el modelo, sino también con una serie de funciones que se pueden utilizar para definir la fórmula. El conocimiento experto (Knowledge Expert) Es una herramienta para analizar y manipular todo un producto. Tiene las mismas capacidades que el módulo de Knowledge Advisor pero en se genera una Regla Base para todo el sistema. Mientras que en el Knowledge Advisor se crean aplicaciones que contienen características o propiedades del modelo. Esta Regla Base es un conjunto de reglas que se han ido añadiendo por los usuarios, de manera que en un conjunto pueden convivir las reglas pertenecientes a la Regla Base y las situadas en un segundo nivel por cada usuario. b) Plantillas ‘Producto del Conocimiento’ (Product Knowledge Template) Con este módulo Catia permite crear productos modificables que dependiendo de los parámetros introducidos por el usuario, se pueden convertir en familias de productos. A partir del uso de estas Plantillas de Conocimiento del Producto es más fácil revisar y mantener la información de manera interactiva puesto que no se requiere ninguna habilidad de programación. Esto permite a las plantillas ser adaptadas a los requisitos cambiantes del usuario, a metodologías mejoradas o a requisitos del cliente. 1.2.2 Tipos de documentos utilizados2 En nuestro proyecto, vamos a contar principalmente con el uso de tres tipos de archivos de Catia: CATProduct, CATPart y CATDrawing. Si bien es cierto que el programa final desarrollado estará contenido en un archivo de programación catvba. Cada uno de estos archivos responde a un módulo de diseño de Catia diferente que nos permite estructurar funciones relacionadas tanto con el concepto CAD como con el concepto CAE. Estos módulos permiten actuar sobre el documento a través de las Workbenchs. Los Workbench son los entornos de trabajo que Catia carga con sus comandos y botones para crear el diseño según el documento en el que estemos trabajando. Para poder realizar cierto tipo de acciones sobre un documento es necesario que esté activado el entorno adecuado. Además, estos entornos están organizados por comandos en barras de herramientas o menús. 2 En este apartado se ofrece una descripción general de los archivos. En los posteriores capítulos se desarrollan en profundidad algunos de los elementos principales de los mismos. Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 16 1 1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones Product Enmarcado dentro del módulo Assembly Design, un archivo tipo Product permite crear estructuras complejas a partir de Parts u otros Products. Sus características principales son posicionar las piezas de forma relativa en el espacio y establecer restricciones entre ellas. Este tipo de archivos facilitan la comprensión final del elemento diseñado a partir de sus piezas más simples. Figura 1.2 Product visualizado en Catia Un archivo tipo CATProduct contiene, a nivel de programación, un objeto tipo ProductDocument. Éste posee una estructura en forma de árbol de la que ‘cuelgan’, empezando por un producto único denominado ‘Root Product’ (Producto Raíz), una colección de productos o partes en su estructura. Cada uno de los productos de esta colección puede incluir en sí mismo una colección de productos (o partes) y así sucesivamente. Part El módulo Part Design está centrado en la creación y diseño de las piezas. Para ello cuenta con muchas herramientas que permiten la creación sólidos modelados. Además es un módulo con una alta capacidad de integración con otros módulos (por ejemplo los relacionados con curvas y superficies complejas). En él podemos crear formas complejas con características físicas, elementos superficiales, extrusiones sólidas, sketches bidimensionales de los que generar revoluciones, análisis físicos, aplicar densidad a los componentes,… Por ello es uno de los más conocidos de este software. Un archivo tipo CATPart, de forma similar al CATProduct, contiene un objeto PartDocument. Posee una estructura de árbol, empezando con el objeto Part localizado en la parte superior y del que se ‘cuelgan’ los diferentes entes que lo componen. Entre ellos podemos encontrar: Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 17 1 1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones Los tres planos XY, YZ, y ZX de referencia para el modelo La colección AxisSystems La colección de OrderedGeometriclaSets Figura 1.3 Part visualizado en Catia Drawing Dentro del módulo de Drafting encontramos las funcionalidades orientadas a la realización de dibujos o planos 2D. Generalmente se utilizan modelos 3D para generar estos documentos. Los archivos con extensión CATDrawing contienen vistas normalizadas, cortes, secciones… de uno o más modelos sólidos. La automatización de tareas en este tipo de documentos nos Figura 1.4 Drawing visualizado en Catia Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 18 1 1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones permitirá, por ejemplo, generar planos de un modelo sólido determinado de manera rápida y sencilla sin tener que usar el módulo de dibujo, es decir trabajando directamente en el documento CATPart. Además, se actualizan automáticamente al cambiar las características geométricas del archivo que representan. Los objetos y colecciones más importantes son aquellos relacionados con las hojas que contienen los dibujos (Sheets), las vistas de la pieza (DrawingView), las relaciones (Relations) y los parámetros (Parameters) de las mismas. Especialmente aquellos objetos relacionados con el ‘comportamiento’ o la configuración del dibujo. 1.2.3 Los lenguajes de programación en CATIA v5 Como parte del método KBE, Catia nos ofrece la opción de programar para su sistema. Originalmente estaba diseñada para los lenguajes VB6, VBA y VBScript. Sin embargo, cuando Microsoft dejó de dar soporte a VB6 al ser reemplazado por VB.net, Catia migró su sistema para poder dar soporte al nuevo lenguaje de programación. Debido a los diferentes lenguajes que Catia soporta, tendremos diferentes maneras de ejecutar o interpretar una macro. Principalmente por la manera en que estos lenguajes se relacionan con los objetos (métodos y propiedades) propios de Catia. Estos lenguajes son: CATScript Se denomina de esta manera a la versión de Dassault Systèmes basada en VBScript. Es un lenguaje de programación secuencial y no está orientado a usar GUI. Cualquier editor de texto puede ser utilizado para crear código. Sus principales inconvenientes provienen de la poca flexibilidad que puede otorgar y la dificultad para encontrar errores (no tenemos capacidad de depuración). A su favor, permite crear ‘grabaciones’ de macros de manera asistida por Catia, que pueden ser reutilizadas, versionadas o vinculadas a documentos. Su extensión de archivo es *.CATScript. VBScript Es un subconjunto del lenguaje VBA, por lo que todos los elementos que forman parte de él también lo son de VBA (aunque no en sentido inverso). Este lenguaje sencillo fue desarrollado originalmente para crear pequeñas aplicaciones Web. Comparte muchas características con el CATScript. En general, podemos llamar a objetos de Catia pero no podemos hacerlo especificando el tipo, lo que hace que el sistema llame dinámicamente (intenta averiguar cuál es la mejor opción) las propiedades y métodos de los objetos. Este proceso ralentiza su funcionamiento. A su vez, no está orientado a la programación GUI y tiene menor funcionalidad. Su extensión de archivo es *.catvbs. Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 19 1 1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones Tanto CATScript como VBScript permiten ser procesados directamente desde dentro de la aplicación de Catia, como cualquier otro comando de la misma. Por ello se considera que son procesos internos. VBA (Visual Basic for Applications) Desde la versión 5 Release 8, Catia ha implementado la posibilidad de utilizar este lenguaje. Para ello, posee una GUI de edición con todo lo necesario: Editor, Visualizador de objetos y Depurador de errores. En este sistema se permite declarar la librería desde la cual llamamos a los objetos, lo que permite utilizar la librería de objetos incorporada por el sistema. El problema principal de este lenguaje es que tiene que las aplicaciones son ejecutadas desde dentro de Catia y presentan ciertas dificultades para compilarlas como DLL o ejecutables. La extensión de sus archivos también es *.catvba, pero en este caso hablaremos de proyectos al no ser vinculables a los documentos de Catia. Los archivos anteriores también pueden ser lanzados externamente al programa, de manera que pueden establecer relaciones más complejas con otros tipos de software tales como Microsoft Excel, Matlab,… 1.3 Visual Basic (VB) y Visual Basic para Aplicaciones (VBA) Como su nombre indica, el lenguaje de programación Visual Basic procede del denominado BASIC (Beginner´s All-purpose Symbolic Instruction Code), que fue creado en 1964 en el Dartmouth College, como un medio para iniciarse en el mundo de la programación. Tras varias modificaciones, en 1978 se estableció el BASIC estándar. Aunque en sus orígenes fuera un lenguaje orientado a principiantes, actualmente se ha convertido en una interesante alternativa para los programadores que deseen desarrollar aplicaciones compatibles con Windows. Se trata de un lenguaje de programación dirigido a través de eventos, evolución del original BASIC al que se le han realizado importantes modificaciones. Su primera versión fue presentada en 1991, con la intención de simplificar la programación mediante el uso de un ambiente gráfico de desarrollo para la creación de interfaces gráficas (de ahí su nombre Visual). Dentro de la familia de Visual Basic, encontramos el subconjunto Visual Basic for Applications. Generalmente nos referimos de esta manera al lenguaje especializado de VB para funcionar dentro de otras aplicaciones cuya finalidad es crear macros. De esta manera, Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 20 1 1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones tenemos disponible una librería de objetos y aplicaciones propias de cada programa que facilitan las tareas que este puede desarrollar. 1.3.1 Principios fundamentales de programación con VB/VBA Como principio fundamental tenemos que en este lenguaje se presentan aplicaciones procedimentales y manejadas por eventos. Las procedimentales son aquellas que desarrollan líneas de código y los procesos descritos en ellas, llamando a los procedimientos y demás variables según se le demande. En cambio, las manejadas por eventos no llevan una ruta predefinida. Se ejecutan diferentes secciones de código según las respuestas que se obtienen. Ésta es la principal fortaleza en la utilización de este tipo de lenguaje a la hora de crear ciertas aplicaciones. Los objetos son cada uno de los formularios (ventanas), menús o controles que se crean en módulos. Se interpretarían como los objetos básicos de la construcción de aplicaciones. Los objetos tienen características y comportamientos definidos por sus propiedades, métodos y eventos. Una colección es un tipo especial de objeto que contiene a otros objetos de la misma clase y sirven para gestionarlos y establecer propiedades generales. En Catiav5 las colecciones se denotan con el nombre en plural para distinguirlas de los objetos individuales que contienen. Además, se considera que en la estructura están situados a mayor nivel que los objetos que contienen. Propiedades: Conjunto de datos que describen las características del objeto (tamaño, color, color de fondo,…). Especialmente orientadas al aspecto, también pueden determinar el comportamiento de formularios. Métodos: Son un conjunto de procedimientos que permiten que un objeto ejecute una acción sobre sí mismo. El formato para llamar a un método es el siguiente: NombreDelObjeto.Método (argumentos opcionales) Eventos: Es una acción reconocida por el objeto. Cuando un evento ocurre (se dispara) el objeto interpreta esta interactuación y según su código de programación realizará las ordenes preestablecidas. Módulos: Son una serie de procedimientos genéricos, declaraciones de variables y definiciones de constantes para toda la aplicación. Tienen diferente naturaleza y característica según la funcionalidad que deseemos Estas herramientas se desarrollan para crear la interfaz de usuario, la parte visual a través de la cual el usuario interactúa con la aplicación. Los bloques básicos de construcción de una Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 21 1 1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones interfaz de usuario son los formularios y los controles. Visual Basic utiliza técnicas de programación visual para diseñar las aplicaciones. Otro de los pilares del lenguaje es el conjunto de variables. Un programa realiza determinadas tareas: procesa eventos, realiza cálculos, ordena grupos de datos… Pero para ello necesita disponer de una memoria intermedia donde poder guardar valores, cadenas de caracteres y otros elementos, así estarán disponibles cuando el programa tenga que recurrir a ellos. Con este fin se utilizan y definen las variables. Las variables pueden contener números, datos de fecha y hora, textos o imágenes. Generalmente la vida útil de una variable es limitada, es decir, sólo conserva su valor dentro de un procedimiento (dentro de las órdenes Private Sub < Existencia de la variable > End Sub). Para declarar variables tenemos dos métodos: a) Declaración explícita: en este caso todos los módulos del código de un proyecto nuevo contienen la línea ‘Option Explicit’. Las variables se declaran con: Dim nombreVariable as TipodeVariable b) Declaración implícita: con este modo no es necesario declarar variables al comienzo del programa mediante Dim nombreVariable. No se declaran las variables al comienzo de un programa sino que se emplean directamente durante el programa. Generalmente es un sistema menos eficiente al tener el programa que declarar una variable genérica y luego establecer las características asociadas al trabajo que se realice con ella. 1.4 Herramientas de programación (Macros, .dll, .exe) Desde un punto de vista de aplicación industrial encontramos que existen tres formas de traducir las órdenes de control y trabajo. Aunque en esencia sean muy similares, según el uso final del sistema programado cada una de ellas tiene sus propias características que la hacen más idónea. 1.4.1 Macros Una macro (del griego μακρο; significa «grande»), abreviatura de macroinstrucción, es un conjunto de instrucciones que se almacenan para que se puedan ejecutar de forma secuencial mediante una sola llamada u orden de ejecución. Dicho de otra forma, una macroinstrucción es una instrucción compleja, formada por otras instrucciones más sencillas. Esto permite la automatización de tareas repetitivas. Las macros tienden a almacenarse en el ámbito del propio programa que las utiliza y se ejecutan pulsando una combinación especial de teclas o un botón especialmente creado y Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 22 1 1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones asignado para tal efecto. En Catia, también podemos encontrar procesos en formato script. Son de una categoría inferior a las macros y su potencia de programación está mucho más reducida, aunque su uso para sistemas sencillos está muy extendido. La diferencia entre una macroinstrucción y un programa es que en las macroinstrucciones la ejecución es secuencial y no existe otro concepto del flujo de programa, y por tanto, no puede bifurcarse. Otro uso común de las macros es crear aplicaciones repetitivas que pueden ser requeridas varias veces dentro de un código mucho más amplio. La creación de estas macros puede permitir al programador no tener que repetir continuamente ciertos pasos del código. Es tan común el empleo de macroinstrucciones que se les considera como una extensión de los lenguajes. 1.4.2 Bibliotecas de enlace dinámico (.dll) Conocidas comúnmente por sus siglas en inglés dll (dynamic-link library), es el término con el que se refiere a los archivos con código ejecutable que se cargan bajo demanda de un programa por parte del sistema operativo. Esta denominación es exclusiva del sistema operativo Windows, siendo ".dll" la extensión con la que se identifican estos ficheros, aunque el concepto existe en prácticamente todos los sistemas operativos modernos. Dentro de sus principales ventajas encontramos que: Reducen el tamaño de los archivos ejecutables. Gran parte del código puede estar almacenado en bibliotecas y no en el propio ejecutable lo que redunda en una mejor modularización. Pueden estar compartidas entre varias aplicaciones. Si el código es suficientemente genérico, puede resultar de utilidad para múltiples aplicaciones. Facilitan la gestión y aprovechamiento de la memoria del sistema. La carga dinámica permite al sistema operativo aplicar algoritmos que mejoren el rendimiento del sistema cuando se carguen estas bibliotecas. Además, al estar compartidas, basta con mantener una copia en memoria para todos los programas que la utilicen. Brindan mayor flexibilidad frente a cambios. Es posible mejorar el rendimiento o solucionar pequeños errores distribuyendo únicamente una nueva versión de la biblioteca dinámica. Nuevamente, está corrección o mejora será aprovechada por todas las aplicaciones que compartan la biblioteca. Sin embargo, no todo son ventajas. Debido a la evolución que pueden sufrir, cada una de la incorporación de mejoras en las bibliotecas puede ir modificándolas de tal forma que dejan de ser compatibles. Esto puede producir dos efectos no deseados: Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 23 1 1 Programación en el diseño industrial: Catia v5 y Visual Basic para Aplicaciones Que la instalación de un programa reemplace una dll con una nueva versión incompatible. Que la desinstalación del programa borre una dll compartida. Dentro del entorno de VB podemos hacer llamadas a la biblioteca que necesitemos y podemos crear nuestras propias bibliotecas. Al crear archivos dll de VB (en el argot, este proceso también es conocido como compilar) IDE sólo permitirá crear archivos dll de ActiveX, sin embargo, los métodos se han creado para que el usuario pueda indicar explícitamente al vinculador que incluya un archivo. DEF que define la posición de orden y nombre de cada función. Esto permite al usuario crear una norma dll de Windows utilizando Visual Basic (versión 6 o menos) a la que se puede hacer referencia a través de una declaración (Declare). 3 1.4.3 Archivos ejecutables Una vez finalizada nuestra aplicación siempre podremos crear un archivo *.exe (de la abreviación del inglés executable, que se traduce como ejecutable). Esta extensión se refiere a un archivo de código reubicable, es decir, que tiene sus direcciones de memoria relativas. Son utilizados para el sistema operativo de Windows Para ello es necesario haber garantizado que todo funciona correctamente depurando el código y haciendo diversas pruebas funcionales, pues una vez compilado no se puede modificar. Existen dos formas de crear un archivo de tipo EXE. Una es usando un compilador que pueda crear este tipo de archivos (lo cual no significa específicamente que tiene que ser para la plataforma donde se ejecutará). La otra forma es ensamblando un código fuente del lenguaje Assembler y luego enlazando el código objeto resultante de la tarea anterior. En nuestro caso, tendríamos que exportar el código desde Catia a Microsoft Visual Basic y tener en cuenta que tendríamos que llamar a la biblioteca de funciones propias de Catia para poder utilizarlo. 3 Intergated Development Environment Entorno de desarrollo integrado (ver apdo. 2.1.1) Alejandro Martín Garrido Alejandro Martín Garrido Aplicación para la generación y exportación CAD automática de planos en Catia V5 a partir de ficheros Part 24