2 programación en catia v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_programación+en... ·...

17
Programación en Catia v5 25 2 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 2 Programación en CATIA v5. En este capítulo se pretende dar una idea general del entorno de programación Visual Basic for Applications en el software de Catia v5.

Upload: vandiep

Post on 10-Mar-2018

230 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

25

2

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

Alejandro Martín Garrido

2 Programación en CATIA v5.

En este capítulo se pretende dar una idea general del

entorno de programación Visual Basic for Applications en

el software de Catia v5.

Page 2: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

26

2

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

Alejandro Martín Garrido

2.1 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.

Una de las herramientas es la programación en VBA y al plantearnos el desarrollo y uso de

esta opción, estamos persiguiendo dos objetivos principales:

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).

A continuación se van a exponer algunos de los conceptos y principios que integran la

programación en VBA para Catia.

2.1.1 El entorno de programación para VB

Entorno de Desarrollo Integrado (Integrated Development Enviroment IDE) Se llama de

esta manera a la aplicación que ayuda al desarrollador de software. Consiste en un editor de

código, un analizador de fallos, herramientas de construcción automáticas, un visualizador de

objetos y un compilador. El IDE de Catia nos permite además acceder a la biblioteca de objetos

propios. De cómo usar este entorno se hablará posteriormente en el apartado 2.2.4.

Figura 2.1 Entorno de Desarrollo Integrado de Catia v5

Page 3: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

27

2

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

Alejandro Martín Garrido

Interfaz Gráfica de Usuario (Graphical User Interface GUI) Es el conjunto de elementos

gráficos que permite a las personas interactuar con la computadora. Estos elementos son los

que comúnmente son susceptibles de interactuar a través de un ratón, tales como ventanas,

iconos, barras de herramientas, etc. Nuestro sistema llevará formularios que hagan las veces

de GUI al pedir al usuario cierta información.

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.

2.1.2 La configuración de Catia

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.

En Tools > Options encontramos el formulario de opciones de Catia. En el apartado

General > Macros seleccionamos el tipo de lenguaje que necesitemos para la creación del

código de programación. En nuestro caso optaremos por la opción MS VBA – Visual Basic

Editor.

2.1.3 Los objetos de Catia

El lenguaje de programación Visual Basic está basado en objetos, es decir, la mayoría de

las entidades a las que podemos acceder a través de él son otros objetos. Elementos tales

como documentos, ventanas gráficas, Bodies, Pads, Sketches, planos, líneas, puntos

Figura 2.2 Opciones de Lenguaje de Macros

Page 4: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

28

2

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

Alejandro Martín Garrido

geométricos... de Catia V5 son representados en Visual Basic como objetos con sus

propiedades y métodos.

Ejemplo:

Dim MiDocumento As Document 'Declaramos un objeto tipo Document_

(documento).

Set MiDocumento = Catia.ActiveDocument „Lo definimos como el_

documento activo.

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:

Dim NombreDoc As String 'Declaramos una variable tipo String

NombreDoc = Midocumento.FullName „Devuelve una cadena del tipo_

“C:\PFC_Temp\Dr2_2.CATDrawing”

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.

Midocumento.SaveAs “C:\PFC_Temp\NombrePrueba.CATDrawing” „Guarda el_

documento como NombrePrueba en C:\PFC_Temp

Distinguiremos dos tipos distintos de métodos:

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:

Objeto.Sub argumento1, argumento2 , argumento3, …

b) Método Función: devuelve un valor o un objeto. Si un método Función requiere

argumentos estos deben ir entre paréntesis. La estructura general a utilizar es:

Objeto.Función (argumento1, argumento2 , argumento3, …)

La partícula Set se emplea solamente si el valor devuelto es un objeto y no una cadena de

caracteres o un número (variables tipo String, Boolean, Double, Integer). En el caso de que el

valor devuelto sea almacenado como una propiedad de otro objeto no debemos usar dicha

partícula. La estructura general de uso es:

Page 5: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

29

2

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

Alejandro Martín Garrido

Set ObjetoDevuelto = ObjetoOrigen.Funcion (arg1,arg2,arg3,…)

ObjetoDestino.Propiedad = ObjetoOrigen.Funcion (arg1,arg2,arg3,…)

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.

Dim oDocS As Documents 'Declaramos una colección tipo Documents

Set oDocS = Catia.Documents „Establecemos esta colección igual a la_

