Nacházíte se zde: Rhino3D.cz > Články > Zásuvné moduly > Návod pro Explicit History - body na ploše


Návod pro Explicit History - body na ploše

Publikováno: 26.11.2007 | Autor: Damien Alomar | Rubrika: Zásuvné moduly | Komentáře: 6 - Doporučit

Damien - ikonaDamien Alomar je známý všem, kdo navštěvuje diskusní fórum programu V-Ray pro Rhino. Jako zaměstnanec firmy ACGVis zde odpovídá na mnohé dotazy uživatelů. Damien je ale kromě V-Raye nadšený také do zásuvného modulu Explicit History a dokonce byl tak laskav, že mi dovolil přeložit a publikovat jeho návod na vyřešení konkrétné úlohy v tomto pluginu.

Jak už jste zřejmě četli, k dispozici je nová alpha zásuvného modulu Explicit History. Souborový formát se oproti minulé verzi změnil, proto nejsou na Rhino Wiki v současné době žádné příklady. Proto jsem si řekl, že udělám rychlou ukázku použití několika nových komponent. Pod článkem najdete odkaz na stažení souboru Rhina s body a programu explicitní historie, který nahrajete pomocí příkazu ExplicitHistory a ve stejnojmenném okně zvolíte položku menu File > Open definition file.

Ukázka se týká pokrytí plochy maticí bodů v určitém intervalu parametrů U a V. Zvolil jsme rychlé vytvoření plochy pomocí trojic bodů, které byly proloženy oblouky a tyto oblouky byly potaženy plchou, ale tato plocha může být obecně jakákoliv.

Poznámka: tento návod byl vytvořen pomocí Rhina 4 se servisním balíčkem SR2 a pluginu Explicit History Alpha 2 ze 16. listopadu 2007

Author: Damien Alomar
Kontakt: dominos542@gmail.com

V tomto návodu si ukážeme, jak přidat ploše vytvořit body se zadanými roztečemi ve směru parametrů U a V. To můžete využít na různých plochách a v řadě různých situací. Dozvíte se, jak používat intervaly, doménu plochy a různé matematické funkce v pluginu Explicit History.

Plocha:

Plocha bude vygenerovaná ze sérií trojic bodů. Jednotlivé trojice bodů budou propojeny oblouky a plocha bude vytvořena pomocí potažení těchto oblouků.

1. Přidání bodů

Začněte vkládáním 3 řad bodů. V tomto případě je důležité, aby v každé řadě byl stejný počet bodů, nebo by se mohlo stát, že se v jednom bodě setká více oblouků.

Explicit History - přidání bodů

2. Vyvoření historie

Přetáhněte ikonu komponentu Point z nástojové palety na plátno. Komponent můžete zrovna přejmenovat, klikněte na něj pravým tlačítkem myši a v horní části roletového menu zadejte nějaký název. Když už máte roletové menu otevřené, zvolte v něm položku Set Multiple Points. Přenesete se zpět do pohledu Rhina, abyste mohli vybrat body. Vyberte pouze dolní řadu bodů. Jakmile body vyberete, komponent změní barvu z oranžové na černou, což je znamení toho, že vše funguje jak má.

vytvoření historie

3. Opakujte postup pro každou řadu bodů

Přidejte další dva komponenty Point a vyberte jim postupně prostřední a poté horní řadu bodů. Nakonec byste měli mít tři komponenty, po jednom pro každou řadu bodů.

opakování pro každou řadu bodů

4. Vytvoření oblouků

Začněte přetažením komponentu Arc 3Pt na plátno. Jakmile je komponent na plátně, můžete k němu připojit body, které jste použili pro vytvoření oblouků. Uchopte výstupní uzel na pravém konci komponentu Point a táhněte jej na vstupní uzel komponentu Arc. Opakujte pro ostatní komponenty Point. Pokud zapojíte komponent prostředních bodů na vstup B, mělo by být jefno, jestli komponent Point horní řady bodů zapojíte do vstupu A nebo C.

vytvoření oblouků propojení bodů obloukem

Poznámka: pokud se ve výsledku budou oblouky křižovat, musíte od základu změnit pořadí, v jakém Explicit History načítá body. Jediný mně známý způsob je vrátit se zpět a posunout každý bod tam, kde má být. Věřím, že existuje lepší způsob jak to udělat (Manage Point Collection), ale ten zatím buď nefunguje nebo se mi jej nepodařilo zprovoznit. Proto se tato verze nazývá Alpha :-)

oblouky v pohledu Rhina
Oblouky v pohledu Rhina

