Nacházíte se zde: Rhino3D.cz > Články > Rhinoceros > RhinoScript 3. díl: Rozvržení skriptu


RhinoScript 3. díl: Rozvržení skriptu

Publikováno: 29.6.2005 | Autor: David Rutten | Rubrika: Rhinoceros | Komentáře: 0 - Doporučit

Rhino Script - úvodSkripty pro Rhino jsou vždy uloženy jako jednoduché textové soubory s koncovkou *.rvb. Koncovka 'rvb' znamená 'RhinoVisualBasic'. Tyto skriptové soubory můžete otevřít a v poznámkovém bloku nebo v jakémkoliv jiném textovém editoru, za předpokladu, že je opět uložíte jako čistý text.

3 Rozvržení skriptu

3.1 Soubory VBScriptu

Skripty pro Rhino jsou vždy uloženy jako jednoduché textové soubory s koncovkou *.rvb. Koncovka 'rvb' znamená 'RhinoVisualBasic'. Tyto skriptové soubory můžete otevřít a v poznámkovém bloku nebo v jakémkoliv jiném textovém editoru, za předpokladu, že je opět uložíte jako čistý text. Místo poznámkového bloku bych vám doporučil použít ConTEXT. Je to hodně používaný editor pro programátory se zvýrazňováním syntaxe. Můžete si ho stáhnout zdarma z: http://www.context.cx/

Když jste uložili skript na disk s koncovkou *.rvb, můžete jej spustit v Rhinu. Můžete to udělat několika způsoby, ale my budeme používat jen jeden.
Do některé nástrojové palety přidejte nové tlačítko (pokud nevíte jak, přečtěte si nápovědu Rhina) a do políčka pro levé nebo pravé tlačítko myši zadejte následující příkaz:

_LoadScript "C:\Documents\Rhino3\Skripty\WorkShop\ScriptName.rvb"

Místo této ukázkové cesty musíte samozřejmě zadat správnou cestu k souboru se skriptem...
Když nyní stiskněte tlačítko, Rhino načte skript a vykoná jej. Pokud jste v syntaxi udělali chyby, Rhino je pravděpodobně najde a zobrazí varování. Proto je dobré si zvyknout testovat skripty už během jejich psaní.

3.2.1 Rozvržení textového souboru RhinoScriptu

Rozvržení scriptu
Rozvržení scriptu

VBSkripty mají následující rozvržení. Jak vidíte, skládá se ze 4 oblastí, z nichž jedna je volitelná.

První věcí, kterou uděláte POKAŽDÉ při vytváření nového skriptu, je přidání oblasti Option Explicit. Zde napíšete něco o sobě, o lidech kteří přispěli do tohoto skriptu a třeba i vysvětlení, co má tento skript dělat. Je také vhodné doplnit aktuální datum, abyste hned poznali, zda je skript starý nebo nový. Příklad oblasti Option Explicit najdete níže...

3.2.2 Oblast Option Explicit

'Oblast Option Explicit' získala svůj název od toho, že je v ní umístěn příkaz Option Explicit. Když tento příkaz přidáte do skriptu, znamená to, že Rhino (nebo jakýkoliv jiný program, který použijete ke spuštění skriptu) zkontroluje, zda máte správně deklarované proměnné. Pokud tento příkaz nezadáte, bude velice obtížné vysledovat případné chyby. Vždy jej přidávejte do skriptu.

1 Option Explicit
2 'Skript napsal Reinier Wolfcastle a Carl Carlson
3 'Copyright Reinier Wolfcastle a Carl Carlson
4 '04-07 2004, Vídeň
5 'Tento skript určí, zda může daná osoba
6 'jet na horské dráze...

