Tvorba skriptov
Práca na jednotlivých projektoch je v princípe pre každý projekt unikátna, avšak v priebehu prác na projektoch sa bežne vyskytujú rutinné úlohy vyžadujúce opakované vykonanie pracovného procesu - napríklad viacnásobné vloženie bloku a definovanie jeho atribútov na rôzne polohy s rôznymi hodnotami týchto atribútov, import geodeticky meraných údajov (priebeh hranice pozemku, vodného toku, atď.) alebo iná sekvencia krokov. Skript je textový súbor obsahujúci záznam, resp. následnosť úloh a použitých hodnôt, ktoré sa vykonajú v poradí, v akom sú v tomto súbore zapísané. Súbor skriptu je možné vytvoriť z textového súboru *.txt na *.scr premenovaním, resp. zmenou prípony. Obsah súboru tvorí text obsahujúci príkazy a zadávané hodnoty tak, ako by boli zadané do príkazového riadku.
Jednoduchá ukážka skriptu je vytvorenie úsečky z bodu [10,20] do bodu [50,100] a následné nastavenie zobrazenia tak, aby v okne výkresu boli zobrazené všetky entity vo výkresu, v tomto prípade iba táto jedna úsečka.
Pri práci bez skriptu by bol postup nasledovný:
- spustenie príkazu na kresbu úsečky (kliknutie na ikonu, výber v roletovom menu alebo zadanie príkazu „_line“ do príkazového riadku)
- zadanie počiatočného bodu úsečky ako absolútne súradnice [10,20] zadané do príkazového riadku
- zadanie koncového bodu úsečky ako absolútne súradnice [50,100] alebo ako absolútne súradnice [@40,80] zadané do príkazového riadku
- ukončenie príkazu na kreslenie úsečky (stlačenie tlačidla „Enter“, „Escape“ alebo medzerníku)
- spustenie príkazu „ZOOM“ (kliknutie na ikonu, výber v roletovom menu alebo zadanie príkazu „_zoom“ do príkazového riadku)
- výber možnosti pre priblíženie na všetky objekty vo výkrese (výber kľúčového slova „Extens“ v príkazovom riadku alebo zadanie hodnoty „e“ do príkazového riadku)
Poznámka: príkazy sú uvedené s využitím podčiarkovníku, nakoľko v prípade jazykových mutácií programu AutoCAD dochádza aj k zmenám názvov jednotlivých príkazov. V prípade českej jazykovej mutácie je príkaz pre kresbu úsečky „ÚSEČKA“ a preto anglický príkaz „LINE“ nebude fungovať. Ak však použijeme podčiarkovník a anglický názov požadovaného príkazu, tento príkaz bude fungovať v každej jazykovej mutácii.
Tento celý postup zadávaný iba cez príkazový riadok je nasledovný:
- _line↵
- 10,20↵
- 50,100↵
- ↵
- _zoom↵
- e↵
Zápis vo forme skriptu je preto možné vykonať veľmi podobným spôsobom alebo je možné vypracovať ho v štruktúrovanejšej forme, kde kresbu úsečky bude riešiť jeden riadok a nastavenie priblíženia bude riešiť druhý riadok. V prípade skriptov je nutné podotknúť, že potvrdenie zadaného príkazu alebo hodnoty je možné vykonať pomocou jedného z dvoch znakov - pomocou medzery alebo začatím nového riadku. Následne je nutné zmeniť príponu súboru z *.txt na *.scr.
Obrázok 125: Možnosti štruktúrovania obsahu súboru skriptu. Zápis jednotlivých vstupných údajov vždy do nového riadku (vľavo); zápis jednotlivých pracovných krokov do riadkov pre ucelený krok; 1 – prvý riadok zakončený medzerou pre potvrdenie zadaných súradníc koncového bodu.
Spustenie skriptu sa vykoná pomocou príkazu „SCRIPT“ alebo pomocou tlačidla v paneli „Applications“ v table „Manage“ a vyberieme príslušný *.scr súbor skriptu, ktorý chceme spustiť.
Obrázok 126: Spustenie skriptu z panelu „Applications“ v table „Manage“; 1 – tlačidlo pre spustenie skriptu
Po spustení skriptu sa vykonajú všetky úkony zadefinované v súbore s aktuálne nastavenými parametrami programu (hladina, farba, hrúbka čiary, atď.). Pri tvorení kresby pomocou skriptu, kedy skript obsahuje aj požadované súradnice, resp. uhly a rozmery, je vhodné vypnúť módy požívania úchopových bodov a trasovania (OSNAP – F3; AUTOTRACKING – F11), nakoľko zadávanie súradníc by v prípade zapnutých módov mohlo použiť prichytávanie a trasovanie, čo by viedlo k zmene požadovanej geometrie definovanej v skripte.
Vytvorenie priebehu cesty z geodetického merania
V praxi krajinného inžinierstva sa bežne môžeme stretnúť s úlohami vyžadujúcimi zakreslenie geodeticky zameraných objektoch. Vo všeobecnosti môžeme tvrdiť, že sa jedná o sériu bodov, ktoré môžu tvoriť samostatné bodové objekty (napr. polohopis, výškopis), líniové objekty (napr. brehová čiara, os cesty) alebo plošné objekty (napr. budova, parcela). Softvér pre prácu s geodetickými údajmi dnes bežne umožňuje export meraných údajov vo formáte použiteľnom v CAD programoch (či už súbory *.dxf alebo *.dwg), avšak stále je možné stretnúť sa s údajmi vo forme textu popisujúcom súradnice a rôzne atribúty meraných bodov.
V prípade situácie potoka Radošinka bolo vykonané zameranie osi cesty medzi obcami Zbehy a Čakajovce. Geodeticky boli zamerané body na korune komunikácie v smere Zbehy – Čakajovce a dodané boli súradnice a poradové čísla zamerania bodov vo formáte *.txt súboru.
Obrázok 127: Ukážka súboru zameraných bodov osi komunikácie medzi obcami Zbehy a Čakajovce
Vytvoriť trasu osi komunikácie zo zameraných bodov ručne (zadaním súradníc zameraných bodov do príkazového riadku) by bolo pomerne zdĺhavé, preto môžeme využiť možnosť vytvorenia skriptu, ktorý vytvorí úsečky automaticky. Pre vytvorenie skriptu najprv importujeme merané údaje do tabuľkového procesora (MS Excel), kde ich spracujeme do požadovanej formy.
Najprv vykonáme úpravu súradníc S-JTSK na použitie v CAD prostredí – zameníme osi X a Y a uvedieme hodnoty v zápornom formáte (viď kapitolu „Súradnicový systém S-JTSK v prostredí AutoCAD“). Následne vytvoríme obsah súboru skriptu, kde v prvom riadku zadáme príkaz pre tvorbu úsečky a v ďalších riadkoch budú zadané súradnice zameraného bodu. Keďže názov bodu – číslo, stúpa v poradí zamerania, každý ďalší bod teda vždy tvorí ďalší bod osi cesty. Vytvorenie páru súradníc oddelených čiarkou vyriešime funkciou „CONCATENATE“, ktorá spája obsah buniek, resp. textových údajov – v našom prípade bunku s údajom súradnice X, text obsahujúci čiarku, bunku s údajom súradnice Y (Obrázok 128).
Obrázok 128: Vytvorenie textu skriptu v MS Excel, 1 – vzorec pre spojenie buniek so súradnicami a text obsahujúci čiarku; 2 - stĺpec „I“ obsahujúci text skriptu
Za riadkom súradnice posledného bodu je nutné vložiť dva znaky potvrdenia zadania (dve medzery, medzeru a nový riadok alebo dva nové riadky), nakoľko potrebujeme, aby program vykonal dve potvrdenia – prvýkrát pre potvrdenie poslednej súradnice a druhýkrát pre potvrdenie, resp. ukončenie príkazu kresby čiary - ekvivalent stlačenia klávesy „Enter“.
Obrázok 129: Skript pre vytvorenie kresby priebehu zameranej koruny komunikácie; začiatok súboru (vľavo); koniec súboru (vpravo); 1 – dva prázdne riadky pre vykonanie dvoch potvrdení príkazov, resp. hodnôt
Následne zmeníme príponu súboru a skript môžeme spustiť. V prípade situácie potoka Radošinka môžeme skript spustiť priamo vo výkrese, vďaka čomu vznikne kresba priebehu zameranej koruny hrádze priamo na podklade tohto výkresu tak, ako je aktuálne nastavený program.
Obrázok 130: Priebeh cesty vytvorený zo zamerania koruny komunikácie; priebeh cesty vytvorený z úsečiek pomocou skriptu zo zamerania (zelená); priebeh cesty vytvorený z pôvodnej dokumentácie (červená)
Týmto skriptom bolo vytvorených 30 úsečiek medzi 31 bodmi zameranými geodeticky. Keďže v prípade líniových vedení je pre priebeh ich jednotlivých častí (osi, brehy, krajnice, atď.) vhodnejšie používať spojité čiary (entity typu „Polyline“), je možné skript pozmeniť, keďže postup tvorby spojitej čiary je veľmi podobný ako pri tvorbe série úsečiek (kľúčové slovo – súradnice uzlových bodov – ukončenie príkazu) – stačí zmeniť kľúčové slovo „_line“ na „_pline“ a výsledná kresba bude tvorená spojitou čiarou prechádzajúcou geodeticky zameranými bodmi.
Vloženie blokov a vyplnenie atribútov pomocou skriptu
Pomocou skriptov je možné vkladanie blokov s atribútmi, avšak je nutné štruktúru skriptu pozmeniť. Keďže niektoré príkazy v programe AutoCAD pracujú s využitím dialógového okna, v ktorom sa vykonáva nastavenie, resp. vlastnosti, je nutné pri použití skriptov používať príkazy takým spôsobom, ktorý rieši použitie so zadávaním parametrov cez príkazový riadok bez spustenia ich dialógového okna.
Spustenie príkazu s potlačením dialógového okna a zadávaním vstupu cez príkazový riadok je riešené zadaním príkazu s pomlčkou pred kľúčovým slovom, napr. spustenie vloženia bloku sa vykoná príkazom „-INSERT“.
Poznámka: táto funkcionalita funguje pre veľké množstvo príkazov, ale nie pre všetky, preto pri požívaní skriptov je vhodné najprv si funkcionalitu požadovaného príkazu bez dialógového okna overiť ešte pred tvorbou skriptu.
Ďalšou zmenou je potvrdzovanie zadania atribútov. Keďže pri používaní atribútov je možné aj zadávanie textových údajov obsahujúcich medzeru, je nutné potvrdenie zadania hodnotu atribútu riešiť iným spôsobom. Keďže využitie tabuľkového editora pre tvorbu skriptu je založené na princípe použitia jedného riadku pre vykonanie jedného príkazu (vloženie bloku a zadanie atribútu), nie je vhodné použiť ani tento spôsob. Ako znak pre potvrdenie zadania atribútu preto použijeme špeciálny znak, tzv. návrat vozíka (angl. carriage return), ktorého Unicode znak je „\U+000D“.
Možnosti tohto riešenia si predvedieme na situácii potoka Radošinka, kde bol vykonaný dendrologický prieskum s geodetickým zameraním polohy stromov. Výsledky prieskumu boli dodané vo forme súboru so súradnicami a atribútmi pre jednotlivé stromy. Následne je nutné zhotoviť vo výkrese situácie umiestnenie stromov a jednotlivé atribúty.
Pre tieto účely si vytvoríme blok s atribútmi tvorený schematizovaným zobrazením stromu a štyrmi atribútmi pre jednotlivé parametre každého stromu.
Obrázok 131: Blok stromu s atributmi (číslo stromu, výška, obvod kmeňa, priemer koruny)
Následne v MS Excel spracujeme dodané údaje tak, aby bolo možné vytvoriť skript, ktorý automaticky vloží blok stromu na jeho skutočnú polohu a vyplní jeho atribúty podľa zistení dendrologického prieskumu.
Obrázok 132: Dodané údaje dendrologického prieskumu a geodeticky zameraných súradníc polohy stromov
Spustenie príkazu pre vloženie bloku s názvom „strom_popis“ a vyplnenie atribútov je riešené nasledovným poradím zadávaných parametrov:
- -insert↵
- strom_popis↵
- súradnica_X,Súradnica_Y↵
- mierka_x bloku ↵
- mierka_Y bloku ↵
- uhol otočenia bloku↵
- číslo stromu↵
- výška stromu↵
- obvod kmeňa↵
- priemer koruny↵
- druh↵
- tlačidlo „OK“
Skript bude teda vytvorený tak, že text vloženia jedného bloku stromu a vyplnenia atribútov bude vyskladaný funkciou „CONCATENATE“, z dodaných údajov a požadovaných parametrov bloku (mierka, uhol otočenia bloku) pre prvý riadok a následne aplikovaním pre každý riadok, a teda pre každý strom podľa jeho parametrov.
Obrázok 133: Skript pre vloženie bloku stromu s atribútmi a zadanie hodnôt atribútov bez použitia dialógového okna, 1 - spustenie príkazu a zadanie názvu bloku; 2 – zadanie súradníc vloženia s konverziou geodetických súradníc na využitie v programe AutoCAD; 3 – zadanie mierky v smere X a Y a zadanie uhlu otočenia bloku; 4 – zadanie hodnoty atribútu a potvrdenie pomocou Unicode znaku „návrat vozíka“; 5 – bunka obsahujúca Unicode znak „návrat vozíka“ pre zjednodušenie práce
Posledný atribút bude potvrdený iba vložením nového riadku bez použitia Unicode znaku „návrat vozíka“, keďže začatie nového riadku ukončí vkladanie bloku so zadaním hodnoty posledného atribútu.
Takto vytvorený skript je teda možné následne spustiť pre vloženie a vyplnenie atribútov z dodaných podkladov, čo v prípade rozsiahlych projektov značne zjednoduší prácu, nakoľko nebude nutné každý blok vkladať a vyplňovať jednotlivo. Vďaka tomu bude operácia trvať oveľa kratší čas a eliminované budú možné chyby vznikajúce pri manuálnom zadávaní hodnôt atribútov, resp. polohy vloženia blokov.
Obrázok 134: Výsledné zobrazenie niekoľkých stromov s atribútmi vyplnenými podľa dendrologického prieskumu