3. Creación Automática de una Parte

Este ejercicio tiene como objetivo el demostrar las posibilidades que ofrece la programación para gestionar todos los pasos en el proceso de diseño de una pieza, desde la creación de un nuevo archivo de documento hasta la gestión de las vistas pasando por todas las operaciones necesarias para la creación del boceto y la ejecución de operaciones. La pieza resultante se muestra en la Figura 1.Para la creación de esta pieza se dispondrá de una interfaz de usuario provista de una serie de botones de comando que el usuario podrá pulsar para realizar las distintas operaciones. El asociar las operaciones que llevarán a la creación de la pieza tiene como objetivo el permitir al usuario comprobar paso a paso los resultados obtenidos. Los botones se activarán secuencialmente de manera que no se permita solicitar la ejecución de un paso antes de completarse el anterior.
Figura 1. Pieza realizada a partir de una macro.

Objetivos:

  1. Conocimiento básico de la programación Visual Basic para Aplicaciones (VBA). Crear un formulario e implementar sus eventos.
  2. Conocer los mecanismos básicos para crear bocetos 2D en Inventor mediante programación.
  3. Conocer el modo de gestionar restricciones geométricas y dimensionales del boceto desde el programa.
  4. Conocer los mecanismos para programar operaciones de modelado 3D.
  5. Conocer los mecanismos de control de vistas.

Creación del Proyecto de Usuario.

Figura 2. El Entorno de Desarrollo (IDE) de Visual Basic para Aplicaciones (VBA) es el sitio donde desarrollaremos nuestro programa. Para mostrar el IDE se puede emplear la opción de la pestaña Herramientas (Tools) Editor Visual Basic (VBA Editor) o simplemente la combinación de teclas ALT+F11.

Figura 3. Ya en el Editor VBA crearemos un nuevo Proyecto de Usuario seleccionando la correspondiente opción en el Menú Archivo. Haciendo clic con el botón derecho se selecciona la opción "Propiedades del proyecto" donde podemos cambiar el nombre del mismo y opcionalmente añadir una descripción.


Creación de un formulario en el programa.

Figura 4. Inserción de un nuevo formulario.

Para crear un nuevo formulario hacemos clic con el botón derecho sobre el proyecto y elegimosen el menú contextual las opciones Insertar>UserForm (ver Figura 4). Podemos dar un título ala ventana así creada cambiando el texto que asignado a la propiedad Caption.

Una vez insertado el formulario y utilizando el Cuadro de Herramientas, colocaremos sietebotones de comando (CommandButton) y un control de imagen (Image), tal como se muestraen la Figura 5.

Figura 5. Formulario con sus controles CommandButton e Image.

Los nombres y las propiedades a establecer para estos controles se definen en la Tabla 1.

2. Nota: la imagen Pieza.jpg puede descargarse como archivo adjunto al pie de esta página.

Programar la respuesta a eventos para estos controles.

El evento para el cual programaremos una respuesta es el evento Click de cada uno de losbotones de comando. El control Image es sólo de carácter informativo de manera que notendrá ninguna respuesta programada a los eventos que pueda generar.El evento Click es el evento predeterminado para los botones de comando. Por este motivo,para crear el procedimiento de respuesta a este evento bastará hacer un doble-clic sobre elobjeto en el formulario y esto nos llevará a una ventana de código donde aparecerá laestructura ya definida para este procedimiento con el nombre correcto.

Figura 6. Plantilla para un Procedimiento creada al hacer doble-clic sobre el botón de comando.

Crear un nuevo documento de Parte.

Esta macro que estamos programando se puede ejecutar sin necesidad de haber abiertopreviamente un archivo de parte (IPT) ya que la acción del primer botón que hemosdenominado cmdCreaParte es precisamente la de crear un nuevo documento vacío.

Para ello recurriremos al método Add del objeto Application (Aplicación), raíz del árbol deobjetos en Autodesk Inventor (ver Figura 7). Este método requiere que se le pasen comoargumentos el tipo de documento a crear y la plantilla que parta ello deseamos emplear. Elresultado devuelto es una referencia al nuevo objeto documento que debemos continuarutilizando a lo largo del programa, por lo cual la debemos asignar a una variable global. Estoquiere decir que debemos declarar esta variable fuera de cualquier procedimiento que vayamosa programar, colocándola para mayor claridad en la parte superior de editor de texto. Otrasvariables que también deben ser declaradas como globales son oBoceto, oTrans, oPuntos,oLineas, oArcos y oCamara, así como la constante Pi, cuya utilización se explica más adelante.

El código para la declaración de estas variables globales y constantes es el siguiente:

Option Explicit

Dim oDoc As PartDocument
Dim oBoceto As PlanarSketch
Const Pi As Double = 3.1416
Dim oTrans As TransientGeometry
Dim oPuntos As SketchPoints
Dim oLineas As SketchLines
Dim oArcos As SketchArcs
Dim oCamara As Camera
Figura 7. Fragmento de la Jerarquía de Objetos de Autodesk Inventor. Resaltados los objetos que crearemos como parte de esta Macro. En amarillo la trayectoria hasta el boceto 2D, en azul las operaciones para crear la pieza 3D.

Una vez hecho esto podemos pasar al código que creará el nuevo documento. Una dificultaden cuanto a la plantilla se refiere a la ubicación donde podemos encontrarla. Para ellodeberemos comprobar el valor de la propiedad TemplatePath del objeto FileOptions de laaplicación.

Dim strUbicacion As String
strUbicacion = ThisApplication.FileOptions.TemplatesPath

Utilizando esta trayectoria crearemos el nuevo documento. Para indicar el tipo de documento emplearemos la constante de enumeración kPartDocumentObject y como nombre del archivo plantilla el de "Standard.ipt".

Nota: En algunas versiones españolas el archivo plantilla estándar para documentos de parte se llama normal.ipt en lugar de Standard.ipt.

Set oDoc = ThisApplication.Documents.Add(kPartDocumentObject, _
strUbicacion & "Standard.ipt")

Una vez hecho esto debemos desactivar el botón cmdCreaParte y activar el botón cmdBoceto.

cmdCreaParte.Enabled = False
cmdBoceto.Enabled = True

El procedimiento asociado al evento Click del control cmdCreaParte quedará entonces definidocomo se muestra a continuación (ver Figura 8). Esta muestra servirá de pauta para losprocedimientos asociados a los demás controles.

Figura 8. Código para el procedimiento de respuesta al evento Click del controlcmdCreaParte.


Este ejercicio está adaptado del propuesto por Joe Sutphin como parte del curso ATP610 “Beginning Autodesk Inventor VBA” impartido en el marco del Autodesk User Group International AUGI Training Program (ATP).
Pieza.jpg
(34k)
Reinaldo Togores Fernández,
28 feb 2011, 13:16
v.4