activa de Catia

Dim oDoc1 As Document 'Declaramos un objeto tipo Document

Set oDoc1 = oDocoS.Item(2) „ lo igualamos al segundo documento de la_

colección documentos

O bien:

Set Documento1 = documentos.Item(“NombrePrueba.CATDrawing”) „siendo

“NombrePrueba.CATDrawing” el nombre exacto

Para obtener el número de objetos contenidos en cualquier tipo de colección utilizamos la

propiedad Count asociada a dicha colección. La estructura general para usar esta propiedad es:

Dim NumElem As Integer 'Declaramos una variable de tipo entero

NumElem = Coleccion.Count „Se iguala al número de documentos de la_

colección

Comprendiendo el funcionamiento interno de estos objetos, métodos y colecciones

podemos realizar prácticamente todas las accionas que un diseñador hace mientras que

‘mueve el ratón’ a través de código programado. Sin embargo, poder repetir acciones no

obtiene nuevos diseños mejorados ni conceptos estéticos.

2.1.4 Ayuda de Catia

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

Page 6: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

30

2

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

Alejandro Martín Garrido

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

DMU Navigator Journaling Task

Infrastructure Journaling Objects

A continuación podemos ver un ejemplo resumido de la información obtenida a través de

la ayuda de Catia para el objeto Line:

Figura 2.3 Ayuda de Catia

Line (Object)

Represents the hybrid shape Line feature object.

Role: Declare hybrid shape Line root feature object. All interfaces for different type of Line

derivates HybridShapeLine.

Property Index

FirstUptoElem Role: Gets the First upto element of the line.

SecondUptoElem Role: Gets the Second upto element of the line.

Method Index

GetDirection Role: Returns the unit-vector pointing in the direction of the line.

GetOrigin Role: Returns the origin of the line.

PutDirection Role: Sets the unit-vector pointing in the direction of the line.

Page 7: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

31

2

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

Alejandro Martín Garrido

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:

2.1.5 Compatibilidad entre lenguajes

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)

Conversión de CATScript a VB/VBA

En general, no debería de haber problemas al utilizar el código extraído de un CATScript

(así es como lo obtenemos después de grabar una macro) al usarlo para un proyecto VB/VBA.

Sin embargo, algunos procesos de escritura son incompatibles entre el BasicScript y el código

en VBA.

Figura 2.4 Explorador de Objetos

Page 8: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

32

2

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

Alejandro Martín Garrido

Normalmente cuando un método devuelve un objeto abstracto, el BasicScript considera a

la variable en la que el objeto va a ser almacenado del tipo necesario sin tener que ser

declarada específicamente. De esta manera, se pueden utilizar ciertas propiedades y métodos

dentro de una variable general que englobe a otra específica.

Dim oDoc As Document

Set oDoc = CATIA.ActiveDocument „Devuelve un Documento genérico

Dim oParte As Part

Set oParte = oDoc.Part „Asocia oDoc (documento genérico) a uno tipo_

Part

En cambio, en VB/VBA no es posible hacerlo de esta manera, hay que especificar

correctamente cada variable dentro de su objeto. De manera que el sistema no tenga que

‘averiguar’ cuál es la naturaleza del mismo.

Dim oDoc As PartDocument

Set oDoc = CATIA.ActiveDocument „Devuelve un Documento tipo_

PartDocument

Dim oParte As Part

Set oParte = oDoc.Part „Asocia oDoc (PartDocument) a uno tipo Part

Por ello es necesario tener cuidado a la hora de generar código en CATScript para convertirlo

en código para VB/VBA.

Trabajar con matrices de parámetros

Es necesario tener cuidado a la hora de trabajar con matrices de parámetros ya que

algunas definiciones pueden hacer que sus métodos no funcionen correctamente. Esto es

debido a que generalmente, definiciones provenientes de BasicScript, pueden tener múltiples

tipos de valores dentro de una matriz. Cuando se comete este tipo de error, el lenguaje

VB/VBA no es capaz de trabajar con los tipos de definiciones que soporta BasicScript.

Dim strParam1 As StrParam

Set strParam1 = parameters1.Item(“STRING”)

iSize = strParam1.GetEnumerateValuesSize()

Redim myArray(iSize-1)

strParam.GetEnumerateValues myArray

For i = 0 To iSize-1

msgbox myArray(i)

Next

