CVIČENIE 7: Praktické príklady vytvorené v AutoLISPe
Kompletné vypracované programy v Pr. 7.1 až Pr. 7.5 sú uvedené ako praktické ukážky AutoLISPu (zdrojové texty programov sú v prílohách 9.2 až 9.5). Programy sú plne funkčné, ale neriešia všetky variantné kombinácie, nakoľko program by mal veľkosť 10 až 50 strán textu A4. Programy tu prezentované slúžia len za účelom výučby CAD programovania v AutoLISPe, aby sme si mohli prezrieť štruktúru jednotlivých krokov. Programy by bolo možné vylepšiť do viacerých programov a funkcií.
Programy, ako Pr. 7.2 Oblúk s klotoidickou prechodnicou, Pr. 7.3 Pozdĺžny profil terénu, Pr. 7.4. Vykreslenie bodov v súradnicovej sústave JTSK, Pr. 7.5. Vloženie výhybiek R65 do koľajového zhlavia, sú programy prevzaté a upravené zo softvéru ZH-CAD [2], [3], [9], ktoré sú chránené autorskými právami. Programy Pr. 7.2 až Pr. 7.5 je možné využívať na štúdium a v praxi. Originály programov sú oveľa mohutnejšie a obsahujú množstvo ďalších testov súborov, hladín výkresu, entít a pod.
Pred spúšťaním programov je potrebné vykonať nastavenie prototypového výkresu (načítaný výkres AutoCADom na začiatku práce s požadovanými hodnotami systémových premenných), alebo už spusteného výkresu, v ktorom nastavíme v príkaze pre jednotky (Jednotky) [Units] uhly na grády/góny 400g alebo na stupne 360º a počet desatinných miest. Do prototypového výkresu je možné vopred vytvoriť potrebné hladiny, nahrať bloky, nastaviť kótovacie a systémové premenné, jednotky a upraviť ďalšie počiatočné hodnoty výkresu. Projektant môže vlastniť viac prototypových výkresov [21]. V prípade, že sú zle nastavené jednotky, kresba môže byť zle vykreslená. V príkladoch Pr. 7.1 a Pr. 7.3 sú stupne (0, 90, 180, 270, 360º - smer osí), pričom využívame premennú RAD (setq rad (/ 180 pi)) a v príkladoch Pr. 7.2, Pr. 7.4 a Pr. 7.5 využívame grády (0, 100, 200, 300, 400g - smer osí), ktoré zabezpečuje pri kreslení premenná GRAD (setq grad (/ 200 pi)).
Pred spustením alebo pri skúšaní programov Pr. 7.1 až Pr. 7.5 je potrebné upraviť výrez obrazovky ZOOM→Okno [Window], napríklad: 1. roh: 0,0 a 2. roh: 700,500.

