Nacházíte se zde: Rhino3D.cz > Články > Rhinoceros > Skriptování v Rhinu - tvoříme makra


Skriptování v Rhinu - tvoříme makra

Publikováno: 3.1.2008 | Autor: Jan Slanina | Rubrika: Rhinoceros | Komentáře: 1 - Doporučit

Makra - ikonaS pomocí tohoto návodu se naučíte tvořit příkazová makra v Rhinu, jinými slovy se dozvíte, jak skriptovat standardní příkazy Rhina včetně jejich voleb a jak vytvářet zajímavé automatizované skripty s nulovou znalostí programování. Nebojte se žádných složitostí - pokud znáte názvy příkazů v Rhinu (alespoň těch často používaných), umíte už napsat makro :)

Úvod

Skriptování maker v Rhinu je zůsob, jak automatizovat množství úloh, jak si uživatelsky přizpůsobit existující příkazy nebo jak zlepšit své pracovní postupy.

Kolem pojmu “skriptování" může vznikat mnoho zmatků, protože se opužívá k dosti volnému popisu jak tvorby maker (o kterých bude celý tento článek), tak psaní mnohem sofistikovanějších “skriptů” v programovacích jazycích Rhinoscript nebo VB script, což je velký rozdíl.

Termín “makro” zde budu používat výlučně pro posloupnost běžných příkazů Rhina a jejich voleb, které ve svém souhrnu vytvoří automatizovanou funkci. To je “skriptování” ve své nejjednodušší podobě a je snadno přístupné každému uživateli Rhina, dokonce i když nemá naprosto žádné povědomí o programování. Vše co potřebujete je pochopení příkazů Rhina a jejich struktury, logické myšlení a chuť k drobnému experimentování a ladění.

Budete potřebovat tyto nástroje:

  • svůj mozek
  • nápovědu Rhina - jsou zde uvedeny všechny příkazy Rhina a jejich podvolby, to je nejdůležitější reference.
  • nástroj MacroEditor, který najdete v Rhinu 4 nebo v Rhinu 3 SR4+ , který vám umožní snadno spouštět a odlaďovat makra.

Jistě už jste jedno dvě makra někdy použili...

Pokud používáte Rhino, už jste zřejmě makra několikrát použili a nejspíš o tom ani nevíte. Mnoho příkazů v Rhinu již pro vás bylo “zmakrováno”. Když kliknete na ikonu nebo vyberete položku z menu, jedná se často o přednastavené macko. Pokud se o tom chcete přesvědčit, klikněte pravým tlačítkem myši a se stisknutou klávesou Shift na ikonu Vytáhnout Přímo (Extrude Straight):

Ikona Vytáhnout přímo

To je ukázka nejjednodušší formy makra, které jednoduše nastaví v jednom příkazu posloupnost několika příkazových voleb, takže je při každém spuštění tohoto příkazu nemusíte zadávat nebo vyvolávat ručně. VytáhnoutKřivku (ExtrudeCrv) má několik tlačítek s přednastavenými volbami - S úkosem (Tapered), PoKřivce (AlongCurve), DoBodu (ToPoint), Uzavřít=Ano (Cap=Yes) atd. Prohlédněte si makra pod ikonami příkazu VytáhnoutKřivku a zjistěte, jak pracují.

Vlastně děláte to samé, jako byste postupně klikali na jednotlivé příkazové volby nebo zadávali jejich zkratky v příkazovém řádku. A přesně to jsou makra - posloupnost instrukcí, které opakují danou sekvenci příkazů, které byste jinak museli zadávat ručně jeden po druhém.

Skriptování voleb v jednom příkazu můžete také kombinovat se vstupem dat (například souřadnic nebo numerických dat). Také je možné seskupit více příkazů do jednoho řádku a získat tak automatizovanou sekvenci "událostí" pro manipulaci nebo tvorbu objektů.

