Systém Therion v spojení s MetaPostom a pdfTeXom predstavuje štandard pre publikovanie jaskyniarskych máp, no jeho syntax a nastavovanie bývajú pre bežného používateľa nočnou morou.
Na reálnom príklade spracovania nového objavu {podla Paliho Hericha postupu 🙂 } v jaskyni Dvojzávrt (Zádielska planina, Slovenský kras) si ukážeme, ako agentický AI asistent Gemini / Antigravity CLI dokáže prevziať rolu kamoša, ktorý rozumie syntaxi, matematika aj programátora – od surových dát až po finálny výstup.
Windows PowerShell
irm https://antigravity.google/cli/install.ps1 | iex
Windows CMD
curl -fsSL https://antigravity.google/cli/install.cmd -o install.cmd && install.cmd && del install.cmd1. Výzva: Od surového merania k publikačnému výstupu
Jaskyňa Dvojzávrt dosahuje po novom objave dĺžku 37 m a hĺbku 22 m. Cieľom bolo vytvoriť reprezentatívny vertikálny rez jaskyne na formát A4, ktorý bude zobrazovať (nie rozvinuty rez ale v rovine XY ), keďže to je malá jaskyňa tak som sa rozhodol trošku pohrať:
- Čistý rez jaskyňou bez rušivých prekrývaní.
- Hlavičku s logom Speleoklubu Cassovia, smerovkou a autormi.
- Úspornú 1-stĺpcovú legendu značiek na ľavej strane.
- Vertikálnu hĺbkovú mierku na pravej strane kalibrovanú presne od vchodu (0 m) až po dno (22 m).
Krátko o Antigravity CLI
Antigravity CLI je terminálový AI agent od Googlu, ktorý umožňuje pracovať s kódom priamo z príkazového riadku. Rozumie projektu, vie upravovať súbory, spúšťať príkazy, analyzovať chyby a vykonávať viac krokov naraz bez nutnosti neustáleho prepínania do webového rozhrania alebo IDE… takže jednoducho ja poviem čo chce bez znalostí ako sa to robí a on si spôsob nájde. Po nainštalovaní sa v termináli pustí napísaním agy.exe alebo agy. Ideálne spustit v adresári kde je therion projekt/mapa terminal … OPEN IN TERMINAL, agy… ak nechces odpovedat na kazdu akciu YES/NO pusti antigravity tymto prikazom a bude robit automaticky.
agy.exe --dangerously-skip-permissions