7. 1. Vykreslenie
jednoduchých obrazcov
Pr. 7.1. Vypracujte program OBRAZCE.LSP na vykreslenie štvorca, kružnice a bočný pohľad na vykreslený objekt podľa obr. 7.1, pričom dĺžka D predstavuje polovicu hrany štvorca, kružnica bude mať polomer R=D/2.
Program vytvorte pomocou Visual LISP editora alebo ľubovoľným textovým editorom do prázdneho nového súboru OBRAZCE.LSP.
Obr. 7.1. Vykreslenie obrazcov a premenné
Program OBRAZCE.LSP:
(defun C:OBRAZCE ( )
(setq cmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq fb (getvar "cecolor"))
; Zadanie vstupných údajov
(setq bod0 (getpoint "\nVYBERTE BOD PRE STRED OBJEKTU: "))
(setq d (getreal "\nZADAJTE DĹŽKU D: "))
(setq rad (/ 180 pi))
Pozn. 2: Funkcia POLAR vypočíta súradnice určovaného bodu (BodU) zo známeho
bodu (BodS), pričom musíme poznať dĺžku (sU) a smer, t.j. uhol (UholU). V
Pr. 7.1 sú nastavené uhly na stupne (0, 90, 180, 270, 360° - smer osí)
pomocou premennej RAD (prevod stupňov na radiány a opačne). Obecne
platí pre určovaný bod: (setq BodU (polar BodS uholU sU))
; Výpočty
bodov

(setq bod1 (polar bod0 (/ 90 rad) d))
(setq bod1L (polar bod1 (/ 180 rad) d))
(setq bod1P (polar bod1 0 d))
(setq bod2 (polar bod0 (/ 270 rad) d))
(setq bod2L (polar bod2 (/ 180 rad) d))
(setq bod2P (polar bod2 0 d))
(setq bod3 (polar bod2 (/ 270 rad) (/ d 5)))
(setq bod3L (polar bod3 (/ 180 rad) (/ d 2)))
(setq bod3P (polar bod3 0 (/ d 2)))
(setq bod3LL (polar bod3 (/ 180 rad) d))
(setq bod3PP (polar bod3 0 d))
(setq bod4 (polar bod3 (/ 270 rad) (/ d 2)))
; Vykreslenie kružnice
(command "_color" 2)
; Alebo: (command "_colour" 2)
(command "_circle" bod0 (/ d 2))
; Vykreslenie štvorca pomocou úsečky
(command "_color" 4)
(command "_line" bod1P bod1L "")
(command "_line" bod1L bod2L "")
(command "_line" bod2L bod2P "")
(command "_line" bod2P bod1P "")
; Alebo pomocou obdĺžnika
; (command "_rectangle" bod1L bod2P)
; Vykreslenie spodnej časti pomocou krivky
(command "_color" 1)
(command "_pline" bod3LL bod3L bod4 bod3P bod3PP "")
; Ukončenie funkcie OBRAZCE a programu OBRAZCE.LSP
(setvar "cmdecho" cmd)
(command "_color" fb)
(prompt "\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^")
(prompt "\nOBRAZCE BOLI VYKRESLENÉ.")
(princ)
)
Pozn. 3: Programy AutoLISPu pracujú s uhlami v radiánoch, a preto je potrebný ich prevod na stupne (setq rad (/ 180 pi)) alebo na grády (setq grad (/ 200 pi)). Pozor na nastavenie uhlov vo výkrese pred kreslením v príkaze jednotky (Jednotky) [Units].
Pozn. 4: Príkazy AutoCADu sa aktivujú v AutoLISPe funkciou COMMAND, napríklad farba (Barva) [Color], kružnica (Kružnice) [Circle], krivka (Křivka) [PLine], Pr. 3.9.
Spustenie programu: Príkaz: (load “OBRAZCE“) → obrazce
a) VYBERTE BOD PRE STRED OBJEKTU: bod myšou alebo zadajte súradnice X,Y
b) ZADAJTE DĹŽKU D: 50
c) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OBRAZCE BOLI VYKRESLENÉ (obr. 7.1).
7. 2. Vykreslenie kružnicového oblúka s prechodnicami
v tvare klotoidy
Pr. 7.2. Vytvorte program PRECH.LSP na vykreslenie oblúka s rovnakými prechodnicami tvaru klotoidy pre cestné staviteľstvo (prípadne pre Nemecké železnice – DB, ktoré využívajú tiež klotoidu), pričom vyberieme vrcholový bod VB dotyčnicového polygónu trasy komunikácie a body pre smery jednotlivých dotyčníc. Program spracujte tak, aby sme zadávali polomer oblúka R a dĺžku prechodnice L (obr. 7.2).

Obr. 7.2. Oblúk s prechodnicami v tvare klotoidy a premenné
Oblúk s klotoidou:
![]()
Parameter klotoidy:
Pravouhlé súradnice kolotoidy:
![]()
![]()
Dotyčnicový uhol:
![]()
Odsadenie
kružnicového oblúka:
![]()
Dĺžka dotyčnice:
![]()
Dĺžka subtangenty:
![]()
Dĺžka krátkej dotyčnice:

Odsadenie oblúka:
![]()
Dĺžka celého oblúka:
Spustenie programu: Príkaz: (load “PRECH“) → prech
a) Zadajte vrcholový bod oblúka VB: bod myšou
b) Zadajte bod pre smer prvej dotyčnice: bod myšou
c) Zadajte bod pre smer druhej dotyčnice: bod myšou
d) Zadajte polomer oblúka, aby vyhovoval predpisom R: 200
e) Zadajte dĺžku prechodnice, aby vyhovovala predpisom L: 70
f) Chcete nakreslený oblúk? [Áno/Nie]: a
g) Zadajte označenie vrcholového bodu VB: 21
h) Popis parametrov bude čitateľný zvnútra oblúka (Áno/Nie): a
i) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
j) Oblúk s klotoidou je vykreslený (obr. 7.3).
![]() |
Obr. 7.3. Vykreslenie oblúka s prechodnicami v tvare klotoidy v AutoCADe
7. 3. Vykreslenie terénu v pozdĺžnom profile

