La extrusión del tipo Desde-Hasta se realizará a partir del código de respuesta al evento
Click
del botón
cmdExtDesdeHasta.
Private Sub cmdExtDesdeHasta_Click()
…
…
End Sub
Para hacer una extrusión desde un plano limitador a otro emplearemos el método
AddByFromToExtent. Este método requiere como argumentos:
- El Perfil (Profile), que define la forma de la extrusión.
- La cara o plano desde donde se inicia la extrusión.
- Un argumento booleano (Verdadero o Falso) que define si la cara desde donde se
realiza la extrusión debe extenderse para abarcar toda la superficie del perfil.
- La cara o plano hasta donde se realiza la extrusión.
- Un argumento booleano (Verdadero o Falso) que define si la cara hasta donde se
realiza la extrusión debe extenderse para abarcar toda la superficie del perfil.
- El tipo de operación como constante de enumeración (ver Tabla 6).
- Un argumento opcional que define el ángulo de conicidad de la extrusión.
Compartir el boceto.
Para la nueva extrusión utilizaremos la misma forma definida en el boceto empleado para la
primera. Pero ese boceto ya ha sido “consumido” por aquella. Para volverlo a utilizar será
necesario compartir este boceto para las dos extrusiones sucesivas. El que un boceto sea
compartido depende del valor de su propiedad booleana Shared. Para compartir el boceto su
propiedad Shared debe recibir el valor de Verdadero (True). Para que el boceto no se muestre
en la ventana gráfica una vez concluida la pieza, cambiaremos su propiedad Visible a Falso
(False).
Una vez compartido, se establecerá una nueva referencia al Perfil definido por este boceto.
Dim oPerfil2 As Profile
oBoceto.Shared = True
oBoceto.Visible = False
Set oPerfil2 = oBoceto.Profiles.AddForSolid
Planos de Trabajo.
Ya tenemos el primer argumento, el perfil. Ahora será necesario definir los planos para inicio y
fin de la extrusión. Para ello utilizaremos nuevos planos de trabajo (Workplanes) que
añadiremos a la colección de planos de trabajo del documento. Para crear los nuevos planos
de trabajo en ángulo emplearemos el método AddByLinePlaneAndAngle, que requiere como
argumentos:
- una línea (que puede ser una arista, un eje de trabajo o una línea del boceto) por donde
pasará el plano.
- un plano de referencia para definir el inicio del ángulo (que puede ser una cara plana,
un plano de trabajo o un objeto del boceto) entre este plano y el nuevo.
- un valor para el ángulo entre el plano de referencia y el nuevo plano, que puede ser un
número (que se entiende en ese caso como radianes) o una cadena de caracteres (que
puede indicar la unidad angular).
- Un valor booleano opcional que especifica si se debe considerar al nuevo plano como
“plano de construcción” (True) o como plano estándar (False). Un plano de construcción
no se muestra al usuario.
Para el primer argumento utilizaremos el eje X del modelo. Este eje siempre es el segundo
elemento (Item) de la colección WorkAxes del objeto ComponentDefinition.
Dim ejeY As WorkAxis
Set ejeY = oDoc.ComponentDefinition.WorkAxes.Item(2)
Como plano de referencia emplearemos el plano XY del modelo, que es el tercer elemento
(Item) de la colección WorkPlanes del objeto ComponentDefinition.
Dim oPlanoXY As WorkPlane
Set oPlanoXY = oDoc.ComponentDefinition.WorkPlanes.Item(3)
Utilizaremos un ángulo de 45º que expresaremos como el valor numérico Π/4. Para facilitar el
uso de valores en radianes declararemos la constante Pi, lo que para que pueda ser utilizada
en cualquier procedimiento, debe hacerse en la sección de declaraciones globales, al inicio del
módulo y sin formar parte de ningunos de los procedimientos.
Const Pi As Double = 3.1416
Pudiéramos prescindir del cuarto argumento, ya que es opcional. Pero entonces los planos de
trabajo se verían en el modelo terminado. Para que esto no suceda, debemos darle al cuarto
argumento el valor de Verdadero (True).
Dim oPlano1 As WorkPlane
Dim oPlano2 As WorkPlane
Set oPlano1 = oDoc.ComponentDefinition.WorkPlanes. _
AddByLinePlaneAndAngle(ejeY, oPlanoXY, Pi / 4, True)
Set oPlano2 = oDoc.ComponentDefinition.WorkPlanes. _
AddByLinePlaneAndAngle(ejeY, oPlanoXY, -Pi / 4, True)
Extrusión.
Ya con estos valores resueltos podemos realizar la extrusión llamando al método
AddByFromToExtent de la colección ExtrudeFeatures.
Call oDoc.ComponentDefinition.Features.ExtrudeFeatures. _
AddByFromToExtent(oPerfil2, oPlano1, True, oPlano2, True, kJoinOperation)
Figura 1. Segunda extrusión, mostrando el boceto y los planos limitadores de la
extrusión.Dim ejeY As WorkAxis
Ajuste de la Vista.
Para que el objeto -cuyas dimensiones han aumentado a partir de la segunda extrusión- se vea
completo en la pantalla debemos ajustar la vista. Para ello recurrimos al metodo Fit de la
cámara actual. Pero para que se actualice la vista a la nueva extensión, debemos después
invocar el método Apply del mismo objeto cámara.
oCamara.Fit
oCamara.Apply
Con esto queda terminado nuestro programa.
Para terminar, será necesario desactivar el botón cmdExtDesdeHasta.
cmdExtDesdeHasta.Enabled = False
Botón Cerrar.
Una vez concluida la operación del programa, sólo falta descargar el formulario. Este es el
código que asociaremos al evento Click del botón cmdCerrar. Para ello se invocará la
instrucción Unload de VBA. Estas instrucción descarga un objeto. Cuando se descarga un
objeto, se quita de la memoria y se recupera toda la memoria asociada con dicho objeto. El
argumento Me representa el formulario desde donde es llamado este método. Equivale en este
caso a frmPieza.
Private Sub cmdCerrar_Click()
Unload Me
End Sub
Crear una Macro.
Para invocar nuestro programa desde la interfaz gráfica de Inventor será necesario crear una
Macro. Una Macro VBA debe ser un procedimiento Sub de carácter público definido en un
módulo de código estándar perteneciente al proyecto VBA. Este procedimiento no puede recibir
argumentos.
Este procedimiento lo incluiremos en el Módulo1 del proyecto. Lo único que hará este
procedimiento es mostrar el formulario, invocando su método Show.
Sub CreaPieza()
frmPieza.Show
End Sub
Teniendo cargado nuestro proyecto, podemos invocar ahora la macro mediante la opción Macros de la pestaña Herramientas (Tools) o pulsando la combinación de teclas ALT+F8 (ver Figura 2). Las macros de usuario que se desee ejecutar deben haber sido previamente cargadas desde el Editor VBA.
Figura 4. Invocar una Macro.
Puede descargar este proyecto desde el enlace de archivo adjunto Crear pieza.zip que aparece más abajo.