Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2 - Programacià N en Catia v5 PDF
2 - Programacià N en Catia v5 PDF
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 25
Alejandro Martín Garrido
1 2 Programación en Catia v5
Como se ha comentado, CATIA (de sus siglas en inglés Computer Aided Three dimensional
Interactive Application) es un software de diseño CAD/CAE muy potente que, además de poner
a nuestra disposición una gran cantidad de herramientas de trabajo para el modelado de
sólidos contiene herramientas para implementar los conceptos de KBE.
1. Conseguir que los procesos se realicen más rápido (al ser trabajados por lotes).
2. Disminuir la probabilidad de error humano (al realizar procesos repetitivos que pueden
conllevar falta de atención).
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 26
Alejandro Martín Garrido
1 2 Programación en Catia v5
Component Object Manual (COM) Es una plataforma de Microsoft que permite compartir
código a través de diferentes aplicaciones y lenguajes de programación. Son aquellos que,
relacionados con el apartado anterior, se desarrollan para funcionar como archivos DLL y se
guardan en el registro de Windows.
Para activar las funciones de los lenguajes de programación, Catia tiene que ser
configurado para que las características propias de cada lenguaje sean tenidas en cuenta.
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 27
Alejandro Martín Garrido
1 2 Programación en Catia v5
geométricos... de Catia V5 son representados en Visual Basic como objetos con sus
propiedades y métodos.
Ejemplo:
Una propiedad es una parte del objeto que contribuirá a definir cómo es éste. Por
ejemplo, la propiedad FullName de un objeto tipo Document devuelve el nombre completo
(incluyendo la ubicación o path) del documento al que este apunta. En función del tipo de
objeto con el que estemos trabajando existirán propiedades que podrán modificarse y otras
que son de sólo lectura. Para trabajar con cualquier propiedad tenemos que apuntar al objeto
a la que ésta hace referencia.
Ejemplo:
Un método es una acción que se ejecuta sobre un objeto determinado. Así, el método
Save aplicado sobre un objeto tipo Document guarda el documento.
Midocumento.Save
Un método puede necesitar argumentos para que se ejecute, por ejemplo el método
SaveAs aplicado sobre un documento requiere la ubicación y el nombre con el que queremos
guardar dicho documento.
a) Método Sub: no devuelve ningún valor. Si un método Sub requiere argumentos estos
no deben ir entre paréntesis. La estructura general para usar este método es:
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 28
Alejandro Martín Garrido
1 2 Programación en Catia v5
Una colección es un tipo especial de objeto que contiene otros objetos de la misma clase,
por ejemplo una colección de documentos (Documents) contiene objetos del tipo Document
(documento). En general las colecciones se denotan en plural para distinguirlas de los objetos
individuales. Para acceder a cualquier elemento de una colección utilizamos el método Item
seguido del índice (posición del objeto dentro de la colección: 1,2…) o del nombre del objeto
que queremos obtener.
O bien:
Una de las herramientas principales que se van a utilizar para el desarrollo de macros o
scripts es la ayuda que ofrece Catia. En este aspecto, podemos encontrar todas las variables
que utiliza en lenguaje VBA, junto con descripciones de sus características, categoría,
funcionamiento, propiedades, métodos,… En definitiva, una completa biblioteca de uso
indispensable.
Además de contar con una valiosa información acerca de los objetos propios aplicados a
VBA, en la ayuda de Catia encontramos pequeñas guías de sus respectivos módulos. En ellas se
definen los conceptos básicos, las interactuaciones que realizan sus módulos y algunos
consejos para diseñar con mayor funcionalidad.
La ayuda se suministra a través de formato HTML, lo que facilita en cierta medida el acceso
a la misma. Sin embargo, la estructura de Catia en la que está basada la ayuda, no permite una
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 29
Alejandro Martín Garrido
1 2 Programación en Catia v5
búsqueda intuitiva de la información sino que nos obliga a navegar por una gran cantidad de
opciones y recursos hasta encontrar lo que deseamos.
Generalmente la mejor forma de interactuar con ella es a través del explorador. Una vez
realizada una búsqueda podemos seleccionar las entradas a partir bloque al que pertenecen.
Para nuestro trabajo, generalmente estaremos interesados en los módulos:
Programming Interface
Line (Object)
Role: Declare hybrid shape Line root feature object. All interfaces for different type of Line
derivates HybridShapeLine.
Property Index
Method Index
GetDirection Role: Returns the unit-vector pointing in the direction of the line.
PutDirection Role: Sets the unit-vector pointing in the direction of the line.
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 30
Alejandro Martín Garrido
1 2 Programación en Catia v5
Por otro lado, la información obtenida sobre las propiedades y métodos en la ayuda de
Catia generalmente puede ser encontrada en el editor de VB. Para ello sólo tenemos que
pulsar el botón del Object Browser (Examinador de Objetos) y buscar nuestro objeto o
método deseado. Sin embargo, la información obtenida de esta manera no nos da una visión
global del objeto y de cómo funciona. Para realizar una pequeña comparativa, en la imagen
podemos ver la información obtenida de la búsqueda del mismo objeto Line del párrafo
anterior:
Desde comienzos de la versión 5 de Catia, se ha dado soporte para editar con lenguaje
vbscript en lugar del utilizado entonces CATScript. Con ello, se ganó en compatibilidad aunque
se mantuvo la opción del lenguaje CATScript para no tener que rehacer el trabajo previo. Sin
embargo, conocer las diferencias entre los lenguajes CATScript (con cierta tendencia a la
obsolescencia) y VBA es necesaria puesto que una de las herramientas que nos va a permitir
ahorrar tiempo en nuestro proceso de programación está relacionada con el lenguaje
CATScript: El ‘grabador de macros’ de Catia (2.2.3)
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 31
Alejandro Martín Garrido
1 2 Programación en Catia v5
Por ello es necesario tener cuidado a la hora de generar código en CATScript para convertirlo
en código para VB/VBA.
iSize = strParam1.GetEnumerateValuesSize()
Redim myArray(iSize-1)
strParam.GetEnumerateValues myArray
For i = 0 To iSize-1
msgbox myArray(i)
Next
La solución sencilla es no definir en este caso la matriz, de modo que VB/VBA puedan
trabajar con ella según los requerimientos necesarios.
iSize = strParam1.GetEnumerateValuesSize()
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 32
Alejandro Martín Garrido
1 2 Programación en Catia v5
Redim myArray(iSize-1)
strParam.GetEnumerateValues myArray
For i = 0 To iSize-1
msgbox myArray(i)
Next
Las diferentes revisiones (releases) de Catia pueden dar problemas a la hora de funcionar
con macros. Esto ocurrirá si intentamos migrar un código realizado para una versión a otras. A
continuación se exponen algunos de los errores más que con más frecuencia pueden aparecer.
Dim oObjecto
oObjecto.DoThis
Se realizará una llamada vinculante, la cual hará que la descripción en la tabla de funciones
virtuales de oObject se volverá a crear a partir de la información disponible en la biblioteca de
tipos, describiéndose el tipo SpecificTypeOfObject con una llamada a la posición en la tabla en
vez de al tipo o método.
Si en una nueva release, el orden de los métodos en esta tabla virtual de funciones cambia
(puede ocurrir cuando se añaden nuevos métodos), la aplicación hará una llamada de método
equivocado llevando a un problema que es difícil de identificar.
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 33
Alejandro Martín Garrido
1 2 Programación en Catia v5
Typelibs Obsoletas
Para evitar esto, se debe abrir el VBA (Alt-F11) y utilizar el panel del menú de ítems
Tools/References. En este panel, se deselecciona la referencia concerniente a la biblioteca de
tipos y se hace clic en OK.
Este problema puedo también ocurrir en proyectos VBA que no tengan aplicaciones V5 o
VB6.
Hay una limitación conocida concerniente al uso del tipo Boolean en los procesos de
llamada de VBA a los procesos de V5 Automation. En las aplicaciones de V5, el tipo Boolean es
definido como un ‘unsigned char’ donde las definiciones de VBA son cortas. Cuando un
proceso de V5 se vuelve True, el valor integer devuelto es 1, aunque VBA está esperando que
sea -1. Debido a esta diferencia, el siguiente código VBA no funcionará como se esperaba
Por la misma razón, el método Not no puede ser aplicado directamente en el valor
devuelto por el mismo, puesto que devolverá True en vez de False.
Not(myObj.boolMethod())
Para usar este método habrá que almacenar el valor en una variable antes de aplicarlo:
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 34
Alejandro Martín Garrido
1 2 Programación en Catia v5
Para poder comenzar a desarrollar macros para Catia, además de tener ciertos
conocimientos básicos sobre, necesitamos conocer cómo aplicar ciertos procesos sencillos y el
entorno propio del editor.
Este tipo de archivo con extensión *.catvba es la colección o proyecto que almacena los
elemento programados. En él podemos encontrar formularios, módulos, funciones, clases,
colecciones... Básicamente todo aquello que podamos programar para el entorno de Catia.
Para cada proyecto en el que deseemos trabajar hay que crear un archivo catvba nuevo e
indicar a Catia que tiene que usarlo para encontrar los módulos en los que hemos trabajado. Al
igual que puede ocurrir con los otros archivos de Catia es fundamental que estén bien
localizados y en la misma ubicación, para su correcto funcionamiento.
Una Macro Library (biblioteca de macros) es un directorio donde las macros están
ubicadas. Es la aplicación del archivo catvba dentro del proceso de programación para Catia.
Utilizando la biblioteca de macos el usuario puede tener un acceso rápido a todas las macros
que contiene el archivo.
Para crear una biblioteca de macros tenemos que acceder a través de Tools > Macro >
Macros… Una vez seleccionado, nos aparece la lista de las bibliotecas que ya se encuentran
activadas en el registro de Catia (así como los diferentes módulos que la componen). Ahora,
seleccionando Macro Libraries… entramos finalmente en la ventana de opciones.
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 35
Alejandro Martín Garrido
1 2 Programación en Catia v5
Esta utilidad permite grabar en código fuente, de manera ordenada y automática, todas las
acciones que realicemos durante el tiempo que dure el proceso de grabación.
Pulsar sobre el botón Start y comenzamos a realizar las acciones en las que estamos
interesados.
Las opciones más importantes de este proceso están relacionadas con el paso ‘b’ anterior:
Dónde y cómo guardar la macro grabada. Para guardar la macro debemos seleccionar el menú
desplegable correspondiente a la casilla Current macro library or document de la Figura 2.5
Biblioteca de Proyectos y seleccionar el destino. Para ello las tres opciones que nos ofrece el
sistema son:
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 36
Alejandro Martín Garrido
1 2 Programación en Catia v5
Si bien es cierto que el Grabador de Macros es una herramienta muy potente, hay que
tener en cuenta que sólo sirve como base para el trabajo. Principalmente porque los
comandos almacenados sólo realizan las acciones en el mismo orden y con las mismas
llamadas siempre que se encuentren en la misma configuración. Es decir, copia las acciones en
el sentido más literal. Es responsabilidad del programador reordenar, configurar y crear las
llamadas oportunas para que el código cobre sentido y funcionalidad.
Para editar una macro vamos a utilizar el entorno de desarrollo integrado, también
conocido como Visual Basic Editor (Editor de Visual Basic). Este editor consta de diferentes
ventanas que nos permiten acceder fácilmente a las herramientas suministradas.
Para poder editar una macro, hay que conocer al menos las más importantes de ellas y las
opciones básicas que nos permiten. En este apartado vamos a dar una visión global de estos
elementos.
Project Explorer
La ventana del Project Explorer (Explorador del Proyecto) recoge todos los archivos que
componen el proyecto de programación en el que se está trabajando. Es decir, muestra qué
contiene el archivo catvba asociado (podríamos entenderlo como el explorador de nuestra
biblioteca del proyecto). En él podemos ver los diferentes módulos, formularios y clases que
componen el proyecto. Estos elementos pueden a su vez ser exportados o importados a través
de archivos que se añaden al proyecto.
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 37
Alejandro Martín Garrido
1 2 Programación en Catia v5
Properties Window
Ventana de Código
Es la ventana en la que se van a guardar las líneas de comandos de nuestro código. Posee
la capacidad de colorear las letras de forma automática para poder distinguir con cierta
facilidad las características de la estructura del código.
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 38
Alejandro Martín Garrido
1 2 Programación en Catia v5
Todos los elementos anteriores tienen las características comunes de los editores de
programación en VBA. Por ello, una persona acostumbrada a programar en este lenguaje lo
encontrará familiar. Para los usuarios nuevos, es además un sistema intuitivo en el que con un
poco de práctica podemos hacer las primeras aplicaciones.
Catia nos da la oportunidad de utilizar el Microsoft Script Debbugger. Este programa nos
permite utilizar el depurador de errores cuando se encuentre una orden de ‘Stop’ en el
programa o cuando se encuentre un error.
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 39
Alejandro Martín Garrido
1 2 Programación en Catia v5
A la hora de ejecutar una macro previamente creada, tenemos que acceder a la misma de
la siguiente manera:
En el caso de que exista el error, siempre que Catia pueda detectarlo nos ofrecerá
información relacionada con el mismo, de manera que facilita nuestra corrección.
Hay otros métodos que permiten, a través de código o ejecución de comandos, activar una
macro. La finalidad de este proyecto es poder dar una mayor facilidad al usuario, por lo que se
propone utilizar un método más sencillo a la vez que familiar: La ejecución a través de iconos
en las barras de herramientas.
Para realizar este proceso tenemos que asegurarnos primero de que la macro va a ser
reconocida por CATIA. Para ello comprobamos que está incluida en alguna biblioteca:
Seleccionar
Tools > Macro >
Macros…
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 40
Alejandro Martín Garrido
1 2 Programación en Catia v5
Una vez que hemos comprobado que está y que su ruta es correcta comenzamos el
proceso para crear el icono.
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 41
Alejandro Martín Garrido