2. Čo všetko sme s Antigravity (agy) riešili (Priebeh prác a otázky zo sessions)
Na začiatok treba napísať čo ideme robiť aby v akom softe a ideálne vložiť odkaz na therion wiki alebo použi moje úvodné slovo, celý skill nájdeš dole pod článkom.
blog.sss.sk/wp-content/uploads/2026/08/dvojzavrt_skill_config.zip
Pracujeme na speleologickom mapovacom projekte v systéme Therion.
## Tvoja úloha na úvod:
1. **Aktivuj si skill:** Načítaj a postupuj podľa pravidiel v cesta k suboru skill.md .... `.agents/skills/therion-cave-mapping/SKILL.md`.
2. **Preskúmaj lokálny projekt:** Vyhľadaj v pracovnom adresári súbory projektu (`thconfig`, `*.th`, `*.th2`, `*.xvi`, `*.lox`, `*.vrml`).
3. **Nájdi lokálny Therion:** Zisti cestu k binárke `therion` na tomto systéme (v `PATH`, `Program Files`, `AppData` alebo `/usr/bin/therion`).
4. **Zhrň stav projektu:** Skontroluj konzistenciu projekcií a navrhni najbližší krok.Fáza A: Čistenie dát a topológia polygónu
- Úloha: Vstupný súbor obsahoval surové polygónové záznamy a splay zámery.
- Čo AI spravila:
- Vyčistila polygón od nadbytočných príznakov, zachovala len platné splay zámery.
- Skontrolovala topologickú nadväznosť medzi bodmi polygónu.
- Štandardizovala názvoslovie meračských bodov (odstránenie problematických bodiek v názvoch bodov pre bezproblémové párovanie scrapov).
Fáza B: MetaPost makrá a grafické symboly
- Úloha: Štandardné symboly bolo potrebné skrášliť a doplniť o vlastné prvky.
- Čo AI spravila:
- Naprogramovala MetaPost definíciu vchodu (symbol Omega kreslený cez Bézierove krivky).
- Integrovala vlastnú tieňovanú kompasovú ružicu pre sever.
- Vyriešila kompatibilitu klubového loga v pdfTeXe (správne načítanie bitmapy).
Fáza C: Návrh A4 layoutu a priestorová optimalizácia
- Úloha: Pôvodná horizontálna viacstĺpcová legenda sa krížila s kresbou vertikálneho rezu.
- Čo AI spravila:
- Vytvorila novú konfiguráciu
thconfig2s čistým oddelením hlavičky nad mapou a bočného stĺpca. - Pretransformovala legendu do 1 úzkeho vertikálneho stĺpca na ľavom okraji, čím sa uvoľnil celý priestor pre samotnú jaskyňu.
- Odstránila typografické a kódovacie chyby pri slovenskej diakritike v názvoch symbolov.
- Vytvorila novú konfiguráciu
Fáza D: Matematická kalibrácia mriežky a vytvorenie vertikálnej mierky
- Úloha 1: Zabezpečiť, aby 5m súradnicová mriežka začínala presne horizontálnou čiarou cez vchod (bod 1).
Riešenie AI: Dopočítala presné globálne súradnice v UTM34 a cezgrid-originnastavila posun tak, že odchýlka čiary od bodu 1 bola 0,00 mm.
- Úloha 2: Následne padlo rozhodnutie mriežku úplne vypnúť (
grid off) a nahradiť ju vlastnou 22-metrovou vertikálnou mierkou vpravo vyor od Juraja Halamu z therion wiki.
Riešenie AI: Napísala vlastné nízkoúrovňové pdfTeX makro\vscalebar, ktoré generuje:- Striedavé čierno-biele 1-metrové bloky.
- Hlavné rysky na 0, 5, 10, 15, 20 a 22 m s popiskami.
- Vedľajšie rysky po 1 m.
- Nadpis Hĺbka.
Fáza E: Jemné ladenie a finálny dizajn
- Požiadavky používateľa: „posuň vertikálnu mierku o 1 dielik doprava a 0.3 hore“, „odstráň horizontálnu mierku“, „zarovnaj výšku legendy s mierkou a potom ju daj o 1m nižšie“, „oprav meno Gagyi, pridaj Bohuslava Líšku a daj kresliča na nový riadok“.
- Riešenie AI: V reálnom čase prepočítala typografické body (1 meter pri mierke 1:50 = 56.69 bp), aplikovala zmeny do TeX makier a okamžite prekompilovala mapu.
Ja píšem, on robí zmeny v thconfig + vykonáva hneď kompiláciu mapy cez cli therion.


