====== JÚDT: 4 Zpracování polygonu ====== V následujících příkladech si ukážeme jak zadat do Therionu naměřené údaje a jak vyexportovat polygon do různých formátů. ===== 4.1 Než začneme ===== Ještě než začneme, vytvořte si na disku adresář ''therion_sample'' a v něm podadresáře ''data'' a ''output''. Prostě nějak takto: * ''therion_sample''\\ * ''data''\\ * ''output'' Do této struktury budeme naše data ukládat. K editaci souborů ''*.th'' slouží okno Text editor v XTherionu (použít můžete také libovolný plain textový editor - vi, notepad atd.). Spustíme si tedy XTherion: * zástupcem v menu **Start** -> **Programy** -> **Therion** -> **XTherion** (Windows) * nebo z příkazové řádky příkazem ''xtherion'' (Linux, MacOS X) Po spuštění se otevře prázdné okno Kompilátoru. Nenechte se zmást, kliknutím na ikonu {{:czsk:judt:xth_te_icon.png|:czsk:judt:xth_te_icon.png}}, příp. stisknutím //F1// nebo přes menu **Okno** -> **Text editor** se přepněte do Text editoru a v menu **Soubor** vyberte **Nový** (ikona {{:czsk:judt:xth_new_icon.png|:czsk:judt:xth_new_icon.png}}). V pravém sloupci ještě zvolte **Kódování** -> **Změnit na** -> **utf-8** (doporučuji z důvodu přenositelnosti). Můžete si současně otevřít Therion Book, ve kterém najdete popis a vysvětlení ke všem příkazům a volbám. A jdeme na to... ===== 4.2 První polygon ===== Každý datový objekt v Therionu (''centerline'', ''map'', ''scrap'' atd.) musí patřit do tzv. ''survey''. V survey také můžeme spojovat jiná survey v jeden celek (třeba dvě části jeskyně). Survey musí být ukončen příkazem ''endsurvey''. Survey je specifikováno pomocí identifikátoru (v našem případě ''hp''), který musí být unikátní v rozsahu nadřazeného survey (bude vysvětleno později). Zpětné lomítko slouží k odřádkování parametrů na samostatný řádek. survey hp \ -title "Hlavní polygon" Příkazem ''centerline'' (může být použito i ''centreline'') začíná část týkající se polygonového tahu. Příkaz musí být ukončen příkazem ''endcenterline'' (příp. ''endcentreline''). centerline Následují seznamy objevitelů, měřičů spolu s časovými informacemi. explo-team "Ladislav Blažek" # objevil nebo explo-team "ZO/ČSS 6-28 Babická speleologická skupina" # objevil Všechny "týmy" jsou primárně určeny pro zadávání jmen osob ve tvaru jméno příjmení. Pokud chcete tak jako já zadávat místo jmen objevitelů třeba název jeskyňářského klubu, musíte první dvě slova oddělit lomítkem. explo-date 1996-1997 # kdy bylo objeveno team "Ladislav Blažek" # seznam měřičů team "Zdenek Stloukal" # každý na samostatný řádek date 1998.02.21 # kdy bylo změřeno Časové údaje můžou být jak konkrétní data (např. 1998.02.21) tak časové intervaly (např. 1993-1997). Obsahuje-li vaše měření fixní body (můžete jich mít libovolné množství) nejprve specifikujte souřadnicový systém: cs lat-long # WGS84 pak přichází na řadu vlastní souřadnice: fix ZB 16:43:8.31 49:16:54.44 543.900 Pokud vaše data obsahují datum měření a fixní bod v některém z podporovaných souřadnicových systému dokáže Therion pro dané měření automaticky spočítat magnetickou deklinaci. V opačném případě můžete magnetickou deklinaci specifikovat jako parametr ''survey''. Teď přichází na řadu samotné měření. Nejprve therionu řekneme jak budeme data vkládat - příkazem ''data'' následovaným parametry určujícími způsob měření (''normal'', ''topofil'', ''diving'', ''cartesian'', ''cylpolar'' atd.) a pořadí měřených hodnot. Pro tradiční měření vzdálenosti, azimutu a sklonu (''normal'') to bude asi takto: data normal from to length compass clino # od do délka azimut sklon :!: Pamatujte pořadí hodnot může být libovolné a mělo by odpovídat vašemu měřičskému zápisníku. Stejně tak můžete kdykoli formát vstupních dat předefinovat - např. budeme místo azimutu měřit azimut v opačném směru (backcompass) data normal from to length compass clino # od do délka azimut sklon ... ... data normal from to length backcompass clino # od do délka obrácený_azimut sklon ... ... Pokud neudáte jinak, délkové jednotky budou v metrech, úhlové ve stupních. V opačném případě nastavte dle libosti pomocí příkazu ''units'' následovaným typem měření a jednotkami. Např.: units compass grad Před záměry, kterých se to týká, máme možnost therionu říct aby na měření se sklonem ±90° neaplikoval korekce sklonu. infer plumbs on Samotná měření můžete zadávat buď přes pravé menu nebo normálním zápisem s oddělením hodnot mezerou či tabulátorem. Důležité je vědět, že názvy měřičských bodů musí být unikátní pouze v rámci survey. Pokud tedy máte více survey, můžete v každém z nich číslovat body od nuly. Odkazovat se pak na ně budete takto: ''@'' (obdobně jako v mailové adrese) 0 1 3.54 0 -90 1 2 6.06 325 -70 2 3 4.66 200 -81.5 ... atd. Všechno pak musíme pěkně ukončit. endcenterline endsurvey hp Hotovo, zbývá jen naše dílko uložit (ikona {{:czsk:judt:xth_saveas_icon.png|:czsk:judt:xth_saveas_icon.png}}, **Soubor** -> **Uložit jako...**) do podadresáře ''data'' jako ''hp.th''. ==== 4.2.1 Soubor hp.th ==== encoding utf-8 survey hp \ -title "Hlavní polygon" centerline explo-team "ZO/ČSS 6-28 Babická speleologická skupina" # objevil explo-date 1996-1997 # kdy bylo objeveno team "Ladislav Blažek" # seznam měřičů team "Zdenek Stloukal" # každý na samostatný řádek date 1998.02.21 # kdy bylo změřeno data normal from to length compass clino # od do délka azimut sklon infer plumbs on 0 1 3.54 0 -90 1 2 6.06 325 -70 2 3 4.66 200 -81.5 3 4 4.45 141 -53 4 5 2.69 60 -32 5 6 1.14 110 -12 6 7 4.91 85 -7 7 8 6.7 350 -25 8 9 3.72 145 -50 9 10 5.23 165 -24 10 11 8.69 35 -71 11 12 4.23 271 -38.5 12 13 4.06 165 1.5 13 14 5.96 215 -15 14 15 4.02 181 -61.5 endcenterline endsurvey ===== 4.3 Polygon odbočky ===== Stejným způsobem si vytvoříme další datový soubor, který bude obsahovat polygon odbočky. Nazveme ho ''odbocka.th'' a uložíme do podadresáře ''data''. ==== 4.3.1 Soubor odbocka.th ==== encoding utf-8 survey odbocka \ -title "Odbočka" centerline explo-team "ZO/ČSS 6-28 Babická speleologická skupina" explo-date 1997 team "Ladislav Blažek" team "Zdenek Stloukal" date 1998 data normal from to length compass clino 0 1 1.74 250 3 1 2 2.56 94 -22 2 3 4.46 149 39 3 4 1.3 235.5 15 4 5 2.13 175.5 36 5 6 3.72 250 -40 6 7 3 220 -31 7 8 3.18 325 -41 8 9 2.24 230 -51 endcenterline endsurvey odbocka ===== 4.4 Spojení polygonů ====== Máme vytvořeny dva datové soubory popisující dva polygony a musíme tedy ještě Therionu sdělit jak spolu vlastně souvisí. K tomu využijeme "index" soubor - ''index.th'', který vytvoříme opět v text editoru programu XTherion a který tentokrát uložíme přímo do adresáře ''therion_sample''. Bude obsahovat jen definici vazeb mezi polygony. Začneme jako v předchozích případech. survey index \ -title "Naše obrovská jeskyně" Připojíme naše datové soubory: input data/hp.th input data/odbocka.th a jdeme na definici vazeb. Vše co se týká polygonu musí být mezi ''centerline'' a ''endcenterline''. centerline Spojíme body: equate 0@odbocka 11@hp # bod 0 v survey odbocka je totožný s bodem 11 v survey hp equate 9@odbocka 14@hp # bod 9 v survey odbocka je totožný s bodem 14 v survey hp a vše uzavřeme. endcenterline endsurvey index ==== 4.4.1 Soubor index.th ==== encoding utf-8 survey index \ -title "Naše obrovská jeskyně" input data/hp.th input data/odbocka.th centerline equate 0@odbocka 11@hp # bod 0 v survey odbocka je totožný s bodem 11 v survey hp equate 9@odbocka 14@hp # bod 9 v survey odbocka je totožný s bodem 14 v survey hp endcenterline endsurvey index ===== 4.5 Kompilace a export ===== Jakýkoliv výstup z Therionu dostaneme až po úspěšné kompilaci. K tomu potřebujeme soubory obsahující data z měření a konfigurační soubor, který si vytvoříme teď. Soubor bude pro tento případ velice jednoduchý, protože zatím máme údaje jen o polygonu. V XTherionu se kliknutím na ikonu {{:czsk:judt:xth_komp_icon.png|:czsk:judt:xth_komp_icon.png}}, příp. klávesou //F3// nebo přes menu **Okno** -> **Kompilátor** přepněte do Kompilátoru a v menu **Soubor** zvolte **Nový** (ikona {{:czsk:judt:xth_new_icon.png|:czsk:judt:xth_new_icon.png}}). Budete vyzváni k uložení konfiguračního souboru - uložte jej pod názvem ''thconfig'' do adresáře ''therion_sample''. Nejprve musíme specifikovat zdroj dat = soubor ''index.th''. source index.th Sice máme zatím jen polygon, ale i tak se nám 2D mapa může hodit. Nadefinujeme si tedy jednoduchý ''layout'', který slouží pro definici parametrů pro export. Pokud bychom chtěli exportovat jen 3D model není tento krok nutný. layout polygon scale 1 200 # měřítko # hlavička map-header 0 0 on #hlavička bude v levém horním rohu legend off #vypnutí legendy - máme jen polygon # síť 1x1 m grid bottom grid-size 1 1 1 m endlayout Teď Therionu sdělíme jaký typ výstupu chceme a jaký má být výstupní formát. Výstup budeme směřovat do podadresáře ''output''. Výchozí formát pro export 2D mapy (''map'') je PDF export map -layout polygon -output output/plan.pdf export map -layout polygon -projection extended -output output/rozvinuty_rez.pdf Můžeme ale exportovat i do SVG... export map -format svg -layout polygon -output output/plan.svg Z následujících příkazů pro export 3D modelu vyberte ten, pro který máte nainstalovaný prohlížeč. Jak už poznáte z parametru ''format'', první příkaz je pro výstup do *.3d formátu programu Survex (prohlížeč Aven), druhý do formátu *.plt programu Compass (prohlížeč Compass nebo Aven), třetí soubor si můžete prohlédnout v prohlížeči dodaném spolu s Therionem a nazvaným Loch. #export model -format survex -output output/model.3d #export model -format compass -output output/model.plt export model -output output/model.lox Teď už stačí jen kliknout na ikonu {{:czsk:judt:xth_compile_icon.png|:czsk:judt:xth_compile_icon.png}}, příp. tlačítko **Kompilovat** nebo //F9// a pokud je vše v pořádku, měl(y) by se vám v adresáři ''output'' objevit vygenerovaný(é) soubor(y). Průběh kompilace můžete sledovat ve spodní části obrazovky, kam vám therion vypisuje i případná chybová hlášení. Po úspěšné kompilaci můžete v kompilátoru zjistit různé údaje o naší jeskyni (délka, hloubka atd.). Vše se nalézá v bočním menu XTherionu, stačí jen v menu **Struktura měření (survey)** zvolit odpovídající část (survey) a v **Info o měření (survey)** si přečíst informace. Výsledek poslední kompilace najdete také v souboru ''therion.log'', který se automaticky vytvoří ve stejném adresáři v jakém leží ''thconfig''. ==== 4.5.1 Soubor thconfig ==== encoding utf-8 source index.th layout polygon scale 1 200 # měřítko # hlavička map-header 0 0 on #hlavička bude v levém horním rohu legend off #vypnutí legendy - máme jen polygon # síť 1x1 m grid bottom grid-size 1 1 1 m endlayout export map -layout polygon -output output/plan.pdf export map -layout polygon -projection extended -output output/rozvinuty_rez.pdf export model -output output/model.lox ===== 4.6 Dodatek: staničení (LRUD) ===== Máte měření obsahující data o levé, pravé stěně, stropu a dně (LRUD) a chcete tyto údaje využít? Původní idea Therionu byla nenutit měřiče doměřovat staničení (LRUD). V měřítku nakreslené náčrtky už tyto informace obsahují a naskenováním a následnou vektorizací v XTherionu získáte vše potřebné pro vygenerování mapy a 3D modelu. Pokud ovšem máte podklady z nějaké jeskyně bez náčrtků (tedy jen polygon se staničením) pak je tu i pro vás řešení. Therion umožňuje vygenerovat z polygonu podkladový obrázek (interní formát XVI) obsahující měřičské body, polygon a staničení a ten pak použít jako podklad místo naskenovaných náčrtků. Stejně tak využije LRUD informace při tvorbě 3D modelu. V ''survey'' stačí pozměnit příkaz ''data'' u vybrané ''centerline'' a doplnit ho o staničení. Původní zápis: data normal from to length compass clino a teď s podporou pro staničení: data normal from to length compass clino left right up down Samozřejmě si opět můžete pořadí hodnot stanovit tak jak vám vyhovuje a jak to máte ve svém měřičském zápisníku, např.: data normal from to length compass clino up down left right Pokud zadáte ve staničení jen jednu hodnotu, bude použita pro koncový bod záměry. data normal from to length compass clino left right up down 0 1 3.54 0 -90 1.5 2.2 4.5 1.1 Pokud chcete uvést staničení i pro první bod pak zadáte: data dimensions station left right up down # staničení pro výchozí bod 0 1 2 5 1 data normal from to length compass clino left right up down 0 1 3.54 0 -90 1.5 2.2 4.5 1.1 Pokud zadáte do hranatých závorek hodnoty dvě a oddělíte je mezerou, první bude pro počáteční a druhá pro koncový bod záměry. data normal from to length compass clino left right up down 0 1 3.54 0 -90 [1 1.5] [2 2.2] [5 4.5] [1 1.1] Pokud vám u dalších záměr staničení chybí, můžete zase jednoduše předefinovat formát dat na: data normal from to length compass clino a pokračovat se záměry bez staničení. ==== 4.6.1 Upravený thconfig ==== V konfiguračním souboru pak můžete změnit řádek s exportem 3D modelu na: export model -enable walls wall-source centerline -output output/model.lox