Rýchly pohľad na opensource pre strojárov

Rýchly pohľad na opensource pre strojárov
16.04.2013 16:33 | Články | chatpall
Niekedy počas školských čias som sa dostal do kontaktu s FEM programom Ansys, odvtedy ubehlo pár chvíľ a potreboval som si zistiť aké mám napätia v jednej súčiastke pri mechanickom statickom zaťažení. Siahať po pirátskej verzii programu Ansys nie je na mieste preto som sa popozeral po voľných alternatívach. Bol som celkom prekvapený koľko je opensource programov v tejto oblasti a v akej kvalite.


Salome-Meca
Najkompletnejším (a najkomplexnejším) nástrojom na riešenie simulačných úloh je program, ktorý je súčasťou linuxovej distribúcie určenej pre riešenie úloh rôznymi simulačnými metódami CAElinux (obsahuje otvorené nástroje pre FEM analýzu, modeleri, konvertori, editori atď.).

Užívateľské rozhranie obsahuje modeler, nástroj na sieťovanie, solver úloh a posprocesor výsledkov v jednom balíku a práca prebieha v jednom okne. Zadávanie úloh a parametrov je plne dostupné v GUI, riešenie a vizualizácia výsledkov tak isto. Pri programe považujem za nevýhodu jeho “komplexnosť” a nutnosť rieši zložitejšie úlohy pomocou editácie textových vstupov. Keď sa však užívateľ dostane do stavu, že je schopný riešiť komplexné úlohy, editácia textových vstupov pre neho nemôže byť problém. Jednoduchá úloha statického a aj dynamického (mechanického) zaťaženia je priamo vstavaná do užívateľského rozhrania a je to otázka niekoľkých klikov myškou a niekoľkých označení na klávesnici.

Dokumentácia je písaná najmä vo francúzskom jazyku, hlavné súčasti, nutné pre riešenie úloh sú však v angličtine. Oboznámiť sa však s týmto programom je zložitejšie, najmä ak ste zvyknutý na komerčné balíky. O výsledky generované týmto programom by som nemal strach, výpočty diferenciálnych rovníc neprebiehajú nijako ináč ako pri komerčných balíkoch (samozrejme programátori sa môžu baviť o nuansách programov a ich časovej efektivite), užívateľ pri správnom zadaní úlohy dostane výsledok porovnateľný s komerčnými balíkmi. Vizualizácia výstupu je plne editovateľná, poprípade výstup môžete spracovať pomocou vami používaných nástrojov.

Okrem tohoto zaujímavého programu sa vo svete opensource celkom dobre etablovali iné, každý je určený na nejakú úlohu. Veľmi prakticky to vyriešila distribúcia CAElinux, ktorá ich poskytuje v jednom užívateľskom rozhraní. Priblížim aspoň niektoré z nich.

Elmer
Elmer je balík určený na riešenie úloh metódou konečných prvkov. Vznikol na pôde fínskych univerzít v spolupráci s priemyslom a výskumnými inštitúciami. Vývoj začal v roku 1995, čo samotné vypovedá o jeho kvalite. Elmer zahŕňa fyzikálne modely pre dynamické úlohy, štrukturálnu mechaniku, elektromagnetizmus, prestupy tepla, akustiku atď. Je dostupný pod licenciou GPL. Základná práca s balíkom Elmer nie je zložitá, ale ako to pri väčšine týchto programov býva, vyžaduje sa určitá nutnosť poznať pozadie riešeného problému, ovládanie je aj v GUI intuitívne, treba však mať svoju úlohu dobre rozpracovanú a je potrebné poznať všetky vstupujúce parametre. Úlohu je možné do solveru zadať aj vo formáte vygenerovanom mimo balíka Elmer. Základná štruktúra tzv. riadiaceho súboru (koncovka .sif) je nasledovná:

Header
parameter
atď.
End


Simulation
Prvok simulácie 1 = parameter
Prvok simulácie 2 = parameter, parametre
End

Constants
Konštanta 1 = parameter
Konštanta 2 = parameter, parametre
End