3. Realita práce s AI: Prečo treba model kontrolovať?
Spolupráca s AI nie je o slepej dôvere. Práve pri speleokartografii sa ukázalo niekoľko dôležitých ponaučení:
Pasca prekombinovaných riešení (Symbol vchodu Omega):
Namiesto prostého priradenia štandardnej sady (symbol-assign point entrance ASF) sa AI rozhodla vygenerovať vlastné MetaPost makro cez Bézierove krivky.Výsledok? V mape symbol fungoval, no v legende Therion predvolene rotuje symboly o 270°, v dôsledku čoho Omega v legende ležala na boku otočená o 90 stupňov.
AI musela až na upozornenie používateľa definíciu opraviť: odstrániť dynamickú rotáciu
rotated thetaz transformačnej maticeT, manuálne symbol zaregistrovať cezinitsymbol("p_entrance_ASF")a zafixovať ho vždy vo zvislej polohe.
Poučenie:
- AI nie vždy zvolí najpriamočiarejšie riešenie: Niekedy má tendenciu napísať vlastný kód od nuly namiesto použitia vstavanej konfiguračnej direktívy.
- Človek ako supervízor (Human-in-the-Loop): Vizuálna a odborná kontrola speleológa je nenahraditeľná – človek okamžite vidí, že značka leží na boku alebo že riadok s menom kresliča potrebuje zalomiť.
- Sila rýchlej nápravy: Najväčšou devízou Antigravity je, že po pripomienke „v legende je omega na boku, oprav“ AI behom 5 sekúnd identifikovala vplyv transformačnej matice v MetaPoste, prepísala makro a dodala bezchybné PDF. Výsledok sa počíta.
4. Ako Antigravity v praxi funguje (Radenie, kompilácia a úpravy)
Tradičný chatovací AI model vám iba vygeneruje blok kódu, ktorý si musíte sami skopírovať, otestovať a ladiť chyby. Antigravity funguje ako plnohodnotný autonómny agent:
- Číta a analyzuje celý projekt: Pozná vzťahy medzi
.thdátami,.th2kresbami athconfigsúbormi. - Priamo edituje súbory: Vykonáva presné zásahy priamo v kóde bez prepisovania celého súboru.
- Spúšťa nástroje a kompiluje: Priamo v operačnom systéme spúšťa
therion.exe, kontroluje výstupy vtherion.log,data.loga analyzuje interné štruktúry vygenerovaného PDF. - Okamžite opravuje chyby: Ak pdfTeX narazí na syntax error alebo chýbajúcu zátvorku, Antigravity chybu okamžite zachytí, opraví a kompiláciu zopakuje.
5. Hlavné výhody využitia AI v úprave configu Therionu
- Koniec technickej bariéry: Používateľ nemusí ovládať interné makrá pdfTeXu (
\pdfliteral,\vbox,\rlap,\vskip,\legendbox) ani programovanie v MetaPoste. Stačí zadať požiadavku prirodzeným jazykom v slovenčine. - Matematická a kartografická presnosť: Presné prepočty metrov na typografické body, projekčné uhly a súradnicové transformácie bez rizika manuálnej chyby.
- Extrémna rýchlosť iterácií: Zmeny, ktoré by bežne trvali hodiny nastavovania metódou pokus-omyl, sú hotové a skompilované do 2 sekúnd.
- Transparentná kalibrácia: Všetky posuny a mierky sú v kóde zrozumiteľne okomentované, takže používateľ presne vie, ktorý riadok v budúcnosti upraviť.
6. Výsledok
Výsledkom je publikačne pripravená mapa rezu jaskyne Dvojzávrt v mierke 1 : 50 v súbore rez012c_1col.pdf:
- Elegantná hlavička so všetkými náležitosťami,
- Úsporná 1-stĺpcová legenda vľavo so správne orientovanou Omegou,
- Dokonale zarovnaná 22-metrová vertikálna mierka vpravo,
- Čistý a prehľadný jaskynný rez pripravený pre tlač do Spravodaja SSS a archív.
pár podkladov ako to dopadlo.

