4. aplicación auto draw: guía del...
TRANSCRIPT
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.
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.
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.
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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")
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
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
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
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