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 Clickdel botón cmdExtDesdeHasta.

Private Sub cmdExtDesdeHasta_Click()


End Sub

Para hacer una extrusión desde un plano limitador a otro emplearemos el métodoAddByFromToExtent. 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 serealiza 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 serealiza 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 laprimera. 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 seacompartido depende del valor de su propiedad booleana Shared. Para compartir el boceto supropiedad Shared debe recibir el valor de Verdadero (True). Para que el boceto no se muestreen 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 yfin de la extrusión. Para ello utilizaremos nuevos planos de trabajo (Workplanes) queañadiremos a la colección de planos de trabajo del documento. Para crear los nuevos planosde trabajo en ángulo emplearemos el método AddByLinePlaneAndAngle, que requiere comoargumentos:

  • una línea (que puede ser una arista, un eje de trabajo o una línea del boceto) por dondepasará 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 unnúmero (que se entiende en ese caso como radianes) o una cadena de caracteres (quepuede 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ónno se muestra al usuario.

Para el primer argumento utilizaremos el eje X del modelo. Este eje siempre es el segundoelemento (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 eluso de valores en radianes declararemos la constante Pi, lo que para que pueda ser utilizadaen cualquier procedimiento, debe hacerse en la sección de declaraciones globales, al inicio delmó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 detrabajo se verían en el modelo terminado. Para que esto no suceda, debemos darle al cuartoargumento 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étodoAddByFromToExtent 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 laextrusió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 veacompleto en la pantalla debemos ajustar la vista. Para ello recurrimos al metodo Fit de lacámara actual. Pero para que se actualice la vista a la nueva extensión, debemos despuésinvocar 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 elcódigo que asociaremos al evento Click del botón cmdCerrar. Para ello se invocará lainstrucción Unload de VBA. Estas instrucción descarga un objeto. Cuando se descarga unobjeto, se quita de la memoria y se recupera toda la memoria asociada con dicho objeto. Elargumento Me representa el formulario desde donde es llamado este método. Equivale en estecaso 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 unaMacro. Una Macro VBA debe ser un procedimiento Sub de carácter público definido en unmódulo de código estándar perteneciente al proyecto VBA. Este procedimiento no puede recibirargumentos.

Este procedimiento lo incluiremos en el Módulo1 del proyecto. Lo único que hará esteprocedimiento 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.
Reinaldo Togores Fernández,
28 feb 2011, 18:25
v.4