Hammaspyörien mallintaminen ja Python-ohjelmointi
Tämä teksti on generoitu videon litteroinnin perusteella
Hammaspyörien mallintaminen ja Python-ohjelmointi mallin mittataulukkoon (Vertex G4)
Tässä artikkelissa käydään läpi, miten:
mallinnat parametristen hammaspyörien perusgeometrian Vertex G4:ssä
sidot tärkeät mitat mallin mittataulukkoon
liität mittataulukkoon Python-ohjelman, joka laskee hammaspyörän mitat kaavoista ja päivittää mallin automaattisesti.
Lopputuloksena saat hammaspyörämallin, jota voi ohjata muutamalla syöttöarvolla (esim. moduuli ja hammasluku) – Python laskee loput.
1. Lähtökohta: mitä hammaspyörästä tarvitaan malliin?
Hammaspyöräteoria sinällään on laaja, mutta mallin kannalta tarvitset ainakin nämä mitat tai niistä johdetut arvot:
Moduuli m
– hammaspyörän “perusmitta”, mm/hammasHammasluku z
– hampaiden kappalemääräJakohalkaisija d
– kaava: d = m × zPäähalkaisija dₐ (hampaan kärkiympyrä)
– tyypillisesti dₐ = d + 2mJuurihalkaisija d_f (hampaan juuriympyrä)
– esim. standardin mukaan d_f = d − (2,25…2,5)m (riippuu standardista)Perusympyrä d_b (involuutin lähtöympyrä)
– d_b = d × cos(α), jossa α on painekulma (esim. 20°)
Lisäksi mallissa voi olla muita mittoja, joita haluat ohjata mittataulukosta ja Pythonista, esimerkiksi:
hammaspyörän leveys
akselireikä, kiilaura, olakkeet
mahdollisen hammaspyöräparin keskiöväli
Kaavat on hyvä kirjoittaa ylös – samoja kaavoja käytetään sekä mittataulukossa että Python-koodissa.
2. Hammaspyörän skeleton-malli Vertex G4:ssä
Ensin tehdään ns. skeleton-malli – korkeintaan yksi hammas ja siihen liittyvät perusympyrät. Sen päälle voidaan rakentaa lopullinen “oikea” hammaspyörä.
2.1 Perusympyröiden luonnostelu
Luo uusi osamalli hammaspyörälle.
Tee luonnos (esim. XY-tasoon) ja piirrä:
jakoympyrä (halkaisija d, myöhemmin mittataulukosta/kaavasta)
pääympyrä (dₐ)
juuriympyrä (d_f)
perusympyrä (d_b), jos teet involuuttiprofiilin selkeästi näkyviin
Sidot ympyröiden halkaisijat mittoihin, jotka myöhemmin viedään mittataulukkoon:
esim. D_JAKO, D_PAA, D_JUURI, D_PERUS
2.2 Yhden hampaan muoto
Samassa luonnoksessa (tai erillisessä luonnoksessa) luonnostele yhden hampaan poikkileikkaus:
hampaan paksuus jakoympyrällä (puolikas hampaan paksuus, ym.)
hampaan kyljet (involuuttikäyrä tai sitä likiarvoava kaari/viivasarja)
hampaan kärki ja juuriosan kaaret
Käytä mittasuhteissa kaavallisia mittoja (esim. paksuus = π × m / 2 jne. – transcriptissa viitattiin mm. π × moduuli / 4, “puolikas hampaan paksuus”).
Varmista, että:
hampaan pään tasoviiva on tangentiaalinen pääympyrälle
hampaan juuren kaaret ovat sidottu juuriympyrään
kaikki kriittiset mitat on sidottu nimettyihin mittoihin, ei “vapaaseen” numeromittaan.
2.3 Polar-sarja koko hammaspyöräksi
Kun yksi hammas on kunnossa, tee siitä polaarinen sarja:
“Hampaiden lukumäärä” = hammasluku z
Sarjan ohjausdimensioiksi tulee mm. hammasmäärä – se voidaan viedä mittataulukkoon (esim. Z_HAMPAAT).
Tässä vaiheessa sinulla on perusmalli yhdestä hammaspyörästä, ja mallin tärkeät mitat on nimetty.
3. Mittataulukon rakentaminen hammaspyörälle
Seuraavaksi kytket mallin Vertex G4:n mittataulukkoon (dimtable).
3.1 Mittataulukon aktivointi
Avaa hammaspyörämalli.
Valitse Mittataulukko (esim. Ominaisuuksista / toiminnoista).
Lisää taulukkoon vähintään seuraavat muuttujat:
MODUULI (m) – käyttäjän syöttämä
Z_HAMPAAT (z) – käyttäjän syöttämä
LEVEYS – käyttäjän syöttämä hammaspyörän leveys
haluamasi muut: esim. REIKA, OLAKE, KESKIOVALI, jne.
3.2 Johdetut mitat kaavoilla
Sitten lisätään mittataulukkoon kaavalla lasketut mitat:
Jakohalkaisija
D_JAKO = MODUULI × Z_HAMPAAT
Päähalkaisija
D_PAA = D_JAKO + 2 × MODUULI
Juurihalkaisija
D_JUURI = D_JAKO − 2,5 × MODUULI (esimerkki, käytä omaa standardiasi)
Perusympyrä
D_PERUS = D_JAKO × cos(α)
Kirjoita nämä suoraan mittataulukkoon kaavoina. Transcriptissa korostettiin, että samat hammaspyöräkaavat toistuvat useassa kohtaa – kun laitat ne kerran mittataulukkoon selkeästi ja lisäät kuvauksia, kaavojen logiikka pysyy näkyvissä myös myöhemmin (sinulle ja kollegoille).
4. Python-ympäristö mittataulukon ohjaamiseen
Ennen kuin käytät “Muokkaa Pythonissa” -toimintoa:
Asenna Python työasemalle.
Lisää Pythonin polku (PATH) ja Vertexin asetuksiin se Python-tulkki, jota haluat käyttää.
Litteroinnissa mainittiin: “kun on Python asennettu ja polut laitettu ja mittataulukon sitten Muokkaa Pythonissa…”.
Kun ympäristö on kunnossa, Vertex pystyy avaamaan mittataulukon Python-skriptinä.
5. Mittataulukon muokkaus Pythonissa
5.1 “Muokkaa Pythonissa” –toiminnon käyttö
Avaa hammaspyörämallin mittataulukko.
Valitse Muokkaa Pythonissa (tai vastaava komento valikosta).
Vertex luo malliin liittyvän Python-tiedoston (yleensä samaan hakemistoon ja mallin nimellä) ja avaa sen editoriin.
Tämä skripti toimii “liimana” käyttäjän syöttämien arvojen ja mittataulukon välillä.
5.2 Python-skriptin periaate
Tyypillinen skripti tekee suunnilleen näin:
Avaa nykyisen mittataulukon.
Kysyy käyttäjältä syöttöarvot (esim. moduuli, hammasluku, leveys).
Laskee johdetut arvot samoilla kaavoilla kuin mittataulukossa.
Kirjoittaa arvot takaisin mittataulukon soluihin.
Tallentaa mittataulukon ja päivittää mallin.
Esimerkkipseudokoodi (ei sidottu mihinkään tiettyyn Vertex-kirjastoon, periaatekuvaus):
def paivita_hammaspyora(dt):
# 1. Kysy käyttäjältä perusmitat
m = float(input("Moduuli (mm): "))
z = int(input("Hammasluku: "))
leveys = float(input("Leveys (mm): "))
# 2. Laske johdetut mitat
d_jako = m * z
d_paa = d_jako + 2 * m
d_juuri = d_jako - 2.5 * m # esimerkki
alpha = 20.0 # painekulma (deg)
d_perus = d_jako * math.cos(math.radians(alpha))
# 3. Kirjoita mittataulukkoon
dt["MODUULI"] = m
dt["Z_HAMPAAT"] = z
dt["LEVEYS"] = leveys
dt["D_JAKO"] = d_jako
dt["D_PAA"] = d_paa
dt["D_JUURI"] = d_juuri
dt["D_PERUS"] = d_perus
# 4. Tallenna
dt.save()
Vertexin demoissa käytetään usein valmista “dimtable-objektia”, jonka avulla rivit päivitetään nimen mukaan. Täsmällinen API riippuu Vertexin versio- ja esimerkkiskripteistä – perusidea on kuitenkin tämä.
6. Python-skriptin kytkentä malliin ja uudelleennimeäminen
Litteroinnissa painotettiin yhtä tärkeää käytännön asiaa:
Kun tallennat skeleton-mallin Tiedosto → Tallenna uudeksi, myös samaan malliin kytketty Python-tiedosto tallentuu uudella nimellä.
Eli jos sinulla on malli
hammas_demo.vxmja siihen liittyvähammas_demo.py, ja tallennat sen uudeksi nimellähammas_40hamp.vxm, myös Python-tiedosto seuraa mukana.
Tämä tekee Python-ohjatusta hammaspyörämallista käytännössä kopioitavan komponentin – voit tehdä eri kokoisia variaatioita ilman, että koodia täytyy kirjoittaa uudestaan.
7. Hammaspyöräparin käyttö ja animointi
Kun sinulla on yksi toimiva hammaspyörä, samalla periaatteella voit:
Mallintaa toisen hammaspyörän (eri moduuli/hammasluku tai sama moduuli, eri hammasluku).
Ohjata molempia Pythonista (esim. sama skripti laskee molempien mitat ja keskiövälin).
Rakentaa kokoonpanon, jossa hammaspyörät ovat kytköksissä ja käyttää Vertex G4:n liikesimulointia/animointia, kuten videolla demonstroitiin.
Tällöin Pythonin ja mittataulukon yhdistelmä ei ainoastaan mitoita yksittäistä osaa, vaan toimii lähtökohtana koko kytkennän toimivuuden arviointiin.
8. Vinkit ja tyypilliset kompastuskivet
Nimeä mitat järkevästi
– esim. MODUULI, Z_HAMPAAT, D_JAKO; se helpottaa sekä mittataulukon lukemista että Python-koodia.Pidä kaavat yhdessä paikassa
– käytä samoja kaavoja mittataulukossa ja Pythonissa. Jos logiikka muuttuu, sinun ei tarvitse metsästää useita eri versioita.Tarkista perusympyrä
– transcriptissa mainittiin, että malli ei toiminut ilman perusympyrää; lisää se mieluummin heti alkuvaiheessa mukaan, jos teet involuutin.Testaa käsin yksi hammaspyörä
– varmista ensin, että mittataulukon kaavat ovat oikein, ennen kuin tuot Pythonin mukaan.Muista Python-ympäristö
– jos “Muokkaa Pythonissa” ei toimi, vika on yleensä Pythonin asennuksessa tai polussa.
Yhteenveto
Prosessi “hammaspyörien mallintaminen + Python-ohjelmointi mittataulukkoon” menee käytännössä näin:
Mallinna yksi hammas ja perusympyrät skeleton-malliksi.
Vie mitat mittataulukkoon, nimeä syöttöarvot ja määritä kaavat johdetuille mitoille.
Ota käyttöön “Muokkaa Pythonissa”, kun Python on asennettu ja polut on asetettu.
Kirjoita Python-skripti, joka:
kysyy moduulin, hammasluvun ja muut tarvittavat arvot
laskee hammaspyörän mitat kaavoista
kirjoittaa ne mittataulukkoon
Tallenna malli uudeksi, tarvittaessa useiksi eri hammaspyöriksi – Python-skripti seuraa mukana.