Reverse engineering

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íť