Poznámka: proč se u příkazů používají :Podtržítka? Tato podtržítka říkají Rhinu, že následuje příkaz v angličtině. Díky tomu bude vaše makro univerzální a bude fungovat uživatelům Rhina na celém světě, bez ohledu na to, v jakém jazyce mají Rhino spuštěné. Pokud se o kompatibilitu svých maker nestaráte a píšete je pouze pro sebe, můžete je psát přímo v jazyce, ve kterém provozujete Rhino. V českém Rhinu například napíšete příkaz Kružnice, v anglicém Circle, ale pokud použijete "podtržítkovou" verzi _Circle, bude tento příkaz funngovat nejenom v anglickém a českém Rhinu, ale i ve francouzsém, německém a ve všech dalších jazykových mutacích.

A proč se ve skriptech vyskytuje znak výkřičníku? Tento znak přeruší jakýkoliv práve probíhající příkaz a můžete jej používat z bezpečnostních důvodů, abyste zamezili kolizi spuštěného makra s potenciálně spuštěným příkazem.

Jdeme na to!

Řekněme, že potřebujete vytvořit matici 10 x 10 x 10 kvádrů se středem spodní stěny v určitém konkrétním bodě, který uživatel určí buď kliknutím myší nebo zadáním souřadnic z klávesnice.

Mohli byste sice použít standardní příkaz Kvádr (Box) se zadáním protilehlých rohů a výšky, ale tím byste umístili vkládací bod do prvního zadaného rohu kvádru. Pokud chcete mít vkládací bod na určitém místě, je snadnější použít příkaz Kvádr s volbou Střed (Box, volba Center). Ve skutečnosti je to stále ten stejný příkaz Kvádr, ovšem pomocí makra musíte aktivovat jeho volbu Střed.