Body 1
cielova geometria = cesta ku geometrii
rovnica = označenie rovnice
materiál = označenie rovnice
End


Solver 1
parametre solvera
parametre solvera
brutálne množstvo parametrov solvera
End


Equation 1
parametre rovnice
brutálne veľa parametrov rovnice
End


Material 1
všetko o materiáli
a ešte aj niečo navyše
End.


Boundary condition
okrajové podmienky = parametre okrajovej podmienky
no aj tu môže byť veľké množstvo údajov
End

Štruktúra nie je zložitá a pri dobrom poznaní procesu, ktorý sa simuluje je jednoduché programu zadať všetky aspekty riešenej úlohy. Veľkou výhodou je možnosť editácie priamo v textovom formáte, poprípade pre zručnejších, skriptom vygenerovanie tejto štruktúry z existujúcej databázy je otázka pár sekúnd (UPOZORNENIE: tvorba skriptu nie je otázkou pár sekúnd, pre zručnejšieho užívateľa to ale prestavuje iba malý problém).

Dokumentácie ťahá za kratší koniec, ako pri veľkom množstve opensource projektov, ale existuje a je písaná v anglickom jazyku. Nájdete v nej všetky aspekty programu. Komunitné fórum existuje a je na ňom celkom živo. Nachádza sa tu veľa informácií od ľudí, ktorí sú vo svojom obore špičkou. Určite vo fóre nájdete množstvo inšpiratívnych príspevkov.

Riešenie prebieha ako v každom inom komerčnom softvéri. Import geometrie modelu (siete), určenie materiálových vlastností, určenie miest zaťaženia, určenie výpočtového modelu, výpočet rovníc, postprocess – vizualizácia vypočítaných údajov.

Problémom zostáva jedna časť programu – tvorba modelu. Tu však nastupujú ďalšie opensource programi freecad a gmsh.


freeCAD
Jedná sa o klasický parametrický multiplatformový 3D modeler. Ak máte skúsenosti s nejakým komerčným balíkom tak kreslenie je otázkou pár chvíľ strávených pri užívateľskom rozhraní. Veľkou výhodou je prístup ku funkcionalite programu cez programovací jazyk Python. Túto funkciu ponúkajú komerčné programy zvyčajne po dokúpení špeciálnych licencií. Pre strojárov sú najzaujímavejšími informáciami – natívna podpora kocepcie ako brep, NURBS kriviek a plôch, vstavaná podpora STEP a IGES formátov. Z mojich skúseností viem povedať, že bežné modely importujem bezo zmeny od komerčných balíkov. Ku štandardne podporovaným formátom patria: step, iges, obj, stl, dxf, svg (skvelo zladené s Inkscape), dae, ifc, off, nastran, vrml. Natívny FreeCAD formát je fcstd. Program obsahuje prácu s 3D zostavami, skečer so solverom stupňov voľnosti (pri kreslení to má nejaké muchy, niekedy to nevypočíta reálne hodnoty – geometriu rámu bicykla dostanete do programu za pár chvíľ), možnosti renderovania, tvorbu rezov a tvorbu výkresov. Práca so zostavami je vo vývoji ale podľa mojich skúseností na prácu s pár modelmi stačí. Výťah zo všetkých možností nájdete na stránke projektu.

O modelovaní v tomto programe sa dá vyhlásiť, že je užívateľsky prívetivé. Potrebné je zoznámiť sa s možnosťami programu a práca v ňom môže byť efektívna aj pre komerčnú tvorbu modelov. FreeCAD je veľmi obľúbeným nástrojov v komunite RepRap vývojárov, čo svedčí o určitom stupni vývoja, ktorý program už dosiahol.