5. Vytvoření plochy

Začněte přetažením komponentu Loft do plátna. Nyní můžete táhnotu výstup A (arcs - oblouky) z komponentu Arc3Pt do vstupu S (section - řez) komponentu Loft. Teď přichází zábava... přesunujte myší originální body a sledujte, jak se bude plocha aktualizovat. Body také můžete zkusit proložit něčím jiným než oblouky - spojenými oblouky, křivkou tvořenou řídicími body nebo křivkou tvořenou interpolačními body.

vytvoření plochy vytvoření plochy

oblouky potažené plochou
Výsledná plocha vzniklá potažením oblouků v pohledu Rhina

Dělení plochy:

Pokud chcete vytvořit dělení plochy, budete muset zjistit několik podrobností o ploše, informace o UV parametrech a o toku dat. Použijeme také několik matematických operací. Tuto kapitolu můžete použít i pro různé jiné typy ploch. V budoucnu by snad tyto komponenty mohly být sloučeny do existujících souborů nebo do jediného komponentu.

1. Získání informací o UV parametrech (doméně plochy)

První věcí, kterou musíme zjistit, je doména plochy (jinými slovy rozsah parametrů U a V). Provedeme to pomocí komponentu Surface Domain. Po přetažení tohoto komponentu na plátno připojíme na jeho vstup plochu z komponentu Loft. A co vlastně tento komponent dělá? Jednoduše zpřístupní U a V interval plochy. Nyní tedy musíme rozbít 2D interval na jednotlivé intervaly - na samostatný interval U a samostatný interval V.

získání informací o doméně plochy doména plochy

2. Rozdělení domény plochy na U a V

Nyní již máme zjištěnou doménu plochy, ale my potřebujeme oba intervaly osamostatnit, proto si na plátno přetáhneme komponent 2DIntervals. Poté přetáhneme výstup domény do vstupu komponenty 2DIntervals. Nyní tedy již máme samostatný přístup k jednotlivým intervalům U a V. Od této chvíle budu kvůli úspoře místa popisovat proces pouze pro doménu U, pro doménu V zopakujete přesně ten samý postup.

separace UV domény plochy rozdělení domény plochy na parametry U a V

3. Rozbití intervalu na počáteční a koncovou hodnotu

Přetáhněte komponenty Interval na plátno. Tím získáte přístup k počáteční a koncové hodnotě intervalu. Propojte uzel U komponenty UVIntervals se vsupem komponenty Interval.

rozbití intervalu na počátek a konec rozbití intervalu

Nyní musíme začít uvažovat o zamýšleném výsledku a o způsobu, jak ho dosáhnout. Jde nám o generování bodů na ploše na základě zadaných vzdáleností ve směru intervalů U a V. Jedinou věcí, kterou můžeme ve skutečnosti plochu dělit, je počet úseků. Nemůžeme však jednoduše "střelit" nějaké číslo, protože plocha se mění a stejně tak vzdálenosti na ní. Proto musíme znát celkovou délku domény plochy (kterou jsme již začali konstruovat)a také požadovanou délku každého dělení. Od této chvíle budeme používat dva základní matematické komponenty, rozdíl a podíl. Poté propojíme výslednou hodnotu s počtem dílků.

4. Odečtení počáteční hodnoty od koncové

Přetáhněte si na plátno komponent Subtraction. Propojte uzel E (End) se vstupem A a uzel S (Start) se vstupem B, jako na následujícím obrázku. Ve většině případů bude počáteční hodnotou 0, ale tím, že odečteme počátekční hodnotu od koncové zajistíme, že náš program bude pracovat za všech okolností bez ohledu na to, zda interval začíná nulou či libovolnou kladnou nebo zápornou hodnotou.

odečtení počáteční od koncové ceny operace rozdíl

5. Vytvoření délky dílku ve směru parametru U

Nyní si vytvoříme hodnotu, která bude představovat délku jednoho dílku ve směru parametru U. Přetáhněte na plátno komponent Double. V tomto případě použijeme hodnotu Double místo Integer, abychom dokázali vyjádřit délku v desetinných číslech, například 4.5. Ve skutečnosti nemusíme používat samostatný komponent, můžeme jej definovat jednoduše uvnitř dalšího komponentu (Divide), ale já mám rád, když se hodnoty uchovávají odděleně od komponent pro snadnější orientaci a pozdější použití. Nezapomeňte nastavit honotu komponentu a dát jí nějaký název, já jsem si ji nazval ULen.

