CVIČENIE 8:      Vytvorenie dialógových panelov

v rámci tvorby nadstavby AutoCADu

 

       AutoCAD patrí k softvérovým produktom, ktorý umožňuje konštruktérovi – projektantovi prispôsobenie počítačového grafického prostredia podľa danej oblasti riešenia (nadstavba AutoCADu), vytváranie nových programov, spracovanie dát podľa požadovaných technologických postupov a pod.

       Vo  Visual LISP editore (obr. 1.2 a obr. 8.4) budeme vytvárať dialógové (DCL) panely (obr. 8.5), ktoré použijeme na spracovanie dát, pričom si vytvoríme program v jazyku AutoLISP. Ďalší súbor typu DCL vytvoríme pomocou jazyka DCL (Dialog Control Language – dialógový riadiaci jazyk). Vytvorenie DCL panelov si popíšeme na jednoduchom príklade výpočtu súradníc meraných bodov (BodM), kde poznáme súradnice stanoviska merania (BodS) a orientačného bodu (Bod0), [15]. Schéma výpočtu polárnej metódy určovania súradníc bodov a metódy trigonometrického určovania nadmorských výšok je na obr. 8.1.

 


Obr. 8.1. Výpočet súradníc a výšok bodov

       Vo výpočtoch budeme uvažovať súradnicový systém S-JTSK, prípadne miestny geodetický systém a výškový systém Bpv, kde využijeme vzťahy:

       Poloha:

                                                            

                                                                  

                                                   

                                

                                                          

                                                                       

Výška:

                                                                                      

Vzorce sú uvedené za účelom ukážky spracovania matematických vzťahov v AutoLISPe. Nakoľko sa nachádzajú v matematických vzťahoch goniometrické funkcie a uhly, je potrebný ich prevod na radiány a z radiánov na požadovaný typ uhlov (grády, stupne). Hlavnou nosnou časťou kap.8 je vytváranie DCL panelov a spracovanie dát.

8. 1.   Príprava snímok typu SLD

 


       Nakoľko pracujeme v prostredí AutoCAD, odporúčame vykresliť v ňom všetky obrázky, ktoré si budeme vytvárať v tvare snímky (Snímek) [Slide] – súbor s príponou SLD, ktorý vložíme do DCL panela (obr. 8.7). Obrázok kreslíme podľa pravidiel v CAD I. [21] a obr. 8.2, pričom je potrebné prepnúť farbu plochy výkresu na bielu [White].

Obr. 8.2. Výkres na vytvorenie snímky typu SLD

       Výkres sa ukladá v tvare DWG a vytvorená snímka SLD, napríklad s názvom SCH1.SLD. Nakoľko snímku SCH1.SLD nie je možné upravovať, ale len vytvoriť novú, uložíme si aj výkres SCH1.DWG. V prípade nutnosti editujeme výkres a vytvoríme novú snímku (VSnímek) [MSlide].

       Snímku SCH1.SLD sme vytvorili za účelom vloženia schémy výpočtu (obrázka) priamo do dialógového panela pomocou DCL súboru a AutoLISPu (obr. 8.4 a obr. 8.7).

       Postup vytvorenia snímky (VSnímek) [MSlide]:

a)     Nakreslíme výkres podľa obr. 8.2.

b)          Uložíme výkres DWG:         Súbor [File], Ulož ako [Save as]

Meno: Sch1            - vytvorenie SCH1.DWG

c)          Vytvoríme snímku SLD:      VSnímek [MSlide]

Meno: Sch1            - vytvorenie SCH1.SLD

d)    Postup opakujeme, až kým nie je snímka správne nakreslená.

 

8. 2.   Vstupný dátový súbor

 

V ľubovoľnom textovom editore vytvoríme dátový súbor UDAJE.DAT. Meno vstupného dátového súboru je pevne dané. V prípade voľby ľubovoľného mena súboru musíme program v AutoLISPe dopracovať. Merané údaje musíme nahrať a upraviť do súboru UDAJE.DAT podľa štruktúry obr. 8.3.

