Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaJázmin Szőkené Megváltozta több, mint 10 éve
1
Grafikus tervezőrendszerek programozása 3. előadás
2
Értékadás, változók (ismétlés) (setq szimbólum kifejezés) Beállítja a szimbólumot / változót a második argumentum / kifejezés kiértékelésének eredményére Például: –(setq radius 2.3)=2.3 –radius=2.3 –(setq lista ‘(1 2))=(1 2) –(setq szam (+ 2 radius))=4.3 –(setq a 1.2 b 3.4)=3.4
3
Lokális-globális változók (ismétlés) Függvényen kívül használt setq, set globális változót definiál Lokális változó definiálása: (defun fvg ( / lok1 )... ) Egy lokális változó „eltakarhat” (shadow) egy másik globális vagy lokális változót
4
(defun f1 ( / a b c) (setq a 1 b 2 c 3) (setq b (f2 b)) (list a b c) ) (defun f2 (a) (setq a 11 b 12 c 13) (setq a (f3)) (princ (list a b c))-> ??? c ) (defun f3 (/ b c) (setq a 21 b 22 c 23) ) (f1)-> ???
5
Megoldás 1. (f1) lokális: a,b,c lokális változó új dobozt definiál (setq a 1 b 2 c 3) (f2 2) argumentum, lokális: a argumentum új dobozt definiál (setq a 11 b 12 c 13) abc 123 abc 11213 2 abc 11213 1
6
Megoldás 2. (f3) lokális: b,c (setq a 21 b 22 c 23) Egyenértékű: (setq a 21) (setq b 22) (setq c 23) -> visszatérési érték (setq a (f3)) abc 11213 1nil abc 11213 212223 abc 11213 23
7
Megoldás 3. (princ (list a b c)) -> (23 12 13) c -> visszatérési érték (setq b (f2 a)) = (setq b 13) (list a b c) -> (1 13 13) abc 11213 23 abc 1131313
8
Rendszerváltozók Az AutoCAD állapotát és parancsait befolyásolják ill. tárolják AutoCAD változók, nem AutoLISP változók ! A rendszerváltozó lekérdezése (getvar ”rendszerváltozó”) A rendszerváltozó beállítása (setvar ”rendszerváltozó” érték)
9
Rendszerváltozó példa 1. Biztosítani, hogy a FILLET parancs egységnyi lekerekítést használjon (setvar "filletrad" 1)
10
Rendszerváltozó példa 2. Legfontosabb, leggyakrabban használt AutoCAD változók CMDECHO – AutoCAD parancs üzenetek kiírása és letiltása OSMODE – AutoCAD tárgyraszter (snapping) beállítása
11
Input függvények 1. Az input függvények adatokat kérnek a felhasználótól Getxxx függvények Függvény neveFüggvény funckiója (getint [prompt]) Egész szám bekérése (getreal [prompt]) Valós szám bekérése (getstring [prompt]) Sztring bekérése (getpoint [pt] [prompt]) Pont bekérése (getcorner pt [prompt]) Sarokpont bekérése (getdist [pt] [prompt]) Távolság bekérése (getangle [pt] [prompt]) Szög bekérése (getorient [pt] [prompt]) Irány, orientáció bekérése (getkword [prompt]) Kulcsszó bekérése
12
Input függvények 2. getint, getreal, getstring –egész, valós és sztring értékkel tér vissza –Billentyűzeten kell begépelni getpoint –Pont listával tér vissza –Billentyűzettel vagy egérrel kell megadni
13
getpoint (getpoint ”Válassz egy pontot: ”) (getpoint ‘(0 0) ”Válassz egy pontot: ”)
14
getcorner Pont listával tér vissza Billentyűzettel vagy egérrel kell megadni (getcorner ‘(0 0) ”Válassz egy pontot: ”)
15
getdist Távolságot adja vissza mint valós számot Ponto(ka)t billentyűzettel vagy egérrel kell megadni Valós számot billentyűzettel kell megadni Pont vagy szám adható meg (getdist ‘(0 0) ”Második pont: ”) Két pont vagy szám adható meg (getdist ”Távolság: ”)
16
getangle Szöget adja vissza radiánban mint valós szám Valós számot (szöget fokban) billentyűzettel kell megadni Ponto(ka)t billentyűzettel vagy egérrel kell megadni ANGBASE és ANGDIR rendszerváltozókat használja
17
getangle (setvar ”angbase” 0.78539) ; 45 fok (getangle ”Add meg a szöget”) -> 0.78539
18
getorient Olyan mint a getangle, de csak a ANGDIR rendszerváltozót használja Zérus fok mindig keletre néz
19
Az input ellenőrzése A getxxx függvények ellenőrzést végeznek alapvető hibákra –Például betűt nem fogad el inputnak ha számot kell megadni További ellenőrzés adható meg az initget függvénnyel, de a getstring függvényre nincs hatással
20
initget függvény Szintaxis: (initget [bitek] [kulcsszavak]) A megadott bitek és kulcsszavak csak a következő getxxx függvényre vonatkoznak Az argumentumok opcionálisak
21
initget bitek Függvény Input nem üres Szám nem nulla Szám nem negatív Nincs rajzhatár Gumivonal szaggatott 2D-s távolság Tetszőleges input 12483264128 getint XXX X getrealXXXX getdistXXXXXX getangleXXXX getorientXXXX getpointXXXX getcornerXXXX getkwordXX
22
initget példa Életkor bekérése: –Számot meg kell adni –A szám nem lehet nulla –A szám nem lehet negatív (initget (+ 1 2 4)) (getint "Hány éves vagy? ")
23
Kulcsszavak Minden getxxx függvény (kivéve a getstring ) definiálhat kulcsszót is A kulcsszavakat az initget függvénnyel kell megadni –Teljes kulcsszó is megadható mint input –Rövidítés is megadható mint input Nagybetű jelöli a rövidítést (initget ”LType eXit toP”) Rövidítés vesszővel van elválasztva (initget ”LTYPE,LT”)
24
Kulcsszó példa (initget 1 ”Origo Egy”) (getpoint ”Válassz egy pontot [Origo/Egy]”) Vagy pontot kell megadni vagy az „origo” vagy az „egy” kulcsszót Visszatérhet: –Pont listával –„origo” sztringgel –„egy” sztringgel
25
Output függvények Szöveget, LISP kifejezést írnak ki a képernyőre illetve fájlba (prompt sztring) (princ [kif] [fájlleíró]) (print [kif] [fájlleíró]) (prin1 [kif] [fájlleíró]) (terpri) Ablakban jeleníti meg (alert sztring)
26
Output példa 1. (setq str ”Példa \”szöveg\”!”) (prompt str) nyomtat: Példa ”szöveg”! visszatérési érték: nil (princ str) nyomtat: Példa ”szöveg”! visszatérési érték: ”Példa \”szöveg\”!” (prin1 str) nyomtat: ”Példa \”szöveg\”!” visszatérési érték: ”Példa \”szöveg\”!” (print str) nyomtat: ”Példa \”szöveg\”!” visszatérési érték: ”Példa \”szöveg\”!”
27
Output példa 2. (terpri) Csak egy új sort nyomtat a képernyőre (alert ”Szöveg kiirás!”)
28
Input és output függvények Mit használjunk arra hogy közöljük a felhasználóval milyen adatot kérünk ? –princ, prompt,... output függvények hiba esetén a szöveget nem nyomtatja ki még egyszer –a getxxx függvény paramétere hiba esetén a szöveget megismétli
29
Példa 1. LispOutput (initget 1) (princ ”Új pont:”) Új pont: (getpoint) Invalid point. (initget 1) (getpoint ”Új pont:”) Új pont: Invalid point. Új pont:
30
Példa 2.
31
Geometriai függvények 1. A két pont által megadott egyenes és a pozitív X tengely általi szöget adja meg radiánban. (angle ) A visszatérési érték 0 és 2 P között van Példa (angle '(2 2) '(3 3)) -> 0.785398
32
Geometriai függvények 2. Két pont közötti távolságot ad meg (distance ) Példa (distance '(1.0 2.5) '(5.0 5.5)) -> 5.0
33
Geometriai függvények 3. Két egyenesszakasz metszéspontját adja meg (inters [szakasz]) Első egyenes/szakasz: Második egyenes/szakasz: szakasz : ha nil akkor az egyenesek metszésponját adja meg Metszés esetén pontot egyébként nil –t ad vissza
34
Metszéspont (setq a ‘(1 1) b ‘(5 5)) (setq c ‘(2.5 0) d ‘(2.5 3)) (inters a b c d) -> nil (inters a b c d t) -> nil (inters a b c d nil) -> (2.5 2.5)
35
Geometriai függvények 4. Polárisan lehet pontot megadni (polar ) A szöget radiánban kell megadni Pont listát ad vissza
36
Geometriai függvények 5. Pontokra vonatkozó műveletek (osnap ) Pont listát vagy nil –t ad vissza Példa: vonal 1,1 -> 8,8 (osnap ‘(8.1 7.5) ”_endp”) -> (8 8)
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.