Pr. 7.3. Vypracujte program TEREN.LSP
v AutoLISPe, ktorý vykreslí na základe dátového súboru TEREN.DAT
(obr. 7.4) kóty terénu geodeticky zameraného pozdĺžneho profilu komunikácie.
V danom programe bude spracované staničenie a kóty terénu vzhľadom na
zmenu porovnávacej roviny (obr. 7.6). Nad pozdĺžnym profilom vykreslite
požadované tabuľky s popisom (obr. 9.3). Výkres doplňte rohovou pečiatkou
(obr. 9.4).
Obr. 7.4. Dátový súbor TEREN.DAT
Spustenie programu: Príkaz: (load “TEREN“) → teren
a) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>OK.
b) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
c) KÓTY TERÉNU SÚ VYKRESLENÉ (obr. 7.5).
![]() |
Obr. 7.5. Vykreslenie terénu pozdĺžneho profilu v AutoCADe
7. 4. Vykreslenie bodov
z dátového súboru
s prevodom súradníc
S-JTSK na obrazovkové
Pr. 7.4. Vypracujte program BODY.LSP na vykreslenie bodov v súradnicovom systéme Jednotnej trigonometrickej siete katastrálnej (S-JTSK) a výškovom systéme Baltskom po vyrovnaní (Bpv). Jednotlivé body sú uložené v súbore BODY.DAT (obr. 7.8). Príklad slúži obecne na vykreslenie geodeticky zameraných alebo naprojektovaných bodov do výkresu AutoCADu, napríklad pri vytvorení polohopisnej a výškopisnej účelovej mapy, alebo vykreslení bodov s vypočítanými súradnicami vyty-čovacích výkresov (súradnice S-JTSK alebo miestny súradnicový systém).
Obr. 7.6. Pozdĺžny profil a premenné
Body v dátovom súbore (obr. 7.8) reprezentujú geodeticky zamerané základy opôr a pilierov mostného objektu na spracovanie dokumentácie skutočného vyhotovenia stavebného diela. Body vo výkrese pospájajte v hladine MOST podľa obr. 7.7.
Pri vykresľovaní pôdorysu mostného objektu si upravte typ značky kreslenia bodu systémovou premennou PDMODE a veľkosť značky bodu pomocou PDSIZE. Zmena značky a jej veľkosti sa prejaví až po regenerácií výkresu príkazom REGEN [21], [33].
![]() |
Obr. 7.7. Vykreslenie bodov v súradnicovom systéme S-JTSK – mostný objekt
![Textové pole: Vstupný dátový súbor BODY.DAT:
("Lokalita:" "Žilina")
("Dátum:" "27.4.2001")
( "Ymax" "Xmax")
( 381600.00 1172400.00)
(" ČB" Y[m] X[m] H[m])
(" 501" 381536.19 1172319.26 359.43)
(" 502" 381466.75 1172323.51 358.07)
(" 503" 381471.54 1172284.92 361.72)
(" 504" 381538.05 1172281.75 357.17)
(" o1" 381534.07 1172300.03 357.62)
(" M" 381500.01 1172300.07 342.00)
(" o2" 381466.04 1172300.01 358.27)
(" 1" 381530.11 1172288.02 345.01)
(" 2" 381520.04 1172287.98 345.03)
(" 3" 381519.92 1172312.02 345.02)
(" 4" 381530.04 1172311.94 344.96)
(" 5" 381530.09 1172306.02 344.94)
(" 6" 381526.10 1172305.96 345.04)
(" 7" 381526.01 1172294.07 345.02)
(" 8" 381530.03 1172294.09 345.05)
(" 9" 381479.98 1172288.01 337.52)
(" 10" 381470.01 1172288.13 337.48)
(" 11" 381470.05 1172294.11 337.49)
(" 12" 381474.12 1172294.07 337.56)
(" 13" 381474.09 1172305.99 337.53)
(" 14" 381470.01 1172306.04 337.51)
(" 15" 381470.12 1172310.96 337.48)
(" 16" 381480.11 1172311.03 337.51)
(" 17" 381504.09 1172288.07 342.02)
(" 18" 381496.01 1172288.11 341.95)
(" 19" 381504.04 1172312.01 342.08)
(" 20" 381495.96 1172311.94 342.07)
("****")](img/7/image023.png)
Obr. 7.8. Vstupný dátový súbor BODY.DAT
Pozn. 1: Pri vykreslení bodov je vykonaná transformácia súradníc súradnicového systému S-JTSK [YJTSK,XJTSK] do obrazovkových súradníc bodXYi [XACAD,YACAD] AutoCADu cez počiatok výkresu, ktorému pridelíme redukované súradnice referenčného bodu lokality P0 [Ymax, Xmax], obr. 9.5.
Spustenie programu: Príkaz: (load “BODY“) → body
a) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>OK.
b) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
c) Body sú vykreslené (obr. 7.7).
Zdrojový text ukážkového programu BODY.LSP je uvedený v Prílohe č. 9.4.
7. 5. Vloženie výhybiek tvaru R65 do koľajového zhlavia
Pr. 7.5. Program VYHYBKA.LSP slúži na vkladanie výhybiek tvaru R65 do koľajového zhlavia. Program bude vkladať výhybky ľavé alebo pravé s možnosťou zmeny polohy výmenníka výhybky (obr. 7.9 a 7.10). Výhybky budeme vkladať pomocou bodu začiatku výhybky ZV a bodu z predchádzajúceho smeru osi koľaje na napojenie (orientácia v osi koľaje), obr. 9.7. Program vypracujte obecne pre všetky typy výhybiek R65 (1:9-190, 1:9-300, 1:11-300, 1:12-500, 1:14-760, 1:18.5-1200) [3], [4], [5]. Dopracujte vloženie značky výmenníka a značiek stredových a koncových bodov výhybky.
V prípade, že výhybky chcete vkladať pomocou stredu výhybky SV,
konca hlavnej vetvy KVH alebo konca odbočnej vetvy KVO (obr. 9.7), musíte si
program dopracovať samostatne. Podobné platí aj pri vkladaní výhybiek proti
smeru staničenia osi koľaje [10], [21].
Obr. 7.8. Parametre jednoduchých výhybiek R65 (obr. 9.7)
Spustenie programu: Príkaz: (load “VYHYBKA“) → vyh
a) 1=1:9-190, 2=1:9-300, 3=1:11-300, 4=1:12-500, 5=1:14-760, 6=1:18.5-1200
VYBERTE TYP VÝHYBKY [0 AŽ 6]: 2
b) VYBERTE BOD PRE ZAČIATOK VÝHYBKY ZV: bod myšou
c) VYBERTE PREDCHÁDZAJÚCI BOD OSI PRE NAPOJENIE: bod myšou
d) VÝHYBKA ODBOČUJE VĽAVO ALEBO VPRAVO? [L,P]: L
e) VÝMENNÍK VÝHYBKY JE VĽAVO ALEBO VPRAVO? [L,P]: L
f) ČÍSLO VÝHYBKY: 1
g) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
h) Výhybka tvaru R65 1:9-300 je vykreslená.
i) Postup opakujte pre celé koľajové zhlavie a koľajové spojky (obr. 7.9 a obr.7.10).
Zdrojový text ukážkového programu VYHYBKA.LSP je uvedený v Prílohe č. 9.5.

Obr. 7.9. Koľajové zhlavie železničnej stanice z výhybiek R65

Obr. 7.10. Koľajová spojka pred staničným zhlavím
Pozn. 1: Pri výbere bodov začiatku výhybky a orientačného bodu na predchádzajúci smer osi koľaje používajte uchopovací režim bodov objektov, napríklad priesečník [Intersection], Stred [Centre], koncový bod [Endpoint] a pod. Stred výhybky SV, t.j. bod odbočenia výhybky je označený kružnicou, preto je potrebné uchopenie na stred [Centre].
Pozn. 2: Pred kreslením si nastavte plochu kreslenia ZOOM Okno [Window] 1. roh: 0,0 a 2. roh: 400,300, pri jednotkách [Units] dĺžky na 3 desatinné miesta a uhly na grády (góny) so 4 desatinnými miestami. Potom vytvorte pomocou príkazu pre ekvidištantu (Ekvidist) [Offset] rovnobežné koľaje vo vzdialenostiach 5 a 10 m a zvoľte si prvý bod pre prvú výhybku č. 1. Nakoniec dopracujte kružnicové oblúky podľa CAD I. [21] alebo [10].