Textové pole: ("  22"   1.45900    6.987  0.277  1.700)
("  23"   1.45900    7.012  0.278  1.700)
("  24"   9.98300    5.001  0.275  1.700)
("  25"  36.01550    4.653  0.282  1.700)
("  26"  77.06200    8.187  0.126  1.700)
("  27"  79.15300   10.011  0.206  1.700)
("  28"  79.39450   12.012  0.182  1.700)
("  29"  71.76500   13.877  0.198  1.700)
("  30" 108.74850   10.248  0.221  1.700)
("  31"  95.62400   15.489  0.272  1.700)  
("  32"  76.96100   18.444  0.289  1.700)
("  33"  47.09650   27.044  0.293  1.700)
("  34"  37.64850   29.981  0.286  1.700)
("  35"  26.40450   30.193  0.273  1.700)
("  36"  38.58600   23.817  0.253  1.700)
("  37"  34.44650   25.538  0.280  1.700)
("  38"  28.25450   25.700  0.262  1.700)
("  39"  23.07200   25.504  0.148  1.700)
("  40"  11.63000   24.227  0.264  1.700)
("  41"   6.24850   23.337  0.268  1.700)
("  42"   3.89650   20.567  0.297  1.700)
("  43" 389.46850   21.197  0.279  1.700)
("  44" 394.38650   30.780  0.244  1.700)
("  45"   0.97650   31.492  0.280  1.700)
("  46"   2.08700   29.409  0.273  1.700)
("  47"   6.07250   28.656  0.249  1.700)
("5011" 399.99050   66.621  0.110  1.700)
("5011" 399.99100   66.621  0.110  1.700)
("5011" 399.99100   66.621  0.109  1.700)
("****")
Textové pole: ("LOKALITA" "ŽU ŽILINA, Stavebná fakulta")
("ČÍSLO VÝPOČTU" "123456-12/2001")
("MERAČSKÁ SIEŤ")
("  ČB"       Y[m]        X[m]    H[m]  )
("5010"   443535.20  1173088.53  352.366)
("5011"   443527.45  1173022.36  352.256)
("VÝŠKA PRÍSTROJA:" 1.480 m)
("MERANÉ ÚDAJE")
("  ČB"  UHOL[g]  DĹŽKA[m]PREV[m]CIEĽ[m]) ("5011"   0.00000   66.624  0.114  1.700)
("5011"   0.00000   66.623  0.114  1.700)
("5011" 399.99950   66.620  0.114  1.700)
("   4" 309.54000    5.969  0.106  1.700)
("   5" 267.26100   12.197  0.065  1.700)
("   6" 206.94550    6.891  0.132  1.700)
("   7" 202.83000   12.376  0.206  1.700)
("   8" 193.72850    2.592  0.174  1.700)
("   9" 114.06800   18.200  0.231  1.700)
("  10"  39.53100   34.395  0.234  1.700)
("  11"  39.83700   34.420  0.234  1.700)
("  12"   4.72900   29.546  0.253  1.700) 
("  13"   4.72750   35.495  0.261  1.700)
("  14"   2.08300   39.497  0.281  1.700)
("  15" 391.24450   27.860  0.390  1.700)
("  16" 391.35850   28.297  0.297  1.700)
("5011" 399.99400   66.620  0.114  1.700)
("5011" 399.99950   66.622  0.114  1.700)
("  19" 365.24500    8.682  0.269  1.700)
("  20" 347.34350    5.067  0.254  1.700)
("  21" 118.06000    2.823  0.228  1.700)

Obr. 8.3. Vstupné merané údaje UDAJE.DAT

 

 

 

8. 3.   Vytvorenie prázdnych DCL panelov

 


       DCL panely vytvárame a testujeme priamo vo Visual LISPe z rolety Nástroje [Tools] položkou “Interface tools“, pričom využijeme položku “Preview DCL in Editor“ (obr. 8.4).

Obr. 8.4. Definícia DCL panelov – Visual LISP editor

Dialógový panel obsahuje nasledovnú programovú štruktúru:

Definícia nového DCL panela UDAJE (Dialog Control Language):