vytvoření délky parametru U dělení parametru U

6. Dělení celkové délky požadovanou délkou

Přetáhněte komponent Division na plátno. Propojte výsledek délky domény (krok č.4) do vstupu A a nastavenou hodnotu ULen (déka ve směru parametru U) do vstupu B.

dělení celkové délky požadovanou délkou dělení intervalu délkou

Nyní se musíte vrátit zpět a opakovat kroky 3 až 6 pro interval V. Ve finále by to mělo vypadat jako na následujícím obrázku.

výsledek

7. Dělení plochy vygenerovanými hodnotami

Vše co nám nyní zbývá je vytvoření bodů. Přetáhneme si na plátno komponent Divide Surface. Nyní snad již komponenty trochu znáte, tak vám nebude dělat potíže propojit správé uzly. Propojte výsledný uzel S komponentu Loft se vstupem S, výsledek dělení v intervalu U se vstupem U a výsledek dělení intervalu V se vstupem V. Nyní by vše již mělo pracovat podle očekávání. Jednoduchým testem toho, zda všecho pracuje jak má, je deformace plochy pomocí přesunování vstupních bodů. Pokud se při zvětšování plochy zvyšuje počet bodů na ploše, pak náš program pracuje správně.

rozdělení plochy vgenerovanými hodnotami rozdělení plochy

výsledná plocha v pohledu Rhina
Výsledná plocha v pohledu Rhina

výsledné okno editoru Explicit History
Konečný pohled na okno Explicit History - pro zvětšení klikněte na obrázek

TIP: zkuste pohybovat s originálními body, ze kterých byly vytvořeny křivky a následně plocha, pomocí tzv. krokovacích kláves - tedy kombinace kláves Alt +krokovací klávesy, Alt + Ctrl + krokovací klávesy a nebo Alt + Shift + krokovací klávesy. Krokovací klávesy jsou kurzorové šipky pro pohyb v osách X a Y a PageUp/PageDown pro pohyb v kladném a záporném smyslu osy Z. To je perfektní způsob jemného ladění tvaru výsledku při práci s explicitní historií, ale i s běžnou příkazovou hostorií ve všech říkazech Rhina, které historii podporují. Například v příkazu Rotovat (Revolve) můžete takto jemně hýbat s body profilové křivky poháru a v reálném čase můžete sledovat, jak se mění tvar výsledné plochy. V menu Nástroje > Volby, panel Modelovací pomůcky > Krokování si můžete nastavit velikost kroku pro jednotlivé kombinace krokovacích kláves.

Peložitl a doplnil Jan Slanina

Nahoru ↑

Diskuse k článku

  • [6] delph – 16. 12. 2007, 10:25

    reagovat

    Já se o ní zas tolik nezajímal, ale naše profesorka nám občas ukázala její výrobky z nábytkového designu a občas i celé interiéry, ale že by byla i architektka a dělal takové velkolepé projekty, jako jsou v tom odkazu to jsem nevěděl. Díky Pife.

  • [5] Jan Slanina15. 12. 2007, 22:47

    reagovat

    Zaha Hadid je "architetka" ;) - http://www.archiweb.cz/architects.php?type=arch&pl ace=foreign&action=show&id=68 :) Jen tak pro zajímavost její ateliér v Londýě používá 100 instalací Rhina :))

  • [4] delph – 15. 12. 2007, 18:13

    reagovat

    Co má společného Zaha Hadid s rhinem? ve školejsme se o ní učili jen jako o designerce. Takže by v tom mohla pracovat, ale že by ona a její tym byli nějaký guru přes rhino to by byla dobrá třešnička navrch při zkoušce: "Jen tak mimochodem pracuju ve stejným programu jako Zaha Hadit, paní profesorko." :o)

  • [3] Jan Slanina14. 12. 2007, 21:36 – reakce na [2]

    reagovat

    Já myslím že kromě pár šílenců od Zahy Hadid ještě nikdo pořádně nechápe, o co tady jde, ale bude to asi hodně velký :))) Každopádně se ale mrkni i na http://www.paraclouding.com/WP/, to vypadá taky hodně zajímavě.

  • [2] David Hlouch14. 12. 2007, 12:12 – reakce na [1]

    Reaguje: [3] - reagovat

    No nevím jestli tomu rozumím správně, ale nepřichází náhodou doba plně parametrických NURBS modelů pro Rhino? Wow! :)

  • [1] mousek27. 11. 2007, 11:02

    Reaguje: [2] - reagovat

    Rozumie tomu niekto ? :D