Reverse engineering

Rhino a R.E.

Reverse engineering tonetky - stínované zobrazeníZatímco principem vývoje výrobku či součástky je transformace nehmotného 3D modelu do podoby fyzického prototypu či finálního výrobku, reverse engineering představuje přesně opačnou cestu - z fyzického kusu chceme získat počítačová 3D data. V tomto článku si představíme možnosti programu Rhinoceros právě v této oblasti.

Převod bodů a sítí na plochy

Převod dat z 3D laserového skeneru na hladké NURBS plochy je náročná úloha. Pro převod sítí na plochy existují specializovaná řešení, která jsou ale pro běžné uživatele pro svoji závratnou cenu nedosažitelná. Pro vytvoření NURBS ploch z mraku bodů nebo polygonové sítě ale můžete využít také program Rhinoceros a to dokonce i v základní verzi bez specializovaných zásuvných modulů. Podíváme se na konkrétní příklad převodu mraku bodů na hladkou plochu.

Ruční převod sítí na plochy v Rhinu bez pluginů je vhodný spíše pro sítě plynulého, nepříliš členitého tvaru a s pokud možno rozumně distribuovanými body. Na níže uvedených obrázcích vidíme příklad jednoduchého mraku bodů, který převedeme na jedinou NURBS plochu. Použijeme k tomu příkaz Plát. Po nastavení parametrů jako citlivost na odchylky vstupních bodů nebo hustota izočar plochy ve směrech U a V se plocha vygeneruje. Pokud do řešení nezahrneme obrysovou křivku, které vymezí vnější hranici plochy, vytvoří se vždy automaticky nestříhaný NURBS plát se čtyřhrannou topologií. V půdorysném pohledu můžeme jednoduše pomocí křivky obkreslit tvar mraku bodů a touto křivkou můžeme plochu stříhat. Nakonec můžeme analyzovat odchylku vygenerované plochy od jednotlivých vstupních bodů. Vybereme body i plochu a zavoláme příkaz OdchylkaBodů. Body se obarví podle vzdálenosti od plochy (pásma definuje uživatel) a každým bodem bude vést normála vynásobená měřítkem, která nám dá lepší představu o vzdálenosti bodu od plochy a také o orientaci bodu vůči ploše.Funkce OdchylkaBodů se také používá pro určení tvarové odchylky vyrobeného kusu sejmutého 3D skenerem od jeho počítačového modelu.

Převod bodů na plochu - mrak bodůPřevod bodů na plochu - proložení bodů plochou příkazem Plát
Převod bodů na plochu - stříhání plochy obrysovou křivkouPřevod bodů na plochu - analýza odchylky bodů od plochy

Uvedenou metodou je možné převádět na plochy i topologicky složitější sítě, v takovém případě postupujeme po plátech podle charakteristických tvarů objektu. V příkazu Plát přitom máme možnost stanovit v tečnou návaznost na existující plochy. U složitějších sítí doporučuji specializovaný modul RhinoReverse, o kterém bude řeč za chvíli.

Zajímavým postupem je rekonstrukce NURBS plochy z polygonové sítě pomocí řezů. Příkaz ŘezMrakemBodů umožňuje vést mrakem bodů řezy v libovolném směru. Uživatel může specifikovat, zda se mají vytvářet uzavřené či otevřené křivky a jestli mají být řezy v podobě lomených čar nebo hladkých křivek. Dále je možné zadat různé tolerance odchylek od řezných rovin a okolních bodů. Výsledné křivky pak můžete překrýt plochou například příkazem Potáhnout, viz. obrázky níže:

Vytvoření plochy z mraku příkazem PotáhnoutKřivky byly vytvořeny příkazem ŘezMrakemBodůVýsledná plocha vznikla potažením řezových křivek

Oprava polygonových sítí

Rhinoceros obsahuje nástroje pro automatickou či poloautomatickou opravu chyb, děr a hranových netěsností v polygonových sítích. Naskenovaná data tak můžete zkontrolovat a opravit ještě před tím, než je pošlete do 3D tiskárny.

Při modelování ploch ze sítí občas potřebujete originální sítě ustřihnout, rozdělit, část smazat... dobrou zprávou je, že v Rhinu můžete na polygonové sítě aplikovat téměř všechny příkazy jako na NURBS plochy. Sítě tedy můžete nejen stříhat a rozdělovat křivkami, plochami a tělesy, ale můžete na ně aplikovat také booleovské operace.

Dalším problémem, se kterým se v praxi často setkáme, je velká díra v polygonové ploše, kterou potřebujeme zacelit. Na obrázku vidíme příklad takové situace:

Díra v polygonové síti, kterou potřebujeme zacelit

Postup řešení je následující:

  1. okraje díry začistíme - zobrazíme si řídicí body sítě a smažeme ostré výčnělky
  2. příkazem DuplikovatHraniciDíryVSíti duplikujeme hranici díry v podobě lomené čáry
  3. spustíme příkaz Plát. Jako vstup příkazu vybereme hranici díry a síť samotnou
  4. tento krok je důležitý - klávesou F11 si zobrazíme řídicí body sítě
  5. vybereme řídicí body sítě a obrysovou lomenou čáru díry a spustíme příkaz Plát
  6. nastavíme parametry jako je hustota plochy, citlivost na vstupní data a klikneme na OK

Začištění okraje díryDuplikace hranice díry v síti
Vyplnění díry příkazem PlátAnalýza návaznosti výplně na plochu příkazem Zebra