gmsh
gmsh je špecializovaný nástroj na tvorbu sietí z 3D a 2D modelov. Je v ňom možné nastaviť každý aspekt sieťovania. Program môže slúžiť aj ako modeler, práca s ním je však užívateľsky veľmi strohá. Výhodou je možnosť textovej editácie priamo v súboroch geometrie (.geo). Program natívne pracuje so svojím .geo formátom. Je však možné do neho importovať STEP a IGES formáty, BREP, vrml, diff, stl, vtk a unv. Úspešne sa mi podarilo pomocou krátkeho skriptu importovať aj mrak bodov z 3D skenu. Gmsh je náročný na užívateľa, ale výstupom je plne kontrolovateľný model siete. Natívny výstup siete je .msh formát, s ktorým pracujú aj niektoré komerčné programi. Výstup môže byť v binárnej aj ASCII forme.

Z88 Aurora
Je simulačným nástrojom pre riešenie statických mechanických úloh, analýzu deformácií, rovnovážnej termickej analýzy a prirodzenej frekvenčnej analýzy. Podporuje bežné geometrie (stp, stl, dxf) a štruktúrne analýzy (nastran, abaqus, ansys a cosmos). V programe je možné sieťovať modely, určovať okrajové podmienky pomocou GUI, stanoviť materiálové vlastnosti modelu. Program obsahuje všetky základné funkčnosti pre aplikáciu na statické zaťaženie súčiastky, výpočet a vizualizáciu údajov. S programom mám iba okrajové skúsenosti, robí to na čo je určený. Niekedy je ťažké sledovať jeho logiku, ale výstupy má na dobrej úrovni.

OOF2
Tak a toto je moja srdcovka, ku ktorej som sa nikdy poriadne nedostal, lebo využitie tohoto programu je tak špecifické, že už špecifickejšie ani nemôže byť. Program slúži na modelovanie makroskopických vlastností zo skutočných alebo simulovaných mikroštruktúr. Program dokáže riešiť tepelné, mechanické úlohy a Coulombovu rovnicu. Je napísaný v C++ a Pythone a a funkčnosť je plne editovateľná pár riadkami v Pythone. Výstup tohoto programu používajú pre simulácie aj v komerčných simulačných programoch.
    • Uzitocne! 18.04.2013 | 13:46
      Avatar Castler OpenSuse 12.1 KDE4.7  Používateľ
      Diki velmi pekne za super clanocek - bookmarkujem.
      Som strojar a je uzitocne, ze si urobil taketo funkcne zhrnutie.

      Este raz vrele dik!
      Viem, že nič neviem.
      • Re: Uzitocne! 18.04.2013 | 22:35
        Avatar chatpall   Používateľ
        som rad ak pomohlo
        NERUSTE TENTO UCET!!!
        • Re: Uzitocne! 18.04.2013 | 23:18
          Avatar bedňa LegacyIce-antiX  Administrátor
          Vedel by si napísať nedostatky FreeCADu oproti Pro/E? Inak dík za článok.
          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
          • Re: Uzitocne! 19.04.2013 | 10:29
            Avatar chatpall   Používateľ
            Hned na uvod, ja som sviatocny konstrukter :) Par veci som si nakreslil do simulacii, nejake veci na RepRap tlaciaren, preto sa velmi necitim na porovnavanie, lebo toto je tazka tema a nemam v tom este celkom jasno ako sa na porovnavanie komercneho balika a opensourcoveho balika pozriet. Pro/E nepouzivam a moje skusenosti s nim su minimalne. ak to porovnam s Dessault Solidom (Works), oba su vsak urcene inym cielovym skupinam. po uzivatelskej stranke su oba prisposobene na to aby praca s nimi bola co najintuitivnejsia. FreeCad trpi este detskymi chybami (nizka verzia), niekedy je nestabilny, niekedy nerobi to co uzivatel chce - co je mozno dane iba nepochopenim logiky, priznam sa ze som dokumentaciu necital :) Problem som mal napriklad ze som nedokazal na hranach vystupujuceho kolika z nejakej plochy urobit radius (fillet) vzhladom na tu matersku plochu, co je z hladiska obrabania mozno blbost, ale skuska je skuska :) Nakoniec som to nejako dal, zmenou postupu modelovania objektu. Komercne baliky su oproti Freecadu produktivne! Proste od softu za par stoviek € sa vyzaduje produktivita, platis soft, cloveka, pocitac , musi to makat bez chyb a rychlo. Freecad ma velky potencial aj na produktivitu, ale potrebujes cloveka, ktory sa tomu venuje a najlepsie asi aj ked skriptuje v Pythone. Kym u komercnych balikov nevies na com su postavene, tak FreeCad je postaveny na OCC (OpenCasCade), takze je to iba zliepanie skriptov, OCC pouziva Brep datove štruktury, FreeCad to zdedil. Viem ze to pisem velmi zjednodusene, chce to proste cloveka, ktory sa tomu venuje a vedel by porovnat jednotlive ficurky. Kazdopadne FreeCad nema taku uzivatelsku zakladnu a taky balik penazi za sebou, cize je menej podpory, menej "zjednodusujucich" podprogramov. Co som si vsimol tak Solid je genialny na kreslenie rur :) Vo freecade vytahovat kazdu sekciu nejakeho vedenia z kriviek cez GUI a potom ich zliepat cez bool operacie, tak to by som sa pozrel ci by to niekto zaplatil tu robotu.

            chcelo by to realne porovnanie - dvoch ludi na rovnakej urovni, dve nahodne generovaneho suciastky (ich vykresy) s rovnakym poctom prvkov, a proste pozriet sa na rychlost akou dokazu urobit 3D model.
            NERUSTE TENTO UCET!!!
            • Re: Uzitocne! 20.04.2013 | 12:05
              Avatar bedňa LegacyIce-antiX  Administrátor
              Dík za odpoveď. To zliepanie potrubý by nebol až taký problém, pokiaľ to má paramatrické jadro a vie vyťahovať objekty do dĺžky a podobne. Pokiaľ tam je skutočné paramatrické jadro ako napríklad v BrlCADe tak by sa funkcionalita dala doprogramovať. BrlCAD vie vykreslovať z geometrických tvarov, GUI stojí úplne za prd, ale cez príkazový riadok si nakreslíš čo chceš :) Je to jadro FreeCADu skutočne parametrické a vie spájať geometrické tvary do seba a jednoducho s nimi pracovať a vyhnúť sa veciam ako mesh?

              Aby som to osvetlil, myslím napríklad spojenie hranolu s guľou do jedného objektu a pri tom hocikedy môžem editovať veľkosť hranolu?
              Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
              • Re: Uzitocne! 20.04.2013 | 13:41
                Avatar chatpall   Používateľ
                ano, jadro je parametericke, kazdy objekt nesie informaciu o svojom rodicovi a je mozne menit parametre rodica.
                NERUSTE TENTO UCET!!!
                • Re: Uzitocne! 20.04.2013 | 15:43
                  Avatar bedňa LegacyIce-antiX  Administrátor
                  Dík moc.
                  Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • RE: Rýchly pohľad na opensource pre strojárov 04.06.2013 | 09:41
      Avatar ventYl   Návštevník
      To naozaj nikomu nevadi ta zmet hrubych chyb hned na zaciatku clanku?
      • RE: Rýchly pohľad na opensource pre strojárov 04.06.2013 | 12:26
        Avatar Milan Dvorský debian,mint kde,android  Administrátor
        priznam sa, ze som robil korekturu len zbezne, kde si nasiel chyby pls?
        • RE: Rýchly pohľad na opensource pre strojárov 11.06.2013 | 09:33
          Avatar ventYl 2 x Slackware  Používateľ
          modeleri, konvertori, editori kontrola pravopisu v *office je zavadzajuci nazov. v skutocnosti je to spellcheck pre retardovanych americanov, co nevedia, ako sa jednotlive slova v skutocnosti pisu. s pravopisom, resp. gramatikou to nema nic spolocne.
          • RE: Rýchly pohľad na opensource pre strojárov 29.06.2013 | 01:53
            Avatar bedňa LegacyIce-antiX  Administrátor
            Že to zrovna píše človek, čo si dá na helpdesk masérku, čo ani nepozná výraz presmerovať doménu, to si našiel na Facebooku?
            Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org