Rhinoceros a skripty - úvod - Grafika.cz - vše o počítačové grafice

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



3D grafika

Rhinoceros a skripty - úvod

3. října 2002, 00.00 | Vývoj software jde kupředu a pozadu nezůstává NURBS modelář Rhinoceros (dále Rhino) od Roberta McNeela. Tímto článkém začínáme seriál o používání skriptů při 3D modelování v tomto programu.

Úvod do skriptování

Vývoj software jde kupředu a pozadu nezůstává NURBS modelář Rhinoceros (dále Rhino) od Roberta McNeela. Tímto článkém začínáme seriál o používání skriptů při 3D modelování v tomto programu. Již ve verzi 1.0 umožňoval Rhino skriptování ve formě posloupnosti příkazů. Neohrabané, staré, ale přece jenom se to dá dobře použít a popíšu vám jej v tomto článku. Od verze 2.0 a vyšší lze již v Rhinu používat Microsoftem vytvořené jazyky MS Visual Basic Scripting (VBScript) a MS Java Script (JScript), což otevírá Rhinu širší možnosti do systému, k proměným, objektům a jejich vlastnostem. V dálších dílech se budeme věnovat pouze VBScriptu. Je velmi dobře z dokumentován (v MSDN) a samotný Rhino obsahuje řadu ukázek pravě v něm. Z počátku se vám může zdát, že se vůbec nedostaneme k samotnému Rhinu, ale je třeba si vystvětlit základní funkce programování, aby i neznalý člověk jež nikde jinde nebude potřebovat programovat, mohl v Rhinu tvořit skripty. To ale až v dalším díle. Nyní se vrhneme na starý způsob skriptování, který funguje ve všech verzích Rhina.

Pomůcky pro skriptování

Mnoho příkazů bylo napsáno pro použítí z příkazové řádky. Čehož právě lze krásně využít pro skriptování. Skripty můžeme spouštět pomocí tlačítek v menu, klávesových zkratek, zástupných příkazů, z textového souboru a posledním vložením ze schránky do příkazového řádku. Vše je shrnuto v menu Tools > Commands. Lze použít mnoho příkazů, jejich přesné zadání najdete v nápovědě, či odkoukáním z příkazové řádky. Pokud jednou skript vložíte, lze jej zopakovat stisknutím klávesy Enter, nebo pomocí pravého tlačítka vybrat jiný předchozí skript (viz obrázek).

Ukázka výběrového okna po stisku pravého tlačítka nad příkazovým řádkem

Základ

Nyní jak reprezentovat různé akce. Mezerník představuje ENTER v příkazovém řádku. ! ruší předchozí příkaz, proto je dobré ho použít, pokud jej vkládáme přes tlačítko (nemusíme vždy, například pokud děláme vnořené příkazy).

Menší ukázka:
        ! Box 0,0,0 10,10,0 30
Vytvořená krychle

Tento skript nejdříve přeruší jakýkoliv příkaz, který je vykonáván. Po té zavolá příkazem BOX tvorbu krychle, zadá první bod, druhý bod a nakonec výšku.

Skripty nemusí sami o sobě skončit. Mohou třeba vykonat určitý sled operací a pak zavolat nějaký příkaz na editaci, tvorbu, atd.

! SelAll
Points
-2,1
4,2
4,4
-5,3
10,-2
Enter
Invert
Move
Tento skript jak vidíte není na jednom řádku, ale pomocí entrů zapsán na více řádcích. I toto Rhino považuje za správný zápis. Potom ale musíte pro konec příkazu použít "celý" zápis slova Enter. Skript přeruší příkaz, vybere všechny objekty, vytvoří 5 bodů, ukončí příkaz, invertuje výběr (tím pádem máme vybrány jenom naše nové body - chytré a účinné) a nabídne příkaz Move (posun) do aktivního režimu. Čili po skončení skriptu máte aktivní příkaz a pracujete s ním.

Příkazy podporující argumenty

V Rhinu jsou příkazy, které mohou příjimat argumenty (parametry) za svým voláním. Zde je uvedu i s možnými argumenty:

Bend StraightEnd=Yes/No Copy=Yes/No
BlendSrf Degree=3/5
ChangeLayer Layer=NazevHladiny
Curve Close=Yes/No
Extrude Cap= Yes/No
Fillet Join= Yes/No
FilletSrf Trim= Yes/No/Split Extend= Yes/No
FlattenSrf Verbose=1/2/3 zobrazí triangulaci na cíly/zdroji/obojí
InterpCrv Close=Yes/No
LayerLock Layer=NazevHladiny
LayerOff Layer=NazevHladiny
LayerOn Layer=NazevHladiny
MergeSrf Smooth=Yes/No
NetworkSrf Autosort=Yes/No
Orient Scale=Yes/No
OrientOnSrf SurfaceBased=Yes/No
Pipe Cap=Yes/No, Thick=Yes/No
SelLayer Layer=NazevHladiny1, NazevHladiny2, NazevHladiny3
SetLayer Layer=NazevHladinyBezMezer nebo "Nazev hladiny s mezerami"
Taper Flat= Yes/No
UndoMultiple Steps=Cislo
UnrollSrf Mode=1 Divs=1-128 Fit=0/1

Popisovat to snad nemá cenu. Zápis je viditelný.

Další příkazy vhodné k použití

Zde vám popíšu příkazy, které se vám hodí při práci a pro používání skriptů.

CloseDisplayWindow - Uzavření renderovacího okna
CloseViewport - Uzavření aktivního okna
MaxViewport - Maximalizování aktivního okna
CopyDisplayWindowToClipboard - Obraz z okna rendereru se zkopíruje do schránky
CopyViewToAll - Zkopíruje se aktivní pohled do všech ostatních
Pause - Zastaví skript a čeká na odezvu od uživatele (například pro vložení počátečního bodu)
NextOrthoViewport - Další pohled s orthogonálním (rovnoběžným) promítáním aktivním
NextPerspectiveViewport - Další pohled s perspektivním promítáním aktivním
NextViewport - Další pohled aktivní
PrevViewport - Předchozí pohled aktivní
NextViewportToTop - Vyzvedne další pohled na povrh
SetActiveViewport JmenoPohledu - Nastaví aktivní pohled dle jména pohledu
SetMaximizedViewport JmenoPohledu - Maximalizuje pohled dle jména pohledu
SaveDisplayWindowAs "CestaKamSeSouborMaUlozit" - Uloží obraz z renderovacího okna do souboru

Co říci na závěr? Je to jednoduchý, účinný způsob zrychlení práce. Například hromadné načítání souřadnic bodů ze souboru, a jiné.

V příštím díle se již koukneme na VBScript, seznámíme se s jeho funkcemi, objekty a instrukcemi a na lehkých příkladech si ukážeme jak skripty vkládat do tlačítek.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » 3dscena  

 » Rubriky  » Go verze  

 » Rubriky  » 3D grafika  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: