Home CAD Altri CAD Creare uno scripting Phython parametrizzato in SpaceClaim per generare i profili degli...

Creare uno scripting Phython parametrizzato in SpaceClaim per generare i profili degli alberi a camme

Sommario

Lo scopo di questo blog è duplice. Primo, automatizzare con successo la generazione di un profilo del lobo dell’albero a camme utilizzando lo scripting Python all’interno di ANSYS SpaceClaim. In secondo luogo, imparare a evitare alcune insidie legate allo scripting Python all’interno di ANSYS SpaceClaim.

Dettagli

Parliamo ora del ‘perché’ si vorrebbe automatizzare la generazione di un lobo dell’albero a camme?

Nei motori a combustione interna a 4 tempi, l’albero a camme è responsabile dell’apertura e della chiusura delle valvole di aspirazione e di scarico rispetto alla rotazione dell’albero a gomiti del motore. L’albero a camme fa parte della ‘trasmissione a valvole’, che è un sistema di componenti che determinano quando queste valvole si aprono e si chiudono, quanto si aprono e la velocità di apertura e chiusura della valvola. A seconda della configurazione della trasmissione valvolare, possono essere coinvolti diversi componenti e tutti questi componenti devono essere valutati insieme per comprendere i dettagli dell’evento di fasatura delle valvole. La creazione del profilo del lobo dell’albero a camme non è del tutto arbitraria e a volte può essere piuttosto complessa. L’automatizzazione del processo di generazione di questo profilo consente di valutare successivamente l’evento di fasatura delle valvole in modo più rapido durante il processo di progettazione della trasmissione a valvole.

Che cosa facciamo ora?

Per prima cosa capiremo il tipo di profilo dell’albero a camme che andremo a modellare, quindi genereremo la geometria manualmente, registrando le nostre azioni all’interno di SpaceClaim Scripting per generare codice Python nativo.

Successivamente, “proveremo” a utilizzare lo stesso codice all’interno di una nuova istanza di SpaceClaim per imparare quali ostacoli si presentano e prescrivere i rimedi a tali ostacoli. Poi utilizzeremo con successo lo scripting Python per replicare il nostro lobo dell’albero a camme originariamente progettato.

Infine, parametrizzeremo lo scripting Python per consentire di generare rapidamente nuove varianti di questo profilo.

Il nostro profilo dell’albero a camme

I profili dei lobi degli alberi a camme possono variare da semplici a complessi, simmetrici o asimmetrici. Questo blog si concentrerà su uno dei disegni più fondamentali, che si basa su un cerchio di base e un cerchio di testa. I due cerchi sono collegati da linee tangenziali ad entrambi i cerchi.

Inizieremo con un cerchio base di 38 mm e un cerchio naso di 26 mm, con il suo centro situato 14 mm sopra il centro del cerchio base. La nostra prima azione sarà aprire SpaceClaim, quindi accedere all’interfaccia di scripting.

Per impostazione predefinita, sarà attiva la modalità “Record”.

Innanzitutto, cerchiamo di capire cosa viene registrato dopo l’aggiunta del nostro cerchio di base.

In particolare, vediamo che è stato definito un piano di schizzo, poi è stato generato un cerchio, quindi è stato generato un vincolo. Copiamo questo stesso codice Python in una nuova istanza di SpaceClaim e scopriamo se possiamo eseguirlo con successo?

La risposta è “No”.. Perché? A causa del modo in cui normalmente si seleziona il piano di schizzo. Chiudiamo questa istanza di SpaceClaim e apriamo una nuova istanza. Apporteremo una modifica al modo in cui registriamo il nostro script, genereremo un nuovo cerchio e ripeteremo il nostro test.

Per prima cosa, attiveremo l’opzione di registrazione “Verbose”.

Poi, cambieremo la modalità di registrazione delle selezioni da “Variabile intelligente” a “Raggio”.

Il nostro script registrato dopo l’aggiunta del cerchio di base ha ora un aspetto diverso.

Utilizzando questo nuovo script all’interno di una nuova istanza di SpaceClaim genera ora con successo il nostro cerchio di base!

E le altre azioni, l’aggiunta del cerchio del naso e delle due linee tangenti?

Successo! Copiando questo nuovo script in una nuova istanza di SpaceClaim, si replica la nostra geometria. Fin qui, tutto bene. Tuttavia, incontreremo dei problemi se proviamo a parametrizzare la nostra geometria. Per dimostrarlo, cambierò il diametro del cerchio del naso da 26 mm a 20 mm.

Abbiamo riscontrato questi problemi legati a “Selezione” oggetti nel nostro modello. Risulta che la selezione sarà la nostra sfida più grande. Pertanto, propongo di ridurre il più possibile le ‘selezioni’ per questa geometria. La selezione di oggetti come linee e cerchi dovrebbe essere evitata. Per fare questo, creeremo la geometria con mezzi diversi. Invece di aggiungere cerchi e creare linee tangenti per collegarli, creeremo archi, quindi collegheremo le estremità dell’arco dalla base al naso. Questo metodo richiede una maggiore attenzione nella costruzione del nostro script.

Revisione dei blocchi di scripting

Abbiamo visto che quando abbiamo registrato il nostro script originale (aggiungere un cerchio) c’erano alcuni elementi nel blocco di scripting.

# Schizzo Cerchio

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

risultato = SketchCircle.Create(origine, MM(19))

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

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

risultato = Constraint.CreateCoincident(baseSel, targetSel)

# Fine del blocco

Vediamo che vengono definiti due punti: “origine” e “MM(19)”. Pertanto, la funzione “SketchCircle.Create” richiede la definizione di un’origine e di un raggio. Tutto il resto di questo blocco si riferisce a selezionando l’elemento che abbiamo creato e vincolando al piano. Proporrò che quest’ultima sezione non è necessaria per generare con successo la nostra geometria. Pertanto, raccomando di eliminare questi comandi superflui e di eseguire semplicemente il seguente script.

# Schizzo Cerchio

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

risultato = SketchCircle.Create(origine, MM(19))

# Fine del blocco

E… funziona!

Ora, le suggerisco di esaminare lei stesso, registrando i blocchi di scripting per gli archi e le linee, per identificare gli elementi essenziali necessari per generare il profilo dell’albero a camme. L’ho già fatto e ho allegato il mio script qui per la sua revisione.

Ho anche parametrizzato il mio script in base ai termini tipicamente utilizzati per identificare le caratteristiche degli alberi a camme automobilistici, come ad esempio:

Utilizzando questi parametri, verrà generata la seguente geometria.


Partecipa al forum per Progettisti!

La tua esperienza è fondamentale per la comunità. Unisciti a noi e contribuisci con le tue conoscenze!

Entra ora nel Forum

Condividi, impara e cresci con i migliori professionisti del settore.