skill.md blog.sss.sk/wp-content/uploads/2026/08/dvojzavrt_skill_config.zip
---
name: therion-cave-mapping
description: >-
Speleologické mapovanie a digitálna kartografia v systéme Therion.
Univerzálny workflow pre spracovanie meračských dát (.th), vektorovej kresby (.th2),
konfigurácie exportu (thconfig), podkladov (.xvi, .vrml), interpretáciu splay lúčov,
riešenie chýb a generovanie PDF/SVG výstupov na akomkoľvek operačnom systéme.
---
# Therion Speleological Cartography & Mapping Skill
Tento skill slúži ako komplexná metodická a technická príručka pre agenta pri práci s akýmkoľvek jaskynným projektom v softvéri **Therion** na ľubovoľnom počítači (Windows, Linux, macOS).
---
## 1. Architektúra a roly súborov v projekte
Therion projekt sa skladá z hierarchicky prepojených súborov. Pri vstupe do pracovného adresára agent automaticky deteguje tieto typy súborov:
| Typ súboru | Úloha v projekte | Kľúčové príkazy a štruktúra |
| :--- | :--- | :--- |
| **`thconfig`** | Hlavný riadiaci skript kompilácie a exportu | `source <subor>.th`, `select <mapa>@<survey>`, `layout <meno> ... endlayout`, `export map ... -o vystup.pdf` |
| **`*.th`** | Prieskum, meračské dáta a definícia máp | `survey <nazov> ... endsurvey`, `centerline ... endcenterline`, `data normal ...`, `flags splay`, `input <kresba>.th2`, `map <nazov> -proj <typ>` |
| **`*.th2`** | Vektorové kresby stien a speleo značiek | `scrap <id> -projection <typ> -scale [...] ... endscrap`, `line wall`, `line pit`, `point ... station -name <id>` |
| **`*.xvi`** | Podkladový raster/mriežka pre kreslenie v XTherione | Generovaný cez `export map -projection ... -o subor.xvi` |
| **`*.vrml` / `*.lox`** | 3D modely polygónu a laserových splay lúčov | Používané na priestorovú verifikáciu morfológie jaskyne |
---
## 2. Detekcia a spustenie Therionu na lokálnom systéme
Agent nikdy nepoužíva pevné používateľské cesty. Na spustenie kompilácie použije nasledujúci postup:
1. **Test príkazu v systémovej ceste (`PATH`):**
* Spustiť `therion thconfig`
2. **Ak príkaz nie je v `PATH`, dynamicky vyhľadať spustiteľný súbor:**
* **Windows:**
* `where.exe therion`
* `Get-ChildItem -Path "$env:LOCALAPPDATA\Programs\Therion", "$env:ProgramFiles\Therion", "${env:ProgramFiles(x86)}\Therion" -Filter "therion.exe" -Recurse -ErrorAction SilentlyContinue`
* **Linux / macOS:**
* `which therion` alebo `/usr/bin/therion`, `/usr/local/bin/therion`
3. **Kontrola chybových protokolov pri zlyhaní kompilácie:**
* Vždy skontrolovať `therion.log`, prípadne `data.log` a `data.tex` v pracovnom adresári.
---
## 3. Prísne pravidlá Therion projekcií (Prevencia chýb)
Therion vyžaduje **100 % zhodu typu projekcie** medzi exportom v `thconfig`, definíciou mapy v `*.th` a hlavičkou scrapu v `*.th2`.
### Prehľad projekcií:
1. **Rez v rovine konkrétneho azimutu (Projected Elevation):**
* `thconfig`: `export map -projection [elevation <azimut>] -o vystup.pdf`
* `*.th`: `map <meno> -proj [elevation <azimut>]`
* `*.th2`: `scrap <meno> -projection [elevation <azimut>] -scale [...]`
* *Pozor:* Hranaté zátvorky `[elevation 012]` sú povinné. Zápis `elevation` bez uhla je odlišná projekcia!
2. **Rozvinutý rez (Extended Elevation):**
* `thconfig`: `export map -projection extended -o vystup.pdf`
* `*.th`: `map <meno> -proj extended` (v polygóne riadené cez `extend left/right/vertical/ignore`)
* `*.th2`: `scrap <meno> -projection extended -scale [...]`
3. **Pôdorys (Plan):**
* `thconfig`: `export map -projection plan -o vystup.pdf`
* `*.th`: `map <meno> -proj plan`
* `*.th2`: `scrap <meno> -projection plan -scale [...]`
> [!CRITICAL]
> Ak sa projekcie nezhodujú, Therion scrap v tichosti zahodí (`S -.-- @ ()` v `therion.log`) a vyexportuje len holé polygónové čiary bez kresby!
---
## 4. Speleologické princípy kresby stien (Splay Envelope)
1. **Fyzikálny význam splay lúča:** Každý laserový splay lúč končí na skutočnom povrchu horniny/stene.
2. **Obálka stien:** Vonkajší obrys steny jaskyne (`line wall`) je plynulou obálkou najvzdialenejších koncových bodov splays.
3. **Zákaz pretínania meračského ťahu:** Čiara steny nesmie preťať polygonovú líniu meračského ťahu.
4. **Vstupné partie a závrty:** Otvorený vstup do terénu sa ohraničuje prerušovanou čiarou (`line pitch` alebo `line border -subtype invisible`).
5. **Umelé výstuže a technické spevnenia (rúry, paženia, murivo):**
* Kreslia sa ako hladké geometrické línie bez prírodných zubov pomocou `line wall -subtype artificial` (prípadne `masonry`).
* V `thconfig` sa v bloku `layout` premenujú v legende:
```therion
text sk "line wall:artificial" "spevňovacia výstuž / rúra"
```
---
## 5. Overenie a vizualizácia výstupov agentom
Po úspešnej kompilácii do PDF agent overí grafický výstup bez nutnosti externého PDF prehliadača:
```python
import pypdfium2 as pdfium
doc = pdfium.PdfDocument("vystup.pdf")
doc[0].render(scale=2).to_pil().save("nahlad.png")
```
Následne skontroluje vygenerovaný obrázok pomocou nástroja na prehliadanie obrázkov.
---
## 6. Referencie a oficiálne zdroje
* **The Therion Book (Oficiálny manuál):** https://therion.speleo.sk/download.php
* **Therion Wiki:** https://therion.speleo.sk/wiki/doku.php
* **UIS Speleological Map Symbols:** https://therion.speleo.sk/wiki/metapost
config -ja som pridal iba source a select ostatné je tvorba AI.
encoding utf-8
source dvojzavrt_po_objave.th
select rez@dvojzavrt_po_objave
layout detail
scale 1 50
scale-bar 8 m
language sk
legend on
legend-columns 1
# Čísla a značky bodov polygónu
debug station-names
symbol-show point station-name
symbol-show point station
# Úplné vypnutie mriežky
# Mriežka po 5m zarovnaná cez bod 1 (vchod)
cs UTM34
grid-origin 486532.23 5390264.22 811.187 m
grid bottom
grid-size 5 5 5 m
# Farba stien a polygónu
color map-fg [95]
symbol-color line survey [75 65 45]
# Priradenie symbolov
symbol-assign point entrance ASF
symbol-assign line wall:blocks AUT
symbol-assign area sand AUT
symbol-assign area clay AUT
symbol-hide line survey:surface
symbol-assign area blocks AUT
symbol-assign area sand AUT
symbol-assign point pillar AUT
symbol-assign point stalagmite AUT
symbol-assign point stalactite AUT
symbol-color line rock-border 30
symbol-color line rock-edge 30
symbol-color line border 50
symbol-color line wall:debris 30
symbol-color area clay 50
symbol-color area pebbles 50
symbol-color area sand 60
symbol-color area flowstone 50
symbol-color area moonmilk 50
symbol-color line wall:underlying 50
symbol-color line u:chodnik 70
symbol-color point wall-altitude 60
symbol-color point altitude 60
symbol-color area u:odtazene 50
# Metapost rozšírenia a skrášlenia
code metapost
# --- Symbol vchodu: Omega ---
def p_entrance (expr pos,theta,sc,al) =
U := (0.4u, 0.4u);
T := identity aligned al rotated theta scaled sc shifted pos;
pickup PenA;
path p;
p := (-0.35u, -0.25u) -- (-0.2u, -0.25u){dir 135} .. (0, 0.25u) .. {dir 225}(0.2u, -0.25u) -- (0.35u, -0.25u);
thdraw p;
enddef;
def p_entrance_legend =
pickup PenA;
path p;
p := (-0.35u, -0.25u) -- (-0.2u, -0.25u){dir 135} .. (0, 0.25u) .. {dir 225}(0.2u, -0.25u) -- (0.35u, -0.25u);
draw p shifted ((0.5, 0.5) inscale);
enddef;
let p_entrance_ASF = p_entrance;
let p_entrance_ASF_legend = p_entrance_legend;
# --- Štandardná horizontálna grafická mierka (8m s 1m rozlíšením) ---
def s_scalebar (expr l, units, txt) =
begingroup
interim warningcheck:=0;
tmpl:=l / Scale * cm * units / 2;
tmpx:=l / Scale * cm * units / 8;
tmph:=5bp; % výška mierky
endgroup;
pickup PenC;
draw (-tmpl,0)--(tmpl,0)--(tmpl,-tmph)--(-tmpl,-tmph)--cycle;
p:=(0,0)--(tmpx,0)--(tmpx,-tmph)--(0,-tmph)--cycle;
for i:=-4 step 2 until 3:
fill p shifted (i * tmpx,0);
endfor;
begingroup
interim labeloffset:=3.5bp;
for i:=0 step 1 until (l-1):
tmpx:=tmpl * (i * 2 / l - 1);
label.top(thTEX(decimal (i)),(tmpx,0));
endfor;
label.top(thTEX(decimal (l) & "\thinspace" & txt),(tmpl,0));
label.bot(thTEX("Mierka 1 : " & decimal round(Scale*100)),(0,-tmph));
endgroup;
enddef;
# --- Smerovka na sever (Shaded Compass Rose - Juraj Halama) ---
def s_northarrow (expr rot) =
scale_value = 0.42;
decl := MagDecl;
T := identity;
picture tmp_pic;
tmp_pic = image (
pickup pencircle scaled 1;
thdraw fullcircle scaled 4cm;
thdraw fullcircle scaled 2.75cm;
pickup pencircle scaled .5;
thdraw fullcircle scaled 3.75cm;
for whereto=11.25 step 22.5 until 360:
thdraw dir(whereto)*2.75/2cm--dir(whereto)*3.75/2cm;
endfor;
% arrows
path halfarrow;
halfarrow = (+.3cm,.3cm)--(0,2cm)--(0,0)--cycle;
for whereto = 45 step 90 until 315:
pickup pencircle scaled 1;
for halfarrowgrad = 1 step -.05 until 0:
thdraw ((halfarrowgrad*.3cm, halfarrowgrad*.3cm)--(0,2cm)) scaled .85 rotatedaround ((0, 0),whereto) withcolor .75halfarrowgrad;
endfor;
pickup pencircle scaled .5;
thdraw halfarrow scaled .85 rotated whereto;
thfill halfarrow xscaled -1 scaled .85 rotated whereto withcolor white;
thdraw halfarrow xscaled -1 scaled .85 rotated whereto;
endfor;
for whereto = 0 step 90 until 270:
pickup pencircle scaled 1;
for halfarrowgrad = 1 step -.05 until 0:
thdraw ((halfarrowgrad*.3cm, halfarrowgrad*.3cm)--(0,2cm)) scaled 1.15 rotatedaround ((0, 0),whereto) withcolor .75halfarrowgrad;
endfor;
pickup pencircle scaled .5;
thdraw halfarrow scaled 1.15 rotated whereto;
thfill halfarrow xscaled -1 scaled 1.15 rotated whereto withcolor white;
thdraw halfarrow xscaled -1 scaled 1.15 rotated whereto;
endfor;
% central circles
thfill fullcircle scaled .56cm withcolor 1white;
pickup pencircle scaled .5;
thdraw fullcircle scaled .56cm;
thfill fullcircle scaled .3cm withcolor .30;
% characters
label.bot(thTEX("\bf{}N") scaled 1.5, (0,2.9cm));
label.lft(thTEX("\bf{}E") scaled 1.5, (2.9cm,0));
label.rt (thTEX("\bf{}W") scaled 1.5, (-2.95cm,0));
label.top(thTEX("\bf{}S") scaled 1.5, (0,-2.9cm));
% space among characters
pickup pencircle scaled .5;
thdraw (dir(45)*2cm)--(dir(45)*2.5cm);
thdraw (dir(135)*2cm)--(dir(135)*2.5cm);
thdraw (dir(225)*2cm)--(dir(225)*2.5cm);
thdraw (dir(315)*2cm)--(dir(315)*2.5cm);
);
thdraw tmp_pic scaled scale_value rotatedaround (origin, - rot);
enddef;
# --- Symboly pohľadu: symbol_plan a symbol_extend ---
def p_u_symbol_plan (expr pos,theta,sc,al) =
U := (-3.25u, 3.25u);
T := identity aligned al rotated theta scaled sc shifted pos;
pickup PenB;
q := ((-3.26u, -.95u) -- (1.74u, -.95u) -- (2.8u, .82u) -- (-1.49u, .82u) -- cycle);
thfill q withcolor .85;
thdraw q;
q := ((-.175u, .5u) -- (0u, 0u) -- (.175u, .5u) .. (0u, .45u) .. cycle);
thfill q withcolor .5green;
thdraw q withcolor .5green;
thdraw (0u, 0u) -- (0u, 2.31u) withcolor .5green;
enddef;
def p_u_symbol_extend (expr pos,theta,sc,al) =
U := (-2.5u, 2.5u);
T := identity aligned al rotated theta scaled sc shifted pos;
pickup PenB;
q := ((-2.346u, -2.480u) -- (-.48u, -2.116u) -- (-.48u, 1.573u) -- (-2.346u, 1.354u) -- cycle);
thfill q withcolor .85;
q := ((-1.551u, -2.878u) -- (1.438u, -.766u) -- (1.438u, 2.388u) -- (-1.551u, 1.118u) -- cycle);
thfill q withcolor .75;
thdraw q;
thdraw (-.48u, -2.116u) -- (-.48u, 1.573u) dashed evenly;
q := ((.446u, -1.461u) -- (2.120u, -1.094u) -- (2.120u, 2.184u) -- (.446u, 1.965u) -- cycle);
thfill q withcolor .85;
thdraw (.446u, -1.461u) -- (.446u, 1.965u) dashed evenly;
q := ((-.175u, .5u) -- (0u, 0u) -- (.175u, .5u) .. (0u, .45u) .. cycle) rotated -90;
thfill q withcolor .5green;
thdraw q withcolor .5green;
thdraw (0u, 0u) -- (2.31u, 0u) withcolor .5green;
enddef;
# --- Postavičky jaskyniarov v mierke (Walking & Climbing caver) ---
picture u_man_c_pic;
u_man_c_pic := image (
draw (0cm, -0cm) -- (-8cm, 27cm) -- (-36cm, 55cm) -- (-50cm, 99cm) withpen pencircle scaled 16cm;
draw (27cm, 48cm) -- (0, 64cm) -- (-29cm, 61cm) -- (-38cm, 102cm) withpen pencircle scaled 16cm;
draw (-65cm, 48cm) -- (-75cm, 75cm) -- (-53cm, 106cm) -- (0, 106cm) withpen pencircle scaled 14cm;
draw (-44cm, 130cm) withpen pencircle scaled 27cm withcolor black;
) shifted (20cm, -67cm);
picture u_man_w_pic;
u_man_w_pic := image (
draw (0, 0) -- (7.5cm, 36cm) -- (0cm, 69cm) -- (9cm, 99cm) withpen pencircle scaled 16cm;
draw (42cm, 9cm) -- (37.5cm, 42cm) -- (13.5cm, 69cm) -- (30cm, 102cm) withpen pencircle scaled 16cm;
draw (21.5cm, 100.5cm) -- (6.6cm, 69cm) withpen pencircle scaled 16cm;
draw (-24cm, 75cm) -- (-13.5cm, 102cm) -- (9cm, 112.5cm) -- (30cm, 108cm) -- (51cm, 87cm) -- (75cm, 93cm) withpen pencircle scaled 14cm;
draw (30cm, 132cm) withpen pencircle scaled 27cm withcolor black;
) shifted (-20cm, -70cm);
def p_u_man_c (expr P, R, S, A) =
U := (60cm, 85cm) scaled (0.01 / Scale);
T := identity aligned A rotated R scaled S shifted P;
thdraw u_man_c_pic scaled (0.01 / Scale);
enddef;
def p_u_man_w (expr P, R, S, A) =
U := (60cm, 80cm) scaled (0.01 / Scale);
T := identity aligned A rotated R scaled S shifted P;
thdraw u_man_w_pic scaled (0.01 / Scale);
enddef;
# --- Umelá stena / výstuž ---
def l_wall_artificial (expr P) =
T:=identity;
pickup PenA;
thdraw P withcolor (0.1, 0.3, 0.6);
enddef;
endcode
# --- TeX rozloženie: Hlavička hore so scalebarom (max 8m, krok 1m), Legenda vľavo ---
code tex-map
\overfullrule=0pt\relax
\legendwidth=5.2cm
\legendcolumns=1
% 1. HLAVIČKA NAD MAPOU (Logo, text a smerovka, pod nimi 8m grafická mierka s 1m krokom)
\def\mapheader{%
\vbox{\hsize=\hsize
\hbox to \hsize{%
\vbox to 3.2cm{\vfill\hbox{\pdfximage width 3.6cm {C:/Users/A1497335/Downloads/Dvojzavrt_po_objave/Dvojzavrt_po_objave/logo_cassovia.jpg}\pdfrefximage\pdflastximage}\vfill}\hfil
\vbox to 3.2cm{\vfill\vbox{\hsize=0.52\hsize
{\leftskip=0pt plus 1fil \rightskip=0pt plus 1fil \parfillskip=0pt
{\size[24]\bf DVOJZÁVRT\endgraf}
\vskip 3pt
{\size[12]\rm Zádielska planina / Slovenský kras\endgraf}
\vskip 3pt
{\size[10.5]\it Speleoklub Cassovia\endgraf}
\vskip 6pt
{\size[9]\rm Zameral: {\bf Ladislav Gagy} \qquad Kreslil: {\bf Michal Danko}\endgraf}
\vskip 2pt
{\size[8.5]\rm Dátum merania: 16. 8. 2026 \qquad Dĺžka: {\bf 37 m} \qquad Hĺbka: {\bf 22 m}\endgraf}
}
}\vfill}\hfil
\vbox to 3.2cm{\vfill\hbox{\northarrow}\vfill}%
}
\vskip 0.4cm
\centerline{\scalebar}
\vskip 0.8cm
}
}
% 2. ĽAVÝ STĹPEC (1-stĺpcová legenda značiek)
\def\mapleftcol{%
\vtop{\hsize=\legendwidth
{\the\legendtextsectionsize\the\legendtitle}\bigskip
\insertlegend
}
}
% 3. ROZLOŽENIE NA LISTE
\def\maplayout{
\legendbox{50}{100}{S}{\mapheader}
\legendbox{22}{95}{NE}{\mapleftcol}
}
endcode
endlayout
text sk "line wall:ice" "plastová rúra (spevnenie)"
text sk "point u:symbol_plan" ""
text sk "point u:symbol_extend" ""
text sk "point u:man_w" "postava (kráčajúca)"
text sk "point u:man_c" "postava (lezecká)"
# Export rez s 1-stĺpcovou ľavou legendou a 8m mierkou
export map -layout detail -projection [elevation 012] -o rez012c_1col.pdf
Použité AI – Gemini 3,7
Galléria testov a hrania sa s nano banna a gpt image.





Discover more from Blog SSS
Subscribe to get the latest posts sent to your email.




