4. aplicación auto draw: guía del...

23
Aplicación Auto_Draw: Guía del Programador 60 4 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 4. Aplicación Auto_Draw: Guía del Programador En este capítulo se explica el desarrollo de la aplicación a nivel de programación: Su estructura, funcionamiento y características de los módulos que la componen.

Upload: others

Post on 07-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

60

4

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

4. Aplicación Auto_Draw: Guía del Programador

En este capítulo se explica el desarrollo de la aplicación a

nivel de programación: Su estructura, funcionamiento y

características de los módulos que la componen.

Page 2: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

61

4

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

4.1. La aplicación Auto_Draw

La aplicación objeto de este proyecto se ha llamado Auto_Draw, forma acortada del inglés

Automatized Drawings (Dibujos Automatizados). Como su nombre indica y se ha explicado con

anterioridad, esta aplicación tiene como propósito principal conseguir generar una serie de

planos en formato CATDrawing bajo unas configuraciones específicas dadas por el usuario.

Basándonos en el aprendizaje realizado en el lenguaje VBA y en su aplicación específica

para el software Catia, en este capítulo vamos a desarrollar la propuesta final de programación

a la que se ha llegado. Por ello, además de explicar el estado último del código, vamos a

intentar dar un pequeño resumen de cómo se ha desarrollado éste y de las decisiones

tomadas.

Para comprender mejor la aplicación, en el siguiente capítulo se recoge el uso y la

funcionalidad de ella. En él se podrá comprender qué cosas podemos obtener de él y cómo

conseguirlas. Por esto mismo, este capítulo va cumplimentado con el siguiente.

Para facilitar la lectura, no se muestra todo el código empleado para la realización,

pudiendo ser consultado éste en el Anexo I de este proyecto.

4.2. Estructura

A nivel estructural la aplicación está dividida en dos categorías: Estructura del Proceso y

Estructura en el Entorno de Catia.

Estructura del proceso: En esta categoría estamos refiriéndonos a las relaciones

de dependencia y llamadas que se establecen entre los diferentes módulos de

trabajo. Además, aquí se incluyen el porqué de un orden, su funcionalidad y

naturaleza. Se pone de manifiesto el aspecto de programación más relacionado

con el lenguaje VBA.

Estructura en el entorno de Catia: En esta otra categoría, nos centramos en la

aplicación de los diferentes módulos y su relación con el software sonde se

desarrolla. Como se ha explicado anteriormente, si se entiende Catia como un

conjunto ensamblado de módulos estaríamos estudiando el código desde el punto

de vista de los tres grupos descritos anteriormente: Assembly Design, Part Design y

Drafting. En este caso, estudiamos la estructura de la aplicación con las

particularidades propias asociadas a cada módulo de Catia.

Page 3: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

62

4

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

4.2.1. Estructura del Proceso

A continuación vamos a desarrollar el funcionamiento del código basándonos en el

Diagrama 4.1 Estructura de la aplicación.4

Formulario de Control y Configuración A_Draw.form

El código está controlado por un formulario de control y configuración al que se accede

tras ejecutar el módulo de llamada A_Draw.

A nivel de configuración, el formulario requiere interactuación con el usuario para poder

establecerla desde dos niveles:

a) Configuración pasiva: El formulario accede a unos datos guardados en un archivo de

configuración TXT a través del módulo Lect_Txt. Este módulo puede ser modificado

por el usuario siguiendo las premisas del apdo. 5.2.3.

b) Configuración activa: En el formulario el usuario encuentra opciones por defecto que

puede modificar. Incluye la opción de carpeta de destino para los archivos a través del

módulo Cam_Dir.

Desde el punto de vista de control el formulario establece la lista de piezas que son objeto

de la aplicación. Para ello requiere que el usuario le indique el archivo de trabajo y gestiona la

lista a través del módulo L_Part.

Una vez que se obtiene la configuración y la lista de piezas tenemos resueltas las

preguntas de a qué le vamos a generar planos y cómo se van a generar.

Bucle de Generación de Planos y Detalles

Con la información generada anteriormente, se comienza un bucle que nos va a generar

los diferentes planos de cada pieza uno a uno. El control de este proceso está englobado

dentro del formulario.