Textové pole: UDAJE : dialog {
		label =  “Výpočet súradníc meraných bodov“;
		: row {
			-----	;
			-----	;
		}
		: column {
			-----	;
    			-----	;
		}
	}

       Dialógový DCL panel obsahuje nadpis [Label], napríklad s názvom “Výpočet súradníc meraných bodov“ a bude zložený z riadkov [Row] a stĺpcov [Column], ktoré začínajú a končia znakmi “{“ “ }“.

       Do riadkov a stĺpcov usporiadame editovacie okná [Edit_Box] podľa obr. 8.5 a programu UDAJE.DCL.

Textové pole: : edit_box { //Popis
		label =  			;		- názov
		key = 			;		- kľúč, heslo
		edit_width = 	;		- šírka okna
			-----		;		- a pod.
	}

Textové pole: : boxed_column { 
label =    ;
	: image { // Popis
		label = 			;		- názov
		alignment		;		- zarovnanie
			key = 			;		- kľúč, heslo
			width = 		;		- šírka
			height = 		;		- výška
			color = 			;		- farba
			allow_accept =	;		- povolenia
				-----		;		- a pod.
		}
	}

       Schému obrázka SCH1.SLD vložíme do programu pomocou sekcie IMAGE, ktorá je v našom prípade uložená v stĺpci [Boxed_column]:

 

Textové pole: : button { //Popis
		label =  			;		- názov
		key = 			;		- kľúč, heslo
		is_default =		;		- povolenia
		width = 		;		- šírka
		alignment = 	;		- zarovnanie
			-----		;		- a pod.
	}

       Štruktúra príkazu tlačidlo [Button]:

 

       Štruktúra príkazu zoznam položiek [Popup_list] na rolovanie textov, alebo položiek usporiadaných do zoznamu [List]:

Textové pole: : popup_list { //Popis
               label = 		; 		- názov
               key = 			; 		- kľúč, heslo
               list = " \n1 \n2";		- zoznam položiek
               fixed_width = 	; 		- šírka 
               edit_width = 	; 		- šírka 
			-----		;		- a pod.
	}

             Príklad Popup_list:        : popup_list { //Etapa merania

                                                    label = "Etapa merania:";

                         key = "Etapa";

                                                                              list = "0.etapa \n1.etapa \n2.etapa \n3.etapa \n4.etapa \n5.etapa“;

               fixed_width = true;

                                                    edit_width = 10;

                                           }

       Pred prezeraním DCL panelov v “Preview DCL in Editor“ si vytvoríme program UDAJE.DCL na prezeranie dát a program UDAJE.LSP na výpočet geodetických údajov vo Visual LISP editore. Dialógový panel si odskúšajte postupne vložením jednotlivých častí.

 

       Štruktúra programu UDAJE.DCL:

Textové pole: UDAJE : dialog {
    label = " Výpočet súradníc meraných bodov";
    : row {
       : edit_box { //Lokalita
         label = "Lokalita:";
         key = "lokalita";
         edit_width = 30;
       }
       : edit_box { //Číslo výpočtu
         label = "      Číslo výpočtu:";
         key = "cvyp";
         edit_width = 20;
       }
    } 
    


Textové pole:    : row {
       : column {
          : boxed_column {
             label = "Súradnice stanoviska:";
             : edit_box { //Číslo bodu
               label = "ČB:";
               key = "cbS";
               fixed_width = true;
               edit_width = 10;
             } 

             : edit_box { //yS
               label = "Y:";
               key = "yS";
               edit_width = 15;
             }

 

 

 

 

 

 

 

 

 

Textové pole:            : edit_box { //yS
               label = "X:";
               key = "xS";
               edit_width = 15;
             }  

           : edit_box { //hS
               label = "H:";
               key = "hS";
               edit_width = 15;
             }
         }

         : boxed_column {
              label = "Orientačný bod:";
              : edit_box { //Číslo bodu
               label = "ČB:";
               key = "cbO";
               fixed_width = true;
               edit_width = 10;
              } 
              : edit_box { //yO
               label = "Y:";
               edit_width = 15;
               key = "yO";
              }  
              : edit_box { //xO
               label = "X:";
               edit_width = 15;
               key = "xO";
              }  
              : edit_box { //hO
               label = "H:";
               key = "hO";
               edit_width = 15;
             } 
           }
        }



Textové pole:       : boxed_column {
          label = "Schéma:";
          : image { //Grafický obrázok
            label = "Obrázok";
            alignment = top;
            key = "schema1";
            width = 50;
            height = 6;
            color = -2;
            allow_accept = true;
          }
       }
    }
    : row {
       : button { //Merané údaje
         key = "merane";
         label = "Merané údaje";
         is_default = true;
         width = 25;
         alignment = centered;
       }
       : button { //Výpočet
         key = "accept";
         label = "Výpočet súradníc";
         is_default = true;
         width = 25;
         alignment = centered;
       }
       : button { //Zrušiť
         label = "Zrušiť úlohu";
         is_cancel = true;
         key = "cancel";
         width = 25;
         alignment = centered;
       }
       : spacer {width = 1;}   
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


       Počas definície položiek DCL panela vykonáme test správnosti panela, t.j. jednotlivých častí (funkčnosť a umiestnenie) položkou “Preview DCL in Editor“. Výsledný efekt nadefinovaného dialógového panela UDAJE je zobrazený na obr. 8.5.

Obr. 8.5. Funkčný dialógový panel UDAJE z programu UDAJE.DCL

 

8. 4.   Zobrazenie údajov v DCL paneloch

 

Číselné hodnoty jednotlivých premenných a snímka SCH1.SLD môžu byť načítané do jednotlivých políčok DCL panela (obr. 8.5) vytvoreným programom UDAJE.LSP v AutoLISPe. Jednotlivé hodnoty zistíme z dátového súboru UDAJE.DAT (obr. 8.3), v našom prípade sú načítané súradnice a nadmorské výšky stanoviska merania (5010), orientačného bodu (5011) a meraných údajov v teréne (číslo bodu, vodorovný uhol, prevýšenie, výška cieľa). Načítané hodnoty sa zobrazia v políčkach DCL panela (obr. 8.7) a súradnice budú vypočítané položkou “Výpočet súradníc“.  Výsledné údaje (ČB, Y, X, H) budú uložené vo výstupnom dátovom súbore BODY.DAT (obr. 8.6).

Spustenie programu:                                            Príkaz: (load “UDAJE“)   →   udaje

a)      Vyberte položku z DCL panela (obr. 8.7) “Výpočet súradníc“

b)      >>>>>>>>>>>>>>>>>>>>>>>>>>>>>OK.             - výpočet jednotlivých bodov

c)      Výpočet a uloženie súradníc do BODY.DAT.

d)     KONIEC PROGRAMU - VÝPOČET SÚRADNÍC BODOV (obr. 8.6).

Textové pole: Výsledný dátový súbor BODY.DAT



("Lokalita:" "ŽU ŽILINA, Stavebná fa.")
("Dátum:" "11.9.2001")
(           "Ymax"      "Xmax")
(        443535.20  1173088.53)
("  ČB"      Y[m]        X[m]    H[m] )
("5011"  443527.45  1173022.36  352.27)
("5011"  443527.45  1173022.36  352.27)
("5011"  443527.45  1173022.36  352.27)
("   4"  443540.96  1173086.96  352.26)
("   5"  443546.45  1173093.25  352.22)
("   6"  443536.74  1173095.25  352.29)
("   7"  443537.18  1173100.75  352.36)
("   8"  443535.25  1173091.12  352.33)
("   9"  443518.03  1173094.56  352.39)
("  10"  443512.07  1173063.07  352.39)
("  11"  443511.93  1173063.17  352.39)
("  12"  443529.59  1173059.52  352.41)
("  13"  443528.47  1173053.68  352.42)
("  14"  443529.32  1173049.47  352.44)
("  15"  443535.78  1173060.68  352.55)
("  16"  443535.74  1173060.24  352.45)
("5011"  443527.46  1173022.36  352.27)
("5011"  443527.45  1173022.36  352.27)
("  19"  443538.81  1173080.64  352.43)
("  20"  443538.50  1173084.69  352.41)

       Zdrojový text programu UDAJE.LSP je uvedený v Prílohe č. 9.6.

