Créer des scripts Phython paramétrés dans SpaceClaim pour générer des profils d’arbres à cames

Rejoignez le forum des designers !

Votre expertise est essentielle pour la communauté. Rejoignez-nous et apportez vos connaissances !

Rejoindre le forum maintenant

Partagez, apprenez et évoluez avec les meilleurs professionnels du secteur.


Résumé

L’objectif de ce blog est double. Premièrement, automatiser avec succès la génération d’un profil de lobe d’arbre à cames en utilisant des scripts Python dans ANSYS SpaceClaim. Deuxièmement, apprendre à éviter certains pièges liés aux scripts Python dans ANSYS SpaceClaim.

Détails

Maintenant, parlons du « pourquoi » on voudrait automatiser la génération d’un lobe d’arbre à cames ?

Dans les moteurs à combustion interne à quatre temps, l’arbre à cames est chargé d’ouvrir et de fermer les soupapes d’admission et d’échappement en fonction de la rotation du vilebrequin du moteur. L’arbre à cames fait partie de la « commande des soupapes », qui est un système de composants déterminant le moment où ces soupapes s’ouvrent et se ferment, la distance à laquelle elles s’ouvrent et la vitesse à laquelle elles s’ouvrent et se ferment. Selon la configuration de la commande des soupapes, différents composants peuvent être impliqués, et tous ces composants doivent être évalués ensemble pour comprendre les détails de l’événement de synchronisation des soupapes. La création du profil des lobes de l’arbre à cames n’est pas entièrement arbitraire et peut parfois s’avérer très complexe. L’automatisation du processus de génération de ce profil permet d’évaluer plus rapidement l’événement de synchronisation des soupapes au cours du processus de conception de la commande des soupapes.

Qu’allons-nous faire maintenant ?

Nous allons d’abord comprendre le type de profil d’arbre à cames que nous allons modéliser, puis générer la géométrie manuellement, tout en enregistrant nos actions dans SpaceClaim Scripting pour générer du code Python natif.

Ensuite, nous « essaierons » d’utiliser ce même code dans une nouvelle instance de SpaceClaim pour apprendre quels sont les obstacles qui se présentent et prescrire des remèdes à ces obstacles. Nous utiliserons ensuite avec succès le script Python pour reproduire le lobe d’arbre à cames que nous avons conçu à l’origine.

Enfin, nous paramétrerons le script Python pour permettre de générer rapidement de nouvelles variations de ce profil.

Notre profil d’arbre à cames

Les profils des lobes d’arbres à cames peuvent être simples ou complexes, symétriques ou asymétriques. Ce blog se concentre sur l’une des conceptions les plus fondamentales, qui repose sur un cercle de base et un cercle de nez. Les deux cercles sont reliés par des lignes tangentes aux deux cercles.

Nous commencerons par un cercle de base de 38 mm et un cercle de nez de 26 mm, dont le centre est situé à 14 mm au-dessus du centre du cercle de base. Notre première action sera d’ouvrir SpaceClaim, puis d’accéder à l’interface de script.

Par défaut, le mode « Enregistrement » est actif.

Commençons par comprendre ce qui est enregistré après l’ajout de notre cercle de base.

Plus précisément, nous voyons qu’un plan d’esquisse a été défini, qu’un cercle a été généré, puis qu’une contrainte a été générée. Copions ce même code Python dans une nouvelle instance de SpaceClaim et voyons si nous pouvons l’exécuter avec succès ?

La réponse est « Non ». Pourquoi ? En raison de la façon dont on sélectionne normalement le plan d’esquisse. Fermons cette instance de SpaceClaim et ouvrons-en une nouvelle. Nous allons modifier la façon dont nous enregistrons notre script, générer un nouveau cercle et répéter notre test.

Tout d’abord, nous allons activer l’option d’enregistrement « Verbose ».

Ensuite, nous changerons le mode d’enregistrement des sélections de « Smart Variable » à « Ray ».

Notre script enregistré après l’ajout de notre cercle de base a maintenant un aspect différent.

Utiliser ce nouveau script dans une nouvelle instance de SpaceClaim génère maintenant avec succès notre cercle de base !

Qu’en est-il des autres actions, à savoir l’ajout du cercle de nez et des deux lignes tangentes ?

Succès ! La copie de ce nouveau script dans une nouvelle instance de SpaceClaim reproduit notre géométrie. Jusqu’à présent, tout va bien. Nous allons cependant rencontrer des problèmes si nous essayons de paramétrer notre géométrie. Je vais changer le diamètre du cercle de nez de 26 mm à 20 mm pour faire une démonstration.

Nous avons rencontré les problèmes suivants « Sélection » objets dans notre modèle. Il s’avère que la sélection sera notre plus grand défi. Par conséquent, je propose que nous réduisions les « sélections » autant que possible pour cette géométrie. La sélection d’éléments tels que les lignes et les cercles doit être évitée. Pour ce faire, nous allons créer la géométrie par d’autres moyens. Au lieu d’ajouter des cercles et de tracer des lignes tangentes pour les relier, nous allons créer des arcs, puis relier les extrémités des arcs de la base au nez. Cette méthode exige que nous soyons beaucoup plus réfléchis dans la construction de notre script.

Examen des blocs de script

Nous avons vu que lorsque nous avons enregistré notre script original (ajouter un cercle), il y avait certains éléments dans le bloc de script.

# Sketch Circle

origin = Point2D.Create(MM(0), MM(0))

result = SketchCircle.Create(origin, MM(19))

baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0]Courbes[0].GetChildren[ICurvePoint]()[0])

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

result = Constraint.CreateCoincident(baseSel, targetSel)

# EndBlock

Nous voyons que deux points sont définis : « origin » et « MM(19) ». Par conséquent, la fonction « SketchCircle.Create » nécessite la définition d’une origine et d’un rayon. Tout le reste de ce bloc se rapporte à sélection l’élément que nous avons créé et contraignant au plan. Je propose que cette dernière section ne soit pas nécessaire pour générer avec succès notre géométrie. Par conséquent, je vous recommande de supprimer ces commandes superflues et d’exécuter simplement le script suivant.

# Sketch Circle

origin = Point2D.Create(MM(0), MM(0))

result = SketchCircle.Create(origin, MM(19))

# EndBlock

Et… ça marche !

Maintenant, je vous propose d’examiner par vous-même en enregistrant des blocs de script pour les arcs et les lignes afin d’identifier les éléments essentiels nécessaires pour générer le profil de l’arbre à cames. C’est ce que j’ai déjà fait et vous trouverez ci-joint mon script ici pour que vous puissiez l’examiner.

J’ai également paramétré mon script en fonction des termes généralement utilisés pour identifier les caractéristiques des arbres à cames automobiles, tels que :

En utilisant ces paramètres, la géométrie suivante sera générée.

Téléchargez ce script et commencez à explorer la conception du profil de l’arbre à cames… et apprenez à créer des scripts Python pratiques pour SpaceClaim pendant que vous y êtes !! 😊


Rejoignez le forum des designers !

Votre expertise est essentielle pour la communauté. Rejoignez-nous et apportez vos connaissances !

Rejoindre le forum maintenant

Partagez, apprenez et évoluez avec les meilleurs professionnels du secteur.