1. VBA para Inventor


Fundamentos de la programación Visual Basic para Aplicaciones (VBA).


Interfaz de Usuario.

El Entorno de Desarrollo (IDE) de Visual Basic para Aplicaciones (VBA) es el sitio donde tendrá
lugar el desarrollo de nuestros programas para Inventor. El IDE es la interfaz gráfica empleada
para el desarrollo de las aplicaciones, muy similar a las que se utilizan en otras aplicaciones
como AutoCAD, Microsoft Access o Excel. Para mostrar el IDE se puede emplear la opción de
Menú Herramientas>Macro>Editor Visual Basic o simplemente la combinación de teclas
ALT+F11.

Explorando la Interfaz de Usuario

El IDE se compone de distintas ventanas siendo las principales las que se muestran en la
Figura 2. Las opciones del menú Ver permiten controlar la visibilidad de las diferentes
ventanas. Para obtener ayuda sensible al contexto se puede hacer clic en la ventana deseada
y presionar la tecla F1.

Figura 1. Entorno de Desarrollo VBA de Autodesk Inventor.

  1. Menús y Barras de Herramientas. Como otras aplicaciones Windows, VBA permite acceder a los comandos mediante menús y barras de herramientas. Las Barras de Herramientas “Estándar”, “Depuración”, y “Edición” se muestran en la Figura 1.
  2. El Explorador de Proyectos muestra una lista de los proyectos cargados y sus componentes.
  3. La ventana Propiedades muestra un listado de las propiedades accesibles en tiempo de diseño del objeto seleccionado y sus valores.
  4. La ventana de Código es donde se escribe y edita el código Visual Basic. Pueden haber varias ventanas de código abiertas simultáneamente, permitiéndose copiar y pegar entre ellas.
  5. La ventana UserForm permite crear diálogos y formularios para el proyecto.
  6. El Cuadro de Herramientas muestra los controles standard Visual Basic así como cualesquiera otros controles ActiveX u objetos insertables que se hubieran añadido al proyecto.
  7. La ventana Inmediato permite teclear o pegar una línea de código y evaluarla pulsando INTRO. También se muestran en esta ventana los resultados de las expresiones Debug.Print.
  8. La ventana Inspecciones permite ver el valor actual de las expresiones que se especifiquen.

El Explorador de Proyectos.

