Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Grafikus tervezőrendszerek programozása 3. előadás.

Hasonló előadás


Az előadások a következő témára: "Grafikus tervezőrendszerek programozása 3. előadás."— Előadás másolata:

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)


Letölteni ppt "Grafikus tervezőrendszerek programozása 3. előadás."

Hasonló előadás


Google Hirdetések