Textové pole: ("  21"  443532.60  1173089.63  352.38)
("  22"  443534.23  1173081.61  352.43)
("  23"  443534.22  1173081.59  352.43)
("  24"  443533.85  1173083.71  352.43)
("  25"  443532.27  1173084.92  352.44)
("  26"  443527.25  1173086.55  352.28)
("  27"  443525.41  1173086.43  352.36)
("  28"  443523.44  1173086.06  352.34)
("  29"  443522.06  1173084.07  352.35)
("  30"  443525.28  1173091.11  352.38) ("  31"  443519.73  1173089.27  352.43)
("  32"  443517.31  1173084.05  352.45)
("  33"  443514.77  1173070.81  352.45)
("  34"  443515.70  1173065.75  352.44)
("  35"  443519.90  1173062.50  352.43)
("  36"  443519.45  1173070.67  352.41)
("  37"  443519.59  1173068.32  352.44)
("  38"  443521.54  1173066.76  352.42)
("  39"  443523.45  1173065.90  352.30)
("  40"  443528.06  1173065.38  352.42)
("  41"  443530.23  1173065.73  352.42)
("  42"  443531.56  1173068.29  352.45)
("  43"  443536.23  1173067.36  352.44)
("  44"  443534.33  1173057.76  352.40)
("  45"  443531.06  1173057.31  352.44)
("  46"  443530.82  1173059.45  352.43)
("  47"  443529.17  1173060.52  352.41)
("5011"  443527.46  1173022.36  352.27)
("5011"  443527.46  1173022.36  352.27)
("5011"  443527.46  1173022.36  352.27)
("****")

Obr. 8.6. Výsledný dátový súbor BODY.DAT – súradnice bodov a výšky

       Štruktúra vzniknutého výsledného súboru BODY.DAT (obr. 8.6) korešponduje so štruktúrou vstupného súboru z príkladu Pr. 7.4 (obr. 7.8). Referenčným bodom lokality, t.j. redukované súradnice P0 [Ymax, Xmax], sú v tomto prípade zvolené ako súradnice stanoviska merania (bod 5010).

       Vytvorený program BODY.LSP (Pr. 7.4) vykreslí vypočítané body zo súboru BODY.DAT do výkresu AutoCADu (obr. 8.8). Pred vykreslením bodov sa doporučuje vytvoriť prototypový výkres s pripravenými hladinami (Hladina) [Layer], ako sú BODY, CBODOV, VYSKY, ZNACKY, OMERKY, POLOHOPIS, POPIS a pod.


Obr. 8.7. Zobrazený dialógový panel UDAJE v AutoCADe

Na záver je potrebné editovať výkres v AutoCADe do finálnej podoby. V našom prípade do hladiny POLOHOPIS dokreslíme objekty (budovy, cesty), značky, omerné miery, a pod. Do hladiny POPIS popíšeme potrebné textové náležitosti. Výsledný výkres AutoCADu po editácií je znázornený na obr. 8.8.

 


Obr. 8.8. Vykreslenie výkresu zo súboru BODY.DAT v AutoCADe

8. 5.   Zabudovanie programov AutoLISPu priamo

          do menu v AutoCADe

 

Prvoradou úlohou je premenovanie menu AutoCADu, t.j. súbor ACAD.MNU, napríklad na STAVBA.MNU (podrobný postup je uvedený v “CAD I. Návody na cvičenia. AutoCAD“ [21]), ktorý môžeme uložiť na pracovný adresár AutoCADu.

Textové pole: ***POP15
**PRIKLADY
[CAD II.]
[7.1. Jednoduché obrázky]^C^C^C(load "OBRAZCE") OBRAZCE
[7.2. Kružnicový oblúk s klotoidou]^C^C^C(load "PRECH") PRECH
[7.3. Pozdĺžny profil ]^C^C^C(load "TEREN") TEREN
[7.4. Vykreslenie bodov]^C^C^C(load "BODY") BODY
[7.5. Vloženie výhybiek R65]^C^C^C(load "VYHYBKY") VYH
[--]
[8.1. Výpočet súradníc - DCL panel]^C^C^C(load "UDAJE") UDAJE

Pomocou príkazu MENU zobrazíme nové menu STAVBA.MNU, pričom zapneme šablonu “*.MNU“. Pomocou textového editora nalistujeme roletu Nápoveda [Help] (v AutoCADe 2002 je označená ako ***POP11, pred roletovou ***POP500) a doplníme časť roletového menu pridaním rolety ***POP15 (obr. 8.9).

