3.5. Extrusión entre dos planos en Ángulo

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.
ċ
Crearpieza.zip
(45k)
Reinaldo Togores Fernández,
Feb 28, 2011, 9:25 AM