Generalmente este error conlleva un mensaje de error del tipo:

Function or interface marked as restricted, or the function uses an

automation type not supported by Visual Basic.

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.

Dim strParam1 ' As StrParam -

Set strParam1 = parameters1.Item(“STRING”)

iSize = strParam1.GetEnumerateValuesSize()

Page 9: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

33

2

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

Alejandro Martín Garrido

Redim myArray(iSize-1)

strParam.GetEnumerateValues myArray

For i = 0 To iSize-1

msgbox myArray(i)

Next

2.1.6 Compatibilidad entre releases

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.

Tablas de Funciones Virtuales

Al cambiar la revisión, la biblioteca de objetos propios de Catia puede verse modificada de

manera que un objeto varíe sus propiedades o el orden de éstas. El origen de este problema

está en cómo se llama a los métodos por parte de VB/VBA. Si se realiza una llamada con la

implementación Invoke cuando no se ha especificado el tipo de objeto, el sistema busca este

método entre los posibles y lo activa.

Dim oObjecto

oObjecto.DoThis

Sin embargo, al definir el objeto y variar debido al cambio de revisión:

Dim oObjecto As SpecificTypeOfObject

oObjecto.DoThat

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.

Además, la descripción extraída por VB/VBA de la biblioteca de tipos no suele estar

siempre actualizada cuando ésta cambia. Esto quiere decir que recompilar el proyecto puede

no corregir un problema. A continuación se muestra el método que puede solucionar este

problema:

Abrir el proyecto VB o VBA

Eliminar todas las referencias a la biblioteca de tipos de V5 utilizando el

Project/References o los ítems del menú Tools/References

Guardar y cerrar el proyecto

Reabrir el proyecto y añadir de nuevo las referencias necesarias

Page 10: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

34

2

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

Alejandro Martín Garrido

Typelibs Obsoletas

Algunas bibliotecas de tipos pueden quedarse obsoletas y desaparecer con el lanzamiento

de una nueva release. Si los derechos de acceso permiten modificar el registro de Windows, las

referencias a esas bibliotecas serán automáticamente eliminadas cuando se abra el archivo

CATVBA. Si este no es el caso, el siguiente mensaje podría aparecer cuando se abre el macro:

CNEXT CATScriptError Message Scripting ERR_1000

Execute the script “XXXXX” |XXXXX = The script entry point could not

be found.

XXXXX Define a “CATMain” procedure which will be the entry point of

the script

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.

Aceptación de la variable Boolean en CATVBA

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

If myObj.boolMethod() = True Then // This test will fail...End If

Para corregir este problema, se debe escribir el código de la siguiente forma:

If myObj.boolMethod() Then End If

O bien de la siguiente manera:

If myObj.boolMethod() != False Then ...End If

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:

Dim myBoolmyBool = myObj.boolMethod()Not(myBool)

Page 11: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

35

2

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

Alejandro Martín Garrido

2.2 Comenzando la creación de macros

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.

A continuación se propone una pequeña muestra descriptiva de algunos de los procesos y

elementos más relevantes.

2.2.1 El archivo catvba y las Bibliotecas de Macros

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.

2.2.2 Crear una Biblioteca de Macros

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.

Figura 2.5 Biblioteca de Proyectos

Page 12: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

36

2

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

Alejandro Martín Garrido

En esta ventana podremos seleccionar bibliotecas ya existentes (importarlas), crear nuevas

o borrar alguna previa. Además podremos elegir el tipo de biblioteca que vamos a realizar. En

nuestro caso seleccionaremos VBA projects lo cual creará el archivo catvba asociado a este tipo

de biblioteca.

2.2.3 Grabar una macro

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.

Para grabar una macro deberemos proceder de la siguiente forma:

Seleccionar Tools > Macro > Start Recording…

Seleccionar la biblioteca (directorio o proyecto VBA) o el documento (CATPart,

CATDrawing, CATProduct,…) donde queremos guardar la macro.

Pulsar sobre el botón Start y comenzamos a realizar las acciones en las que estamos

interesados.

Finalmente, cuando hayamos terminado pulsamos el botón ‘Stop’ (que ha

aparecido previamente). Para encontrar la macro grabada, en el editor

encontraremos un nuevo módulo con las líneas de comandos.

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:

Vinculada a alguno de los documentos abiertos de Catia (sólo en lenguaje Catscript o

Vbscript). Relaciona dicho documento y el fichero que contiene la macro.