Para ello, el bucle hace uso de la lista de piezas generada anteriormente y le aplica a cada

una de ellas el módulo A_Dra que requiere para su funcionamiento tanto una pieza como la

configuración suministrada.

A_Dra

Este módulo al que se llama repetidas veces contiene el grueso de la codificación para

generar los planos. A su vez está dividido en tres partes relacionadas entre ellas: Generación

de variables propias de cada pieza, realización de los planos y generación de archivos.

4 En este desarrollo se han utilizado los nombres de programación de los módulos. Más

adelante se detalla el uso que tiene cada uno y el nombre desarrollado.

Page 4: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

63

4

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

Generación de variables de la pieza

Cada pieza tiene propiedades geométricas diferentes, es por ello que la escala a aplicar a

cada plano será diferente según cada pieza. Para realizar este cálculo, hace uso del módulo

F_Esc que a su vez llama al módulo An_BB.

Adicionalmente puede ser requerido el análisis de los ejes principales de Inercia de la pieza

para el desarrollo del dibujo. Esto re realiza a través del módulo Ej_Pri.

Realización de los planos

Para la creación de los planos, se utilizan dos módulos diferentes que trabajan a en

diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario y la

información proveniente de las variables propias de la pieza. En cambio, el módulo Dr_Back

trabaja para rellenar el cajetín del dibujo a partir de la información proveniente del formulario.

Diagrama 4.1 Estructura de la aplicación

Page 5: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

64

4

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

Generación de archivos

A su vez, el módulo A_Dra genera los archivos CATDrawing necesarios en cada bucle.

Según las especificaciones del usuario, también puede exportar el documento en los formatos

PDF y DWG.

Finalización del Proceso

Tras realizarse el proceso anterior, el formulario (que ha permanecido oculto) finaliza su

trabajo y avisa al usuario de la finalización, dando como salidas finales los archivos creados en

la carpeta especificada con la configuración deseada por el usuario.

4.2.2. Entorno de trabajo de los módulos

En el apartado anterior se ha descrito la estructura de dependencia de los diferentes

módulos. Ahora vamos a intentar contextualizar el trabajo de cada uno de ellos dentro de los

entornos de trabajo de Catia. En la aplicación tenemos tres entornos específicos y un cuarto

general asociado al desarrollo de la aplicación.

General

Desde cualquier workbench de Catia vamos a poder ejecutar nuestra aplicación si

desarrollamos los pasos descritos en el apdo. 5.2.2. Se han englobado dentro de este entorno

los módulos que gestionan el programa y su configuración. Estos módulos son los siguientes:

A_Draw que llama al formulario A_Draw.form.

A_Draw.form Este formulario, que no es un módulo propiamente hablando,

controla el proceso por completo y posee código de programación.

Cam_Dir que permite el cambio del directorio de los archivos de salida.

Lect_Txt que permite la lectura del archivo de preconfiguración TXT.

Módulo Assembly Design

Al ser este entorno un gestor de posicionamiento y de la estructura de los productos, la

interacción que ofrece a nivel de programación es relativamente pequeña. Por ello, sólo

contamos con el módulo L_Part que genera la lista de piezas.

Módulo Part Design

En este entorno trabajamos para obtener características geométricas aplicables al dibujo

en el plano. Debido al enfoque que tiene nuestra aplicación no se desarrolla el potencial de

Page 6: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

65

4

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

este entorno sino que nos valemos de él para mejorar nuestra experiencia. Los módulos

asociados son:

Ej_Pri que calcula la matriz principal de los ejes de Inercia de la pieza.

F_Esc que calcula el valor aplicable de la escala al plano para una pieza

determinada. Se vale del módulo An_BB.

An_BB que utilizando funcionalidades de Catia calcula el prisma que engloba a la

pieza.

Módulo Drafting

Este entrono gestionado a través del formulario, posee tres módulos que se encargan de

realizar las llamadas a los relacionados con el entorno de Part Design, de dibujar los planos y

de crear los archivos de salida correspondientes. Para ello utiliza:

A_Dra es el módulo principal de creación de los archivos y de gestión de las

variables y funciones. En él se encuentran contenidos los otros dos.

Dib que se centra en dibujar las vistas aplicables de la pieza.