Obr. 8.9. Vlastné roletové menu “CAD II.“ v súbore STAVBA.MNU


       Po opakovanom načítaní menu STAVBA.MNU a jeho automatickej kompilácií príkazom MENU je zobrazená samostatná roleta menu pod názvom “CAD II.“ s jednotlivými položkami pre príklady z kap. 7 a kap. 8, podľa obr. 8.10.

Obr. 8.10. Nová vytvorená roleta “CAD II.“ v menu AutoCADu

 

8. 6.   Ďalšie ukážkové príklady dialógových panelov

 

       Na ďalšiu inšpiráciu prezentujeme niektoré dialógové panely z oblasti zberu a spracovania meraných údajov objektov.

Prvá ukážka prezentuje vytvorený informačný systém na stavebné účely v železničnom staviteľstve (obr. 8.11), pričom hlavnou úlohou je úprava alebo udržiavanie výhybiek, križovatiek a ďalších železničných prvkov koľajového zhlavia v projektovanom alebo optimalizovanom stave [25].


Obr. 8.11. Informácie o výhybke R65 1:9-300 v koľajovom zhlaví – DCL knižnica


       V ďalšom príklade je uvedený informačný systém vytvorený v AutoCADe za účelom dlhodobého pozorovania  posunov bodov oporných múrov, stavebných objektov, zosunov a pod. (obr. 8.12). Predpokladom sú spracované vstupné informácie v dátovom súbore. Zisťovanie deformácií objektov môže prebiehať aj niekoľko desaťročí, napríklad pri objektoch a zosunoch v blízkosti dôležitých objektov (napríklad zosuny a deformácie stavebných objektov ohrozujúce železničnú trať alebo cestnú komunikáciu, a pod.) [27].

Obr. 8.12. Informácie o horizontálnych a vertikálnych posunoch bodov

       Praktické príklady s kompletnou štruktúrou vytvorených programov, príkazov, funkcií  a práca s dátovými súbormi umožňujú získať skúsenosti práce s grafickým prostredím AutoCADu, programovacím jazykom AutoLISP, Visual LISP editorom, vrátane  vytvorenia dialógových panelov a vlastného roletového menu.

       V súčasnom období konštruktéri – projektanti môžu využívať vzdialený port “AUTODESK POINT A“ [33], kde sa môžu oboznámiť prostredníctvom Internetu s novinkami AutoCADu, nájsť ďalšie stránky, odkazy a zdroje, databázy, značky, symboly a pod. Projektanti si môžu prezerať prostredníctvom POINT A výkresy, ak sú mimo svojej kancelárie. POINT A zabezpečuje hostiteľský servis pre konštruktérov – projektantov. Konštruktér už nemusí nainštalovať AutoCAD mimo projekčnej kancelárie. S výkresom môže pracovať pomocou Internetového pripojenia na POINT A centrum.

       AutoCAD od verzií 2000i a 2002 [33] zvyšuje produktivitu navrhovania a zdieľania dát v reálnom čase vo vnútri projektových tímov. Do technológie AutoCADu sa začleňujú nové pojmy, ako Point A, Advanced Publish to Web, i-drop, DWF, Super DWG Support, AutoCAD Today, Meet Now, eTransmit, CAD Standards, DesignXML, FLEXIm, SAM Reports Lite, Enhanced Attribute Extraction, Volo View Express, AutoCAD Design Center, dbConnect, databázy, a pod. Uvedené názvy nových prvkov sa začleňujú do práce konštruktérov, projektantov využívajúcich produkt AutoCAD.

       AutoCAD 2002 zabezpečuje plnú kompatibilitu Visual LISPu s verziami 2000 a 2000i pri využívaní programov vytvorených v AutoLISPe. Visual LISP je nástrojom na zvyšovanie funkčnosti AutoCADu za účelom jednoduchšieho a rýchlejšieho vytvárania projektovej dokumentácie.

       Programovanie vo Visual LISPe v AutoCADe, v rámci všetkých jeho možností, zvyšuje produktivitu a efektívnosť práce. Uvedené príklady, ako aj celé učebné texty “CAD II.“ sú spracované tak, že jednotlivé časti budú využívané aj v novších verziách AutoCADu.

 

Další kapitola