Almacenar la macro dentro de un directorio existente (lenguaje Catscript y Vbscript).

Figura 2.6 Menú de grabación de Macros

Page 13: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

37

2

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

Alejandro Martín Garrido

Almacenar la macro como un módulo dentro de un proyecto de VBA existente (solo

válido para el lenguaje VBA). Esta opción es la más útil para este proyecto puesto que

permite trabajar directamente con la información en el entorno de trabajo de VBA.

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.

2.2.4 Editar una macro

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.

Los módulos son los son programas o

rutinas independientes y se guardan para

su exportación en ficheros con extensión

BAS.

Los formularios son rutinas asociados

a ventanas gráficas donde se incorporan

objetos y eventos, si se desean exportar se

almacenan con extensión FRM.

Las clases son las definiciones de

nuevos objetos donde se encuentran las

propiedades y eventos de los mismos, a su

vez son almacenadas como CLS.

Figura 2.7 Ventana del explorador de Proyecto

Page 14: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

38

2

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

Alejandro Martín Garrido

Properties Window

La Ventana de Propiedades refleja en una

columna todas las propiedades del formulario que

se encuentre activado, en ese momento, en la

ventana de propiedades. Estas propiedades

pueden modificarse para conseguir la

configuración deseada de los elementos que

componen el formulario.

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.

Además de estos elementos, encontramos el anteriormente comentado Object Browser y

las diferentes barras de herramientas:

Figura 2.8 Ventana de Propiedades

Figura 2.9 Ventana de Código

Page 15: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

39

2

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

Alejandro Martín Garrido

Standard Contiene los botones comúnmente utilizados. Con ella casi no es

necesario trabajar con las otras.

Debug Muestras las herramientas para encontrar los errores en el código.

Edit Ofrece las herramientas de edición del texto.

UserForm Facilita las acciones para editar el formulario de manera gráfica.

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.

2.2.5 Script Debugger

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.

Además ofrece información relativa al error ocurrido y a la ubicación de la línea de

comandos en el texto, por lo que es una herramienta fundamental para solucionar posibles

problemas de forma rápida y eficiente.

Figura 2.10 Mensaje de Error generado por el Script Debugger

Page 16: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

40

2

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

Alejandro Martín Garrido

2.2.6 Ejecutar una macro

A la hora de ejecutar una macro previamente creada, tenemos que acceder a la misma de

la siguiente manera:

1.- Seleccionar [Tools > Macro > Macros]

2.- Seleccionar la macro deseada y pulsar el botón [Run]

Si la macro no tiene ningún error de edición (es nuestra responsabilidad no involucrarla en

un bucle infinito), se puede observar los resultados de la misma tras su ejecución.

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.

2.2.7 Añadir una macro a la barra de herramientas

Se puede añadir un icono a la barra de herramientas de manera que al pulsarlo active

inmediatamente la macro. Esto es de gran utilidad para los usuarios que desconocen qué se

encuentra detrás del icono y sólo quieren utilizar la herramienta proporcionada. Además

permite la opción de tener una gran cantidad de macros organizadas según la funcionalidad

deseada, consiguiendo así un mayor nivel de eficacia.

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…

Figura 2.11 Biblioteca de Módulos

Page 17: 2 Programación en CATIA v5.bibing.us.es/proyectos/abreproy/60198/fichero/2_Programación+en... · 1 2 Programación en Catia v5 27 Alejandro Martín Garrido Aplicación para la generación

1 Programación en Catia v5

41

2

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

Alejandro Martín Garrido

Una vez que hemos comprobado que está y que su ruta es correcta comenzamos el

proceso para crear el icono.

Vaya a Tools > Customize…, luego en la pestaña de Comands seleccione ‘Macros’

Pinche la macro seleccionada y arrástrela a la barra de herramientas donde quiera

que esté disponible. Aparecerá un icono con la forma genérica.

Se pueden cambiar las propiedades del icono, el nombre, el formato… en el botón de

propiedades.

Adicionalmente podemos crear barras de herramientas para que contengan un conjunto

de botones asociados a las macros que desarrollemos. Esto se realiza en cada entorno de

trabajo a través de las diferentes opciones de Tools > Customize > Toolbars y seleccionando en

New. Finalmente, para asignar botones a esta barra de herramientas seleccionamos Add

Commands.