Dr_Back que es el encargado de rellenar de forma automatizada el cajetín de

encuadre.

4.3. Módulos

A continuación se explican los módulos desarrollados, las decisiones de programación y su

funcionamiento. La idea principal a la hora de programar los diferentes módulos ha sido que

realicen tareas cerradas. De esta forma, se ha pretendido conseguir que tengan un mayor

sentido las acciones y llamadas entre ellos, así como el mejor entendimiento del código en

general.

Cada módulo contiene una pequeña explicación de su funcionamiento, un diagrama

explicativo de los diferentes procesos y llamadas que realiza y una tabla con las variables que

necesita, suministra y cómo las gestiona.

Además, en el Anexo I Código de la Aplicación se encuentran comentados los códigos de

cada uno de los módulos para un entendimiento más profundo de las decisiones de

programación.

Page 7: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

66

4

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

4.3.1. Módulos Asociados al Desarrollo de la Aplicación

AUTO_DRAW

Auto Drawing (Dibujo Automatizado)

Es el módulo que permite ejecutar un comando en el sistema

de CATIA para lanzar la aplicación a través del botón de inicio o a

través de la orden ‘c: Auto_Draw’. Trabaja como inicializador del

programa ya que Catia no permite ejecutar de forma directa un

formulario.

Código de Auto_Draw

Entrada Procesos Internos Salidas

No tiene entradas Ejecuta el formulario A_Dra_Form

No tiene salidas

Tabla 4.1 Módulo Auto_Draw

A_DRA_FORM

Auto Drawing Form (Formulario de dibujo automatizado)

Este formulario es el controlador tanto de la gestión de los procesos a nivel global como de

la configuración de los mismos. Dentro de la naturaleza de su codificación, podemos decir que

es el objeto con más parecido a una aplicación propia de Visual Basic puesto que no utiliza

características de la programación específica de Catia.

A través de las diferentes llamadas que realiza, controla todos los módulos implicados en

la realización de los planos (exceptuando al anterior que únicamente sirve para que un usuario

pueda lanzar la aplicación desde un botón dentro de cualquier entorno de Catia).

Para interactuar con el formulario de la forma más precisa según nuestras necesidades se

puede encontrar información más detallada en el apdo. 5.3.2. de este documento.

Al ser un formulario su naturaleza no responde de la misma manera que la de un módulo

puesto que requiere de una mayor interacción por parte del usuario. Se ha intentado reducir

esta interacción para poder disminuir el tiempo de trabajo.

El formulario está compuesto por tres eventos principales:

Carga del formulario con una configuración de variables predeterminada.

Botón Cancelar: Lanza un mensaje de aviso para finalizar el proceso.

Botón Aceptar: Continúa con la aplicación si se cumplen los requisitos necesarios.

Diagrama 4.2 Auto_Draw

Page 8: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

67

4

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

Diagrama 4.3 A_Dra.form

Page 9: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

68

4

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

Evento ‘Aceptar’

Una vez cargado el formulario y antes de continuar se nos presentan las diferentes

opciones de configuración que nos permiten interactuar con los módulos que soportan el

desarrollo de la aplicación. Para ello se han dividido estas opciones de la siguiente manera:

a) Opciones de Archivo(s)

a.1 Exportación

En el formulario se permite la opción de elegir si se quiere exportar a los formatos DWG o

PDF. Para ello utiliza variables booleanas controladas por OptionButtons. El valor de estas

variables es utilizado por A_Dra para la realización de la exportación (es una característica

opcional).

Dim Bo_pdf As Boolean Dim Bo_dwg As Boolean

a.2 Localización de los archivos generados

Se ofrece la opción de seleccionar el directorio de salida aunque haya uno por defecto. En

este directorio se guardan todos los archivos generados (los CATDrawing de cada pieza, así

como sus correspondientes PDF o DWG según se haya seleccionado).

Se activa mediante un CommandButton que ejecuta el módulo Cam_Dir y guarda la ruta

suministrada en una variable de texto (es una característica opcional).

Private Sub CommandButton5_Click()

Dim ruta As String

ruta = Ob_Dir

TextBox9.Text = ruta & "\"

End Sub

Figura 4.1 Formulario de Control y Configuración

Page 10: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

69