Výslednou záplatovou plochu vidíte výše (oranžová plocha, levý dolní obrázek). Na pravém dolním obrázku je zobrazena analýza hladkosti napojení ploch pomoci příkazu Zebra - všimněte si perfektní návaznosti a uvědomte si přitom, že vnější plocha je polygonová síť a výplň díry je tvořen NURBS plochou... Záplatová NURBS plocha byla nakonec převedena na polygonovou síť a sloučena s vnější částí sítě. Nyní s ín tvoří jedinou celistvou plochu:

Výsledná zacelená polygonová síť

Zásuvné moduly

Pro oblast reverse engineeringu je přímo určen zásuvný modul pro rhinoreverse 2, který je plně integrovaný v programu Rhinoceros 4.0. Tento modul umožňuje poloautomatický převod digitalizovaných polygonových sítě na hladké NURBS plochy. Cílem je příprava naskenovaných dat pro další kroky v řetězci CAx aplikací, jako je další modelování a editace nebo CNC programování.

Práce v modulu spočívá v načtení naskenovaných sítí, na kterých poté myší skicujete (případně zpětně editujete) hranice budoucích ploch a modul automaticky vytváří pláty s tečnou spojitostí na okolní plochy. Každý z plátů může být definován až 25 hraničními křivkami a pláty mohou být stříhané, nemusíte se tedy omezovat na čtyřhrannou topologii plátů. Pokud použijete volbu healing (léčení), budou přechody mezi vypočtenými plochami upraveny podle aktuálního nastavení tolerance v Rhinu. Tím bude zajištěno, že výsledné plochy lze spojit do uzavřeného tělesa a použít v objemovém modeláři nebo pro NC programování bez jakýchkoliv úprav.

Modul nabízí i metodu rychlého výpočtu opláštění sítě (skinning). Cílem je vyjádřit vrcholy polygonové sítě malým počtem NURBS ploch za cenu připuštění určitého tvarového zjednodušení. Mezi další zajímavé příkazy modulu RhinoReverse patří RRRelief, který je optimalizován pro vytváření NURBS ploch z polygonových 3D modelů terénu a RRPatch, navržený pro vytváření komplexních plátových ploch. Na obrázku vidíte několik modelů, které byly převedeny z polygonových sítí na NURBS plochy. Sítě jsou vystínovány šedě a plochy jsou reprezentovány oranžovými dráty:

NURBS plošné modely vytvořené z polygonových sítí pomocí modulu RhinoReverse

Výrobce modulu Rhinoreverse, švýcarská firma iCapp, nově vyvinula další zajímavý produkt. Jeho název je Rhinocovermesh (resp. Covermesh v podobě samostatně spustitelného programu). Tento modul dokáže plně automaticky převést organické sítě na hladké NURBS plochy. Na síti jsou bez zásahu uživatele generovány hladce návazné pláty. Několik realizací vidíte níže:

Automatický převod v modulu rhinocovermesh

Pro převod sítí na NURBS plochy se dá překvapivě použít také plugin T-Splines, který se používá na plastické modelování organických ploch. Vstupem tohoto modulu může být mimo jiné hrubá polygonová síť v nízkém rozlišení, kterou tento modul dokáže proložit hladkou plochou.

Příkladem může být reverse engineering křesla Brno 60, o kterém jsem podrobně psal v lednovém čísle IT CADu. Na následujícím obrázku je v levé části skořepina křesla, která byla sejmuta laserovým skenerem do podoby polygonové sítě. Vpravo je finální NURBS model, který byl vytvořen pomocí modulu T-Splines na základě dodaného polygonového modelu. Není bez zajímavosti, že T-Spline model lze volně deformovat pomocí přesunu řídicích bodů, hran i plošek a to bez obledu na to, z kolika ploch je model složen. Můžete tedy deformovat plynule i skořepinu s tloušťkou stěny a jiné tvary.

Reverse engineering křesla Brno 60

Digitalizace ramenem

K Rhinu lze přímo připojit i digitalizační ramena Microscribe, Faro nebo Baces 3D. Pomocí těchto zařízení můžete kreslit rovnou v 3D prostoru - všechny příkazy, které pracují s myší, můžete obsluhovat pomocí digitizéru a jeho hrotem můžete zadávat body, vytvářet křivky nebo generovat automaticky řezy tím, že budete jezdit hrotem digitizéru po povrchu objektu a při každém protnutí některé z pomyslných řezných rovin se zaznamená bod řezu.

Rhino a 3D digitizér Microscribe

Výhodou je velká flexibilita a totální kontrola nad způsobem převodu fyzického modelu na plochy. Uživatel si sám stanoví významné křivky, které charakterizují topologii modelu, tyto křivky „překreslí" do Rhina přitom v 3D podobě a po případné opravě nebo zjednodušení křivek již může na jejich základě modelovat plochy. Získáte tedy přímo NURBS plochy, bez nutnosti potýkat se s převodem polygonových sítí. Nevýhodou je, že tento proces je plně „ruční" - digitizér za vás nevymyslí a nenakreslí ani čárku. Mechanická digitalizace navíc vyžaduje od operátora určité zkušenosti a znalosti strategií modelování.

Reverse engineering, Rhino a microscribe - model tonetky

Tento text byl publikován v časopisu IT CAD. Jeho autorem je Jan Slanina ze společnosti Dimensio.