Do výpisu byla přidána čísla řádků, takže vidíte, že příkaz Option Explicit je na prvním řádku. Řádky 2 až 5 začínají apostrofem ('). Všechny řádky, které začínají apostrofem, budou při vykonávání skriptu přeskočeny. Zprávy o autorských právech a datu jsou určeny pouze osobám, které budou tento kód číst. Počítač jim nebude věnovat pozornost. Proto se nic z toho, co následuje po apostrofu, nemusí řídit syntaxí vbScripu. V kódovacím slangu tomu říkáme komentář.

3.2.3 Oblast hlavní procedury

Oblast hlavní procedury
Oblast hlavní procedury

Má-li skript vůbec něco vykonat, potřebuje alespoň jednu proceduru,. Abychom později předešli zmatkům, nazveme si hlavní proceduru 'Main'. Tato procedura bude řídit veškerý kód, který je nezbytný pro provedení úloh, které má tento skript vykonat. Procedura může být tak dlouhá nebo krátká, jak chcete. Rozvržení procedury je zobrazeno níže.
Nejprve musím říct Rhinu, že zahájíme nohou proceduru. To provedeme slovem Sub, následovaným jednou mezerou a názvem procedury... což je v našem případě Main().
Po deklaraci procedury musíme deklarovat proměnné, které v této proceduře budeme používat. Musíme vědět, jak své proměnné nazveme. Ve skutečnosti je možné psát skripty bez použití proměnných, ale to jsou spíše exotické případy...
Procedury deklarujeme pomocí předpony Sub. Proměnné deklarujeme pomocí předpony Dim.

Část aktivního kódu leží tam, kde uchováváme vstupně/výstupní kód, matematické oprerace a akce. Nakonec musíme ukončit proceduru slovy End Sub. Nemusíme zde psát název procedury. Příklad jednoduché procedury najdete níže...

3.2.4 Ukázka syntaxe procedury

1 Sub Main()
2 Dim strZprava1
3 Dim strZprava2
4 Dim strZprava3
5 Dim strCopyright
6
7 strCopyright = "Tento skript napsat Reinier a Carl"
8 strZprava1 = "Do mísy dejte 500 gramů mouky a 50 gramů másla."
9 strZprava2 = "Přidejte 5 čajových lžiček skořice."
10 strZprava3 = "Přidávejte mléko, dokud není těsto vláčné."
11
12 Rhino.Print (strCopyright)
13
14 Rhino.MessageBox (strZprava1)
15 Rhino.MessageBox (strZprava2)
16 Rhino.MessageBox (strZprava3)
17
18 End Sub

Řádek 1: Inicializujeme proceduru a nazveme ji Main(). Za název také přidáme dvě závorky... později vám bude jašné proč.

Řádky 2 - 5: Zde initializujeme 4 proměnné. Všechny mají jedinečné názvy a tyto názvy něco znamenají. Místo používání názvů jako 'aa24z' nebo 'm2' dávejte raději proměnným názvy, kterým lze porozumět. Názvy proměnných mají obvykle 3-písmennou předponu, která označuje typ proměnné. Zde používáme pouze proměnné typu řetězec a jejich názvy začínají písmeny str jako string. U proměnných typu double bychom použili zkratku dbl, u long použijeme lng a u booleovských proměnných bln.

Řádek 6: Tento řádek byl ponechán jako prázdný. Prázdný řádek nic neznamená. Je však dobré zanechávat hodně řádků prázdných, abychom snadněji rozpoznali jednotlivé bloky kódu.

Řádek 7 - 10: Zde do řetězcových proměnných vkládáme text. Každá proměnná bude obsahovat zprávu pro uživatele.

Řádek 12: ANO! Vidíte dobře! To je poprvé, kdy jsme v tomto návodu vyžili Rhino. Před námi jsou vzrušující časy! Zápis Rhino.Print() znamená, že v příkazovém řádku bude zobrazen řetězec:

Příkazový řádek
Příkazový řádek

Je to jednosměrná komunikace směrem od Rhina k uživateli. Je ideální pro předávání informací, jako jsou informace o autorských právech, procentech pokroku nebo různá varování. Pokud potřebujete, aby uživatel odpověděl, musíte použít jinou I/O funkci...
(I/O je běžná zkratka pro Input/Output neboli vstup/výstup)

Řádek 14 - 16: Zde předáváme uživateli informaci prostřednictvím jiné metody Rhina. Pokud bychom totiž znovu použili metodu Rhino.Print, pravděpodobně by překryla naši zprávu o copyrightu. Uživatel by navíc neměl žádnou kontrolu nad tím, jak rychle se zprávy zobrazují.

Objeví se jednoduché dialogové okno Rhino.MessageBox s tlačítkem "OK". Veškeré akce skriptu jsou pozastaveny do doby, kdy uživatel stiskne toto tlačítko. Jakmile tak učiní, bude vykonán další řádek kódu.

Dialogové okno
Dialogové okno

Řádek 18: Poté, co byly provedeny všechny požadované akce, můžeme tuto proceduru uzavřít klíčovými slovy End Sub.

3.2.5 Dodatečné procedury a funkce

Většina jednoduchých skriptů bude potebovat pouze jednu proceduru. Nicméně je možné definovat neomezený počet dodatečných procedur a funkcí, pokud ot potřebujete. Další funkce si probereme v 8. dílu.

3.2.6 Příkaz k vykonání

Příkaz k vykonání je první objednávka, kterou předkládáme Rhinu. Kdykoliv spustíme vbScript, Rhino nejprve přečte celý obsah a ujistí se, zda jsou proměnné správně deklarovány. Rhino však není schopen automaticky spustit proceduru. Rhino ale vykoná vše, co je napsáno mimo bloky procedur. Takže musíme Rhinu říci, aby začal vykonávat určitou proceduru. Protože vždy používáme proceduru Main, vše co musíme udělat, je dopsat slovo Main na konec textového souboru aw skriptem:

1 Option Explicit
2 'Skript napsali a autorská práva vlastní Reinier a Carl
3
4 Sub Main()
5 Dim strZprava
6 strZprava = "Sicher wrde ich jetzt gerne "
7 strZprava = strZprava & "Apfelstrudel essen."
8 Rhino.Print strZprava
9 End Sub
10
11 Main

Výše vidíte úplný skript. Je velmi malý a neobsahuje žádnou interakci s uživatelem ani žádné dynamické chování. Ale snad pro vás čtení tohoto skriptu nebude znamenat žádný problém.

Přeložil Jan Slanina

Nahoru ↑