3Dscena \ články



Rhinoceros a skripty - úvod03.10.2002 Autor: Pavel Kryštůfek - Typ: TutoriálÚ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).![]() ZákladNyní 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 ![]() 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 MoveTento 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í argumentyV 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. -Pavel Kryštůfek- (další články autora)
|
![]() ![]() ![]() ![]() ![]() ![]() |

