Portál AbcLinuxu, 5. května 2025 09:14
BRL-CAD je svobodný 3D CAD. Než se pustíme do jeho historie, udělejme si v jedné věci jasno, nerad bych, abyste četli zbytečně. BRL-CAD je nástroj pro CSG (Construction solid Geometry) modelování, je to rodina zhruba čtyř set samostatných aplikací, které v unixovém duchu, „dělejte jednu věc a dělejte ji dobře“, dohromady skládají mocný modelovací systém. BRL-CAD není intuitivní klikací CAD, ve kterém za pár minut nakreslíte novou kuchyňskou linku a kótovaný výkres strčíte truhlářovi. Na to máte v repozitáři QCAD. Pokud ale potřebujete tu kuchyňskou linku navrhnout pořádně, vymodelovat ji ve všech třech rozměrech a případně vyrenderovat její obrázek, tak na to je tu BRL-CAD.
Některé zdroje uvádějí jako jeho počátek duben 1983[1], ovšem vývoj byl započat už v roce 1979[2] v Ballistics Research Laboratory (odtud zkratka BRL), organizační to složce Americké armády. Byl potřeba software pro modelování vojenských vozidel a analýzu rizik při jejich zasažení. Jelikož žádný takový software na trhu nebyl, začala ho armáda vyvíjet sama. (Podobná situace dala vzniknout geografickému informačnímu systému GRASS, ale to je trochu jiný příběh.) Hlavním inženýrem celého projektu byl Michael J. Muus, autor slavných utilit ping a ttcp, které z UNIXového světa prosákly snad do všech operačních systémů. Muusovým hlavním zájmem ale bylo modelování a renderování a v čele BRL-CADu stál zhruba 20 let, až do své tragické smrti v roce 2000. Pro mnoho jeho kolegů to byla bolestná ztráta, ale armádní softwarové projekty nebývají one man show, proto se vývoj nezastavil a pokračuje dodnes.
Vývojáři s BRL-CADem vždy zacházeli jako se svobodným programem, ačkoliv licencování celého projektu nebylo vždy úplně zřejmé. V roce 1989 bylo k získání zdrojového kódu potřeba zaslat dost pásky, aby se na ní vešlo 20 MB dat a stručné psaní zmiňující, kdo jste a na co BRL-CAD chcete. Součástí ujednání byla i klauzule, že neposkytnete software třetí osobě, v BRL na přelomu 80. a 90.let zkrátka chtěli vědět, kdo zdrojáky má [3]. V roce 1998 začal bolestný proces přesvědčování armádních úředníků k vydání BRL-CADu pod svobodnou licencí. Trvalo to do prosince 2004, od té doby je BRL-CAD dostupný pod licencemi BSD a LGPL [4].
BRL-CAD je hostován SourceForge, kde pro každé stabilní vydání stáhnete rpm a deb balík a to jak ve 32, tak i 64bitové verzi. Čert ví proč (neboli nepátral jsem po tom) není BRL-CAD zastoupen v žádné majoritní linuxové distribuci a uživatel si k němu musí najít cestu sám. Výjimku jsem našel pouze u FreeBSD, kde je v portech k dispozici poněkud starší verze 7.18.4. Zdrojáky se kompilují pomocí klasické triády ./configure, make, (sudo) make install a pokud kompilujete SVN verzi, šoupněte před triádu ještě autogen.sh. Stabilní verze se kompiluje zpravidla bez problémů, pokud bažíte po svn, počítejte s komplikacemi, které – pokud je nezvládnete sami – zpravidla vyřešíte dotazem v kanále #brlcad na FreeNode. Pokud si při kompilaci nevyžádáte jinak, usadí se BRL-CAD v asresáři /usr/brlcad. Najdete v něm několik zajímavých věcí, v první řadě adresář bin, který je potřeba přidat do PATH a hlavně adresář share/brlcad/verze/db, v němž najdete ukázkové modely.
Pokud jste kreslili v QCADu nebo modelovali v Blenderu, které společně s komerčními aplikacemi můžeme přirovnat k modernímu bytečku s vyladěným designem, bude vám rozhraní BRL-CADu připadat jako pevnostní architektura 30. let, a to nejspíš ještě ve stavu, než se parta nadšenců pustila do rekonstrukce. Velká část komponent BRL-CADu se ovládá textově a ústřední modul sloužící k samotnému modelování – mged – je tvořen dvěma okny, přičemž jedno zobrazuje model a druhé je vlastně terminál. Obě okna mají klasickou horní lištu, takže většinu operací zadávaných textovými příkazy můžete dělat i přes klikaci GUI napsané v Tcl.
Kromě mgedu, dlouhodobého ústředí celého BRL-CADu je v poslední době intenzivně vyvíjen uživatelsky přívětivější Archer (takové moderní kasárna). Ani jeden není integrován do debianích menu a musíte je zavolat z terminálu a hodí se rovnou jim zadat soubor, na němž budete pracovat. Zkusme si to nyní na svou ukázkových modelech; doporučuji zkopírovat si je někam do home
.
cd tady/mam/vzorová/cad/data mged m35.g
Vyskočí na vás rozhranní mgedu, Command Window (CW) a Graphics Window (GW). O Command Window je dobré vědět, že se chová jako Emacs. Pokud to není zrovna váš šálek kafe, můžete to změnit v menu File < Preferences < Command Line Edit a rochnit si ve Vi. Než začnete do Command Window mastit příkazy, musíte do něj umístit kurzor myši; stačí to udělat pouze poprvé, pokud později skočíte do CW jen klávesovou zkratkou, bude fungovat, ať už je myš kdekoliv.
Pro začátek nevidíme nic, zkusíme tedy databázi prozkoumat. Jestli jí autor opatřil nějakým titulem, zobrazíte ho příkazem title
. Ejhle máme tu dvouapůltunový náklaďák M35. Ok, ale jak si ho teda zobrazit? Ještě než vám to prozradím, uděláme si malý exkurz. Pokud jste dávali pozor v prvním odstavci, tak víte, že máme co do činění s CSG modelováním. To v obecné rovině znamená, že pracujeme se základními tvary a z nich pomocí logických operací (součet, rozdíl, průnik) skládáme složitější útvary. Každý model se v BRL-CADu skládá ze základních prvků, které vytvářeví strom, čím blíže jste kmeni, tím větší část modelu zobrazíte. Všechny základní tvary v modelu zobrazíte pomocí příkazu ls
, ovšem příliš si tím nepomůžete. K vypsání hierarchicky nejvýše postavených celků slouží příkaz tops
. A vida, jeho výstup je na rozdíl od ls
o poznání srozumitelnější. Zobrazíme tedy konečně celý model:
mged< e all.g
V Graphics Window nám vyskočil drátěný model náklaďáku zobrazený ve volném rovnoběžném promítání pod azimutem 35 stupňů a elevačním úhlem 25 stupňů. Modelem samozřejmě můžete libovolně vrtět, stačí zajet myší do GW, stisknout a podržet ctrl a zašmejdit myškou. Základní pohledy mají své klávesové zkratky:
Až se jich nabažíte, zkuste je společně s vrtěním ještě jednou, ale nejdříve zvolte z menu Misc > Perspective. Jakýkoliv pohled si můžete nechat vyrenderovat, a to buď pomocí dialogu vyvolaného z menu File > Raytrace, který vám vyrenderuje přímo GW, nebo napsáním rt
do CW, čímž získáte samostatné okno s obrázkem.
Mged ukončíte napsáním q
do CW.
cd tady/mam/vzorová/cad/data archer cray.g
Na první pohled je zřejmé, že Archer je stavěn s ohledem na současného uživatele zmlsaného klikacími CADy. Jeho hlavní devizou je bezprostřední pohled do stromové struktury modelu zobrazené v levém panelu, z níž můžete libovolnou zobrazit a ihned zase vypnout jakoukoliv část celého modelu, stačí na něj kliknout pravým tlačítkem a zvolit Wireframe nebo Hidden Line.
Tolik stručné představení BRL-CADu, v příští týdnech si detailně představíme mged a vyrobíme první model. Pokud vládnete angličtinou a prahnete nedočkavostí, mrkněte na dokumentaci. Pokud chcete zkoumat další modely, existuje jejich repozitář.
A jsem do toho schopen cpád dost penězTy jsou ti k ničemu dokud jich nemáš tolik jako Shuttleworth aby si si mohl zaplatit osobní armádu otroků co by realizovala tvé sny (v případě že nebudeš jen kopírovat a přemalovávat loga, ale chceš opravdu něco dělat si tu částku vynásob ještě aspoň pěti).
V sestavách je také potřeba aby to umělo třebas pomocí 2D skic odečíst materiál z dílůVypustil bych tyto „assembly feature“, je to sice velmi užitečné a práci usnadňující, ale i „velké“ CAD s tím měli donedávna problém a na první pohled to trochu narušuje „logický“ model (myšleno při návrhu CAD aplikace), takže bych to nedával do základních požadavků.
potřeba aby to dokázalo dle technických norem vkládat pohledy ze sestav a dílů + třebas zobrazit koty a nebo okotovatTato problematika je tak široká, že ani na konec nedohlídnu (různé normy, styly, typy), že bych se v základních požadavcích spíše specializoval na 3D kótování, které není v našich krajích obvyklé nicméně ojediněle se ve světě používá na neprimární konstrukce (nástrojárny apod.).Zpracování takového kótování je daleko snazší.
Mrtvola ? tady de videt ze o tom vite fakt hodne .....
Jinak jeho hlavni vyhoda je jeho skalovatelnost a jednoducha zamenitwlnost komponent , potrebujete sit pro FEM -: poslete model na exporter .. potrebujete pekny rez pro dodavatele - poslete rna raytracer , nebo jakykoliv jiny modul a samozrejme jak de menit vystup tak vstup ...
BRL-CAD je nepoužitelná mrtvolaBohužel to samé lze tvrdit i oboru konstrukce. Stále více a více spěje do mrtvého bodu. Já to docela živě sleduji. Naopak program kde by bylo potřeba víc myslet a psát (programovat) než slepě klikat by byla spása. Tvrdím, že tvrdě pracující programátor se pozná podle toho, že majoritu času má podepřenou hlavu, nic nedělá (zdánlivě) a hledí do blba – protože přemýšlí. V programovací praxi co automatizovat jde a není je považováno za zbytečný overhead (zbytečnou práci, hraní si na práci…), neproduktivní mrhání, protože dobrý programátor je od přírody líný a snaží se ulehčovat si život (tvrdím, že když se někdo snaží uhnat klávesnici k smrti, tak v podstatě už nemá co na práci).
media-gfx/brlca ~7.18.4
brlcad
samozrejme, pardon za preklep
pro linux tu v tomto segmentu opravdu není místoTo se říkalo pokud vím i o všech ostatních nasazení, kde má dnes linux velmi silnou pozici. Že bysme měli na Abclinuxu dalšího astrologa?
nikdo nemá ponětí o tom, jak to v dodavatelskym řetězci funguje.Mám pocit, že ten „nikdo“ je synonymum pro „tralala“.
catia je jeste o nicem ... na kolika Superpocitacich jsou Widle S catii?
no to sou prdy, na kolika těch věcech cos vyjmenoval je nasazená Catia se stamilionovou zodpovědností??? Óbože.Na Linuxu běží burzy, na kterých se obchoduje s tou tvojí „odpovědností Catia“ obchoduje, to by ti mohlo stačit :).
jaká silná pozice??? na počítačích babiček uhrovanejch pubošů?Většina serverů, drtivá většina routerů do domácích kanceláří, drtivá většina settopboxů, každý telefon s Androidem (+pár jiných), drtivá většina superpočítačů... a pak ještě takové blbosti jako Express Gate na noteboocích od Aceru. Externí disky a podobné blbosti. Zkráceně řečeno, obrovský business, kterámu je tvoje babička s windowsama úplně u prdele.
USG NX (nastram atd ... ) vam asi mnoho nerika ze? zas na druhou stranu ...
Aneb dokud se nenaprogramí otevřenej, skutečně pořádnej CAD pro linux, alespon na urovni Pro/E z roku 2000 pod GPL tak se nic nikam nehne...Z hlediska člověka, který grafiku studuje a i před tím se o ní dlouhou dobu zajímal musím poznamenat jednu věc. Udělat uživatelské rozhraní pro CAD je v podstatě hračka. Oproti tomu opravdu dobře zpracovat CSG strom je zatraceně komplikované a implementace bude trvat spoustu člověkoroků. Velká část UI se totiž dá naklikat v nějakém designeru. Vnitřnosti jsou ale spousty matematiky, která se naklikat nedá. Pravděpodobně proto jsou tu tuny různých GUI k ffmpeg, ale ffmpeg je jen jeden (libav se příliš neliší). Ale to už odbíhám od tématu. Dle mého názoru je BRL CAD takřka jedinou nadějí, že GNU/Linux bude mít kvalitní CAD. Interní struktury už evidentně mají funkční, takže stačí udělat UI, které je ta lehčí část.
+1
ale mě nevadí ten samotnej program. mě vadí, že z něj děláte něco, co jako fakt není.Když obviňuješ, tak jmenovitě :). A mimochodem, zatímco ty obviňuješ z toho, že někdo přeceňuje jeden program, ty bezdůvodně kopeš do mnoha lidí, včetně takových, kteří se na glorifikaci daného programu vůbec nepodíleli. Jak uřvané děcko.
Mě je to jedno, já tu jen flejmuju s faktem, že nikdo z vás se ke konstruktérovi ani trochu neblíží a nemáte sebemenší potuchy o fungování konstrukce.Já jsem tě tu spíše viděl, jak se neúspěšně snažíš realizovat se ve své zvrácené touze někoho shazovat, a přitom nakonec shodíš sám sebe :).
rozdil { kostka(2,2,2), posun(1,1,1) kostka(2.1,2.1,2.1) }
a hned mate kostku, ze ktere si druha kostka ukousla roh. takovy CSG model si pak muzete za par desetikorun nechat vytisknout (vyrobit) na 3D CNC tiskarne RepRap (mimochodem take navrzene v OpenSCADu) treba v prazskem hackerspacu brmlab. http://brmlab.cz/
Mam takovy pocit, ze takovyto druh clanku pripadne zajemce o Linux spise odrazuji.Mně a jistě velké řadě ostatních návštěvníků je egál, jestli to někoho odrazuje nebo přitahuje. Nejsme křižáci, abychom museli tohle řešit. Tohle je článek pro nás. Ostatní ať si klidně spokojeně používají Windows nebo DOS nebo co je jim libo.
Naproti tomu zase kolegove, kteri se zabyvaji pocitacovou grafikou vidi pouze ty CGS stromy a o konstruovani vedi kulove.Hádám, že narážíš na mě. Řekni mi tedy, co je na GUI pro CAD tak fundamentálně složitějšího než pro cokoli jiného.
jenže si vubec neuvědomujeme že svoboda programů je jenom zatím krůček ke skutečné svobodě.Plural majestaticus?
Asi toto po mne uz nikto nebude citat... Ale predsalen pridam svoju trosku. Po tom co som si precital v diskusiach hore, som sa chvilu smial, chvilu mi bolo mdlo, chvilu doplacu. Nakolko pracujem pre Dassault Systemes ako vyvojar a zaroven som zaryty linuxak, myslim si, ze co to o problematike tusim . Fakty su take, ze Dassault nema zaujem o linuxovy trh pokial sa jedna o CATIU, nie preto ze by to neslo, ale pre velkost trhu. Dassault o male trhy nema absolutne ziadny zaujem. Ked na drvivej vacsine stanic bezi windows, Dassault to zaujima, ked na drtivej vacsine bezi unix, Dassault to zaujima. Ked na vacsine servrov bezi linux, Dassault odpoveda tak, ze ENOVIA bezi na linuxe.
Dalsi fakt je ten, ze na Linuxe nie je doteraz k dispozicii ziaden nastroj typu CATIA. Ked nieco robime aj u nas vo firme, nie je to komu predat. Ked ja si chcem nieco len tak nakreslit, alebo vyskusat, doma musim ist cez KVM s windows kde mam CATIU, co ma dost stve. Vo wine bezat CATIU sice ist ide, ale GUI je zmrsene, tudy cesta aspon zatial nevede.
Uz som si niekolko krat povedal, ze zbastlim nastroj podobny CATII na linuxe, ale to vsetko co za tym stoji, mi akosi vobec nedodava odvahy . Urobit GUIko, to fakt neni problem, to mam dokonca uz niekolkokrat spravene. Ale ta matika/topologia co je treba spravit, to bude trvat roky... Ja som mal taku predstavu, ze pripravim system/jadro, a neham komunite, nech dorabaju matiku co za tym stoji. Co je bezpochyby najvacsia cast zdrojakov. Uz len ked si pozrejm zdrojaky co tu mam pred sebou, aky podiel ma GUI oproti vsetkemu ostatnemu. A tiez kolko ludi robi na com atd. atd. A teda v neposlednom rade ma odradza predstava toho <irony>"zastupu ludi"</irony>, ktory by sa hrnuli do toho, pisat kod a dalsi <irony>"zastup ludi"</irony> co by realne v takomto nastroji konstruovali. Ked sa pozrieme na konstrukterov v automobilkach, lietadlovkach (+/- stavebnictve), kolky z nich si doma len tak nieco z pasie zkonstruuju, ci uz na windowse alebo na linuxe. Tak pre koho potom by ten nastroj vlastne bol. Mna by napriklad taky nastroj potesil, ale nie preto ze by som si doma isiel nieco konstruovat, ale preto ze by som si cas od casu overil/vyskusal nejake napady/myslienky. Kvoli tomuto zakazdym startovat KVM ma jemne povedane, uz nebavi. Ale lepsie nic zatial nemam.
No a moj dalsi problem je v tom, ze ked sa posadim za iny CAD ako CATIA, tak ma stve, ze to nechodi ako CATIA ale to je uz skor uchylka
.
smel - nie nie som strojar, som software developer. Videl som ako sa zobrazuje kde co a momentalne akurat programujem do jedneho maleho projektu prave modelviews.
jedno po druhom:
a) priznam sa bez mucenia, ze opencascade neviem co presne vsetko obsahuje. Na zaklade zbezneho pohladu na opencascade sudim, ze je to kniznica, ktora by mohla postacovat. faktom ostava, ze ju nepoznam
b) pod GUI som mal na mysli LEN zobrazovac 3D modelov, 2D skic, vykresov atd. (nechcem zavadzat, nepoznam presne slovensku terminologiu), zobrazovac specifikacneho stromu, vzajomne interakcie, menu, toolbary, dialogovy engine.
Teraz to len upresnim:
pod matematikov si predstavujem v zasade zakladnu kniznicu pre zakladne matematicke "objekty" ako je bod, vektor, usecka, krivka, plocha, povrch(surface), objem(solid), transformacne matice, atd atd atd. zakladna matematika. Dalej si predstavujem pod matematikov operacie a operatory nad tymito matematickymi objekatmi, Dalej topologicke objekty a operatory a nakoniec objekty na specifikacnej urovni. Pod GUI potom myslim to, co zobrazuje a umoznuje interaktivnu manipulaciu. Avsak je jasne, ze ked vznikne nova "ficra" je k nej potrebne vytvorit adekvatne rozhranie (editacny dialog, ikonky a pod.). V neposlednom rade ostava este vytvorit datovy format (subory, data v PDM, atd)
A co som vytvoril ja:
- vytvoril som framework podobny CORBE na ktorej je postavene CAA, akurat som ho IMHO trochu zjednodusil a IMHO trochu vylepsil
- vytvoril som s vyuzitim tohto frameworku aplikaciu na zobrazovanie tessellovanych dat, zobrazovanie specifikacneho stromu, zobrazovanie dynamicky generovaneho menu, toolbarov, uzivatelskych dialogov
- vytvoril som s vyuzitim tohto frameworku engine na generovanie uzivatelskych dialogov na zaklade poziadaviek datovych objektov (uff, strasne zle sa to popisuje na par riadkoch... napisal som o tom 250 stranovu pracu )
- vytvoril som datovy format do ktoreho je mozne serializovat objektovu strukturu definovanu v tom frameworku
...
a kopec dalsich suvisiacich veci
co mi chyba, su "ficre", build kod pre specifikacne objekty, matematicke definicie, vizualizacie, atd atd. to co z toho robi funkcny CAD typu CATIA. Cize, mam stavebnicovy lego system, kde sa daju vytvarat nove kocky, pridavat nove kocky, nahradzat existujuce, za ine/lepsie/jednoduchsie, schopny nieco zobrazovat, ukladat do suboru atd. ale nema co zobrazovat a nema co ukladat.
Na ten opencascade sa urcite pozriem.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.