Autodesk Inventor‎ > ‎Autodesk Inventor VBA.‎ > ‎2. Un Proyecto de Documento‎ > ‎

2.3. Introducción de Opciones Predefinidas.

Opciones Predefinidas.

Es posible establecer, para ahorrar trabajo al usuario y evitar errores, opciones predefinidas para algunos
valores de parámetros. Para ello emplearemos cuatro botones de opción (ver Figura 1) que permitirán elegir
entre comportamientos que lleven a una forma de esfera, de barra o de tubería.
Figura 1. Formulario con botones de opción.

Los botones de opción se deben agrupar en un mismo control Frame. Sólo uno de los botones puede estar
activo en un momento determinado. Al hacer clic sobre un botón distinto, se activará ese y se desactivará el
anterior. El estar activo en un botón de opción significa que su propiedad Value es igual a True.
El evento predeterminado del botón de opción es el evento Click y en él se incluirá el código necesario para
hacer los cambios pertinentes en la interfaz de usuario. Estos cambios serían:

Control: Acciones:
optNormal Habilitar todos los cuadros de texto.
optEsfera Valor de txtCentro = 0. Deshabilitar txtCentro. Valor de txtDimX = txtAcuerdo. Deshabilitar txtDimX. Valor de txtDimY = 2 * txtAcuerdo, Deshabilitar txtDimY. Habilitar sólo txtAcuerdo. Si el valor de txtAcuerdo fuera = 0, será necesario cambiar este valor, pudiendo optarse por el mayor valor seleccionado entre de txtDimX o txtDimY/2. En caso de que éstos también fuera = 0, optar por un valor predeterminado, por ejemplo, 10.
optBarra Valor de txtCentro = 0, Deshabilitar txtCentro. Valor de txtAcuerdo = 0, Deshabilitar txtAcuerdo. Habilitar txtDimX y txtDimY.
optTubo Valor de txtAcuerdo = 0, Deshabilitar txtAcuerdo. Habilitar txtCentro, txtDimX, txtDimY.

Modificaciones necesarias a los procedimientos ligados a eventos de los Cuadros de Texto.

No basta con introducir los cambios relacionados en el epígrafe anterior. Ahora será necesario que cada uno de estos procedimientos compruebe cuál botón de opción está activo y obre en consecuencia. Por ejemplo, si optEsfera está seleccionado, al cambiar el radio del acuerdo, los valores de txtDimX y txtDimY deberán cambiar. La siguiente tabla muestra los factores atener en cuenta en cuanto al condicionamiento según la opción seleccionada.

0 optNormal Comportamiento establecido en los ejercicios anteriores.
1 optEsfera txtAcuerdo debe ser mayor que 0. Al variar txtAcuerdo deben variar txtDimX y txtDimY.
2 optBarra txtDimX y txtDimY pueden variar libremente al ser txtAcuerdo = 0.
3 optTubo txtDimX y txtDimY pueden variar libremente al ser txtAcuerdo = 0.

En resumen, vemos que sólo será necesario comprobar si están activos optNormal y optEsfera. Esta comprobación se facilitaría si establecemos una variable global cuyo valor esté relacionado con el botón de opción seleccionado. Esta variable puede ser del tipo entero y asumir los valores de la columna de la izquierda en la tabla que se muestra más arriba. Se puede establecer dicho valor asociado al evento Click del botón de opción correspondiente.
Figura 2. Procedimiento asociado al evento Click del control optBarra.

Los ajustes para optNormal ya fueron resueltos en el ejercicio anterior. Sólo habrá que introducir una nueva posibilidad en caso de que esté activo optEsfera. En este caso será necesario modificar txtDimX de manera que txtDimX.Value = txtAcuerdo.Value y que txtDimY.Value = txtAcuerdo.Value * 2. Debe tenerse en cuenta que para modificar estos valores será necesario habilitar (propiedad Enabled) los controles antes de hacer el cambio, para inmediatamente después deshabilitarlos.
Otra posibilidad, que permitiría mantener el código actual para los eventos de los cuadros de texto sería la de modificar el código del evento correspondiente a botón cmdAplicar para que según la opción seleccionada se realizaran los cambios teniendo en cuenta sólo los valores de los controles pertinentes. Por ejemplo, para la opción esfera sólo tener en cuenta el valor de txtAcuerdo.