Crear scripts Phython parametrizados en SpaceClaim para generar perfiles de árbol de levas

Únase al foro de diseñadores!

Su experiencia es vital para la comunidad. Únase a nosotros y aporte sus conocimientos.

Únase ahora al Foro

Comparta, aprenda y crezca con los mejores profesionales del sector.


Resumen

El propósito de este blog es doble. En primer lugar, automatizar con éxito la generación de un perfil de lóbulo de árbol de levas utilizando scripts de Python dentro de ANSYS SpaceClaim. En segundo lugar, aprender a evitar ciertos escollos relacionados con el scripting de Python dentro de ANSYS SpaceClaim.

Detalles

Hablemos ahora de «por qué» uno querría automatizar la generación de un lóbulo de árbol de levas.

En los motores de combustión interna de 4 tiempos, el árbol de levas es el responsable de abrir y cerrar las válvulas de admisión y escape en relación con la rotación del cigüeñal del motor. El árbol de levas forma parte del «tren de válvulas», que es un sistema de componentes que dictan cuándo se abren y se cierran estas válvulas, cuánto se abren y la velocidad a la que se abre y se cierra esa válvula. Dependiendo de la configuración del tren de válvulas, puede haber diferentes componentes involucrados, y todos esos componentes deben ser evaluados en conjunto para entender los detalles del evento de sincronización de válvulas. La creación del perfil del lóbulo del árbol de levas no es del todo arbitraria y, en ocasiones, puede resultar bastante compleja. Automatizar el proceso de generación de este perfil permite evaluar posteriormente el evento de sincronización de válvulas de forma más expeditiva durante el proceso de diseño del tren de válvulas.

¿Qué vamos a hacer ahora?

En primer lugar, comprenderemos el tipo de perfil de árbol de levas que vamos a modelar y, a continuación, generaremos la geometría manualmente, al tiempo que registramos nuestras acciones dentro de SpaceClaim Scripting para generar código Python nativo.

A continuación, «intentaremos» utilizar ese mismo código dentro de una nueva instancia de SpaceClaim para aprender qué obstáculos se presentan y prescribir remedios para esos obstáculos. A continuación, utilizaremos con éxito el scripting de Python para reproducir nuestro lóbulo del árbol de levas diseñado originalmente.

Por último, parametrizaremos el scripting de Python para poder generar rápidamente nuevas variaciones de este perfil.

Nuestro perfil del árbol de levas

Los perfiles del lóbulo del árbol de levas pueden ser desde simples a complejos, simétricos o asimétricos. Este blog se centrará en uno de los diseños más fundamentales que se basa en un círculo base y un círculo de nariz. Los dos círculos están conectados por líneas tangentes a ambos círculos.

Comenzaremos con un círculo base de 38 mm, y un círculo de nariz de 26 mm, con su centro situado 14 mm por encima del centro del círculo base. Nuestra primera acción será abrir SpaceClaim y acceder a la interfaz de scripting.

Por defecto, el modo «Grabar» estará activo.

En primer lugar, entendamos qué se graba después de añadir nuestro círculo base.

Concretamente, vemos que se ha definido un plano de croquis, luego se ha generado un círculo y, por último, se ha generado una restricción. Copiemos este mismo código Python en una nueva instancia de SpaceClaim y averigüemos si podemos ejecutarlo con éxito…

La respuesta es «No».. ¿Por qué? Por cómo se selecciona normalmente el plano de croquis. Cerremos esta instancia de SpaceClaim y abramos una nueva. Haremos un cambio en la forma de grabar nuestro script, generaremos un nuevo círculo y repetiremos nuestra prueba.

En primer lugar, activaremos la opción de grabación «Verbosa».

A continuación, cambiaremos el modo de grabación de la selección de «Variable inteligente» a «Rayo».

Nuestro script grabado después de añadir nuestro círculo base tiene ahora un aspecto diferente.

Operando este nuevo script dentro de una nueva instancia de SpaceClaim ¡genera ahora con éxito nuestro círculo base!

¿Qué pasa con las otras acciones, añadir el círculo de la nariz y dos líneas tangentes?

¡Éxito! Copiando este nuevo script en una nueva instancia de SpaceClaim se replica nuestra geometría. Hasta aquí, todo bien. Sin embargo, tendremos problemas si intentamos parametrizar nuestra geometría. Cambiaré el diámetro del círculo de la nariz de 26 mm a 20 mm para demostrarlo.

Experimentamos estos problemas relacionados con «Seleccionar» objetos en nuestro modelo. Resulta que seleccionar será nuestro mayor reto. Por lo tanto, propongo que reduzcamos al máximo las «selecciones» para esta geometría. Hay que evitar seleccionar elementos como líneas y círculos. Para ello, crearemos la geometría por medios diferentes. En lugar de añadir círculos y hacer líneas tangentes para conectarlos, crearemos arcos y luego conectaremos los extremos de los arcos desde la base hasta la nariz. Este método requiere que seamos mucho más cuidadosos en la construcción de nuestro guión.

Revisión de los bloques de script

Hemos visto que cuando grabamos nuestro guión original (añadir un círculo) había ciertos elementos en el bloque de guión.

# Sketch Circle

origen = Punto2D.Create(MM(0), MM(0))

resultado = SketchCircle.Create(origen, MM(19))

baseSel = PuntoDeSelección.Create(GetRootPart().DatumPlanes[0].Curvas[0].GetChildren[ICurvePoint]()[0])

targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[0])

result = Constraint.CreateCoincident(baseSel, targetSel)

# EndBlock

Vemos que se definen dos puntos «origen» y «MM(19)». Por tanto, la función «SketchCircle.Create» requiere que se definan un origen y un radio. Todo lo demás en este bloque está relacionado con seleccionar el elemento que hemos creado y limitando al plano. Propondré que esta última sección no es necesaria para generar con éxito nuestra geometría. Por lo tanto, recomiendo eliminar estos comandos superfluos y simplemente ejecutar el siguiente script.

# Sketch Circle

origen = Punto2D.Create(MM(0), MM(0))

resultado = SketchCircle.Create(origen, MM(19))

# EndBlock

Y… ¡funciona!

Ahora, le sugiero que lo examine usted mismo grabando bloques de scripts para arcos y líneas con el fin de identificar los elementos esenciales necesarios para generar el perfil del árbol de levas. Yo ya lo he hecho y he adjuntado mi script aquí para su revisión.

También he parametrizado mi script a términos típicamente utilizados al identificar la característica del árbol de levas de automoción, tales como:

Utilizando estos parámetros, se generará la siguiente geometría.

Descargar este script y comience a explorar el diseño del perfil del árbol de levas… ¡¡¡y de paso aprenda a hacer prácticos scripts Python para SpaceClaim!!! 😊


Únase al foro de diseñadores!

Su experiencia es vital para la comunidad. Únase a nosotros y aporte sus conocimientos.

Únase ahora al Foro

Comparta, aprenda y crezca con los mejores profesionales del sector.