Spusťte příkaz EditorMaker (MacroEditor) a zkopírujte do něj toto makro (všechna následující makra budou uvedena v češtině i "mezinárodní" anglické verzi s podtržítky:

! Kvádr Střed

! _Box _Center

(jedná se vlastně o makro, umístěné pod ikonou Kvádr, Střed)

Všechny položky (názvy příkazů i numerické hodnoty) musí být odděleny jednou mezerou.

Nyní musíme specifikovat bod, kde bude ležet střed kvádru. Abychom to mohli provést, musíme říct Rhinu, aby dočasně přestal vykonávat příkaz a počkal na vstup uživatele ve formě kliknutí myší nebo zadání numerické hodnoty z klávesnice. Provedete to vložením příkazu Pauza (Pause).

! Kvádr Střed Pauza

! _Box _Center _Pause

Jakmile střed zadáme, můžeme přímo v příkazu numericky přednastavit velikost kvádru. Protože volba Střed v příkazu Kvádr očekává roh podstavy jako druhý vstupní bod, můžeme zadat jeho souřadnice X,Y:

! Kvádr Střed Pauza r5,5

! _Box _Center _Pause r5,5

(proč je v souřadnici i písmenko “r”? Jedná se o způsob, jak Rhinu říct, že tato souřadnice není absolutní souřadnice bodu v prostoru, ale je relativní - je vztažená na vzdálenost v X a Y od naposledy zadaného bodu, tedy od středu podstavy kvádru. Pokud bychom písmeno "r" nezadali, ležel by druhý zadaný bod (roh kvádru) vždy na souřadnici XY = 5,5, bez ohledu na to, kam bychom umístili střed podstavy kvádru.

Nyní již můžeme zadat výšku, která je v tomto konkrétním příkazu (Kvádr) vždy automaticky relativní vůči prvnímu zadanému bodu

! Kvádr Střed Pauza r5,5 10

! _Box _Center _Pause r5,5 10

Protože už nepřipadá v úvahu zadávání jakýchkoliv dalších hodnot nebo voleb, makro ukončí svoji činnost a vytvoří se krychle. Protože jsme chtěli, aby byla výška krychle rovna její šířce, bylo by další možností zadat na konec skriptu příkaz Enter místo numerické hodnoty 10. To je stejné, jako byste v tomto příkazu místo zadání výšky použili pomocí klávesy Enter hodnotu šířky.

! Kvádr Střed Pauza r5,5 Enter

! _Box _Center _Pause r5,5 _Enter

Nyní, když makro již běží jak má, můžete pro něj vytvořit nástrojové tlačítko (viz. níže) a toto makro do něj vložit. Dejte mu nějaký rozumný název, třeba “10 x 10 x 10 kvádrů vycentrovaných podle středu”. Jakmile bude makro jednou vykonané, kliknutím pravého tlačítka zopakujete celou posloupnost příkazů tohoto makra, takže ho můžete spustit po sobě kolikrát chcete, aniž byste museli zajíždět myší do ikon.

OK, teď to trochu zkomplikujeme…

Některé příkazy otevírají dialogová okna se spoustou voleb. Takové okno by za normálních okolností vaše makro zastavilo a čekalo by, až uživatel vybere nějakou volbu a až poté by pokračovalo dál. Vy ale chcete provádění makra automatizovat a proto můžete potlačit zobrazení dialogového okna vložením znaku pomlčka "-" před příkaz. Poté můžete naskriptovat všechny požadované volby příkazu a makro bude běžet samo bez nutnosti zásahu uživatele. Některé příkazy mají několik vrstev podvoleb. Pokud chcete zjistit, jaké volby máte k dispozici, zadejte v příkazovém řádku s předřazenou pomlčkou (bez mezery) a prohlédněe si volby. Klikněte na volbu abste se přesvědčili, zda má nějakou podvolbu.

Potažení dvou otevřených křivek

Řekněme, že byste chtěli opakované několikrát po sobě potahovat dvojice OTEVŘENÝCH křivek plochou pomocí příkazu Potáhnout (Loft). Pokud byste použili standardní příkaz Potáhnout, museli byste se proklikat dialogovým okněm. Pokud ale použijete variantu –Potáhnout (-Loft), můžete toto dialogové okno potlačit a celý proces automatizovat a výrazně urychlit. Prohlédněte si následující makro:

! -Potáhnout Pauza Typ=Normální Zjednodušit=Žádný Uzavřená=Ne Enter

! _-Loft _Pause _Type=_Normal _Simplify=_None _Closed=_No _Enter

Příkaz je spuštěn a ihned poté přerušen pauzou, abyste mohli vybrat požadované křivky. Pokud byste pauzu odstranili, makro by nefungovalo, jestliže byste neměli křivky vybrané předem před spuštěním makra. Pokud již před spuštěním makra budete mít křivky vybrané, nic se neděje, pauza bude intelignetně ignorována. Příkaz poté zpracuje všechny přednastavené volby a jakmile bude hotov, vytvoří výslednou plochu a ukončí se. Vyzkoušejte to se dvěma otevřenými křivkami, až již budou vybrané před spuštěním makra nebo po jeho spuštění. Zkuste změnit jednu nebo více voleb, například Uzavřená=Ano (Closed=Yes) nevo Zjednodušit=Rekonstruovat (Simplify=Rebuild). U této druhé volby budete muset přidat dodatek Rekonstruovat=20 (Rebuild=20) nebo nějakou jinou hodnotu.

Úprava pro použití s otevřenými křivkami

Nyní toto makro vyzkoušejte se dvěma uzavřenými křivkami a zjistíte, že je tady problém. Proč? Při uzavřených křivkách potřebuje od vás příkaz Potáhnout (Loft) zjistit další informace – umístění spojů uzavřených křivek. To ale opět můžete obejít tím, že tyto informace dodáte Rhinu v makru ve správné posloupnosti. Buď si můžete vybrat z různých automatických voleb pro spoje (které jsou na úrovni podvolby) nebo budete moci vyladit spoje myší na obrazovce. Ať už se rozhodnete pro jakoukoliv variantu, budete muset makro změnit.

Přidáním pauzy na správné místo umožníte uživateli zkontrolovat a případně nastavit spoje na obrazovce:

! Potáhnout Pauza Pauza Typ=Normální Zjednodušit=Žádný Uzavřená=Ne Enter

! _-Loft _Pause _Pause _Type=_Normal _Simplify=_None _Closed=_No _Enter

Pokud byste místo pauzy zadali Enter, řekli byste Rhinu, že se o umístění spojů nezajímáte a že spoje mohou zůstat ve výchozím nastavení. Stejně, jako byste v tomto příkazu "odklepli" nastavení spojů klávesou Enter a přijali tak výchozí nabídku

! Potáhnout Pauza Enter Typ=Normální Zjednodušit=Žádný Uzavřená=Ne Enter .

! _-Loft _Pause Enter _Type=_Normal _Simplify=_None _Closed=_No _Enter

Nebo můžete použít jinou volbu příkazu Potáhnout pro spoje na úrovni podvolby:

! -Potáhnout Pauza Přirozeně Enter Typ=Normální Zjednodušit=Žádný Uzavřená=Ne Enter

! _-Loft _Pause _Natural <-- _Enter <-- _Type=_Normal _Simplify=_None _Closed=_No _Enter

(Enter po volbě Přirozeně je nezbytný, aby ukončil úroveň volby nastavení spojů a vrátil se zpět k úrovni příkazu Potáhnout)

Toto makro bohužel nebude pracoavt správně pro kombinaci otevřených a uzavřených křivek, protože by byla potřeba další volba pro spoje. To je jedno z omezení systému maker a způsobu, jak byly napsány některé příkazy Rhina.

Použití maker pro rychlé nastavení voleb uživatelského rozhraní

Makra můžete použít také pro automatické nastavení různých voleb grafického uživatelského rozhraní a vlastnosí dokumentu, aniž byste se museli proklikávat dialogovým okněm VOlby. Následující makro můžete použít pro nastavení polygonových sítí tak, jak chcete (všimněte si pomlčky před příkazem VlastnostiDokumentu)

-VlastnostiDokumentu
Síť Uživatelská
MaxÚhel=0 PoměrStran=0
MinDélkaHrany=0 MaxDélkaHrany=0
MaxVzdálHranyOdPlochy=0.01
PočetObdélníků=16 Zjemnit=Ano ZubatéSpoje=Ne
JednoduchéRoviny=Ne
Enter Enter

-_DocumentProperties
_Mesh _Custom
_MaxAngle=0 _AspectRatio=0
_MinEdgeLength=0 _MaxEdgeLength=0
_MaxEdgeSrf=0.01
_GridQuads=16 _Refine=Yes _JaggedSeams=No
_SimplePlanes=No
_Enter _Enter

Proč je na konci dvakrát Enter?

Proto, že jste se v příkazu -VlastnostiDokumentu zanořili o dvě úrovně dolů, poprvé na úroveň Síť a poté na podúroveň Uživatelská uvnitř úrovně Síť. Jeden Enter potřebujete na ukončení podúrovně a návrat do hlavní úrovně a druhý pro ukončení celého příkazu. Některé skripty mohou vyžadovat dokonce tři Entery. Následuje skript od Jeffa LaSora, který vypne nebo zapne zobrazení nitkového kříže u kurzoru:

Pro opakované zapnutí nebo vypnutí nitkového kříže byste pod nějaké tlačítko vložili následující makro:

-Volby Vzhled Viditelnost NitkovýKříž Enter Enter Enter

-_Options _Appearance _Visibility _Crosshairs _Enter _Enter _Enter

Všimněte si odkazu na název každé jednotlivé příkazové volby. Pokud je takto výslovně uvedete ve skriptu, je to totéž, jako byste na ně kliknuli myší v příkazovém řádku. Také si všimněte tří položek Enter. Protože vás každá příkazová volba (v tomto případě) vezme o úroveň níž do nové sady podúrovňových příkazových voleb, musít se pokaždé pomocí přkazu Enter vrátit o úroveň zpět. Protože tento skript "sestoupil" o tři úrovně dolů, musí být na jeho konce 3 x Enter, abyste celý příkaz zdárně ukončili.

NEBO, pokud na konci skriptu použijete znak výkřičník ! (což v jazyku skriptu znamená “nyní skonči!”), skript se ukončí bez ohledu na to, o kolik úrovní jste "níže". Pokud ale chcete v makru pokračovat dalšími příkazy, nepoužívjte výkřičník, ale použijte potřebný počet příkazů Enter, jinak se makro na znaku výkřičníku vždy zastaví a ukončí.

Výše uvedený skript jednoduše zaoíná nebo vypíná nitkový kříž, jinými slovy přepne jej z aktuálního stavu do opačného. Řekněme ale, že byste chtěli pomocí makra nitkový kříž VŽDY zapnout a pomocí jiného zase VŽDY vpnout...vypadalo by to asi takto:

Varianta "vždy zapnout":

-Volby Vzhled Viditelnost NitkovýKříž=Zobrazit !

-_Options _Appearance _Visibility _Crosshairs=_Show !

Varianta "vždy vypnout":

-Volby Vzhled Viditelnost NitkovýKříž=Skrýt !

-_Options _Appearance _Visibility _Crosshairs_=Hide !

Všimněte si použití znaku výkřičníku '!', o kterém jsme se bavili před chvílí.... Také si všimněte, že příkazové volbě můžeme přiřadit jakoukoliv její variantu pomocí operátoru rovnítka '='. Například volba NitkovýKříž má dvě možné hodnoty, "Zobrazit" a "Skrýt", pomocí předchozích maker jsme této volbě přiřadili její hodnotu přímo.

Další užitečné příkazy a nástroje pro tvorbu maker

Při tvorbě složitějších maker vám pomohou dva šikovné triky. Jedním z nich je použití různých výbrových filtrů, zvláště příkazů VybratPoslední (SelLast), který vybere naposledy vytvořené nebo transformované objekty, VybratPředchozí (SelPrev), který vybere předchozí vstupní objekt a VybratŽádný (SelNone), který zruší výběr veškerých vybraných objektů. Objektům také můžete dávat názvy, seskupovat je (a skupinu pojmenovat) a a později je zavolat na základě jejich názvu nebo názvu skupiny.

Vybrat
VybratPoslední
VybratPředchozí
VybratŽádný
NastavitNázevObjektu
NastavitNázevSkupiny
VybratSkupinu
VybratDleNázvu
Skupina
ZrušitSkupinu

Select
SelLast
SelPrev
SelNone
SetObjectName
SetGroupName
SelGroup
SelName
Group
Ungroup

Nastavení názvu jednoho objektu:

-Vlastnosti Pauza Objekt Název [sem vložte název objektu] Enter Enter

-_Properties _Pause _Object _Name [put your object name here] _Enter _Enter

Pro zrušení názvu jednoho objektu (aniž by byl objekt smazán)

-Vlastnosti Pauza Objekt Název “ “ Enter Enter (jako název je mezera v uvozovkách)

-_Properties _Pause _Object _Name “ “ _Enter _Enter (quote space quote for the name)

Příklady použití výše uvedených nástrojů

Prohlédněte si následující makro:

! Vybrat Pauza PřekreslováníVypnout
ObálkovýKvádr Globální Enter
VybratŽádný VybratPoslední
OdsaditPlochu Těleso Pauza
Smazat VybratPoslední
ObálkovýKvádr Globální Enter
Smazat PřekreslováníZapnout

! _Select _Pause _Setredrawoff
_BoundingBox _World _Enter
_Selnone _Sellast
_OffsetSrf _Solid _Pause
_Delete _Sellast
_BoundingBox _World _Enter
_Delete _Setredrawon

Toto makro kolem objektu vytvoří odsazený obálkový kvádr, vzdálenost odsazení zadá uživatel. Zkuste přijít na logiku tohoto makra. Příkaz PřekreslováníVypnout/Zapnout zapne nebo vypne překreslování obrazovky, díky čemuž odpadne poblikávání oken Rhina během provádění skriptu a jeho běh se zároveň urychlí. Ale pozor, pokud skript přerušíte ještě před provedením příkazu PřekreslováníZapnout, bude to vypadat, že je Rhino mrtvé, protože se obrazovka nebude překreslovat. Pokud se to stane, nepropadejte panice a zadejte příkaz PřekreslováníZapnout (Setredrawon) a překreslování se opět obnoví.

Jako poslední příklad si ukážeme následující makro, které vytvoří ve středu 2D rovinného nebo textového objektu bod a seskupí ho s tímto objektem. Makro předpokládá, že se nacházíte ve stejném pohledu, ve kterém jste text vytvořili a že je objekt skutečně 2D a rovinný (jinak pravděpodobně selže).

¨Všimněte si využití pojmenované skupiny a různých příkazů pro výběr objektů. Příkaz BezEcha (NoEcho) dočasně přeruší výstup informací do příkazového řádku, což, v kombinaci s příkazy PřekreslováníVypnout/Zapnout(SetredrawOff/On) umožní makru běžet bez blikajících oken Rhina a bez příliš velkého množství informací vypisovaných do okna příkazové historie. Bez těchto příkazů by ovšem makro běželo stejně dobře.

! Vybrat Pauza BezEcha PřekreslováníVypnout
Skupina Enter PojmenovatSkupinu DocasnyNazev
ObálkovýKvádr KRov Enter
VybratŽádný VybratPoslední RovinnáPlocha VybratPředchozí Smazat VybratPoslední
PlošnéTěžiště Smazat VybratPoslední VybratSkupinu DocasnyNazev
ZrušitSkupinu Skupina PřekreslováníZapnout

! _Select _Pause _Noecho _Setredrawoff
_Group _Enter _SetGroupName TexTemp
_BoundingBox _CPlane _Enter
_SelNone _SelLast _PlanarSrf _SelPrev _Delete _SelLast
_AreaCentroid _Delete _Sellast _SelGroup TexTemp
_Ungroup _Group _Setredrawon


A nyní si ukážeme, jak můžeme v Rhinu vytvářet a spouštět makra a skripty.

Vytvoření tlačítka nebo aliasu pro makro nebo skript

Nejjednodušším způsobem uložení a spuštění makra je tlačítko (ikona) v nástrojové paletě nebo příkazový alias. Pokud nevíte, jak vytvořit nové nástrojové tlačítko nebo alias, podívejte se do nápovědy Rhina, najdete tam podrobný popis. Jakmile budete mít nové tlačítko (nebo se royhodnete editovat nějaké již existující), otevřete editor tlačítka tak, že na něj kliknete pravým tlačítkem myši za současného držení klávesy Shift. U aliasu musíte v okně Volby > Aliasy pomocí tlačítka Nový vytvořit nový alias.

Použití editoru maker pro tvorbu nového makra

Příkaz EditorMaker (MacroEditor) otevře txtové editační okno, ve kterém můžete psát a spouštět makra, aniž byste pro ně museli pokaždé vytvářet nějaká tlačítka nebo aliasy. Tlačítkem Spustit v pravé dolní části okna spustíte buď celé makro, nebo, je-li vybrán pouze určitý úsek makra, spustíte jenom tuto vybranou část. Pokud již vše běží jak má, můžete makro zkopírovat jako text a vložit jej například pod nástrojové tlačítko.

Makro pro zrcadlení kolem osy Y

Vložení makra nebo skriptu pod nástrojové tlačítko nebo alias

Nyní máte dvě možnosti, jak přiřadit makro nebo skript pod nástrojové tlačítko nebo alias. První a nejjednodušší způsob je jednoduché zkopírování a vložení celého textu makra do políčka pro levé nebo pravé tlačítko myši (v případě tlačítka) nebo do textového pole s obsahem aliasu. Výhodou nástrojového tlačítka je "přenositelnost", to znamená, že pokud zkopírujete nebo exportujete tlačítko do jiné instalace Rhina, zkopíruje se mkro spolu s ním. Jakmile je text vložen, klikněte na OK pro zavření editačního okna a můžete začít používat své makro.

Metoda kopírování přes schránku Windows je vhodná pro makra skládající se z příkazů Rhina nebo pro krátké skripty, ale při větším rozsahu textu se stává editace takového prográmku dost těžkopádnou. Někteří uživatelé dávají u větších skriptů přednost jejich ukládání do nějaké složky na disku a jejich "prolinkování", aby je Rhino našlo. Dokonce i nástrojová tlačítka a aliasy mohou odkazovat na externí skript. Výhodou tohoto přístupu je, že všechny skripty jsou umístěny na jednom místě, takže je můžete snadno nalézt a aktualizovat. Problémem ale je, že pokud někomu zkopírujete své nástrojové tlačítko s odkazem na externí skript, nesmíte mu zapomenuou zkopírovat také tento externí soubor se skriptem.

Odkazování na externí skripty

Nastavení složky pro externí skripty: na nějakém logické místě vytvořte adresář pro skritpy. Můž to být buď v instalačním adresáři Rhina nebo na nějakém jiném obvyklém místě. Otevřete dialogové okno Volby Rhina a zobrazte panel Soubory. V okně “Adresářové cesty souborům” klikněte na tlačítko Nová a poté na malou ikonu "…", vyhledejte svoji složku pro makra a klikněte na OK. Ukončete dialogové okno s volbami. Rhino bude nyní vyhledávat skripty v této složce.

Odkaz z tlačíka nebo aliasu na externí skript: použitá syntaxe závisí na typu skriptu. Pokud je to jednoduchý textový soubor s normálními příkazy Rhina (něco jako dlouhé makro), budete muset použít příkaz NačístPříkazovýSoubor NazevSouboru.txt (ReadCommandFile). Proměnnou NazevSouboru.txt samozřejmě nahraďte skutečným názvem načítaného souboru. Vložte tento řetězec pod levé nebo pravé tlačítko myši a je to. Pro spuštění souboru Rhinoscript.rvb použijte příkaz NahrátSkript NazevSouboru.rvb (LoadScript). To je vše co potřebujete znát.


Editor tlačítka s vloženým makrem a odkazem na externí skript

Celý Rhinoscript můžete také zkopírovat přímo pod tlačítko, v takovém případě ale musí začít příkazem SpustitSkript (RunScript), nikoliv NahrátSkript (LoadScript). Za příkazem SpustitSkript musí následovat mezera a levá otevřená závorka. Na konci skriptui musí být závorka uzavřena.

! -_SpustitSkript ( zde vložte svůj skript )


Editor tlačítka s kompletně vloženým Rhinoscriptem

Několik ukázkových maker

Následuje několik maker různého stupně složitosti, které mohou posloužit k vašemu studiu, inspiraci i praktickému využití. Makra jsem posbíral na Rhino Wiki a na diskusně skupině Rhina.

Vertikální přírůstkový posuv

Přesune objekty vertikálně o zadanou vzdálenost, kladné hodnoty posunují nahoru, záporné dolů (místo 10 zadejte svoji hodnotu). Makro spusťte jednou a poté jej opakovaně spouštějte pravým tlačítkem myši znovu - objekt se bude přírůstkově posunovat v ose Z.

! Přesunout Pauza Vertikální=Ano w0 10

! _Move _Pause _Vertical=_Yes w0 10

Obálkový kvádr bez polygonové sítě

Vytvoří obálkový kvádr, který nevyžaduje automatické vytvoření polygonové sítě.

! Vybrat Pauza
BezEcha
PřekreslováníVypnout
Skupina Enter -PojmenovatSkupinu ObjektyProObalku Enter
NejbližšíBod 100000000,0,0
VybratŽádný VybratPoslední Skupina Enter -PojmenovatSkupinu NejblizsiBody Enter
VybratŽádný -VybratSkupinu ObjektyProObalku
NejbližšíBod 0,100000000,0
VybratŽádný VybratPoslední -PřidatDoSkupiny NejblizsiBody
VybratŽádný -VybratSkupinu ObjektyProObalku
NejbližšíBod 0,0,100000000
VybratŽádný VybratPoslední -PřidatDoSkupiny NejblizsiBody
VybratŽádný -VybratSkupinu ObjektyProObalku
NejbližšíBod -100000000,0,0
VybratŽádný VybratPoslední -PřidatDoSkupiny NejblizsiBody
VybratŽádný -VybratSkupinu ObjektyProObalku
NejbližšíBod 0,-100000000,0
VybratŽádný VybratPoslední -PřidatDoSkupiny NejblizsiBody
VybratŽádný -VybratSkupinu ObjektyProObalku
NejbližšíBod 0,0,-100000000
VybratŽádný VybratPoslední -PřidatDoSkupiny NejblizsiBody
VybratŽádný -VybratSkupinu NejblizsiBody
PřekreslováníZapnout
ObálkovýKvádr w Enter
-VybratSkupinu NejblizsiBody Smazat
-VybratSkupinu ObjektyProObalku ZrušitSkupinu
Echo

! _Select _Pause
_NoEcho
_Setredrawoff
_Group _Enter -_SetGroupName BBObjects _Enter
_ClosestPt 100000000,0,0
_Selnone _Sellast _Group _Enter -_SetGroupName ClosestPoints _Enter
_Selnone -_SelGroup BBObjects
_ClosestPt 0,100000000,0
_Selnone _Sellast -_AddToGroup ClosestPoints
_Selnone -_SelGroup BBObjects
_ClosestPt 0,0,100000000
_Selnone _Sellast -_AddToGroup ClosestPoints
_Selnone -_SelGroup BBObjects
_ClosestPt -100000000,0,0
_Selnone _Sellast -_AddToGroup ClosestPoints
_Selnone -_SelGroup BBObjects
_ClosestPt 0,-100000000,0
_Selnone _Sellast -_AddToGroup ClosestPoints
_Selnone -_SelGroup BBObjects
_ClosestPt 0,0,-100000000
_Selnone _Sellast -_AddToGroup ClosestPoints
_SelNone -_SelGroup ClosestPoints
_Setredrawon
_BoundingBox w _Enter
-_SelGroup ClosestPoints _Delete
-_SelGroup BBObjects _Ungroup
_Echo

Nastavení uživatelských hodnot renderovací sítě

Nastaví uživatelské hodnoty renderovací polygonové sítě, aniž byste je museli nastavovat v okně Vlastnosti dokumentu. Doporučení: vytvořte si několik maker s různými nastaveními.

-NastavitVlastnostiDokumentu
Síť Uživatelská
MaxÚhel=0 PoměrStran=0
MinDélkaHrany=0 MaxDélkaHrany=0
MaxVzdálHranyodPlochy=0.01 PočetObdélníků=16
Zjemnit=Ano ZubatéSpoje=Ne
JednoduchéRoviny=Ne Enter Enter

-_DocumentProperties
_Mesh _Custom
_MaxAngle=0 _AspectRatio=0
_MinEdgeLength=0 _MaxEdgeLength=0
_MaxEdgeSrf=0.01 _GridQuads=16
_Refine=Yes _JaggedSeams=No
_SimplePlanes=No _Enter _Enter

Kruhová rovina zadaná středem a poloměrem

! Kružnice Pauza Pauza
VybratPoslední RovinnáPlocha Smazat

! _Circle _pause _pause
_sellast _PlanarSrf _delete

Kruhová rovina zadaná dvěma body průměru

! Kružnice Průměr Pauza Pauza
VybratPoslední RovinnáPlocha Smazat

! _Circle _diameter _pause _pause
_sellast _PlanarSrf _delete

Diskuse k článku

  • [1] tyglik – 10. 01. 2008, 12:52

    reagovat

    hlavne ten editor maker ve V4 je fakt ulehceni.... mnohdy clovek potrebuje opakovat stejny krok treba pětadvacetkrat a parat se s odladovanim pres prikazovy radek nebo tlacitko nebylo nic moc