4

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) Opciones del dibujo

b.1 Tamaño de hoja

El tamaño de la hoja conlleva un cambio de formato en el documento de salida, no sólo

por el tamaño propiamente hablando sino también porque el formato A4 tiene orientación

vertical y el A3 apaisada.

Esta opción se controla por medio de una variable booleana que sirve para determinar el

valor de la escala al proporcionar el tamaño de la hoja. Además esta variable está asociada a su

vez a un pequeño bucle del que se obtiene una cadena de caracteres que llevará la

información de la ruta el documento base del dibujo (variable UbiDra).

Dim Bo_th As Boolean

Bo_th = OptionButton1.Value

If Bo_th = False Then

UbiDra = "C:\CATIA_Macros\Dr_A3.CATDrawing"

Else

UbiDra = "C:\CATIA_Macros\Dr_A4.CATDrawing"

End If

b.2 Sistema de ejes de referencia

Debido a la naturaleza de la propia programación, se dan dos posible opciones no

excluyentes para seleccionar los ejes del dibujo (acerca de estas opciones se habla más

adelante a lo largo de este documento).

Para ello se establecen dos CheckBox y un pequeño control de seguridad que verifique que

al menos uno de los sistemas ha sido seleccionado. Si se seleccionan ambos generaremos una

pareja de archivos por cada pieza trabajada (al igual que con sus exportaciones).

Dim Ej_Pr As Boolean

Dim Ej_In As Boolean

Ej_Pr = CheckBox1.Value

Ej_In = CheckBox2.Value

b.3 Generación automática de medidas

Esta opción permite que se utilicen las medidas del modelo 3D para realizar cotas en el

dibujo. Se controla a través de una variable booleana y un OptionButton.

Dim Bo_GenA As Boolean

b.4 Datos del Cajetín

Como se ha comentado anteriormente, los datos preconfigurados se obtienen a través de

la ejecución automatizada del módulo Lect_Text (de aquí se obtiene la matriz precon). Ahora

bien, en cualquier momento un usuario puede querer variar esta información por lo que se

han establecido una serie de 8 TextBox con restricción de caracteres para que rellenen los

campos del cajetín (Son independientes del tamaño de la hoja).

TextBox1.Text = Left(precon(0), 21)

TextBox1.MaxLength = 21

Page 11: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

70

4

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 relleno con nuestros requisitos el formulario, si continuamos en el botón ‘Aceptar’

el formulario anterior desaparecerá y la aplicación nos pedirá que seleccionemos el archivo

(CATPart o CATProduct) al que queremos generarle los planos consecuentes.

Tras elegir el archivo, éste se abrirá y el sistema establecerá la lista de Parts a los que se les

crearán los planos asociados gracias al módulo L_Part (DirPartm). Una vez establecida esta

lista se cerrará el archivo de modo que durante el trabajo de la aplicación se trabaje con una

pieza cada vez. Así se evita la sobrecarga de memoria de la computadora y un eventual fallo

por falta de capacidad en la RAM.

Finalmente se establece un bucle que recorre la matriz con las diferentes piezas

designadas y les aplica el módulo generador de los planos A_Dra.

For i = 0 To UBound(DirPartm)

DirPart = DirPartm(i)

Call A_Dra.A_Dra(DirPart, UbiDra, Bo_th, TextBox1.Text,

TextBox2.Text, TextBox3.Text, TextBox4.Text, TextBox5.Text,

TextBox6.Text, TextBox7.Text, TextBox8.Text, Ej_In, Ej_Pr,

Bo_pdf, Bo_dwg, Bo_GenA, TextBox9.Text)

Next

Al finalizar este evento, un mensaje de aviso nos indica del éxito de la aplicación y ya

podremos encontrar todos los documentos generados en la carpeta indicada.

Código de A_Dra_Form

Entrada Procesos Internos Salidas

Configuración del cajetín

Por archivo TXT

Manual

Al cargar

Lectura del archivo (TXT) para la configuración del cajetín.

Archivo(s) generado(s)

Configuración del plano

Tamaño (A4/A3)

Orientación de los ejes

Documentos de exportación (PDF/DWG)

Generación de medidas

Botón Aceptar

Establecimiento de las variables booleanas.

Archivo de trabajo (CATPart / CATProduct)

Establecimiento de las variables string

Carga del Document

Creación de la lista de partes

Bucle para aplicar A_Dra a la lista de partes

Botón Cancelar

Se cierra la aplicación

Tabla 4.2 Formulario A_Draw_Form

Page 12: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

71

4

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

LECT_TEXT

Lectura del archivo de texto

Permite que el formulario acceda a la información contenida en el archivo TXT de

configuración. Funciona leyendo todo el texto (Dim olin As String) y separando las

entradas a partir de los separadores que se le indiquen (lineas = Split(olin, " ; ")).

Se ha tratado como una función porque devuelve una matriz de datos en la que cada

entrada corresponde con un TextBox diferente. Usa funciones propias de VBA para leer el

código y establecer el formato:

Open otxtruta For Binary As #1

Line Input #1, olin

Código de Lect_Text

Entrada Procesos Internos Salidas

No tiene entradas Realiza la lectura del archivo TXT de preconfiguración.

L_txt() As String()

Analiza si la lectura ha sido correcta y avisa en caso de fallo.

Crea una variable tipo String que contiene en cada una de sus entradas la información de los Text_Boxs del formulario.

Tabla 4.3 Módulo Lect_Text

Diagrama 4.4 Lect_Txt

Page 13: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

72

4

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

CAM_DIR

Cambiar directorio de salida

Con este módulo se da acceso al usuario a que navegue por el sistema de archivos para

que indique la ruta donde se desean ubicar los planos generados.

Para ello utiliza funciones y métodos generales de VBA que interactúan con los programas

que los soportan. Utiliza la función CreateObject y llama a la aplicación de Windows Shell32

("shell.application") para abrir el visualizador de las carpetas:

Dir_G = .BrowseForFolder(0, Titulo, 0, "c:").Items.Item.Path

Código de Cam_Dir

Entrada Procesos Internos Salidas

No tiene entradas Realiza las llamadas al explorador para que el usuario especifique un directorio para los archivos generados.

Ob_Dir() As String

Analiza si el proceso ha sido correcto y avisa en caso de fallo.

Genera la cadena de caracteres con la ruta de salida

Tabla 4.4 Módulo Cam_Dir

Diagrama 4.5 Cam_Dir

Page 14: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

73

4

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

4.3.2. Módulos Asociados a Assembly Design

L_PART

Lista de Parts

Este módulo establece una lista con la ruta de los archivos a los que generamos los planos.

El archivo del que nace esta lista puede ser tanto un Part como un Product, ya que trabajamos

con él a nivel de Document.

Lis(i) = Doc1s.Item(i).FullName

Una vez que hemos leído la información del Document abierto la filtramos para que no

sólo contenga los archivos CATPart asociados (aunque sea sólo uno) y para que no se repitan.

De esta manera podemos optimizar la generación de planos sin duplicar piezas que aparezcan

más de una vez.

If Right(Lis(i), 4) = "Part" Then

ReDim Preserve LisPart(j)

LisPart(j) = Lis(i)

Código de L_Part

Entrada Procesos Internos Salidas

No tiene entradas Establece la colección Documents activa y cuenta el número de Document asociado.

LisPa0() As String()

Crea la matriz que contiene las rutas Lis(i)

Rehace la matriz y la simplifica Tabla 4.5 Módulo L_Part

Diagrama 4.6 L_Part

Page 15: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

74

4

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

4.3.3. Módulos Asociados a PartDesign

AN_BB

Análisis de la Bounding Box (Caja

delimitadora)

Es un módulo que nos permite

realizar el análisis inercial de la pieza

activada. Éste análisis ofrece la

colección de parámetros que

necesitamos para el cálculo de la

escala.

A nivel de programación cabe

destacar que es necesario establecer

la colección de parámetros para que

puedan estar disponibles ‘fuera’ del

módulo y el modo de llamar a

comandos previamente

implementados en Catia a través de la

orden:

CATIA.StartCommand("Nombr

e del Comando")

Código de An_BB

Entrada Procesos Internos Salidas

No tiene entradas Establece la colección de parámetros de la pieza

Colección de parámetros

Ejecuta el comando "Measure Inertia"

Se crean en la colección los parámetros asociados al análisis inercial

Tabla 4.6 Módulo An_BB

Colección de Parámetros generados

Longitudes máximas en ejes principales: (BBLx,BBLy,BBLz)

Punto de origen del trapezoide contenedor: (BBOx,BBOy,BBOz)

Valores de los ejes principales de inercia respecto a los ejes del dibujo:

Diagrama 4.7 An_BB

Page 16: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

75

4

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

o Eje Inercial 1: (A1x,A1y,A1z)

o Eje Inercial 2: (A2x,A2y,A2z)

o Eje Inercial 3: (A3x,A3y,A3z)

EJ_PRI

Ejes Principales de Inercia

A través de este módulo se accede a la información de la matriz de ejes principales de

Inercia. Inicialmente se constituyó esta matriz a partir de los datos facilitados por el An_BB,

pero tras el desarrollo del programa

se cambió esta forma de trabajar

por otra más específica utilizando

los objetos Workbench e

Inertias.

Código de Ej_Pri

Entrada Procesos Internos Salidas

No tiene entradas Establece los objetos SPAWorkbench y oInertia

oEjPri(8) As Object

Añade la colección de parámetros del objeto Inertia de la pieza activada.

Establece el objeto oEjPri a partir de la colección anterior

Tabla 4.7 Módulo Ej_Pri

Diagrama 4.8 Ej_Pri

Page 17: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

76

4

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

F_ESC

Función de la Escala

Este módulo tiene la categoría de función porque nos devuelve un valor muy concreto: La

mejor escala para el dibujo según la norma UNE-EN ISO 5455. Para funcionar necesita que le

especifiquemos el tamaño del papel para poder realizar el cómputo de la escala adecuada.

Este módulo está dividido en

cuatro procesos relacionados

entre sí.

El primero simplemente

establece los parámetros y

realiza la llamada al módulo

An_BB.

El segundo es un proceso

que no es completamente

necesario en la mayoría de los

casos. Debido a la forma de

trabajar de Catia, cuando

realizamos el análisis inercial se

establece de forma automática

que el parámetro BBLx es aquel

que tiene la máxima longitud

independientemente de la

dirección real que posea. Es

decir, no tiene relación directa

con el eje 0X. Por lo tanto éste

debería de ser el valor que nos

indicara la escala. Sin embargo,

debido al intento de maximizar el

valor de la escala (para mejorar

la visualización), se ha escrito un

proceso discriminador para el

caso en el que se solucionara el

problema de la direccionalidad

de los ejes (apdo. 6.2.1 ).

Diagrama 4.9 F_Esc

Page 18: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

77

4

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

El siguiente proceso utiliza el valor máximo anterior y establece un valor de la escala según

la configuración de la hoja. Para ello utiliza la siguiente configuración del tamaño de las vistas

(se incluyen pequeños márgenes para que en casos extremos las vistas no estén demasiado

próximas):

Dimensiones de configuración (mm) A3 A4

Longitud Horizontal de la vista 190 80 Longitud Vertical de la vista 105 80

Tabla 4.8 Dimensiones de las Vistas

Finalmente se ha creado un logaritmo que permita redondear la escala a los valores de la

normativa. El proceso es sencillo, determina si la escala es de ampliación o de reducción y

luego la compara con los valores permitidos. Teniendo cuidado de elegir siempre la más

restrictiva para que las vistas no salgan de los márgenes permitidos.

Código de F_Esc

Entrada Procesos Internos Salidas

Tamaño de la hoja: A4

A3

Llamada al módulo An_BB para la creación de parámetros

F_Esc_1(ByVal TH

As Boolean) As

Object Determinación de la máxima longitud

Creación del valor de escala

Normalización del valor de la escala Tabla 4.9 Módulo F_Esc

4.3.4. Módulos Asociados a Drafting

A_DRA

Automatization of Drawings (Automatización de los Dibujos)

Figura 4.2 Configuración del tamaño de las vistas según la hoja de trabajo

Page 19: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

78

4

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

Este módulo contiene la mayor parte de la carga de trabajo de la aplicación aunque la

distribuye gracias a las llamadas que realiza a los otros módulos. Necesita un elevado número

de variables de entrada y como salida nos genera los diferentes archivos seleccionados.

Está dividido en dos partes, una primera donde se establecen ciertos procesos comunes

para la configuración del dibujo y otra segunda en la que se generan los planos y se rellena el

cajetín según la orientación especificada. Esta segunda parte está duplicada puesto que se

considera que ambas configuraciones pueden ser elegidas a la vez.

A la hora de la selección de los diferentes ejes, se van a comentar las pocas diferencias que

hay entre ellos. Ambos poseen una estructura muy similar, variando solamente el sistema de

ejes empleado y los nombres en los archivos de salida (que facilitan su identificación). Para

controlar qué tipo de planos se realizan nos valemos de las variables booleanas provenientes

del formulario para controlar sendos bucles ‘If…Then…End If’.

Proceso común

Al inicio del módulo utilizaremos la ruta del documento (oPartDir) que vamos a dibujar

dada el bucle del formulario. De esta manera abrimos el documento (CATPart) y lo

establecemos como nuestro documento activo.

oPartDir = UbiPart

PartDoc = docs.Open(oPartDir)

Acto seguido establecemos el valor de la escala del dibujo gracias al módulo explicado

anteriormente. A este valor se le reduce un 25% para que la vista isométrica tenga unas

medidas menores por cuestiones estéticas:

Dim V As Object

V = F_Esc_1(TH)

escIso = 0.75 * esc

Por último, se extrae el nombre de la pieza para su utilización en el relleno del cajetín.

NomPart = PartDoc.Name

NomPart2 = Left(NomPart, Len(NomPart) - 8)

Proceso según la orientación seleccionada

Lo primero que se realiza es crear y abrir un archivo nuevo basándonos en otro

previamente existente UbiDra. Acto seguido lo renombramos y guardamos para evitar que el

trabajo se realice sobre otro documento.

DrDoc = docs.NewFrom(UbiDra) 'Abrimos unos ‘nuevo’ desde UbiDraw

DrDoc.SaveAs(DirSave & NomPart2 & "_Eu.CATDrawing") 'Renombramos5

Ahora establecemos la colección de hojas del documento y les aplicamos la escala (esta

será la escala genérica de la hoja que aparecerá en el cajetín).

Hoja.Scale2 = esc

5 Para la orientación con ejes principales de Inercia usamos otro documento y otra codificación: DrDocI.SaveAs(DirSave & NomPart2 & "_EI.CATDrawing")

Page 20: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

79

4

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

Diagrama 4.10 A_Dra

Page 21: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

80

4

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

El último paso de configuración del documento está relacionado con la matriz que se

suministra al módulo Dib para la orientación. En el caso de usar una configuración estándar

(ejes 0XYZ o Euleriana) se le suministra una matriz identidad. En el caso de usar los ejes

principales de Inercia llamamos al módulo Ej_Pri que nos genera esta matriz:

Dim EjesI As Object

EjesI = Ej_Pri_0()

En el siguiente paso comienza la realización del dibujo que como se ha comentado consta

de tres procesos independientes:

Creación de las vistas

Call Dib.oDib(Mat_Eu, TH, esc, escIso, PartDoc, Vistas) 'Caso 0XYZ

Call Dib.oDib(EjesI, TH, esc, escIso, PartDoc, Vistas3) 'Caso inercial

Relleno del cajetín (con actualización posterior de todo el trabajo realizado)

Call Dr_Back.Dr_Back(TH, TextBox1, TextBox2, TextBox3, TextBox4,

TextBox5, TextBox6, TextBox7, TextBox8, NomPart2) 'Igual en ambos

Opcionalmente se pueden incorporar las dimensiones del modelo 3D (si se ha

diseñado con este tipo de restricción) gracias al comando

GenerateDimensions(). Este proceso se controla con el booleano

proveniente del formulario Bo_GenDim.

Una vez finalizado este proceso tenemos el documento CATDrawing perfectamente

generado conforme a nuestra configuración. Sin embargo, antes de continuar se realiza la

exportación a los formatos que se hayan escogido a través de la orden

DrDoc.ExportData(spdf, "pdf") configurada según cada caso.

Para finalizar se actualiza el documento, se guarda y se cierran tanto el archivo nuevo

CATDrawing como su modelo 3D asociado CATPart.

DrDoc.Update()

DrDoc.Save()

DrDoc.Close()

PartDoc.Close()

Código de A_Dra

Entrada Procesos Internos Salidas UbiPart As String,

UbiDra As String,

TH As Boolean,

TextBox1 As String,

TextBox2 As String,

TextBox3 As String,

TextBox4 As String,

TextBox5 As String,

TextBox6 As String,

TextBox7 As String,

TextBox8 As String,

Ej_In As Boolean,

Ej_Eu As Boolean,

Abre el archivo CATPart y configura las variables

Planos en formato CATDrawing de las piezas seleccionadas. En su caso, documentos PDF o DWG.

Llama al módulo que establece la escala

Crea el /los documento(s) CATDrawing necesarios

Configura el documento CATDrawing según la orientación deseada.

Genera el dibujo, rellena el cajetín de encuadre y, en su caso, se

Page 22: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

81

4

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

opdf As Boolean,

odwg As Boolean,

Bo_GenDim As Boolean,

DirSave As String

crean las medidas

Exporta se es necesario el documento a los formatos PDF / DWG

Guarda y cierra todos los documentos abiertos

Tabla 4.10 Módulo A_Draw

DIB

Dibujo

Este módulo realiza el

dibujo de las cuatro vistas

basándonos en la escala

calculada anteriormente.

Posiciona las vistas (alzado,

planta y perfil), establece la

orientación de las mismas y las

escala.

A nivel de código se

constituye un bucle para el

posicionamiento dependiente

del tamaño de la hoja

seleccionado. Para ello,

añadimos a la colección

DrawingViews los objetos

DrawingView que permite el

establecimiento del nombre de

las vistas, la posición y el valor

de la escala.

oV_Per =

Vistas.Add("Perfil")

oV_Per.X = 162.5

oV_Per.Y = 229

oV_Per.Scale2 = esc

A continuación a través del objeto DrawingViewGenerativeBehavior se definen las

orientaciones de cada vista y se dibujan con el método Update().

Código de Dib

Entradas Procesos Internos Salidas oEj As Object Establece las variables (objetos No tiene salidas

Diagrama 4.11 Dib

Page 23: 4. Aplicación Auto Draw: Guía del Programadorbibing.us.es/proyectos/abreproy/60198/fichero/4... · diferentes vistas del dibujo. El módulo Dib utiliza la configuración del formulario

1 Aplicación Auto_Draw: Guía del Programador

82

4

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

TH As Boolean

esc As Double

escIso As Double

PartDoc As Document

Vistas As

DrawingViews

DrawingView)

Añade, posiciona, nombra y escala las vistas

Dibuja las vistas con la orientación proporcionada por la matriz oEj.

Tabla 4.11 Módulo de Dibujo

DR_BACK

Drawing Background (Dibujo del fondo)

En este módulo se rellena

el cajetín de encuadre con la

información proveniente del

formulario. Se ha decidido que

el texto del cajetín se ubique

en una capa diferente a la de

trabajo en el documento

CATDrawing. Con ello

facilitamos el trabajo al usuario

puesto que impedimos que se

desconfiguren los cuadros de

texto.

Para ello activamos una

vista nueva en el

DrawingDocument y

posicionamos los cuadros de

texto (objetos DrawingText).

El posicionamiento está

condicionado por el tamaño de

la hoja, por lo que se ha creado un bucle que discierna entre las dos posibles configuraciones.

DrDib = BackGr.Texts.Add(TextBox1, 251, 51) 'datos y posición

DrDib.SetFontSize(0, 0, 3) 'tamaño de la fuente

DrDib.AnchorPosition = catMiddleLeft 'alineación del texto

Código de Dr_Back

Entrada Procesos Internos Salidas TH As Boolean

TextBox1 As String

TextBox2 As String

TextBox3 As String

TextBox4 As String

TextBox5 As String

TextBox6 As String

TextBox7 As String

TextBox8 As String

NomPart2 As String

Crea los objetos DrawingText de texto y establece la nueva vista (capa de trabajo) del documento.

No tiene salidas

Escribe el campo de texto según la configuración establecida y lo posiciona.

Tabla 4.12 Módulo Dr_Back

Diagrama 4.12 Dr_Back