Ohjelmallisen CAD-kirjaston laajentaminen Python-ohjelmointikielellä
Haapakoski, Niko (2025)
Haapakoski, Niko
2025
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2025052817370
https://urn.fi/URN:NBN:fi:amk-2025052817370
Tiivistelmä
Opinnäytetyössä perehdyttiin ohjelmalliseen CAD-suunnitteluun ja kehitettiin Python‑kirjasto, joka yhdistää parametrisen mallinnuksen ja lujuuslaskennan automatisoinnin. Työ aloitettiin katsauksella 3D‑geometrian esitystapoihin (BREP, CSG, mesh, vokseli) ja OpenCascade‑ytimen rooliin Build123d- ja CadQuery‑kirjastoissa. Kirjallisuuskatsauksen jälkeen vertailtiin OpenSCAD‑, CadQuery‑ ja Build123d‑ympäristöjä sekä tarkasteltiin versiohallintaa ja avoimen lähdekoodin lisenssejä (MIT vs.\ GPL).
Kirjasto koostuu kolmesta päämoduulista. Poikkileikkausanalyysi laskee mielivaltaisten ja standardiprofiilien jäyhyysmomentit GMSH‐meshin perusteella ja sisältää vakioprofiileille funktiot CadQuery‐geometrian muodostamiseen sekä tarjoaa valmiita lujuusopin kaavoja vakioprofiileille. Palkki‐FEM on yksiulotteinen Euler–Bernoulli‐ratkaisija, joka tuottaa tukireaktiot, leikkaus‐ ja taivutusdiagrammit sekä taipumat. 2D‐ristikkolaskin ratkaisee sauvojen voimat ja tukireaktiot globaalista tasapainoyhtälöstä lineaarisena yhtälöryhmänä.
Kirjaston käyttö demonstroitiin optimoimalla teräsrakenteinen autokatos Optuna‑kirjaston TPE‑algoritmilla. Optimointi pienensi useita mitoitusparametreja, kuten ristikon korkeutta, profiilien poikkileikkauksia ja lautojen määrää kuitenkin säilyttäen kaikkien lujuuskriteerien täyttymisen. Tuloksissa osoitettiin, että geometrian parametrisointi ja lujuuslaskenta voidaan yhdistää tehokkaaksi, automatisoiduksi työnkuluksi.
Kirjaston lähdekoodi on saatavilla GitHubissa: https://github.com/NHaapakoski/cq_mechanical_strength_calc
Kirjasto koostuu kolmesta päämoduulista. Poikkileikkausanalyysi laskee mielivaltaisten ja standardiprofiilien jäyhyysmomentit GMSH‐meshin perusteella ja sisältää vakioprofiileille funktiot CadQuery‐geometrian muodostamiseen sekä tarjoaa valmiita lujuusopin kaavoja vakioprofiileille. Palkki‐FEM on yksiulotteinen Euler–Bernoulli‐ratkaisija, joka tuottaa tukireaktiot, leikkaus‐ ja taivutusdiagrammit sekä taipumat. 2D‐ristikkolaskin ratkaisee sauvojen voimat ja tukireaktiot globaalista tasapainoyhtälöstä lineaarisena yhtälöryhmänä.
Kirjaston käyttö demonstroitiin optimoimalla teräsrakenteinen autokatos Optuna‑kirjaston TPE‑algoritmilla. Optimointi pienensi useita mitoitusparametreja, kuten ristikon korkeutta, profiilien poikkileikkauksia ja lautojen määrää kuitenkin säilyttäen kaikkien lujuuskriteerien täyttymisen. Tuloksissa osoitettiin, että geometrian parametrisointi ja lujuuslaskenta voidaan yhdistää tehokkaaksi, automatisoiduksi työnkuluksi.
Kirjaston lähdekoodi on saatavilla GitHubissa: https://github.com/NHaapakoski/cq_mechanical_strength_calc