Esta ventana muestra una vista en árbol de todos los componentes de los proyectos cargados en el IDE.
Aquí se listan todos los formularios, módulos de código y módulos de clase asociados a cada proyecto.
Además del posible proyecto de Usuario (en este caso de nombre CreaPieza, se pueden ver dos proyectos
que siempre existen, el Proyecto de Aplicación que contiene las macros que se desea estén siempre
disponibles y el Proyecto de Documento en el que se puede incluir cualquier macro de uso específico para
un determinado documento (de parte, conjunto, etc.) que estuviera abierto en ese momento en Inventor.
Figura 2. Explorador de Proyectos.

La Ventana de Código

Este es el lugar donde se realiza la mayor parte del trabajo de desarrollo. Puede haber varias
ventanas abiertas como muestra la Figura 3.
Figura 3. Ventana de Código.

La Ventana de Propiedades.

Las propiedades controlan el comportamiento de un objeto. La Ventana de Propiedades muestra las propiedades que pueden establecerse en tiempo de diseño. A la izquierda se muestran las propiedades de
un formulario. Una propiedad como Caption, que contiene el texto de la barra del título, se suele definir de manera definitiva al momento de diseñar el formulario empleando la interfaz de la Ventana de Propiedades.
Pero en otras ocasiones las propiedades deberán definirse durante la ejecución del programa utilizando las expresiones de código pertinentes. Algunas propiedades además, sólo están disponibles en tiempo de ejecución y no en tiempo de diseño.



Figura 4. Ventana Propiedades.

Ventana de la aplicación.

Ventanas, Eventos y Mensajes.

Las características de Windows como sistema operativo pueden resumirse en tres conceptos básicos: ventanas, eventos y mensajes.
  • Una ventana es una región rectangular de la pantalla que dispone de su propio borde. La ventana de dibujo de Inventor, un documento de Word y la ventana donde se compone un mensaje del correo electrónico son ejemplos de ventanas. Pero son también ventanas los botones de comando, los cuadros de texto, las barras de menú, etc. Cada ventana posee un identificador propio, hWnd en lenguaje de programación. Este identificador se emplea por Windows para controlar cada ventana.
  • Existe en Windows un mecanismo que vigila constantemente para detectar cualquier signo de actividad en las ventanas. Esta actividad, que denominaremos eventos pueden ser provocados ya sea por un clic del ratón, el presionar una tecla, el código de un programa o la acción de otra ventana.
  • Cada vez que se dispara un evento, se recibe un mensaje en el Sistema Operativo, que lo propaga entre las demás ventanas. Éstas pueden entonces responder según sus propias instrucciones al evento con las acciones pertinentes, por ejemplo repintarse al quedar expuesta por el desplazamiento o cierre de otra ventana.

Programación Dirigida por Eventos.

En la programación dirigida por eventos tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema o que ellos mismos provoquen. Para entender la programación dirigida por eventos, podemos oponerla a lo que no es: mientras en la programación secuencial es el programador el que define cuál va a ser el flujo del programa, en la programación dirigida por eventos será el propio usuario el que dirija el flujo del programa.

Aunque en la programación secuencial puede haber intervención de un agente externo al programa, estas intervenciones ocurrirán cuando el programador lo haya determinado, y no en cualquier momento y en cualquier orden como en el caso de la programación dirigida por eventos.

El creador de un programa dirigido por eventos define los eventos que manejarán su programa y las acciones que se realizarán al producirse cada uno de ellos. Al comenzar la ejecución del programa se llevan a cabo las inicializaciones y a continuación el programa queda bloqueado hasta que se produzca algún evento. Cuando alguno de los eventos esperados por el programa tiene lugar, el programa pasa a ejecutar el código del correspondiente controlador de evento.

Por ejemplo, puede ser necesario que el usuario escriba algo en un Cuadro de Texto (TextBox) antes de habilitar para su uso un Botón de Comando (CommandButton). En ese caso el código asociado al evento Change (cambio de contenido) del control TextBox puede incluir la expresión que habilite el Botón de Comando como muestra el siguiente ejemplo:

Private Sub TextBox1_Change()
    If Len(TextBox1.Text) > 0 Then
        CommandButton1.Enabled = True
    Else
        CommandButton1.Enabled = False
    End If
End Sub

Cada vez que se agrega o quite texto del control TextBox se ejecutará este procedimiento. El código comprueba la longitud del texto y si se da la condición de que sea igual a cero deshabilita el control CommandButton. Para ello se recurre a la condicional If, que es una de las estructuras de control clásicas presente en todos los lenguajes de programación.

Formularios y Controles

Un importante elemento de la interfaz de usuario utilizada en casi todas las aplicaciones de Windows son los cuadros de diálogo. En VBA todas las interfaces gráficas de usuario se crean utilizando formularios. Un formulario es un área en la que se colocan los distintos controles que la aplicación necesita. La caja de herramientas (Toolbox) contiene el conjunto de controles disponibles para colocar en el formulario. Los controles son cosas como cuadros de texto, botones, casillas de verificación, etiquetas, imágenes, etc. VBA tiene un conjunto de controles estándar, pero también se pueden importar controles ActiveX adicionales que suministran funcionalidades más avanzadas. Usando Visual Basic -no VBA-, también puede crear sus propios controles. La Figura 5 muestra la caja de herramientas así como un formulario que contiene todos controles estándar de VBA.

Figura 5. Caja de Herramientas y Formulario.