Information Technology | Artificial Intelligence » AutoLISP függvények katalógusa

Datasheet

Year, pagecount:1998, 70 page(s)

Language:Hungarian

Downloads:722

Uploaded:July 16, 2004

Size:486 KB

Institution:
-

Comments:

Attachment:-

Download in PDF:Please log in!



Comments

No comments yet. You can be the first!

Content extract

AutoLISP függvények katalógusa Ez a rész az alapvetô AutoLISP függvények ismertetését tartalmazza. (+ szám szám. ) Ez a függvény a listában szereplô összes szám összegével tér vissza. Egyaránt használható valós, illetve egész számok esetében. Amennyiben az összes szám egész típusú, akkor az eredmény is egész lesz; ha bármelyik szám valós, akkor az egész számok valós típusúvá lépnek elô, és a végeredmény valós típusú lesz. Például: (+12) 4. 0 ) eredménye eredménye 3 ( + 1 2 3 4. 5 ) 10. 0 eredménye 10. 5 ( + 1 2 3 (- szám (szám). ) Ez a függvény az elsô számból kivonja a második számot, és a kettô különbségével tér vissza. Amennyiben kettônél több szám szerepel a listában, akkor a függvény a másodiktól az utolsóig terjedô számok összegét vonja ki az elsôbôl, és ezzel a végeredménnyel tér vissza. Amennyiben a listában csak egy szám szerepel, akkor az eredmény ennek nullából levont

értéke lesz. A függvény a kiértékelés fent ismertetett szabályaival valós és egész számokkal egyaránt használható. Például: ( - 5 0 4 0 ) eredménye 10 ( - 50 40. 0 2 ) eredménye 8 0 ( - 50 40 0 2 5 ) eredménye 7 5 C - e ) eredménye - e (* szám (szám). ) Ez a függvény a listában szereplô összes szám szorzatával tér vissza. A kiértékelés szokásos szabályainak figyelembevételével valós és egész számokkal egyaránt használható. Abban az esetben, ha csak egy számot ad meg, a függvény ezt 1-gyel szorozza meg, és ennek eredményével tér vissza. Például: ( * 2 3 ) eredménye 6 ( 2 3 4. 0 ) eredménye 24 0 ( * 3 - 4. 5 ) eredménye -13 5 C * 3 ) eredménye 3 (/ szám (szám). ) Ez a függvény elosztja az elsô számot a másodikkal, és a hányadosukkal tér vissza. Amennyiben argumentumként kettônél több számot ad meg, akkor a függvény az elsô számot a másodiktól az utolsóig terjedô számok szorzatával osztja el, és a

végsô hányadossal tér vissza. A kiértékelés szokásos szabályainak figyelembevételével valós és egész számokkal egyaránt használható. Abban az esetben, ha csak egy számot ad meg, a függvény ezt 1gyel osztja el, és ennek eredményével tér vissza Például: (/ 100 2) " eredménye 50 (/ 1u 0 2.0) eredménye 50.0 (/ 100 20.0 2) eredménye 2.5 (/ 100 20 2) eredménye 2 C/ 135 360) eredménye 0 (/ 135 360.0) eredménye 0.375 C / 4) eredménye 4 (= atom atom.) Ez az egyenlô relációs függvény. Ha a listában megadott összes a t om numerikus értéke megegyezik, akkor eredményül T értékkel, egyébként nil értékkel tér vissza. Ez a függvény számokra és karakterláncokra érvényes Például: C = 4 4. 0 ) eredménye T ( = 20 388 ) eredménye n i l ( = 2 4 2 4 2 4 ) eredménye T (= 499 499 500) eredménye nil ( = " én " " én " ) eredménye T ( = " én " " t e " ) eredménye ni l Kapcsolódó témák: Vesse

össze ezt a függvényt az eq és equal függvényekkel a 117. oldaltól kezdôdôen (/= atom atom.) Ez a nem egyenlô relációs függvény. Ha az elsô atom numerikus értéke nem egyenlô a második a t om numerikus értékével, akkor T, ha egyenlô, akkor pedig nil értékkel tér vissza. A függvény kettônél több argumentum esetére határozatlan. Például: C / = 10 2 0 ) eredménye T ( / = " t e " " t e " ) eredménye n i l ( / = 5. 43 5 44 ) eredménye T (< atom atom.) Ez a kisebb mint relációs függvény. Amennyiben az elsô a t om numerikus értéke kisebb a második numerikus értékénél, akkor T, egyébként nil értékkel tér vissza. Amennyiben a listában kettônél több atom szerepel, akkor a függvény csak abban az esetben tér vissza T értékkel, ha minden a t om kisebb a tôle jobbra lévônél. Például: ( < 10 20) (< "b" "c") (< 357 33,2) ( < 2 3 88) ( < 2 3 4 4) eredménye T eredménye T

eredménye ni1 eredménye T eredménye ni1 (<= atom atom.) Ez a kisebb vagy egyenlô relációs függvény. Ha az elsô atom numerikus értéke kisebb vagy egyenlô a második numerikus értékénél, akkor a függvény T, egyébként n i l értékkel tér vissza. Amennyiben a listában kettônél több a t om szerepel, a függvény csak abban az esetben tér vissza T értékkel, ha minden atom kisebb vagy egenlô a tôle jobbra lévônél. Például: (<= 10 20) (<= "b" "a") (<= 357 33,2) ( < = 2 9 9) (<= 2 9 4 5) eredménye T eredménye T eredménye ni1 eredménye T eredménye ni1 (> atom atom.) Ez a nagyobb mint relációs függvény. Ha az elsô a tom numerikus értéke nagyobb a második numerikus értékénél, akkor a függvény T, egyébként nil értékkel tér vissza. Amennyiben a listában kettônél több a tom szerepel, a függvény csak abban az esetben tér vissza T értékkel, ha minden a t om nagyobb a tôle jobbra

lévônél. Például: (> 120 17) eredménye T (> "c" "b") eredménye T (> 3,5 1792) eredménye nil (> 77 4 2) eredménye T (> 77 4 4) eredménye ni1 (>= atom atom.) Ez a nagyobb vagy egyenlô relációs függvény. Ha az elsô a t om numerikus értéke nagyobb vagy egyenló a második numerikus értékénél, akkor a függvény T, egyébként n i 1 értékkel tér vissza. Amennyiben a listában kettônél több a t om szerepel, a függvény csak abban az esetben tér vissza T értékkel, ha minden a tom nagyobb vagy egyenlô a tôle jobbra lévônél. Például: (>= 120 17) eredménye T (>= "c" "c") eredménye T (>= 3,5 1792) eredménye nil (>= 77 4 4) eredménye T (>= 77 4 9) eredménye nil (~ szám) Ez a függvény a szám értékén végzett bitenkénti NOT művelet eredményével, vagyis a szám egyes komplemensével tér vissza. A számnak egész típusúnak kell lennie Például: (~ 3) eredménye - 4

(~ 100) eredménye -101 (~ - 4 ) eredménye 3 (1+ szám) Ez a függvény a szám 1-gyel megnövelt értékével tér vissza. A szám egész vagy valós típusú egyaránt lehet Például: (1+ 5) eredménye 6 (1+ -17,5) eredménye -16. 5 (1- szám) Ez a függvény a szám 1-gyel csökkentett értékével tér vissza. A szám egész vagy valós típusú egyaránt lehet Például: (1- 5) eredménye 4 (1- -17,5) eredménye -18. 5 (abs szám) Ez a függvény a szám abszolút értékével tér vissza. A szám egész vagy valós típusú egyaránt lehet Például: (abs 100 ) eredménye 100 (abs -100 ) eredménye 100 (abs -99,25 ) eredménye 99. 25 (ads) Az AutoCAD Fejlesztôi Rendszer (ADS) aktuálisan betöltött alkalmazásainak listájával tér vissza. A listában minden alkalmazás és annak elérési útvonala idézôjelbe tett karakterláncként szerepel. Például: (ads) eredménye lehet( "fi1es / progs / PROG1 " " PROG2 " ) Kapcsolódó témák: Lásd az

xload és az xunload függvények ismertetését. (alert karakterlánc) Egy figyelmeztetô ablakot jelenít meg a karakcerZánc argumentumban átadott hibaüzenettel vagy figyelmeztetéssel. A figyelmeztetô ablak egyetlen OK nyomógombot tartalmazó párbeszédablak Például: (alert "Ez a függvény nem elérhetô.") A karakterláncban alkalmazott újsor karakter segítségével több sort is megjeleníthet. (alert "Ez a függvény nem elérhetô.") Megjegyzés: A figyelmeztetô ablakban megjeleníthetô sorok száma a platformtól, az eszköztôl és az ablaktól függ. Az AutoCAD csonkol minden olyan karakterláncot, amely túl hosszú ahhoz, hogy elférjen a figyelmeztetô ablakban. (alloc szám) Megadott számú csomópontra állítja be a szegmens méretét. Az alloc függvényrôl további tudnivalók a "Manuális allokáció" című részben, a 189. oldalon olvashatók (and kifejezés.) Ez a függvény a kifejezések listáján elvégzett

logikai AND művelet eredményével tér vissza. Amennyiben bármelyik kifejezés értéke nil, a függvény abbahagyja a kiértékelést, és visszatér ni 1 értékkel; egyébként T értékkel tér vissza. Vegyük például a következô értékadó utasításokat: (setq a 103) (setq b nil) (setq c "karakterek") ebben az esetben: (and 1,4 a c ) eredménye T (and 1,4 a b c ) eredménye ni1 (angle pontl pont2) Ez a függvény a Felhasználói Koordináta-rendszer (FKR) pontl pontját az FKR pont2 pontjával összekötô egyenes szögével tér vissza. A szög az aktuális szerkesztési sík X tengelyétôl értendô, radiánban kifejezve, az óramutató járásával ellentétes irányban. Amennyiben a függvény bemenô adatként 3D pontokat kap, ezeket merôlegesen levetíti az aktuális szerkesztési síkra. Például: (angle (1,0 1.0) (10 40) ) eredménye 15708 (angle (5.0 133) (24 133) ) eredménye 314159 Lásd még: a "Geometriai segédfüggvények" című

részt. (angtof karakterlánc (mód]) Lebegôpontos értékké konvertálja a karakterláncot, amely egy szöget ábrázol a mód által megadott kijelzési formátumban. Az angtof függvény az eredményt radiánban fejezi ki A módargumentum határozza meg, hogy a karakterlánc formátuma milyen mértékegységnek felel meg. Értéke az AutoCAD AUNITS rendszerváltozója által megengedett, alább látható értékek egyike kell legyen. A mód argumentum elhagyása esetén az angtof függvény az AUNITS rendszerváltozó aktuális értékét veszi alapul. 4-1.táblázatSzögmértékegységek értékei Mód értéke Karakterlánc formátuma 0 Fok 1 Fok/perc/másodperc 2 3 4 Új fok (Grad) Radián Geodéziai mértékegység A karakterláncnak az angtof függvény számára a megadott mód szerint értelmezhetônek kéll lennie. Formája azonos lehet azzal, amelyet az angtos függvény szolgáltatna, vagy amelyet az AutoCAD a billentyűzetrôl elfogad. Az angtof és az angtos

függvények egymás ellentettjei: ha Ön az angtof függvénynek egy, az angtos függvény által elôállított karakterláncot ad át, akkor az angtof bizonyosan érvényes eredménnyel tér vissza, és megfordítva (feltéve, hogy a mód értékei azonosak). Sikeres hívás esetén az angtof függvény egy radiánban kifejezett valós számértékkel, máskülönben pedig nil értékkel tér vissza. (angtos szög (mód (pontosság))) Ez a függvény a valós számként, radiánokban megadott szöget átírja egy karakterláncba, a mód, a pontosság, az AutoCAD UNITMODE rendszerváltozó és a DIMZIN méretváltozó beállításának megfelelôen. A mód és pontosság argumentumok egész számok, amelyek a szögmértékegységeket és a pontosságot határozzák meg. Az értelmezhetô mód értékek megegyeznek a 4-l. táblázatban bemutatott értékekkel (lásd az elôzô függvény ismertetését). A pontosság argumentum egész szám, amely a kívánt tizedesjegyek számát

adja meg. A mód és a pontosság megfelel az AutoCAD AUNITS, illetve AUPREC rendszerváltozójának. Abban az esetben, ha elhagyja az argumentumokat, az angtos függvény az AUNITS és AUPREC rendszerváltozók aktuális beállítását veszi alapul. Az angtos függvény negatív értéket is elfogad a szög argumentumában, de a kívánt konverzió végrehajtása elôtt az értéket 0 és 2n radián közé esô pozitív számmá alakítja át. Például: (angtos 0.785398 0 4) eredménye "450000" (angtos -0.785398 0 4) eredménye "3150000" Amennyiben geodéziai mértékegységet választott (4-es mód), akkor a UNITMODE rendszerváltozó értéke kihat az eredményül kapott karakterláncra Ha a UNITMODE értéke 0, akkor a karakterlánc szóközöket is fog tartalmazni (például "É 45f K"); ha a UNITMODE értéke 1, akkor viszont nem (például "É 45f K"). Megjegyzés: Azoknak a rutinoknak, amelyek tetszôleges (nem az ANGBASE értékéhez

viszonyított) szögek megjelenítésére használják az angtos függvényt, célszerű ellenôrizniük és tekintetbe venniük az ANGBASE rendszerváltozó értékét. Lásd még: a "Karakterlánc-konverziók" című részt. (append kifejezés.) Ez a függvény tetszôleges számú listát (kifejezések) egyetlen listává fűz össze. Például: (append (a b) (c d)) eredménye (A B C D) (append ((a) (b)) ((c) (d))) eredménye ((A) (B) (C) (D)) Az append függvény argumentumai csak listák lehetnek. (apply függvény lista) Végrehajtja a függvény által megadott függvényt a lista által meghatározott argumentumokkal. Például: (apply + (1 2 3)) eredménye 6 (apply strcat ("a" "b" "c")) eredménye "abc" Az apply mind a beépített függvényekkel (szubrutinokkal), mind a felhasználó által (akár a defun, akár a lambda segítségével) definiált függvényekkel működik. (ascii karakterlánc) A függvény a

karakterlánc elsô karakterének az ASCII kódjával (egy egész számmal) tér vissza. Ez a függvény hasonló a BASICo nyelv Asc függvényéhez. Például: (ascii "A") eredménye 65 (ascii "a") eredménye 97 (ascii "BAL" ) eredménye 66 (assoc tétel asszoc-lista) A függvény a tétel kulcselemmel végigvizsgálja az asszoc-lista asszociációs listát, és az asszoc-lista annak megfelelô elemével tér vissza. Abban az esetben, ha a tétel kulcselem nem található meg az asszocIistában, akkor az assoc függvény nil értékkel tér vissza. Tételezzük fel például, hogy az al lista az alábbiak szerint van definiálva: ((név doboz) (szélesség 3) (méret 4.7263) (mélység 5)) akkor (assoc méret al) eredménye (MÉRET 4.7263) (assoc súly al) eredménye nil Az asszociációs listát gyakran használjuk olyan adatok tárolására, amelyek egy kulcsszó segítségével érhetôk el. Ez hasonló más programnyelvek tömbjeihez (array), illetve

struktúráihoz (struct). A késôbbiekben ismertetett subst függvény segítségével az asszociációs lista valamely kulcseleméhez rendelt érték könnyűszerrel kicserélhetô. (atan száml (szám2]) Amennyiben a szám2 nem szerepel a listában, az atan függvény a száml radiánokban kifejezett arcus tangensével tér vissza. A száml lehet negatív is, az eredményül kapott szög értéke a -n/2 és +n/2 közötti intervallumban helyezkedik el. Például: (atan 0.5) eredménye 0.463648 (atan 1.0) eredménye 0.785398 (atan -1.0) eredménye -0.785398 (angtos (atan -1.0) 0 4) eredménye "3150000" Ha mind a száml, mind a szám2 argumentumot megadja, akkor a függvény a számllszám2 radiánokban kifejezett arcus tangensét számítja ki. Ha a szám2 nulla, akkor egy szög, a száml elôjelétôl függôen a plusz vagy a minusz 1.570796 radián~(+90o vagy -90o) értékét adja eredményül Például: (atan 2.0 30 ) eredménye 0.588003 (angtos (atan 2.0 30) 0 4)

eredménye "336901" (atan 2.0 -30) eredménye 2.55359 (angtos (atan 2.0 -30) 0 4) eredménye "1463099" (atan -2.0 30) eredménye -0.588003 (atan - 2.0 - 30) eredménye -2.55359 (atan 1.0 00) eredménye 1.5708 (angtos (atan 1.0 00) 0 4) eredménye "900000" (atan -0.5 00) eredménye -1.5708 (angtos (atan -0.5 00) 0 2 eredménye "27000" Megjegyzés: A fentiekben látható angtos függvényhívások az atan függvény által radiánban visszaadott értékek karakterlánccá történô konvertálásának módszerét szemléltetik. (atof karakterlánc) Ez a függvény egy karakterláncot valós számmá konvertál. Például (atof "97.1") eredménye 971 (atof "3") eredménye 3.0 (atoi karakterlánc) Ez a függvény egy karakterláncot egész számmá konvertál. Például (atoi "97") eredménye 97 (atoi "3") eredménye 3 (atoi "3.9") eredménye 3 (atom tétel) Amennyiben a tétel lista, ez a

függvény nil értékkel tér vissza, egyéb esetekben T értékkel. Ami nem lista, az mind atomnak tekinthetô. Vegyük például az alábbi értékadó utasításokat: (setq a (x y z) ) (setq b a) ebben az esetben: (atom a) eredménye T (atom a) eredménye nil (atom b) eredménye T (atom b) eredménye T (atom (a b c)) eredménye ni1 Néhány LISP nyelvjárás eltérôen értelmezi az atom fogalmát, így legyen óvatos, amikor programokat konvertál át. (atoms-family formátum (szimblista]) Ez a függvény a beépített és az adott alkalommal aktuálisan definiált egyéb szimbólumok listájával tér vissza. A formátum argumentum egy egész szám, melynek értéke 0 vagy 1 lehet. Ha a formátum értéke 0, akkor az aktuálisan definiált szimbólumok listájával tér vissza; ha értéke 1, akkor a szimbólumok karakterláncok formájában jelennek meg a listában. (atoms-family 0) az aktuálisan definiált szimbólumok listáját adja eredményül Az atoms-family függvény

egy listában megadott szimbólumnevek keresére is alkalmas. A szimbl i s ta argumentumnak - amennyiben adott - egy listának kell lennie, amely a keresni kívánt szimbólumneveket meghatározó karakterláncokból áll. Amennyiben például azt kívánja megvizsgálni, hogy a "CAR", "CDR" és "XYZ" szimbólumok definiálva vannak-e, és karakterláncokból álló listát kíván eredményül kapni, a következôket billentyűzheti be: (atoms-family 1 ("CAR" "CDR" "XYZ")) Az atoms-family függvény által visszaadott lista a definiált szimbólumok nevét tartalmazza a megadott formában (szimbólumok vagy karakterláncok), illetve ni 1 értéket azon szimbólumok helyén, amelyek nincsenek definiálva. Feltételezve, hogy az "xYZ" szimbólum nincs definiálva, az elôbbi függvényhívás eredménye a következô: ("CAR" "CDR" nil) Vigyázat: Az AutoCAD Release 12 verzióját megelôzôen

létezett az atomlist szimbólum, amely átdefiniálható ("szabdalható") és törölhetô volt. Azok az AutoLISP rutinok, amelyek eddig az atoml i s t szimbólumot használták, többé nem fognak megfelelôen működni. (Boole függv egészl egész2.) Ez egy általános bitenkénti logikai (Boole-) műveletet végzô függvény. A függv 0 és 15 közé esô szám, amely 16 lehetséges kétváltozós Boolefüggvényt jelent. Az egymás után következô egész argumentumok bitenként (logikailag) kapcsolódnak össze az adott függvény és az alábbi igazságtáblázat alapján: 4-2.táblázatA Boole függvény igazságtáblázata Egészl Egész2 Függv bit 0 0 8 0 1 4 1 0 2 1 1 1 Az egész1 minden bitje az egész2 megfelelô bitjéhez van rendelve, és ezzel a táblázat egyik sorát határozzák meg. Az eredményül kapott bit 0 vagy 1, attól függôen, hogy az igazságtáblában ebben a sorban megadott értékű helyen a függv milyen bitet tartalmaz. Abban az

esetben, ha a függv megfelelô bitje 1-re van állítva, az eredménybit 1 lesz, egyébként pedig 0. A függv néhány értéke megfelel az AND, OR, XOR és NOT szabvány Boole-függvényeknek. Ezek az alábbiakban láthatók: 4-3.táblázatA Boole függvény bitértékei Függvény Művelet Az eredménybit 1,ha. 1 AND Mindkét input bit 1 6 XOR A két input bitnek csak egyike 1 7 OR Egyik,vagy mindkét input bit 1 8 NOT Mindkét bit 0(egyes komplemens) Példák A következô függvényhívás a 12 és az 5 logikai AND műveletét határozza meg: (Boo1e 1 12 5) eredménye 4 Hasonlóképpen, a 6 és az 5 logikai XOR műveletét a következô függvényhívás határozza meg: (Boo1e 6 6 5) eredménye 3 A függv más értékei segítségével egyéb logikai műveleteket végezhet el, amelyeknek nincs szabvány elnevezésük. Például, amennyiben a függv értéke 4, az eredménybit csak akkor lesz 1, ha az egész2 megfelelô helyén 1 áll, de az egészl megfelelô helyén viszont nem.

Azaz: (Boo1e 4 3 14) eredménye 12 (boundp atom) Ez a függvény T értékkel tér vissza, amennyiben az atomhoz érték tartozik (figyelmen kívül hagyva az értelmezési tartományát). Ha az atomhoz nincs érték rendelve (vagy ez az érték nil), akkor a boundp függvény nil értékkel tér vissza. Abban az esetben, ha az atom egy definiálatlan szimbólum, akkor automatikusan létrejön és nil értéket kap. Vegyük például az alábbi értékadó utasításokat: (setq a 2) (setq b nil) ebben az esetben (boundp a) eredménye T (boundp b) eredménye ni1 A atoms-family függvény egy alternatív módszert kínál egy szimbólum létezésének ellenôrzésére anélkül, hogy automatikusan létrehozná a szimbólumot. (car lista) Ez a függvény a lista elsô elemével tér vissza. Amennyiben a I i s t a üres, az eredmény nil lesz Például: (car (a b c)) eredménye A (car ((a b) c)) eredménye C (car ()) eredménye nil (cdr lista) Ez a függvény egy olyan listával

tér vissza, amely az elsô elem kivételével a I i s t a összes elemét tartalmazza. Amennyiben a lista üres, akkor a függvény ni 1 értékkel tér vissza. Például: (cdr (a b c)) eredménye (B C) (cdr ((a b) c)) eredménye (c) (cdr ()) eredménye nil Amennyiben a lista argumentum egy kapcsolt (dotted) értékpár (lásd a cons függvény ismertetését a 104. oldalon), a cdr a második elemmel tér vissza, anélkül, hogy azt listaként kezelné. Például: (cdr (a . b)) eredménye B (cdr (1 . "Text")) eredménye "Text" (caar lista), (cadr lista), (cddr lista), (cadar lista) stb. Az AutoLISP megengedi a car és cdr függvények összefűzését maximum négy szint mélységig. Vegyük például a következô értékadó utasítást: (setq x ((a b) c d)) ebben az esetben: (caar x) megegyezik (car (car x)) eredménye A (cdar x) megegyezik (cdr (car x)) eredménye (B) (cadar x) megegyezik (car (cdr (car x))) eredménye B (cadr x) megegyezik (car (cdr x))

eredménye C (cddr x) megegyezik (cdr (cdr x)) eredménye (n) (caddr x) megegyezik (car (cdr (cdr x))) eredménye n Az AutoLISP programnyelvben a cadr függvényt gyakran használjuk arra, hogy segítségével megkapjuk egy 2D vagy 3D pont Y koordinátáját (két vagy három elemű lista második elemét). Hasonlóképpen, a caddr függvény egy 3D pont Z koordinátájának meghatározására használható. Vegyük például az alábbi értékadó utasításokat: (setq pt2 (5.25 10)) egy 2D pont (setq pt3 (5.25 10 30)) egy 3D pont ebben az esetben (car pt2) (cadr pt2) (caddr pt 2) (car pt 3) (cadr pt3) C caddr pt 3) eredménye 5.25 eredménye 1.0 eredménye nil eredménye 5.25 eredménye 1.0 eredménye 3.0 (chr egész) Ez a függvény egy ASCII kódot jelentô egész számhoz megadja a megfelelô egyelemű karakt,erláncot (hasonlóan a BASIC nyelv chr$ függvényéhez). Például: (chr 65) eredménye "A" (chr 66) eredménye "B" (chr 97) eredménye

"a" (close fájlleíró) Ez a függvény lezár egy fájlt, és ni l értékkel tér vissza. A fáj 11 eíró a fájl azonosítója, melyet az open függvény adott eredményül. A close függvény hívását követôen a fájlleíró változatlan marad, de érvényét veszti Tételezzük fel például, hogy az x egy megnyitott fájl érvényes azonosítója: (close x) lezárja a hozzá tartozó fájlt; eredménye nil (command (argumentumok).) Ez a függvény az AutoLISP programokon belül végrehajt egy AutoCAD parancsot, és mindig ni l értékkel tér vissza. Az argumentumok az AutoCAD parancsait, és azok alparancsait jelölik A command függvény kiértékeli az egyes argumentumokat, és válaszként küldi az AutoCAD egymást követô promptjaira. A parancsnevek és opcióik karakterláncként, a 2D pontok két valós szám, a 3D pontok három valós szám listájaként kerülnek továbbításra az AutoCAD felé. Az AutoCAD csak akkor ismeri fel a parancsneveket,

amikor a Parancs: promptot megjelenítô állapotban van. (setq ptl (1 1) pt2 (1 5)) (command "vonal" pt1 pt2 "" ) A command függvény argumentumai karakterláncok, valós vagy egész számok, valamint pontok lehetnek, a végrehajtani kívánt AutoCAD parancs promptsorozata által várt értékeknek megfelelôen. Az üres karakterlánc ("") hatása az <ENTER> billentyű lenyomásával azonos. A command függvény argumentumok nélküli hívása a <Ctrl> + <C> lenyomásával egyenértékű, azaz megszakítja a legtöbb AutoCAD parancsot. Abban az esetben, ha az AutoCAD CMDECHO rendszerváltozója (hozzáférhető a setvar illetve a getvar segítségével) nullára van állítva, a command függvénnyel végrehajtott parancsok promptjai nem jelennek meg a képernyôn. Az AutoLISP programnyelven belül a command függvény az AutoCAD parancsok elérésének alapvetô eszköze. Megjegyzés: A getxxx típusú felhasználói input függvények

(getangle, getstring, getint, getpoint stb.) nem használhatók a command függvényen belül. Abban az esetben, ha ezt megkísérli, a képernyôn a hiba: az AutoCAD visszautasította a függvényt üzenet jelenik meg, és a folyamatban lévô függvény végrehajtása megszakad. Amennyiben felhasználói inputra van szüksége, akkor elôzôleg hívja meg a getxxx függvényeket, vagy illessze ôket egymást követô command függvényhívások közé. Az olyan AutoCAD parancsok esetében, amelyek egy objektum kiválasztását igénylik (mint példá~ 1 a MEGTÖR és a METSZ), a kiválasztásra szolgáló pont megadása helyett az entsel függvénnyel nyerhetô listát használhatja fel. Erre vonatkozó példát "A kijelölési pont átadása AutoCAD parancsoknak" című részben talál Megszoritások: Az AutoCAD DSZÖVEG és SKICC parancsa közvetlenül a billentyűzetrôl, illetve a digitalizáló tábláról olvas, emiatt nem használható az AutoLISP command

függvényével. Ha a conunand függvénnyel az FKÖNYV parancsot adja ki, akkor az legyen az utolsó függvényhívás abban az AutoLISP rutinban. Amennyiben az AutoCAD egy parancs végrehajtása során a command függvény argumentumai között az elôre definiált PAUSE szimbólummal találkozik, felfüggeszti a command függvény végrehajtását, lehetôvé téve a közvetlen felhasználói adatbevitelt. • A PAUSE szimbólum definíció szerint egy visszahajló törtjelbôl álló karakterlánc. A visszahajló törtjelet közvetlenül is használhatja a PAUSE szimbólum helyett, de ha a command függvényt egy menütétel hívja meg, akkor a visszahajló törtjel felfüggeszti a menütétel beolvasását, minek következtében az AutoLISP kifejezés kiértékelése csak részleges lesz. Elképzelhetô továbbá, hogy az AutoLISP következô verzióiban a felfüggesztô mechanizmust más érték fogja aktivizálni, ezért azt ajánljuk, hogy a visszahajló törtjel közvetlen

megadása helyett használja mindig a PAUSE szimbólumot. Emlékeztetô: Egy karakterlánc belsejében a visszahajló törtjelet megkettôzve kell használni (azaz: "\"). • Ha a parancs egy szöveg vagy egy Attribútum értékének bevitelére vár, és ilyenkor találkozik a PAUSE szimbólummal, akkor az AutoCAD csak abban az esetben függeszti fel a parancs futását, amennyiben a TEXTEvAL rendszerváltozó értéke nullától különbözô. Egyéb esetben a PAUSE szimbólumot (a visszahajló törtjelet) a parancs szövegként fogja értelmezni, és nem függeszti fel futását, nem vár adatbevitelre. • Mialatt a command függvény adatbevitelre vár, továbbra is "aktívnak" kell tekinteni, tehát a felhasználó nem adhat meg egy másik kiértékelendô AutoLISP kifejezést. A következô példa a PAUSE szimbólum használatát mutatja be: (setq blk "ÉN BLOKKOM") (setq régi fól (getvar "clayer")) (command "fólia"

"beá" "ÚJ FÓL" "") (command "beill" blk pause "" "" pause) (command "fólia" "beá" régi fól "") A fenti programrészlet az ÚJ FÓL fóliát teszi aktuálissá, és arra vár, hogy a felhasználó kijelölje a beillesztési pontot az ÉN BLOKKOM Blokk számára -melyet 1 értékű X és Y méretaránytényezôvel illeszt be -, majd újra várakozik, hogy a felhasználó megadhassa a forgatási szöget; ezután az aktuális fóliát visszaállítja az eredeti fóliának megfelelôen. Ha egy PICKFIRST elemsor aktív, és a command függvényben a KIJELÖL parancs számára ad meg egy PAUSE szimbólumot, akkor a KIJELÖL parancs a PICKFIRST elemsort veszi át anélkül, hogy a felhasználóra várna. Megjegyzés: A Méret: prompt Sugár és Átmérô alparancsai egyes esetekben további, új promptokat jelenítenek meg. Ez hibát okozhat az ezen parancsokat használó, a Release 11 verziót

megelôzôen íródott AutoLISP programok esetében. Lásd még: a command függvényre vonatkozó további tudnivalókat a "Parancsok végrehajtása" című részben. (cond (feltétell eredményl. ) ) Ez a függvény argumentumként tetszőleges számú listát elfogad. Minden lista elsô elemét kiértékeli (a megadott sorrendben), egészen addig, amíg valamelyik értéke ni 1 értéktôl nem különbözik. Ekkor kiértékeli a listában a teljesülô feltételt követô kifejezéseket, és az allista utolsó kifejezésének értékével tér vissza. Amennyiben az allistában csak egyetlen kifejezés szerepel (azaz az eredmény hiányzik), a függvény a fe1tétel kiértékelésének eredményével tér vissza. A cond az AutoLISP programnyelv ersôdleges feltételes függvénye A cond függvény alábbi hívásával például abszolút értéket számíthat: (cond ((minusp a) (- a)) (t a) Amennyiben az a értéke -10, a függvény 10-et ad eredményül. Mint a

fenti példában látható, a cond függvény esetszétválasztásos (case típusú) függvényként használható. Általános gyakorlat a T használata utolsó (alapértelmezés szerinti) fe1tétel kifejezésként. Vegyünk most egy másik példát Legyen adott az s szimbólumban egy, a felhasználótól válaszként kapott karakterlánc. Az alábbi függvény leellenőrzi a felhasználó által adott választ, és 1-gyel tér vissza, ha a karakterlánc I vagy i, illetve 0-val, ha a válasz N vagy n; egyéb esetekben a függvény eredménye n i l. (cond ((= s " I " ) 1) ((= s "i") 1) ((= s "N") 0) ((=s"n") 0) (t nil) ) (cons új-első elem lista) Ez a legegyszerűbb listakészítô függvény. Ez a függvény vesz egy elemet (újelső-elem) és egy listát (lista), és az elemet új első elemként beillesztve, ezzel a listával tér vissza. Például: (cons a (b c d)) (con s (a) (b c d)) eredménye (A B C D) eredménye ((A) B C D ) Az első

elem egyaránt lehet atom, vagy lista. A cons függvény a 1ista argumentum helyén atomot is elfogad, és ebben az esetben úgynevezett kapcsolt értékpárt (dotted pair) készít belőlük. Megjelenítéskor az AutoLISP a kapcsolt értékpár két eleme közé pontot tesz. A kapcsolt értékpár második atomjának kiemelésére a cdr függvény használható Azaz: (cons a 2 ) (car (cons a 2)) (cdr (cons a 2)) eredménye (A . 2) eredménye A eredménye 2 A kapcsolt értékpár egy különleges típusú lista, melyet a közönséges listákat kezelô függvények némelyike nem fogad el argumentumként. (cos szög) Ez a függvény a radiánban kifejezett szög koszinuszával tér vissza. Például: (cos 0.0) eredménye 10 (cos pi ) eredménye -1.0 (cvunit mennyiség ebből ebbe) Ez a függvény egy mennyiséget vagy egy pontot az egyik mértékegységbôl egy másikba számít át. Sikeres végrehajtás esetén a függvény az így kapott mennyiséggel vagy ponttal tér vissza.

Ha azonban valamelyik mértékegység neve ismeretlen (nem található az acad.unt fájlban), vagy a két mértékegység eltérő dimenziójú (például grammok átszámítása évekre), akkor a függvény nil értékkel tér vissza. A mennyiség az átszámítani kívánt számértéket jelöli. Ez két vagy három számot tartalmazó lista (2D illetve 3D pont) is lehet. Az ebből argumentum azt a mértékegységet jelöli, amelyből a mennyiséget át kívánja számítani Az ebbe argumentum pedig az a mértékegység, amelyikbe az átváltás történik. Az , ebből és az ebbe argumentum az acad.unt fájlban található bármilyen típusú mértékegység lehet Példák: (cvunit 1 "perc" "másodperc" ) eredménye 60.0 (cvunit 1 "liter" "méter") eredménye nil (cvunit 1.0 "hüvelyk" "cm" ) eredménye 2.54 (cvunit 1.0 "hold" "négyzetláb" ) eredménye 48400 (cvunit (1.0 25) "láb"

"hüvelyk") eredménye (120 300) (cvunit (1 2 3) "láb" "hüvelyk") eredménye (12.0 240 360) Javaslat: Ha több mennyiséget szeretne hasonlóképpen átszámítani, akkor sokkal hatékonyabb, ha az 1.0 értéket számítja át, majd az eredményt arányossági tényezőként használja saját függvényeiben vagy számításaiban. Ez a módszer a hőmérséklet kivételével - ahol az átszámítás egy összeadást is magában foglal - minden előre definiált mértékegység esetében alkalmazható. Lásd még: a "A valós világ mértékegységei" című részt (defun szimb argumentumlista kifejezés.) A defun függvény egy szimb nevű függvényt definiál (megjegyezzük, hogy a függvény neve automatikusan idézőjelbe kerül, ezért nem szabad közvetlenül idézőjelbe tenni). A függvény nevét az argumentumok listája követi (amely kitöltetlen is lehet), majd ezt opcionálisan egy törtjel után a függvény egy vagy több

lokális szimbóluma követheti. A törtjelet az első lokális szimbólumtól és az utolsó argumentumtól legalább egy-egy szóközzel el kell különíteni. Ha a függvénynek nem ad meg sem argumentumot, sem lokális szimbólumot, akkor a függvény nevét egy üres zárójelpárnak kell követnie. Példák: A következô példák az argumentumlista érvényes és érvénytelen értékeit szemléltetik: (defun füg (x y).) a függvénynek két argumentuma van (defun füg (/ a b).) a függvénynek két lokális szimbóluma van (defun füg (x / ideigl).) egy argumentum és egy lokális szimbólum (defun füg ().) nincs sem argumentum, sem lokális szimbólum Azonos névvel nem definiálhat több argumentumot egy függvényhez, azonban egy lokális változó neve azonos lehet egy másik lokális változó vagy egy argumentum nevével, mint például: (defun fubar ( a a / b ). ) nem megengedett (defun fubar ( a b / a a b ). ) hibátlan Az argumentumok és lokális szimbólumok

listáját a függvény végrehajtása során kiértékelni kívánt egy vagy több kifejezés követi. Megjegyzés: Ha az argumentumok/szimbólumok listában ugyanaz a tétel többször is szerepel, akkor az AutoLISP minden név első előfordulását használja fel, a további előfordulásokat pedig figyelmen kívül hagyja. A defun függvény az általa definiált függvény nevével tér vissza. Az így definiált függvény hívásakor az AutoLISP kiértékeli az argumentumait, és hozzárendeli az argumentum szimbólumokhoz. A függvényen belüli lokális szimbólumok használata a külső szinteken hozzájuk tartozó értékeket nem befolyásolja. A függvény az utolsóként kiértékelt kifejezés eredményével tér vissza. A függvény minden előző kifejezésének csak mellékhatása van. Maga a defun függvény a definiált függvény nevével tér vissza Az alábbi példák új függvényeket definiálnak a defun függvény segítségével, és bemutatják az új

függvények által visszaadott értékeket: (defun pluszl0 (x) (+ 10 x) ) eredménye PLUS Z 10 (plusz l0 5) (pluszl0 -7.4) eredménye 15 eredménye 2.6 valamint (defun pontok (x y / ideigl) (setq ideigl (strcat x ".")) (strcat ideigl y) ) (pontok "a" "b") (pontok "Ponttól" "Pontig") eredménye PONTOK eredménye "a.b" eredménye "Ponttól. Pontig" Figyelmeztetés: Soha ne használja beépített függvények vagy szimbólumok nevét szimb elnevezésként, mivel ebben az esetben a beépített függvény többé nem lesz elérhető. A beépített, valamint az előzőleg definiált függvények listáját az atoms-family függvény segítségével kaphatja meg. Kapcsolódó témák Tekintse meg a setq függvény ismertetésénél a lokális és globális szimbólumokra vonatkozó példákat. (distance pontl pont2) Ez a függvény a pont1 és pont2 pontok közötti térbeli (3D) távolság értékével tér

vissza. A következô példák ezt szemléltetik: (distance (1.0 25 30) (77 25 30)) eredménye 67 (distance (1.0 20 05) (30 40 05)) eredménye 282843 Abban az esetben, ha a megadott pontok egyike, vagy mindkettô 2D pont, akkor a distance a 3D pontok Z koordinátáját nem veszi figyelembe, és a pontok aktuális szerkesztési síkra vetített távolságát számítja ki. Lásd még: a "Geometriai segédfüggvények" című részt. (distof karakterlánc (mód]) Valós értékké konvertálja a karakterláncot, amely egy valós (lebegőpontos) értéket ábrázol a mód által megadott kijelzési formátumban. A mód argumentum határozza meg, hogy a karakterlánc formátuma milyen mértékegységnek felel meg. Értékének az AutoCAD LUNITS rendszerváltozója által megengedett, az alábbi táblázatban látható értékek egyikének kell lennie. A mode argumentum elhagyása esetén a distof függvény a LUNITS rendszerváltozó aktuális értékét veszi alapul.

Hosszmértékegységek értékei Mód értéke Karakterlánc formátuma 1 Tudományos 2 Tizedes 3 Mérnöki (láb és tizedes hüvelyk) 4 Építészeti (láb és a hüvelyk törtrésze) 5 Tört A karakterlánc argumentumnak a distof függvény számára a megadott mód szerint értelmezhető karakterláncnak kell lennie. Formája azonos lehet azzal, amelyet az rtos függvény szolgáltatna, vagy amelyet az AutoCAD a billentyűzetről elfogad. A distof és az rtos függvények egymás ellentettjei: amennyiben a distof függvénynek egy, az rtos függvény által előállított karakterláncot ad át, akkor a distof bizonyosan érvényes eredménnyel tér vissza, és megfordítva (feltéve, hogy a mód értékei azonosak). Megjegyzés: A distof függvény azonosan kezeli a 3-as és a 4-es módot. Tehát, ha a mód megadott értéke 3 (mérnöki) vagy 4 (építészeti), és a karakterlánc e két formátum bármelyikének megfelel, akkor a distof függvény a helyes valós értéket adja

eredményül. Sikeres hívás esetén a distof függvény egy valós számértékkel, máskülönben pedig ni1 értékkel tér vissza. (entdel elemnév) A függvény az elemnévargumentum által meghatározott rajzelemet kitörli, ha az szerepel a rajzban, illetve visszaállítja, ha azt az adott szerkesztési alkalommal előzőleg kitörölték. A kitörölt rajzelemeket az AutoCAD a rajzeditorból való kilépéskor véglegesen eltávolítja a rajzból, így az entdel a törölt rajzelemeket csak addig képes visszaállítani, amíg az adott szerkesztési alkalom véget nem ér. Az entdel függvény csak fő rajzelemek esetében használható; az Attribútumok és a Vonalláncok csomópontjai nem törölhetők az őket tartalmazó rajzelemektől függetlenül (erre a célra a command függvény segítségével az ATTEDIT, illetve a VLEDIT parancsokat használhatja). Blokkdefiníción belül nem törölhet ki rajzelemeket. Az entmake függvénnyel azonban átírhat egy teljes

Blokkdefiníciót (kihagyva belőle a törölni kívánt rajzelemet). Példa: (setq el (entnext)) a rajz elsô rajzelemét hozzárendeli e1-hez (entdel e1) törli az e1 rajzelemet (entdel e1) visszaállitja az e1 rajzelemet (entget elemnév (alklista]) A függvény az elemnévnevű rajzelemet kikeresi az adatbázisból, és a rajzelem definíciós adatait tartalmazó listával tér vissza. Ha a bejegyzett alkalmazások listáját (alklista) is megadja, akkor az így kijelölt alkalmazásokhoz tartalmazó bővített rajzelemadatok is szerepelni fognak az eredményül kapott listában. Az adatok LISP asszociációs lista formájában vannak kódolva, így annak egyes részei az assoc függvénnyel emelhetők ki. A lista objektumainak kódolása a definíciós adatok minden részét tekintve az AutoCAD DXF csoportkódjaival történik. A következô példához tételezzük fel azt, hogy • az aktuális fólia a 0 • az aktuális vonaltípus CONTINOUOS (FOLYTONOS, ez az

alapértelmezés) • az aktuális kiemelési szint nulla (alapértelmezés) • a rajzelemek sorszámozása ki van kapcsolva Tételezzük fel, hogy rajzol egy Vonalat a következô parancssorozattal Parancs: vonal Ponttól.:1,2 .Pontig: 6,6 .Pontig: <ENTER> Ebben az esetben a Vonal rajzelem adatait a következôképpen kaphatja meg: Parancs: (setq a (entget (entlast))) Ez az a értékét az alábbi listával tenné egyenlôvé: ((-1 . <Elem neve: 60000014>) (0. "LINE") Rajzelem tipusa (8. "0") fólia (101.0 20 00) kezdôpont (11 6.0 60 00) ) végpont A lista kezdetén található -1 jelű tétel a lista által képviselt rajzelem nevét tartalmazza. A későbbiekben ismertetett entmod függvény ezt használja a módosítandó rajzelem azonosítására. Az értékeket tartalmazó kapcsolt értékpárok külön-külön könnyen hozzáférhetők az assoc függvénnyel, a cdr függvény segítségével pedig kiemelhető az értékük. A rajzelem

összetevőinek kódjai megegyeznek a DXF esetében használt kódokkal, melyeket az AutoCAD Adaptációs Kézikönyv 11. fejezete ismertet Hasonlóképpen a DXF fájlformátumhoz, a rajzelem fejrészének tételei (szín, vonaltípus, vastagság, "attribútumok következnek" flag, valamint az elemsorszám) csak akkor kerülnek be az eredménylistába, ha értékük nem azonos az alapértelmezés szerinti értékkel. Azonban a DXF fájlformátumtól eltérően, a rajzelem opcionális definíciós mezői az alapértelmezéstől függetlenül bekerülnek az eredménylistába. Ennek célja a feldolgozás egyszerűsítése: a feldolgozó programok így biztosra vehetik, hogy ezek a mezők jelen vannak, és mindig elérhetők a feldolgozó algoritmusok számára. Ugyancsak a DXF fájlformátumtól eltérően, az összetartozó X, Y és Z koordináták egyetlen pontlistát alkotnak például (10 1.0 20 30), és nem elkülönült 10-es, 20-as és 30-as csoportokban jelennek meg. A

pontok allistái nem két kapcsolt értékből állnak, mint a többi esetben Megállapodás szerint az allisták cdr értéke a csoport értékét adja. Mivel egy pont két (vagy három) valós szám listája, így a teljes csoport egy három (vagy négy) elemű listából áll. A csoport cdr értéke mindig a pontot leíró lista, így a megállapodással összhangban a cdr függvény mindig a pont értékével tér vissza. Elemlistát feldolgozó program írásakor biztosítania kell, hogy ez az allisták sorrendjét ne vegye figyelembe. Ezt az assoc függvény segítségével teheti meg. A rajzelem nevét tartalmazó -1-es csoport lehetővé teszi, hogy a módosítási műveletek elfogadják az elemlistákat, így nem kell az elemneveket párhuzamos struktúrákban elhelyezni. A Vonalláncok és az Attribútum-sorozatok végén található Seqend elem egy -2-es csoportot is tartalmaz, melynek cdr értéke a rajzelem fejrészének elemneve. Ez lehetôvé teszi, hogy egy

alárendelt rajzelembôl visszakeresse a fejrészt, oly módon, hogy a Seqend elemig elôre haladva, a -2-es csoport értékébôl kiolvassa a hozzá tartozó fô rajzelem nevét. A következô példa egy bonyolultabb rajzelem listáját jeleníti meg. A példa kedvéért tételezzük fel, hogy az aktuális FKR a VKR X tengelye körül az óramutató járásával ellentétes irányban 40 fokkal el van forgatva, és a rajzelemek sorszámozása be van kapcsolva. Parancs: vtípus ?/Készít/Tölt/Beállít: beállít Új rajzelem vonaltípus (vagy ?) <FÓLIA>: szaggat ?/Készít/Tölt/Beállít:<ENTER> Parancs: szín Új rajzelem színe <FÓLIA>: kék Parancs: fólia ?/Készít/beÁllít/Új/BE/KI/Szín/Vtípus/Fagyaszt/Olvaszt:/Zár/Nyit: készít Új aktuális fólia <0>: üzenet ?/Készít/beÁllít/Új/BE/KI/Szín/Vtípus/Fagyaszt/Olvaszt:/Zár/Nyit: Parancs: szöveg Igazít/Stílus/<Kezdôpont>: 2,2 Magasság <0.2000>:3 Elforgatási szög

<0>: 30 Szöveg: Viszlát és köszönöm a halakat! Parancs: (setq ea (entget (setq e (entlast)))) Ebben az esetben e a Szöveg elemnevével, ea pedig az erre vonatkozó listával lesz azonos. Az alábbi lista értelmezéséhez az AutoCAD Adaptációs Kézikönyv 11. fejezetében leírtak nyújtanak segítséget (-1.<Elem neve: 6000053C>) (0. "TEXT") rajzelem típusa (8. "ÜZENET") fólia (6. "SZAGGAT") vonaltipus (62 . 5) szín (5 . "7E") sorszám (10 2.0 20 00) kezdőpont (40 . 03) magasság (1."Viszlát és köszönöm a halakat:") (50 . 0523599) elforgatás szöge (radián) (4 1. 10) szélességi tényezô (51 . 00) dôlésszög (7 . "STANDARD") szöveggstílus (71 . 0) generálási flag 172 . 0) vízszintes igazitás (73 . 0) függôleges igazítás (11 0.0 00 00) igazításpontja (210 0.0 -0642788 0766044) kihúzási irányvektor A rajzelemmel kapcsolatos összes pont a rajzelem Elem

Koordináta-rendszerében (EKR) van kifejezve. A Pontok, Vonalak, 3D Vonalak, 3D Lapok, 3D Vonalláncok, 3D Síkhálók és a Méretezés rajzelemek esetében az EKR megegyezik a VKR rendszerrel (a rajzelem pontjai Világkoordinátákban kifejezettek). A többi rajzelemnél az EKR a VKR-ből és a rajzelem kihúzási irányából (210-es csoport) származtatható. Amennyiben nem a VKRben megrajzolt rajzelemekkel dolgozik (mint a fenti példában szereplő Szöveg), szükség lehet a pontok VKR-be vagy az aktuális FKR-be transzformálására a trans függvény segítségével. A fenti Szöveg rajzelemet példaként használva: (setq p (cdr (assoc 10 ea))) eredménye (2.0 20 00) ez a p változót a Szöveg kezdőpontjának értékére állítja be a Szöveg rajzelem EKR rendszerében. (Ne feledkezzen meg arról, hogy az ily módon kapott pont független az entget függvényhívás időpontjában érvényes FKR-től.) Ezek után: (trans p e 0), eredménye (2.0 153209 128558) Ez az e

változót (a Szöveg rajzelem nevét) használja fel kiinduló transzformációs kódként, és a szöveg kezdőpontját a Szöveg EKR rendszeréből Világkoordinátákká transzformálja. (entlast) Ez a függvény az adatbázisban lévő utolsó, nem törölt fő rajzelem nevével tér vissza. Gyakran használatos a command függvény segítségével a rajzhoz legutoljára hozzáadott új rajzelem nevének kiolvasására. A kiválasztáshoz a rajzelemnek nem szükséges a képernyőn vagy egy felolvasztott fólián lennie. Például: (setq e1 (entlast)) a rajzba helyezett utolsó rajzelem nevét az el változóhoz rendeli (setq e2 (entnext e1)) az e2 változóhoz nil értéket rendel (vagy egy alárendelt Attribútum, illetve Csomópont elem nevét) Amikor programjának a legutolsó, nem törölt rajzelem (fő vagy alárendelt rajzelem) nevére van szüksége, az entlast helyett inkább az alábbiakban definiált függvényt használja: (defun utolsoe (/ a b) (if (setq a (entlast))

veszi az utolsó fô rajzelemet (while (setq b (entnext a)) ha alárendelt rajzelemek követik, (setq a b ) akkor ezek végéig a ciklusban marad ) ) a az utolsó fő/alárendelt rajzelemet adja eredményül ) (entmake (elemlista]) Ez a függvény új rajzelemet hoz létre a rajzban. Amennyiben az elem létrehozása sikerrel járt, akkor annak definíciós adatlistájával tér vissza. Amikor valamilyen okból nem sikerült az elemet létrehozni (például hibás adatmegadás miatt), a visszatérési érték nil. Az elemlista argumentumban egy rajzelem definíciós adatlistáját kell megadni az entget függvénnyel kapható formátum szerint. Ennek tartalmaznia kell a rajzelem megadásához szükséges összes információt Bármely szükséges definíciós adat elhagyása az entmake függvény ni1 értékkel történő visszatéréséhez, és a rajzelem elvetéséhez vezet. Az opcionális adatok mint a fólia elhagyása esetén az entmake az alapértelmezés szerinti értékeket

használja. Az új rajzelem létrehozásának egyik módja, hogy egy rajzelemnek az entget függvénnyel megszerzett definíciós adatait módosítja, és az entmake függvénnyel új rajzelemként a rajzhoz csatolja. Mielőtt létrehozná az új rajzelemet, az entmake függvény ellenőrzi, hogy a megadott fólianév, vonaltípusnév és szín érvényes-e. Amennyiben új fólianevet adott meg, az entmake automatikusan létrehozza az új fóliát Amennyiben a rajzelem típusa szükségessé teszi, az entmake a Blokkok, Méretstílusok, Szövegstílusok és Alakok neveit is ellenőrzi. Az e1em1ista első vagy második tételének a rajzelem típusának (például Kör, Vonal, stb.) kell lennie Második is csak akkor lehet, ha a rajzelem neve előzi meg. Ez az a formátum, amelyet az entget függvény szolgáltat Ilyen esetekben az új rajzelem létrehozásakor a rajzelem nevét figyelmen kívül hagyja, valamint, ha az e1em1ista sorszámot tartalmaz, akkor azt is. Az alábbi példa egy

egységnyi sugarú, (4,4) középpontú vörös kört hoz létre a rajzban, az opcionális fólia és vonaltípus tételek mellôzésébôl adódóan az alapértelmezést használva. (entmake ((0 . "CIRCLE") (62 . 1) (10 4.0 40 00) rajzelem típusa szín középpont (40 . 10) sugár Megjegyzés: Fagyasztott fólián létrehozott rajzelemek csak a fólia felolvasztása után regenerálódnak. Összetett rajzelemek Az összetett rajzelemek (Blokkdefiníciók, Vonalláncok, Attribútumokat tartalmazó Blokkhivatkozások) az alárendelt elemeiket (Attribútumokat illetve Csomópontokat) definiáló több entmake függvényhívással hozhatók létre. Amikor az entmake függvény észleli, hogy összetett rajzelem készül, a definíciós adatok összegyűjtésére egy ideiglenes fájlt hoz létre. Az entmake függvény minden hívásakor ellenőrzi az ideiglenes fájl meglétét, és ha megtalálja (ez azt jelenti, hogy összetett rajzelem készítése van folyamatban),

akkor az új adatokat hózzáfűzi a fájlhoz. Amikor az összetett rajzelem definiálása (a megfelelő Seqend vagy Endblk elem hozzáfűzésével) befejeződött, a megadott adatokat újra ellenőrzi, majd a rajzot az új rajzelemmel bővíti. Blokk definiálásának befejezésekor (az Endblk elem létrehozásakor) az entmake függvény a normál rajzelem-adatlista helyett a Blokk nevével tér vissza. Ha a rajzelem létrehozása közben az adott rajzelemtípusra érvénytelen adatot kap, akkor ezt a rajzelemet és az egész összetett rajzelemet egyaránt elveti. A Blokkdefiníciók nem ágyazhatók egymásba, és nem hivatkozhatnak önmagukra. Más Blokkdefiníciókra való hivatkozást azonban tartalmazhatnak A 66-os csoportkód csak Insert (Beill) rajzelemeknél használható (jelentése: attribútumok következnek). Értéke Vonallánc rajzelemek esetében mindenképpen 1 lesz (jelentése: csomópontok következnek), a többi rajzelem esetében pedig az alapértelmezés szerinti

0. A Vonallánc rajzelemet csak Csomópont rajzelem követheti Az összetett rajzelem definiálásának befejeztéig a rajzon nem jelenik meg egyik eleme sem. Az entmake függvény argumentumok nélküli hívásával az összetett rajzelem definiálását megszakíthatja. Ez az ideiglenes fájlt törli, és nil értékkel tér vissza. Az összetett rajzelem minden alkotóelemének ugyanabban a térben kell lennie. Az elemek lehetnek akár a modell-, akár a papírtérben, de mindkettőben nem. Például, a Polyline (Vonallánc), Vertex (Csomópont) és Seqend elemeknek ugyanabban a térben kell lenniük. Ugyanez érvényes az Insert (Beill), Attrib és Seqend elemekre is. Új Blokkdefiníció létrehozására a Block (Blokk) és Endblk elemek használhatók. Az újonnan létrehozott Blokkok a szimbólumtáblába automatikusan bejegyzésre kerülnek, és ott azonnal hivatkozni lehet rájuk. Soklaphálók esetében az alkalmazások tetszőleges oldalszámú sokszögeket szeretnének

ábrázolni, azonban az AutoCAD elemstruktúrája határt szab egy adott Lap rajzelem által meghatározható csomópontok számának. Az ennél összetettebb sokszögeket úgy ábrázolhatja, hogy felbontja azokat háromszögekre. Ezeket a háromszögeket az AutoCAD olyan négy csomópontos Lapokként jeleníti meg, melyek két szomszédos csúcsa azonos. Annak érdekében, hogy ezek a segédelemek ne zavarják az összkép megjelenését, a háromszögek élei láthatatlanná tehetők. A SOKLAP parancs automatikusan használja ezeket a segédelemeket, míg az alkalmazások által közvetlenül generált soklaphálók esetében az alkalmazásoknak maguknak kell ezt megtenniük. A segédelemek kialakításának kulcsparamétere a laponkénti csomópontszám. Az alkalmazások számára a PFACEVMAX rendszerváltozó adja meg a laponként felhasználható csomópontok számát. Ennek értéke csak olvasható, és 4-re van beállítva. Fontos: Az entmake függvénnyel nem hozhat létre

Nézetablak rajzelemeket. Vigyázat: Az entmake által létrehozott Blokk felülírhat egy már meglévő Blokkot. Az entmake függvény nem ellenőrzi a nevek egybeesését a Blokkdefiníciók táblában, így átdefiniálhat meglévő blokkokat. Ha ily módon kíván egy névvel ellátott Blokkot létrehozni, akkor célszerű előtte a tblsearch függvény segítségével megbizonyosodni arról, hogy nincs még ilyen nevű.Blokk Névtelen blokkok (ismertetésük alább) újradefiniálására azonban hasznos lehet az entmake függvény. Névtelen blokkok A rajz Blokkdefiníciók táblája tartalmazhat névtelen Blokkokat. Névtelen Blokkok a sraffozási minták és az asszociatív méretezés támogatására készülnek. Az entmake függvénnyel az alkalmazás saját céljaira is létrehozhatók, általában olyan rajzelemek befoglalására, amelyekhez a felhasználó nem férhet közvetlenül hozzá. A névtelen Blokk neve (2-es csoport) *Unnn alakú, ahol nnn egy, az AutoCAD által

generált szám. A névtelen blokkok Blokk típus flagjének (70-es csoport) legalsó helyiértékű bitje 1-re van állítva. Ha az entmake egy olyan blokkot hoz létre, amelynek neve *-gal kezdôdik, és "névtelen" bitje be van állítva, akkor azt az AutoCAD névtelen blokknak tekinti, és kijelöl számára egy nevet. Az entmake függvénynek átadott névben a * után esetlegesen szereplő karaktereket figyelmen kivül hagyja. A Blokk létrejötte után az entmake annak nevével tér vissza. Amennyiben Ön több entmake hívással hoz létre blokkot, annak neve csak az (entmake "endblk") sikeres hívása után tér vissza. Minden egyes alkalommal, amikor Ön a rajzeditorba betölt egy rajzot, az AutoCAD a Blokkdefiníciók táblából kitisztítja az összes olyan névtelen Blokkot, amelyre a rajzban nincs hivatkozás. A hivatkozott (Beillesztett) névtelen blokkokat nem tisztítja ki. Az entmake függvény segítségével hozhat létre hivatkozást

(Beill) egy névtelen blokkra (a BEILL parancsnak nem adhat át névtelen blokkot). Az entmake függvény a blokk átdefiniálására is használható. A blokk rajzelemei (de nem maga a Blokk rajzelem) az entmod függvénnyel módosíthatók. Vigyázat: Jóllehet a hivatkozott névtelen blokkok állandóak, azok nevének numerikus része alkalomról alkalomra változhat. Az alkalmazások nem számíthatnak arra, hogy a névtelen blokkok neve változatlan marad (entmod elemlista) Az entmod függvény egy listát (elemlista) vár az entget függvény által visszaadott formátumban, és az adatbázisban az elemlista -1-es csoportja által meghatározott rajzelemhez tartozó információt felülírja. A rajzi adatbázis AutoLISP segítségével történő aktualizálásának elsődleges mechanizmusa tehát a következő: az entget függvény segítségével kiolvassa a rajzelem definíciós listáját, módosítja azt (az AutoLISP subst függvénye különösen alkalmas erre), majd az

entmod függvénnyel aktualizálja a rajzelemet az adatbázisban. Példa: (setq en (entnext)) en-hez a rajz elsô rajzelemét rendeli (setq ea (entget en)) ea-hoz rendeli az en nevű elem adatait (setq ea (subst (cons 8 "0") (assoc e ea) az ea listában kicseréli a fólia ea csoportot a 0 nevű fóliára )) (entmod ea ), módositja az en rajzelem fóliáját a rajzban Az entmod alkalmazásának vannak korlátai. Mindenekelőtt, a rajzelem típusa és sorszáma nem változtatható meg ezzel a függvénnyel. (Amennyiben ezt kívánja tenni, az entdel alkalmazásával ki kell törölnie, majd a command vagy az entmake függvény segítségével újból el kell készítenie a rajzelemet.) Az AutoCAD számára ismertnek kell lennie az elemlistában hivatkozott összes objektumnak, mielőtt az entmod függvényt végrehajtja. Azaz a Szövegstílusok, Vonaltípusok, Alakok és Blokkok nevét még azelőtt kell definiálnia a rajzban, mielôtt ezeket az entmod függvénynek átadott

elemlistában felhasználná. Kivétel ez alól a fólianév; az entmod függvény, amennyiben egy előzetesen meg nem adott fólia neve szerepel az elemlistában, akkor a FÓLIA Új parancs segítségével a szabvány alapértelmezés szerinti értékekkel létrehoz egy új fóliát. Azon elemtételek esetében, amelyek lebegőpontos értékeket tartalmaznak (például a vastagság), az entmod egész értékeket is elfogad, és ezeket lebegőpontos értékké alakítja át. Hasonlóképpen, ha lebegőpontos értéket ad meg azon a helyen, ahol egész értéknek kellene szerepelnie (például egy színszám), akkor az entmod függvény ezt az értéket lefelé kerekítve (csonkolva) egész számmá alakítja át. Az entmod függvény ugyanazt a konzisztencia-vizsgálatot végzi el a megadott listákon, mint a DXFBE parancs a DXF fájl adatain. Amennyiben olyan súlyos hibával találkozik, ami meghiúsítja az adatbázis aktualizálását, akkor nil értékkel tér vissza. Egyébként

az entmod függvény az argumentumként megadott listával tér vissza Az entmod nem változtatja meg az olyan belsô mezőket, mint például a Seqend elem -2-es csoportjában található elemnév. Az erre irányuló kísérleteket a függvény egyszerűen figyelmen kívül hagyja Egy fő rajzelem aktualizálásakor az entmod függvény módosítja a rajzelemet és megváltoztatja megjelenítését a képernyőn is (az alárendelt rajzelemeket is beleértve). Amennyiben az entmod függvényt alárendelt rajzelem (Vonallánc csomópontja vagy Blokk attribútuma) módosítására használja, az alárendelt rajzelem az adatbázisban aktualizálódik, de a képernyőn nem. Egy adott rajzelem összes alárendelt rajzelemének módosítása után a képernyőn megjelenő rajz aktualizálására a későbbiekben ismertetett entupd függvény használható. Mielőtt Csomópont rajzelemekre vonatkozóan végrehajtana egy entget vagy entmod függvényhívást, célszerű előbb annak a

Vonalláncnak a fejrészét (Vonallánc rajzelem) kiolvasnia, illetve átírnia, amelyhez azok tartoznak. Amennyiben ugyanis a legutóbb feldolgozott rajzelem nem azonos azzal, amelyhez a szóbanforgó Csomópontok tartoznak, a szélességi információ (40-es és 41-es csoportok) elveszhet. Fontos: Nem használhatja az entmod függvényt Nézetablak rajzelem módosítására. Egy rajzelem térbeli láthatóságának 0-ról 1-re változtatására viszont a Nézetablak rajzelemek kivételével alkalmas. Amikor az entmod függvényt egy Blokkdefiníción belüli rajzelemre alkalmazza, a módosítás kihat a Blokk összes előfordulására a rajzban. Figyelmeztetés: Az entmod függvénnyel Blokkdefiníción belüli rajzelemek is módosíthatók, és ez a blokk összes beillesztésére hatással van. Így elvileg egy önmagára hivatkozó Blokk létrehozására is van lehetőség Óvakodjon ettől, mert ez az AutoCAD összeomlását okozhatja. (entnext (elemnév]) Ha ezt a

függvényt argumentum nélkül hívja meg, akkor az adatbázis első, nem törölt rajzelemének a nevével tér vissza. Ha az entnext függvényt egy elemnév argumentummal hívja meg, akkor az adatbázisban az elemnév rajzelemet követő első, nem törölt rajzelem nevével tér vissza. Amennyiben az adatbázisban nem létezik következô rajzelem, a függvény nil értékkel tér vissza. Az entnext függvény fô és alárendelt rajzelemeket egyaránt megtalál. Az ssget függvénnyel kiválasztható objektumok csak fô rajzelemek lehetnek, tehát az ssget függvény nem találja meg sem a Blokkok attribútumait, sem a Vonalláncok csomópontjait. Ezeknek az összetett rajzelemeknek a belsô szer- kezetéhez oly módon férhet hozzá, ha az entnext függvénnyel végiglépked az alárendelt rajzelemeken. Miután hozzáfért egy alárendelt rajzelem nevéhez, ugyanolyan műveleteket végezhet vele, mint bármely más rajzelemmel. Az entnext útján kiolvasott elemnév birtokában

megtalálható a fô rajzelem neve is oly módon, hogy további entnext hívásokkal addig lépked elôre, amíg egy Seqend elemmel nem találkozik. Ennek az elemnek a 2-es csoportját kiemelve megkapja a fô rajzelem nevét Például: (setq e1 (entnext)) (setq e2 (entnext e1)) e1 a rajz elsô rajzelemének a nevét kapja e2 az e1-et követô rajzelem nevét kapja (entsel [prompt]) Amikor rajzelemekkel dolgozik, néha szükséges, hogy a rajzelem kiválasztásával egyidejűleg megadja azt a pontot is, amellyel a kiválasztást elvégezte. Az AutoCAD esetében a Tárgyraszter, valamint a MEGTÖR, METSZ és ELÉR parancsok szolgáltatnak erre példát. Az AutoLISP programokat az entsel függvény teszi alkalmassá ennek a műveletnek a végrehajtására. Az entsel függvény egyetlen rajzelemet választ ki úgy, hogy a kiválasztásnak egy pont kijelölésével kell történnie. A függvény a Traszter aktuális beállítását figyelmen kívül hagyja (nincs tárgyraszter), hacsak Ön

ezt a függvény működése közben külön nem kéri. Az entsel függvény figyelembe veszi az ôt megelôzô initget hívásban megadott kulcsszavakat is. Az entsel egy listával tér vissza, melynek elsô eleme a kiválasztott rajzelem neve, a második pedig annak a pontnak a koordinátáit tartalmazza (az aktuális VKR-ben), amellyel a kiválasztást végezte. Amennyiben prompt argumentumként megad egy karakterláncot, a függvény ennek a karakterláncnak a megjelenítésével fogja kérni a felhasználót a kiválasztás elvégzésére. Egyébként a Válasszon objektumokat: prompt jelenik meg alapértelmezés szerint. Az alábbi AutoCAD parancssorozat az entsel függvény használatát, és az eredményül kapott listát illusztrálja: Parancs: vonal Ponttól.:1,1 .Pontig: 6,6 .Pontig: <ENTER> Parancs: (setq e (entsel "Kérem válasszon egy rajzelemet:")) Kérem válasszon egy rajzelemet: 3,3 (<Elem neve: 60000014> (3.0 30 00)) Az entsel függvény

segítségével kapott listával az AutoCAD bármely olyan promptjára válaszolhat, amely objektumok kiválasztását kéri. Az AutoCAD ezt ,úgy kezeli, mintha a kívánt rajzelemet a megadott pont kijelölésével választotta volna ki. Kapcsolódó témák: Lásd az initget függvény ismertetését. (entupd elemnév) Amennyiben az entmod függvénnyel egy Vonallánc csomópontját vagy egy Blokk attribútumát módosítja, az összetett rajzelem rajza a képernyôn nem aktualizálódik. Amikor például egy 100 csomóponttal rendelkezô Vonalláncot kell módosítani, a csomópontok megváltoztatásával egyidejűleg az újraszámolás és az újrarajzolás elfogadhatatlanul lelassítaná a program működését. A módosított Vonallánc vagy Blokk képernyôn történô aktualizálására az entupd függvényt használhatja. Ez a függvény a Vonallánc vagy a Blokk bármely alárendelt rajzelemének nevével meghívható. Nem szükséges, hogy ez a fejrész rajzelem neve

legyen, az entupd függvény meg fogja azt találni. Bár az entupd függvény fôleg a Vonalláncok és az attribútummal rendelkezô Blokkok esetében használatos, valójában bármely rajzelem aktualizálására alkalmas. A függvény a rajzelemet valamennyi alárendelt rajzelemével egyetemben minden esetben regenerálja a képernyôn. Megjegyzés: Ha az entupd függvényt beágyazott rajzelemre (egy Blokkon belüli rajzelemre) vagy beágyazott rajzelemeket tartalmazó Blokkra alkalmazza, akkor elôfordulhat, hogy nem aktualizálódik a beágyazott rajzelemek mindegyike. Ilyen esetben a REGEN parancs meghívásával biztosíthatja a teljes regenerálást Ezt egy AutoLISP rutinból a ( command " regen " ) függvényhívással teheti meg. Példa Tételezzük fel, hogy a rajz elsô rajzeleme egy több csomópontú Vonallánc. Ebben az esetben: (setq e1 (entnext)) e1-hez rendeli a Vonallánc rajzelem nevét (setq e2 (entnext e1)) e2 -höz rendeli a Vonallánc elsô

csomópontját (setq ea (entget e2) ea -hoz rendeli a csomópont adatait ( setq ea (subst (10 1.0 20) (assoc 10 ea) a csomópontot az (1,2) pontba helyezi át ea )) (entmod ea) elmozditja a csomópontot a rajzban (entupd e1) regenerálja az e1 Vonalláncot (eq kifejezésl kifejezés2) A függvény megvizsgálja, hogy a kifejezés1 és a kifejezés2 azonos-e egymással, azaz, ugyanazon objektumokhoz lettek-e hozzárendelve (például a setq függvénnyel). Amennyiben a két kifejezés azonos, az eq függvény T értékkel, egyéb esetekben pedig ni 1 értékkel tér vissza. Ez a függvény tipikusan annak megállapítására használható, hogy két lista tényleges tartalma azonose egymással. Vegyük például az alábbi értékadó utasításokat: (setq f1 (a b c)) (setq f2 (a b c)) (setq f3 f,2 ) ebben az esetben: (eq f1 f3) eredménye n i 1 f 1 és f 3 nem ugyanaz a listal (eq f3 f2 ) eredménye T f3 és f2 pontosan ugyanaz a lista Kapcsolódó témák: Vesse össze ezt a

függvényt az = függvénnyel, valamint a most következô equal függvénnyel. (equal kifejezésl kifejezés2 [bizonytalanság]) Ez a függvény megvizsgálja, hogy a kifejezés1 és a kifejezés2 egyenlô-e egymással, azaz, kiértékelésük eredménye megegyezik-e. Vegyük például az alábbi értékadó utasításokat: (setq f1 (a b c)) (setq f2 (a b c)) ( setq f3 f2 ) ebben az esetben (equal f1 f3 ) eredménye T f1 és f3 kiértékelése ugyanarra vezet (equal f3 f2 ) eredménye T f3 és f2 pontosan ugyanaz a lista Azt a két listát, amelyet az equal függvény egyenlônek talált, nem biztos, hogy az eq függvény is azonosnak fogja találni, viszont két egymással egyenlô (equal) atom egyben azonos (eq) is. Azok a listák és atomok viszont, amelyek az eq függvény szempontjából azonosak, az equal függvény szempontjából is mindig egyenlôk. Abban az esetben, amikor két valós számot (vagy valós számokból álló listát, mint pontok esetében) hasonlít

össze, akkor tudnia kell, hogy az azonos számok kismértékben eltérhetnek a kiszámításuk módszerének különbözôsége miatt. Ezért opcionálisan egy numerikus bizonytalanság argumentumot is megadhat, amely azt a maximális eltérést határozza meg, amely határon belül a kifejezésl és a kifejezés2 még egyenlônek tekinthetô. Vegyük például az alábbi értékadó utasításokat: (setq a 1.123456) (setq b 1.123457) ebben az esetben: (equal a b) eredménye nil (equa1 a b 0.000001 ) eredménye T Kapcsolódó témák: Vesse össze ezt a függvényt az = függvénnyel, valamint a fenti eq függvénnyel. (*error karakterlánc) Ez a felhasználó által definiálható hibakezelô függvény. Ha értéke nem nil, akkor minden AutoLISP hiba bekövetkezésekor végrehajtásra kerül. Egyetlen argumentumaként az AutoLISP a hiba leírását tartalmazó karakterláncot adja át számára. Példa: (defun *error (üzenet) (princ "hiba :" ) (princ üzenet) (terpri) )

Az így definiált függvény pontosan úgy működik, mint az AutoLISP szabvány hibakezelôje; kiírja a hiba: feliratot és a hiba leírását. A saját készítésű *error függvény tartalmazhatja a command függvény argumentumok nélküli hívását (azaz ( command ) ), amely megszakítja az elôzô command függvény által aktivizált AutoCAD parancsot. Lásd még: a "Hibakezelés" című részt a 194. oldalon, ahol példát talál egy olyan hibakezelôre, amely megvizsgálja az exit vagy a quit függvény által visszaadott karakterláncot. (eval kifejezés) A kifejezés kiértékelésének eredményével tér vissza, ahol a kifejezés helyén tetszôleges AutoLISP kifejezés szerepelhet. Vegyük például az alábbi értékadó utasításokat: (setq a 123) (setq b a) ebben az esetben: (eval 4.0) (eva1 (abs -10)) (eva1 a ) (eval b) eredménye 4.0 eredménye 10 eredménye 123 eredménye 123 (exit) Az exit függvény kilépést hajt végre az aktuális

alkalmazásból. Az exit függvény hívásának eredményeképpen a quit/exit megszakítás hibaüzenet, majd az AutoCAD Parancs: promptja jelenik meg. Lásd még: a quit függvény ismertetését. (exp szám) Ez a függvény az e konstansnak a szám kitevôre emelt hatványával tér vissza (természetes logaritmus inverze). Az eredmény egy valós szám lesz. Például: (exp1.0) (exp 2.2) (exp -0.4) eredménye 2. 71828 eredménye 9. 02501 eredménye 0. 67032 (expand szám) Csomóponti (node) területet jelöl ki a szegmensek kívánt számának megadásával. Az expand függvényrôl további információk a "Manuális allokáció" című részben találhatók. (expt alap kitevő) Ez a függvény az alap számnak a kitevôre emelt hatványával tér vissza. Amennyiben mindkét szám egész típusú, az eredmény is egész lesz; egyéb esetekben valós szám. Például: (expt 2 4) (expt 3.0 20) eredménye 16 eredménye 9. 0 (findfile fájlnév) A findfile függvény a

fájlnév argumentum által megadott fájlt keresi az AutoCAD könyvtárútvonalán, és ha megtalálja, akkor a teljes, az elérési útvonalat is tartalmazó fájlnéwel tér vissza. A keresés az AutoCAD könyvtárútvonalán a következô sorrendben történik: 1. Az aktuális könyvtár 2. Az aktuális rajzfájlt tartalmazó könyvtár 3. Az ACAD környezetváltozó (amennyiben adott) által kijelölt könyvtárak 4. Az AutoCAD programfájljait tartalmazó könyvtár Megjegyzés: A környezet aktuális beállításától függôen ezen könyvtárak közül kettô vagy több is azonos lehet. A findfile függvény nem használ alapértelmezést a fáj lnévkiterjesztésére, így - ha szükséges - azt is meg kell adnia. Amennyiben a fájl neve nincs részletezve (azaz nem tartalmaz meghajtó/könyvtár elôtagot), az AutoCAD a könyvtárútvonalon keresi, és ha megtalálja, akkor visszaadja a teljes, részletezett nevet. Ha nem találja, akkor ni 1 értékkel tér vissza. Abban az

esetben, ha a meghajtó/könyvtár elôtag is adott, az AutoCAD csak abban a könyvtárban keresi (nem nézi végig a könyvtárútvonalat). Az alábbi példákban a könyvtárak elválasztására a / jelet használjuk, DOS rendszerek esetén azonban a / vagy jel egyaránt használható. Például, ha az aktuális könyvtár az /acad, és ez tartalmazza az abc.lsp nevű fájlt, továbbá aktuálisan az /acad/rajzok könyvtárban lévô egyik fájl szerkesztése van folyamatban, az xyz.txt fájl csak az /acad/support könyvtárban létezik, a nincs nevű fájl pedig nem szerepel a könyvtárkeresési útvonalon, abban az esetben: (findfile "abc.lsp") eredménye "/acad/abc.lsp" (findfile "xyz. txt") eredménye " /acad/support/xyz.txt" (findfile "nincs") eredménye nil Az open függvény elfogadja a findfile által szolgáltatott teljes, részletezett nevet. Lásd még: a "Fájlkeresés" című részt. (fix szám) Ez a

függvény a szám egész típusúvá konvertált értékével tér vissza. A szám egyaránt lehet egész vagy valós típusú. A valós számokat a legközelebbi egész típusú szám értékére csonkolja, eltávolítva a tört részt Például: (fix 3) (fix 3.7) eredménye 3 eredménye 3 Megjegyzés: Amennyiben a szám nagyobb, mint a lehetô legnagyobb egész szám (amely 32 bites platformon +2 147 483 647, illetve -2 147 483 648), a fix függvény egy csonkított valós számot ad vissza (az AutoLISP és az AutoCAD között átvihetô egész számok azonban csak 16 bites értékre korlátozódnak). (float szám) Ez a függvény a szám valós típusúvá konvertált értékével tér vissza. A szám egyaránt lehet egész Vagy valós típusú. Például: (float 3) (float 3.75 ) eredménye 3.0 eredménye 3. 75 (foreach név lista kifejezés.) Ez a függvény a listán végighaladva, annak minden elemét hozzárendeli a névhez, és a listában lévô minden elem esetére

mindegyik ki fej ezést kiértékeli. A függvényhívásban tetszôleges számú kifejezés adható meg A foreach függvény az utolsó kifejezés kiértékelésének eredményével tér vissza. Például: (foreach n (a b c) (print n)) az alábbiaknak felel meg: (print a) (print b) (print c ) eredménye c azzal a különbséggel, hogy a foreach függvény csak az utoljára kiértékelt kifejezés eredményével tér vissza. (gc) Végrehajt egy hulladékgyűjtô folyamatot, amely felszabadítja a használaton kívüli csomópontokat. A hulladékgyűjtô folyamat részletes magyarázatát a "Csomóponti terület" című részben. (gcd szám1 szám2) Ez a függvény a száml és szám2 legnagyobb közös osztójával tér vissza. A száml és s2ám2 értékeknek egész típusúaknak kell lenniük. Például: (gcd 81 57) eredménye (gcd 12 20) eredménye (getangle (pont) [prompt]) Ez a függvény arra vár, hogy a felhasználó megadjon egy szöget, majd ezután a szög

radiánban kifejezett értékével tér vissza. A getangle a szöget az ANGBASE rendszerváltozó által meghatározott kiinduló iránytól méri az óramutató járásával ellentétes irányban növekvô értékkel. Az eredményül kapott szög radiánokban van kifejezve, és az aktuális szerkesztési síkban (az aktuális FKR XY síkja az aktuális kiemelési magasságban) értendô. A prompt egy opcionális karakterlánc, amelyet az AutoCAD promptként jelenít meg, a pont pedig az aktuális FKR egy opcionális 2D bázispontja. A szöget az AutoCAD aktuális szögmértékegységében kifejezve, a billentyűzeten begépelve is megadhatja. Jóllehet a szögek aktuális kifejezési formátuma fok, grád vagy bármely más mértékegység lehet, a függvény mindig radiánban kifejezett szögértékkel tér vissza. A felhasználó meg is mutathatja a szöget, a képernyôn két tetszôleges 2D pont kijelölésével. Az AutoCAD az elsô pontból kiindulva egy

"gumivonalat" húz a szálkereszt aktuális pozíciójáig, láthatóvá téve ezzel a szöget. Amennyiben megadta a getangle függvény opcionális pont argumentumát, akkor ez lesz a két pont közül az elsô, így a felhasználónak elég a másik pontot kijelölni, hogy megmutassa a szöget. Megadhat 3D pontot is, de ez zavaró lehet, mivel a szög mérése mindig az aktuális szerkesztési síkon törénik. Fontos, hogy megértse a különbséget a getangle függvény input szöge és visszatérô szögértéke között. A felhasnáló által a getangle függvénynek megadott szögek értéke az ANGDIR és ANGBASE rendszerváltozók aktuális beállításán alapszik. Az így megadott input szöget azután a getangle az ANGDIR figyelembevétele nélkül, az óramutató járásával ellentétes irányban méri, az ANGBASE aktuális beállítása szerinti nulla radiánhoz képest. Példák a getangle hívására: (setq szög (getangle)) (setq szög (getangle (1.035)))

(setq szög (getangle "Melyik irányban? ")) (setq szög (getangle (1.035) "Melyik irányban? ")) A getangle függvény adatbeviteli promptjára válaszul nem adhat meg egy másik AutoLISP kifejezést. Amennyiben ezt mégis megpróbálja, akkor a következô üzenet jelenik meg: ismételt belépés az AutoLISP-be nem lehetséges. Kapcsolódó témák: Lásd az illusztrációt és a getorient függvénnyel való összehasonlítást. Lásd még az initget függvény ismertetését. (getcorner pont [prompt]) A getcorner függvény, a getpoint függvényhez hasonlóan, az aktuális FKR egy pontjával tér vissza. A getcorner azonban argumentumként egy pont alappont megadását várja, és ebbôl a pontból a szálkereszt mozgatásával egy téglalapot rajzol ki a képernyôn. A prompt argumentum egy opcionális karakterlánc, amely promptként fog megjelenni. Az alappont az aktuális FKR-ben van kifejezve. Ha a felhasználó 3D pontot ad meg, akkor annak Z

koordinátájáról a függvény nem vesz tudomást; Z koordinátaként az aktuális kiemelési síkot fogja használni. A getcorner függvény adatbeviteli promptjára válaszul nem adhat meg egy másik AutoLISP kifejezést. Kapcsolódó témák: Lásd a getpoint és az initget függvények ismertetését. (getdist (pont) [prompt]) A getdist függvény arra vár, hogy a felhasználó egy távolságadatot, illetve egy vagy két pontot adjon meg. Ezután a két pont távolságának megfelelô valós számmal tér vissza. A távolságot az AutoCAD aktuális hosszmértékegységében kifejezve is megadhatja egy szám bebillentyűzésével. Jólleht a távolságok aktuális kifejezési formátuma láb és hüvelyk (építészeti) is lehet, a függvény mindig valós számként adja vissza a távolságot. Egy távolságot úgy is megadhat, hogy kijelöl két pontot. Ebben az esetben a getdist függvény kiszámítja a köztük lévô távolságot, gumivonalat húzva az elsô pontból a

szálkereszt aktuális pozíciójáig, ezzel téve szemléletessé a távolságot. A pont a getdist opcionális 2D vagy 3D alappont argumentuma az aktuális FKR-ben Ha megadja a pont argumentumot, akkor a két pont közül ez lesz az elsô, és a függvény csak a második pont megadását kéri. 3D pont megadása esetén a visszatérési érték egy térbeli (3D) távolság lesz. Az initget függvény 64 értékű bitjének beállításával a getdi st függvény utasítható a 3D pontok Z koordinátájának figyelmen kívül hagyására, ekkor a visszatérési érték síkbeli távolság (2D) lesz. A prompt argumentum egy opcionális karakterlánc, amely promptként fog megjelenni. A getdist függvény adatbeviteli promptjára válaszul nem adhat meg egy másik AutoLISP kifejezést. A következôkben példákat láthat a getdist függvény használatára. (setq távs (getdist)) (setq távs (getdist (1.0 35))) (setq távs (getdist "Mekkora a távolság ")) ( setq távs (

getdist (1.0 35) "Mekkora a távolság? ")) Kapcsolódó témák: Lásd az initget függvény ismertetését. (getenv változónév) Ez a függvény az operációs rendszer egy környezetváltozójához hozzárendelt karakterlánc értékével tér vissza. A változónév argumentum a kiolvasni kívánt változó nevének karakterláncát tartalmazza. Amennyiben ez a változónév nem létezik, a getenv függvény nil értékkel tér vissza. Például, ha az ACAD környezetváltozó értéke /acad/support, a NINCS nevű környezetváltozó pedig nem létezik, akkor: (getenv "ACAD") eredménye "/acad/support" ( get env " NINCS " ) eredménye nil Megjegyzés: UNIX operációs rendszerek esetében ACAD és acad két különbözô környezetváltozóra való hivatkozást jelent, mivel a UNIX operációs rendszer különbséget tesz a kis- és nagybetűk között. (getfiled cim alapértelmezés kiterjesztés flagek) A getfiled függvény egy

párbeszédablakot jelenít meg, amely az elérhetô és a megadott kiterjesztéssel rendelkezô fájlok felsorolását tartalmazza. Ennek segítségével különbözô meghajtókat és könyvtárakat "átfésülve" kiválaszthat egy meglévô fájlt, vagy megadhatja egy új fájl nevét. Ez a függvény egy fájlnév megadását kéri a felhasználótól az AutoCAD fájlkiválasztásra szolgáló szabvány párbeszédablakának felhasználásával. A cím argumentum az egész párbeszédablak címét, az alapértelmezés az alapértelmezés szerinti fájlnevet (amely üres karakterlánc [ " " ] is lehet), a kiterjesztés pedig a fájlnév alapértelmezés szerinti kiterjesztését (üres karakterlánc [" "] esetén a kiterjesztés alapértelmezés szerint * lesz) adja még. Az alábbi ábra ezen argumentumoknak a párbeszédablak megjelenésére gyakorolt hatását mutatja be Ha a párbeszédablak megkapja egy fájl nevét a felhasználótól, akkor a

getfiled függvény a fájlnevet tartalmazó karakterlánccal, máskülönben pedig ni l értékkel tér vissza. A flagek argumentum egy egész típusú érték (bit-kódolású mezô), amely a párbeszédablak viselkedését szabályozza. Amennyiben egyidejűleg több feltételt kíván kikötni, akkor adja össze az értékeket (tetszôleges kombinációban), így egy 0 és 15 közé esô flagek értéket állíthat elô. A flagek argumentum értékei, és azok jelentése a következô:: A getfiled függvény flagek opciói Érték Jelentés 1 Egy új fájl létrehozására irányuló kérést jelez 2 Letiltja a Bebill. nyomógombot 4 8 Tetszôleges fájlkiterjesztés megadását felhasználónak A könyvtárakban keresi a megadott fájlnevet engedi meg a A következôkben részletesebben ismertetjük a flagek értékeit: Érték =1 (bit 0) Ezt a bitet akkor kell beállítani, ha Ön egy létrehozni kívánt új fájl nevét kéri a felhasználótól. Egy megnyitni

kívánt meglévô fájl nevére irányuló kérés esetén nem szabad beállítania ezt a bitet. Ez utóbbi esetben, ha a felhasználó egy még nem létezô fájl nevét billentyűzi be, akkor a párbeszédablak alján egy hibaüzenet jelenik meg. Amennyiben ez a bit be van állítva, és a felhasználó egy már létezô fájl nevét választja ki, akkor az AutoCAD egy figyelmeztetô ablakot jelenít meg, amelyben választási lehetôséget kínál a felhasználónak, hogy folytatja vagy elveti a műveletet. Érték =2 (bit 1) Letiltja a Bebill. nyomógombot Ez a bit automatikusan beállításra kerül, ha a getfiled hívására egy másik párbeszédablak aktív állapotában kerül sor (máskülönben a másik párbeszédablakot is eltüntetné a képernyôrôl). Amennyiben ez a bit nincs beállítva, a Bebill. nyomógomb engedélyezett Ha a felhasználó azt választja ki, abban az esetben a párbeszédablak eltűnik, és a getfiled függvény az 1 értékkel tér vissza. Érték

= 4 (bit 2) Lehetôvé teszi, hogy a felhasználó a fájlnak tetszôleges kiterjesztést adjon meg, vagy egyáltalán ne adjon meg kiterjesztést. Amennyiben ez a bit nincs beállítva, akkor a getfiled függvény csak a kiterjesztés argumentumában megadott kiterjesztést fogadja el, illetve azt fűzi hozzá a fájl nevéhez, ha a felhasználó nem ad meg kiterjesztést a Fájl: szerkesztôablakban. Érték = 8 (bit 3) Amennyiben ez a bit be van állítva, a 0. bit pedig nincs, a getfiled függvény keresést folytat a megadott fájlnév után a könyvtárakban. Amennyiben a fájlt, illetve az azt tartalmazó könyvtárat a könyvtárkeresési útvonalon találja meg, akkor az elérési útvonalat leválasztva, csak a fájlnevet adja vissza. (Nem választja le az útvonalnevet, ha talál ugyanilyen nevű fájlt, de egy másik könyvtárban.) Amennyiben ez a bit nincs beállítva, akkor a getfiled függvény az elérési útvonalat is magában foglaló teljes fájlnéwel tér vissza.

Abban az esetben célszerű beállítani ezt a bitet, ha egy olyan meglévô fájl megnyitására használja a párbeszédablakot, amelynek nevét el kívánja menteni a rajzban (vagy egyéb adatbázisban), és amelyet késôbb a findfile hívásával szándékozik megkeresni. (getint [prompt]) Ez a függvény arra vár, hogy a felhasználó egy egész értéket adjon meg, és ezzel az értékkel tér vissza. Az értéknek a -32768 és +32767 közötti tartományba kell esnie. A prompt argumentum egy opcionális karakterlánc, amely promptként fog megjelenni. Például: (setq szám (getint)) (setq szám (getint "Adjon meg egy számot: ")) A getint függvény adatbeviteli promptjára válaszul nem adhat meg egy másik AutoLISP kifejezést. Lásd még: a "Felhasználói input (getxxx) függvények" című részt , valamint az initget függvény ismertetését. (getkword [prompt]) A getkword függvény egy kulcsszó megadását várja a felhasználótól. Az

érvényes kulcsszavak listáját a getkword hívása elôtt az initget függvény segítségével kell megadni. A prompt argumentum egy opcionális karakterlánc, amely promptként fog megjelenni. A getkword függvény a felhasználó válaszának megfelelô kulcsszó karakterlánc értékével tér vissza. Amennyiben a felhasználó nem a kulcsszavak egyikével válaszol, az AutoCAD megismétli a kérést. Üres válasz (0) esetén (ha az megengedett) a getkword függvény nil értékkel tér vissza. Ugyancsak nil értékkel tér vissza a függvény, ha hívását nem elôzte meg olyan initget hívás, amely egy vagy több kulcsszót állított be. Példa: A következô példában az initget függvény olyan hívása szerepel, amely kulcsszavak (Igen és Nem) listáját állítja fel, valamint letiltja az üres választ (bi tek értéke 1) a soron következô getkword függvény számára: (initget 1 "Igen Nem") (setq x (getkword "Biztos? (Igen vagy Nem)")) A

fenti programrészlet megkérdezi a felhasználót, és válaszától függôen az x szimbólumot Igenre vagy Nemre állítja be. Ha a válasz egyik kulcsszónak sem felel meg, vagy a felhasználó üres választ ad, akkor az AutoCAD a prompt argumentumban megadott karakterláncot megjelenítve megismétli a kérdést. Amennyiben a prompt argumentum nincs megadva, az AutoCAD ezt a promptot jeleníti meg: Próbálja meg újból: A getkword függvény adatbeviteli promptjára válaszul nem adhat meg egy másik AutoLISP kifejezést. Lásd még: a "Felhasználói input (getxxx) függvények" című részt ,valamint az initget függvény ismertetését. (getorient [pont] [prompt]) Ez a függvény a getangle függvényhez hasonló, azzal a különbséggel, hogy a getorient visszatérési szögértéke független az AutoCAD ANGBASE és ANGDIR rendszerváltozóitól. A getorient függvény a szögeket mindig úgy méri, hogy a nulla radián jobbra (Keletre) mutat, és a szögek az

óramutató járásával ellentétes irányban növekszenek. A getangle függvényhez hasonlóan, a getorient a szögek visszatérési értékét radiánban fejezi ki, az aktuális szerkesztési síkban értelmezve. A pon t és a prompt argumentum szerepe ugyanaz, mint a getangle függvény esetében. Fontos, hogy megértse a különbséget a getorient függvény input szöge és visszatérési szögértéke között. A felhasználó által a getorient függvénynek megadott szögek értéke az ANGDIR és ANGBASE rendszerváltozók aktuális beállításán alapszik. Az így megadott input szöget azután a getorient az ANGDIR és az ANGBASE figyelembevétele nélkül, az óramutató járásával ellentétes irányban méri, mindig a jobbra mutató nulla radiánhoz képest. A fentiekbôl következôen, ha Ön a MÉRTEGYS paranccsal, vagy az ANGDIR illetve ANGBASE renászerváltozókkal más nulla irányt, vagy a szögek növekedésének más irányát állította be, akkor bizonyos

átszámításokat kell végeznie. A getangle függvényt kell használnia abban az esetben, ha egy elforgatási értékre (relatív szögre) van szüksége, ellentétben a getorient függvénnyel, amely egy irány (abszolút szög) meghatározására alkalmas. A getorient függvény adatbeviteli promptjára válaszul nem adhat meg egy másik AutoLISP kifejezést, Lásd még: a "Felhasználói input (getxxx) függvények" című részt ,valamint a getangle és az initget függvények ismertetését. (getpoint [pont] [prompt]) Ez a függvény egy pont megadását várja a felhasználótól. A pon t argumentum egy opcionális 2D vagy 3D alappont az aktuális FKR-ben, a prompt pedig egy opcionálisan megjeleníthetô karakterlánc. A kért pontot a felhasználó kijelölheti a képernyôn, vagy megadhatja koordinátáinak az aktuális mértékegységformátumban történô bebillentyűzésével. Abban az esetben, ha az opcionális pont alappont is szerepel az argumentumok

között, az AutoCAD egy "gumivonalat" húz ebbôl a pontból a szálkereszt aktuális pozíciójáig. Például: (setq p (getpoint)) (setq p (getpoint "Hol?")) (setq p (getpoint (1.5 20) "Második pont:")) A függvény visszatérési értéke az aktuális FKR-ben kifejezett 3D pont lesz A getpoint függvény adatbeviteli promptjára válaszul nem adhat meg egy másik AutoLISP kifejezést. Lásd még: a "Felhasználói input (getxxx) függvények" című részt ,valamint a getcorner és az initget függvények ismertetését. (getreal [prompt]) Ez a függvény egy valós számérték megadását várja a felhasználótól, és ezzel az értékkel tér vissza. A prompt argumentum egy opcionális karakterlánc, amely promptként fog megjelenni. Például: (setq val (getreal)) (setq val (getreal "Méretaránytényezô:")) A getreal függvény adatbeviteli promptjára válaszul nem adhat meg egy másik AutoLISP kifejezést. Lásd még:

a "Felhasználói input (getxxx) függvények" című részt ,valamint az initget függvény ismertetését. getstring (cr) [prompt]) A getstring függvény egy karakterlánc megadását várja a felhasználótól, és eredményként ezzel a karakterlánccal tér vissza. Amennyiben a karakterlánc hossza meghaladja a 132 karaktert, a függvény csak az első 132 karakterrel fog visszatérni. Amennyiben a megadott karakterlánc visszahajló törtjelet () tartalmaz, ezt a függvény két visszahajló törtjellé (\) konvertálja. Erre azért van szükség, hogy a visszatérési érték más függvények által használható fájlneveket (elérési útvonallal együtt) is tartalmazhasson. Amennyiben az argumentumok között a cr is szerepel, és értéke nem nil, akkor a megadott karakterlánc szóköz karaktereket is tartalmazhat (így csak a * billentyűvel lehet lezárni). Egyéb esetekben az input karakterlánc egy szóközzel vagy a 0 billentyűvel zárható le. A prompt

argumentum egy opcionális karakterlánc, amely promptként fog megjelenni. Például: (setq s (getstring "Mi az Ön keresztneve? ")) válasz: Pál eredménye: "Pál" (setq s (getstring "Adja meg a fájl nevét: ")) válasz: acad erv ajz eredménye: "\acad\terv\rajz\" Megjegyzés: Ha egy rutinban a felhasználótól több ismert opció (kulcsszó) egyikének megadását várja, akkor használja inkább a getkword függvényt. A getstring függvény adatbeviteli promptjára válaszul nem adhat meg egy másik AutoLISP kifejezést. Lásd még: a getkword függvény ismertetését. (getvar változónév) Ez a függvény egy AutoCAD rendszerváltozó értékét olvassa ki. A rendszerváltozó nevét idézőjelek közé kell zárni. Például: Tételezzük fel például, hogy a legutoljára megadott lekerekítő ív sugara 0.25 egység volt: (getvar "FILLETRAD") eredménye 0.25 Amennyiben az AutoCAD számára ismeretlen rendszerváltozó

értékét próbálja lekérdezni, a getvar függvény nil értékkel tér vissza. Lásd még: a setvar függvény ismertetését. (graphscr) Egyképernyôs AutoCAD konfigurációk esetében a graphscr függvény a szöveges képernyőről a grafikus képernyőre vált át. Ez egyenértékű az AutoCAD GRAFKÉP parancsával, vagy a Képváltó billentyű lenyomásával (amikor a szöveges képernyő az aktuális). A graphscr ellentettje a textscr függvény. A graphscr függvény mindig ni1 értékkel tér vissza. Lásd még: a textscr és a textpage függvények ismertetését. (grclear) A grclear függvény letörli az aktuális nézetablakot. (Egyképernyős rendszerek esetében először a szöveges képernyőről átvált grafikus képernyőre.) A parancs a prompt, státusz- és menüterületeket érintetlenül hagyja A grafikus képernyő korábbi tartalma a redraw függvénnyel állítható vissza. A grclear függvény mindig ni1 értékkel tér vissza. (grdraw ponttól

pontig szín [kiemelés]) A grdraw függvény két pont közé egy vektort rajzol az aktuális nézetablakban. A ponttól és a pontig argumentumok 2D vagy 3D pontok (két vagy három valós számból álló listák), amelyek a vektor végpontjait határozzák meg az aktuális FKR rendszerben. Az AutoCAD a vektornak a képernyőn kívülre eső részét lehagyja A függvény a vektort az egész típusú szín argumentum által megadott színnel rajzolja meg; jelöli az XOR tintát, amely egy olyan "szín", mely az átrajzolt objektumok színét a kiegészítő színükre fordítja át, saját magát pedig kioltja. Amennyiben az opcionális, egész típusú kieme1és argumentum adott, és értéke nullától különböző, akkor a vektor rajzolása kiemelt megjelenítéssel történik, a megjelenítő eszköz alapértelmezés szerinti kiemelési módszerének megfelelően (általában szaggatott vonallal). A kiemelés argumentum elhagyása, vagy nulla értéke esetén a grdraw

függvény a normál megjelenítési módot alkalmazza. A grvecs függvény segítségével egyszerre több vektort is rajzolhat a grafikus képernyőre. (grxead (nyomkövetés) (minden-billentyű [kurzortípus)]) A grread függvény közvetlenül olvassa a felhasználó által az AutoCAD bármelyik adatbeviteli eszköze útján megadott következô inputot; opcionálisan a pozícionáló eszköz mozgását is nyomon követheti. Ezt a módszert alkalmazza az AutoCAD a vontatás művelete során. Vigyázat: Csak igen speciális AutoLISP rutinokban lehet szükség erre a függvényre: az AutoLISP által igényelt adatbevitel a legtöbb esetben a különbözô getxxx függvények (mint pl. getstring, getreal stb) útján történik Ha a nyomkövetés argumentumot is megadja, és ennek értéke nem nil, akkor a pozícionáló eszköz mozgatása közben is megkaphatja annak aktuális koordinátáit, kiválasztó nyomógomb lenyomása nélkül. A minden-billentyű argurroentum egy

opcionális egész érték (bit-kódolású mezô). Amennyiben a minden-billentyű argumentum jelen van, a grread a megadott kód függvényében különbözô egyéb funkciók ellátására is alkalmassá válik. A kurzortípus argumentum a képernyôn megjelenô kurzor típusának beállítására szolgál. Nyomkövetés Ha értéke nem nil, akkor nyomon követi a pozícionáló helyzetét. minden-billentyű Ha adott, akkor a minden-billentyű argumentumnak az alábbiak billentyű szerint definiált egész számnak kell lennie: Érték =1 (0. bit) Vontatási mód koordinátákat ad vissza Amennyiben ez a bit be van állítva, és a felhasználó egy nyomógomb megnyomása vagy egy billentyű lenyomása helyett a pozícionálót mozgatja, akkor a grread függvény egy olyan listával tér vissza, amelyben az elsô elem az 5-ös típuskód, a második elem pedig a pozícionáló eszköz (egér vagy digitalizáló) aktuális (X,Y) koordinátáit jelenti. Ezt a módszert alkalmazza az

AutoCAD a vontatás művelete során. Érték = 2 (1. bit) Minden billentyű értékét visszaadja, beleértve a funkció- és a kurzorbillentyűk kódját is, továbbá nem mozdítja el a kurzort egy kurzorbillentyű lenyomásakor. Érték = 4 (2 bit) A kurzornak a képernyôn történô megjelenítéséhez felhasználja a kurzortípus argumentumban átadott értéket. Ennek opciói alább láthatók. Érték = 8 (3. bit) Nem jeleníti meg a hiba: konzol megszakítás hibaüzenetet a CTRL+C billentyűk lenyomásakor. kurzortípus Amennyiben adott, a kurzortipus argumentum a képernyôn megjelenô kurzor típusát határozza meg. Értéke egy egész szám lehet; opciói az alábbiak: 0 A normál szálkereszt jelenik meg. 1 Nem jelenik meg kurzor (sem szálkereszt) 2 A rajzelemek kiválasztására szolgáló "célzó" kurzor jelenik meg. Megjegyzés: A kurzortípus argumentumnak csak a grread függvényhívás idején van hatása a kurzor típusára. Megjegyzés:

Számítson arra, hogy az AutoCAD következô verzióiban további szabályzóbitek is definiálásra kerülhetnek. A grread függvény egy listával tér vissza,melynek elsô eleme az input típusát jelölô kód. A lista második eleme egy egész szám vagy egy pont, az input típusától függôen.A visszaadott kódok a következôk:: A grread függvény visszatérési értékei Elsô elem Érték Input típusa 2 Billentyűzet input 3 Kiválasztott pont 4 Képernyô-/Legördülô menütétel (a pozícionáló eszköztôl származóan) 5 6 Pozícionáló eszköz (csak ha a nyomkövetés be van kapcsolva) BUTTONS menütétel Második elem Érték változó 3D pont 0-tól 999-ig 1001-tôl 1999-ig 2001-tôl 2999-ig 3001-tôl 3999-ig .és így tovább, egészen 16001-tôl 16999-ig 3D pont 0-tól 999-ig 1000-tôl 1999-ig 2000-tól 2999-ig 3000-tól 3999-ig 7 8 9 10 11 TABLET1menütétel TABLET2menütétel TABLET3menütétel TABLET4menütétel AUX menütétel 0-tól 32767-ig

0-tól 32767-ig 0-tól 32767-ig 0-tól 32767-ig 0-tól 999-ig 1000-tôl 1999-ig 2000-tól 2999-ig 3000-tól 3999-ig 12 Pontkijelölô nyomógomb (6-os vagy 11-es típusú visszatérési értéket követôen) 3D pont Jelentés Karakterkód Pont koordinátái Képernyômenü-mezô száma POP1menümezô száma POP2menümezô száma POP3menümezô száma . POP16menümezô száma Vontatás mód koordináták Nyomógomb száma a BUTTONS1menüben Nyomógomb száma a BUTTONS2menüben Nyomógomb száma a BUTTONS3menüben Nyomógomb száma a BUTTONS4menüben Táblamezô száma Táblamezô száma Táblamezô száma Táblamezô száma Nyomógomb száma az AUX1menüben Nyomógomb száma az AUX2menüben Nyomógomb száma az AUX3menüben Nyomógomb száma az AUX4menüben Pont koordinátái A grread függvény végrehajtása közben a CTRL+C billentyűk lenyomása meg szakítja az AutoLISP programot (hacsak a minden-billentyű argumentum nem akadályozza ezt meg).Bármilyen más input

közvetlenül a grread függvénynek adódik át, lehetôvé téve az alkalmazás számára az adatbeviteli eszközök feletti teljes ellenôrzést. Amennyiben a felhasználó a képernyômenü vagy a legördülô menü egyik mezôjén belül nyomja meg a pontkijelölô nyomógombot, a grread függvény a 11-es típusú kóddal tér vissza, a rákövetkezô hívás alkalmával viszont nem ad vissza 12-es kódot: a 12-es típusú kód csak akkor követi a 6-os vagy 11-es kódot, ha a pontkijelölô nyomógomb megnyomására a képernyô grafikus területén került sor. Fontos, hogy a 12-es típusú adatot törölje a pufferbôl, mielôtt a pontkijelölô nyomógombbal vagy egy AUX funkcióval újabb műveletet kísérelne meg. Ezt a következôhöz hasonló, beágyazott grread függvényhívással valósíthatja meg: (setq kód 12 (grread (setq kód (grread)))) Ez a hívássorozat a 12 es típusú lista értékét az eszközrôl ömlesztve érkezô inputként veszi át. Megjegyzés:

Mivel az AutoCAD által támogatott platformokon különbözôképpen történik az input kezelése, elôfordulhat, hogy a grread függvény váratlan eredménnyel tér vissza. • Azon platformok esetében, amelyek rendszeregeret használnak, az alapértelmezés szerinti pozícionáló eszköz 11-es kódot eredményez 6-os helyett. • Macintosh platformon a POP menük 11-es kódot eredményeznek 4-es kód helyett. Szintén a MAC esetében, a dupla kattintás 11-es kódot eredményez (6-os helyett), és egy 5-ös kódú koordinátapár követi, ha az aktuális nézetablakban következett be. Ellenkezôleg, ha a dupla kattintásra nem az aktuális nézetablakban kerül sor, akkor 3-as kódot eredményez, melyet egy 11-es kód követ. (grtext [mező szöveg [kiemelés]]) A grtext függvény az AutoCAD grafikus képernyôjének szöveges részébe ír. Ha a mezô argumentum értéke nulla és a legmagasabb számú képernyômenümezô számánál eggyel kisebb érték közé esik, akkor

a szöveg karakterlánc argumentumot az így megadott képernyômenü-mezôben jeleníti meg. Ha a karakterlánc túl hosszú ahhoz, hogy a menümezôben elférjen, akkor a függvény csonkolja, ha pedig rövidebb, akkor szóközökkel egészíti ki. Ha a megadott mezôszám érvénytelen, akkor a függvény nil értékkel tér vissza Amennyiben az opcionális, egész típusú kieme1és argumentum adott és pozitív, a grtext kiemelten jeleníti meg a szöveget a megjelölt mezôben. A menümezôkbe elôször a kiemelés argumentum nélkül kell beírni a szöveget, és csak azután kiemelni. Egy mezô kiemelése automatikusan normál módba kapcsolja bármely korábban kiemelt másik mezô megjelenítését. Nulla értékű kieme1és kikapcsolja az adott menütétel kiemelését Negatív értékű kiemelés argumentumot a függvény nem vesz figyelembe. Ez a függvény csak megjeleníti a megadott szöveget a képernyô menüterületén, de nem változtatja meg a mögötte rejlô

menütételt. Amennyiben a grtext hívásában a mezôszám értéke -1, a szöveget a képernyô státuszsorának mód részébe írja. A státuszsor mód részének hossza megjelenítô eszközönként változó (legtöbbjük legalább 40 karaktert megenged). A grtext függvény szükség esetén csonkolja a szöveget, hogy az elférjen a rendelkezésre álló helyen. Amennyiben a mezôszám értéke -2, a grtext függvény a szöveget a státuszsor koordináta részébe írja. Ha a koordináta-követés be van kapcsolva, akkor az ebbe a mezôbe írt értékek azonnal felülíródnak, amint a pozícionáló eszköztôl új koórdináták érkeznek. A -1 és -2 mezôszámok esetén a kieme1és argumentumról a függvény nem vesz tudomást. Végül, a grtext függvény argumentumok nélkül is meghívható, ebben az esetben az összes szöveges területet visszaállítja a szabvány állapotba. A SCREENBOXES rendszerváltozó lekérdezésével megállapítható az adott

konfigurációban rendelkezésre álló képernyômenü-mezôk száma. (grvecs vektorlista [transzform]) Több vektort rajzol a grafikus képernyôre. A vektorlísta egész típusú opcionális színszámok és pontlista-párok sorozatából tevôdik össze. A vektorlista formátuma a következô: ([színl] (ponttóll) (pontigl) [szín2] (ponttól2) (pontig2).) Az opcionális szín értékek az ôket követô összes vektorra vonatkoznak, egészen addig, amíg a vektorlista egy másik színt nem határoz meg. A színek meghatározása egész számokkal történik Az AutoCAD színek száma 0tól 255-ig terjed Amennyiben a szín értéke nagyobb mint 255, a következô vektorokat a függvény XOR tintával rajzolja meg, amely egy olyan "szín", mely az átrajzolt objektumok színét a kiegészítô színükre fordítja át, saját magát pedig kioltja. A szín nullánál kisebb értéke a vektor kiemelt megjelenítését eredményezi A kiemelés módja a megjelenítô

eszköztôl függ. A legtöbb képernyômeghajtó a kiemelést szaggatott vonallal jelzi, egyes típusok azonban eltérô színt használnak erre a célra. A pontlista-párok a vektorok végpontjait határozzák meg az aktuális FKR rendszerben. Ezek két- vagy háromdimenziós pontok lehetnek. Fontos: Ezeket a pontokat párosával -tehát két, egymást követô pontlistában- kell megadni, máskülönben a grvecs hívása hibához vezet. Az AutoCAD a vektornak a képernyôn kívülre esô részét lehagyja Sikeres hívás esetén a grvecs függvény nil értékkel tér vissza. Példák A következô függvényhívás öt függôleges vonalat rajzol a képernyôre, mindegyiket más színnel: (grvecs (1 (1 2) (1 5) vörös vonal az (1,2) ponttól az (1,5) pontig (2 (2 2) (2 5) sárga vonul a (2,2) ponttól a (2,5) pontig (3 (3 2) (3 5) zöld vonal a (3,2) ponttól a (3,5) pontig (4 (4 2) (4 5) v.kék vonal a (4,2) ponttól a (4,5) pontig (5 (5 2) (5 5)) kék vonal az (5,2) ponttól az

(5,5) pontig Az opcionális transzform argumentum egy transzformációs mátrix, melynek segítségével megváltoztathatja a vektorlistában definiált vektorok helyét és méretarányát. Ez a mátrix egy lista, amely maga is négy, egyenként négy valós számot tartalmazó listát tartalmaz. A következô mátrix például 10 értékű (változást nem okozó) léptéknek, és 5.0,50,00 értékű eltolásnak felel meg: ((1.0 00 00 50) (0.0 10 00 50) (0.0 00 10 00) (0.0 00 00 10) Amennyiben ezt a mátrixot a fenti vektorlistára alkalmaznánk, akkor azt 5.0,50,00 irányban tolná el Lásd még: a nentselp függvény ismertetését. (handent sorszám) Egy rajzelem neve szerkesztési alkalmanként változhat, míg a sorszáma a rajz létezése során állandó marad. Egy rajzelemsorszámot a sorszám argumentumban karakterláncként megadva, a handent függvény az aktuális szerkesztés alkalmával az adott sorszámú rajzelemhez tartozó névvel tér vissza. Az így kapott

elemnév a rajzelemek kezelésére szolgáló bármely függvénnyel végzett művelet során felhasználható. Példa: Egy adott alkalommal a következô függvényhívás: (handent "5A2") lehetséges eredménye <E1emneve: 60004722> Ugyanezen rajz esetében, de másik alkalommal ugyanez a függvényhívás más elemnévvel térhet vissza. Mindkét esetben ugyanarra a rajzelemre hivatkozunk; sorszáma azonos marad, neve azonban alkalomról alkalomra változhat. Ha a rajzban a sorszámozás ki van kapcsolva, vagy a handent függvény érvénytelen sorszámot kapott, illetve ha nincs ilyen sorszám az aktuális rajzban, akkor a függvény nil értékkel tér vissza. A handent függvény az aktuális editálás alkalmával kitörölt rajzelemek nevével is visszatérhet, így a kitörölt rajzelemek az entdel függvénnyel tetszés szerint visszaállíthatók (lásd az entdel függvény ismertetését). (if feltétel-kif akkor-kif [egyébként-kif]) Ez a függvény

feltételesen értékeli ki a kifejezéseket. Ha a feltétel-kif értéke nem nil, akkor az akkor-kif kifejezés kerül kiértékelésre, egyébként az egyébként-kif kifejezés. Az utolsó argumentum (egyébként-kif) el is hagyható Az if függvény a kiválasztott kifejezés értékével tér vissza; amennyiben az egyébként-kif hiányzik és a feltételkifértéke nil, az if függvény nil értékkel tér vissza. Példák: (if (= 1 3) "IGEN!!" "nem.") eredménye "nem" (if (= 2 (+ 1 1)) "IGEN!:") eredménye "IGEN” (if (= 2 (+ 3 4)) "IGEN:!") eredménye nil Lásd még: a progn függvény ismertetését. (initget [bitek) [karakterlánc]) Ez a függvény a következô entsel, nentsel, nentselp vagy getxxx függvények (kivéve a getstring, getenv és getvar függvényeket) számára különbözô opciókat állít be. Az initget függvény mindig nil értékkel tér vissza Az opcionális bitek argumentum egy egész szám

(bit-kódolású) lehet a következô értékekkel: : Az initget függvénnyel beállitható input opciók Bitérték Jelentés 1 Nem engedélyez üres inputot 2 Nem engedélyez nulla értéket 4 Nem engedélyez negatív értéket 8 Még bekapcsolt LIMCHECK mellett sem ellenôrzi a rajzhatárokat 16 (Jelenleg használaton kívül) 32 A "gumivonalat" vagy az ablakot szaggatott vonallal rajzolja 64 Nem engedélyezi Z koordináta inputját (csak a getdist függvényre vonatkozik) 128 Tetszôleges billentyűzet inputot is visszaad Vigyázat: Az AutoLISP következô verziói további initget szabályzóbiteket is használhatnak, ezért kerülje a táblázatban nem látható, illetve az ebben a részben nem ismertetett bitek beállítását. A speciális szabályzóértékeket csak azok a getxxxfüggvények veszik figyelembe, amelyeknél azoknak értelmük van, amint az a következô táblázatban látható: A felhasználói input függvények és az alkalmazható szabályzóbitek

Figyelem- Szabályzóbitek értékei be vesz Függvény Kulcsszó 1 2 4 8 32 64 128 getint x x x x x getreal x x x x x getdist x x x x x x x getangle x x x x x getorient x x x x x getpoint x x x x x getcorner x x x x x getkword x x x getstring entsel x nentsel x nentselp x A következô felsorolás részletesebben ismerteti az egyes szabályzóbiteket. − Érték=1 (0. bit) Megakadályozza, hogy a felhasználó a kérésre csupán az <ENTER> lenyomásával válaszoljon. − Érték=2 (1. bit) Megakadályozza, hogy a felhasználó a kérésre a nulla érték megadásával válaszoljon − Érték=4 (2. bit) Megakadályozza, hogy a felhasználó a kérésre negatív érték megadásával válaszoljon − Érték=8 (3. bit) Megengedi, hogy a felhasználó az aktuális rajzhatárokon kívül adjon meg egy pontot Ez a feltétel akkor is vonatkozni fog a következô felhasználói input függvényre, ha a LIMCHECK AutoCAD rendszerváltozó aktuálisan be van kapcsolva. −

Érték=16 (4. bit) Jelenleg nincs használatban − Érték=32 (5. bit) Azon függvények esetében, amelyek megengedik, hogy a felhasználó a grafikus képernyôn jelöljön ki egy pontot, e bit beállítása következtében a rajzeditor a "gumivonalat" vagy ablakot folytonos helyett szaggatott vonallal rajzolja meg (egyes képernyômeghajtók szaggatott vonalak helyett eltérô színt használnak). Abban az esetben, ha a POPUPS rendszerváltozó értéke nulla, akkor az AutoCAD figyelmen kívül hagyja ezt a bitet. − Érték=64 (6. bit) Megtiltja Z koordináták átadását a getdist függvénynek, ezáltal az alkalmazás biztosíthatja, hogy ez a függvény csak 2D (síkbeli) távolságokat határozzon meg. − Érték=128 (7. bit) Tetszôleges inputot engedélyez, mintha az egy kulcsszó volna, figyelembe véve elôbb a többi szabályzóbitet és a megadott kulcsszavakat. Ez a bit elsôbbséget élvez a 0 bithez képest; amennyiben a 7. bit be van állítva, és a

felhasználó az <ENTER> billentyűt nyomja le, a függvény üres karakterlánccal tér vissza. Ha az initget függvény olyan szabályzóbitet állít be, amelynek nincs értelme az ezután meghívott felhasználói input függvény esetében, akkor az a bit egyszerűen hatástalan lesz. A bitek tetszôleges kombinációban adhatók össze, és egy 0 és 255 közé esô számértéket eredményeznek. Ha a bitek argumentum nincs megadva, akkor az nulla (nincsenek feltételek) értékkel egyenértékű. Amennyiben a felhasználói adatbevitel nem felel meg egy vagy több megadott feltételnek (például nulla érték, amikor az nem megengedett), abban az esetben az AutoCAD üzenetet küld, és kéri az adatbevitel megismétlését. Kulcsszavak meghatározása − Az opcionális karakterlánc argumentum azon kulcsszavak (opciók) listáját határozza meg, amelyeket a következô entsel, nentsel, nentselp vagy getxxx függvény meg fog vizsgálni, ha a felhasználó nem a kért

típusú adatot (a getpoint esetében például nem egy pontot) adja meg. Amennyiben a felhasználói input megegyezik a listában található kulcsszavak egyikével, az illetô adatbeviteli függvény azzal a kulcsszóval, mint karakterlánccal fog visszatérni. A felhasználtii program megvizsgálhatja, hogy a kulcsszavak egyikét kapta-e eredményül, és minidegyik kulcsszó esetén más műveletet hajthat végre. Ha a felhasználó által megadott adat nem a kért típusú, és egyik kulcsszóval sem egyezik meg, akkor az AutoCAD az adatbevitel megismétlését kéri a felhasználótól. − A karakterlánc argumentum értelmezése a következô szabályok szerint történik: − A kulcsszavakat egy vagy több szóköz választja el egymástól. Például, a "Bal Jobb Fent" karakterlánc három kulcsszót határoz meg. − Az érvényes kulcsszavak csak betűkbôl, számokból és kötôjelekbôl (-) állhatnak. − Mindegyik kúlcsszó meghatározásakor elôírhatja,

hogy az AutoCAD annak rövidítését is elfogadja. Ezt két módon teheti meg: I. A kulcsszó kívánt részét nagybetűkkel, a fennmaradó részt pedig kisbetűkkel adja meg. A nagybetűs rövidítés a kulcsszó bármely részén szerepelhet (például: "VTípus ", "ki Lép " vagy "fenT" ). II. A teljes kulcsszót nagybetűkkel adja meg, és közvetlenül utána, egy vesszôvel elválasztva megismétli a kívánt karaktereket (például: " VTÍPUS,VT"). Ebben az esetben a rövidítésnek tartalmaznia kell a kulcsszó elsô betűjét, ami azt jelenti, hogy a "KILÉP,L" meghatározás nem érvényes. (Ez a második módszer az olyan nyelvű alkalmazások készítéséhez nyújt segítséget, amelyek nem használnak a latin ábécének megfelelô nagy- és kisbetűket.) A két rövid példában szereplô meghatározások -a "vTípus" és a "VTÍPUS,VT"- egyenértékűek: a kulcsszó azonosításához elegendô, ha a

felhasználó a VT karaktereket billentyűzi be (akár nagy-, akár kisbetűvel). A felhasználó a szükséges rész után következô karaktereket is beírhatja, ha azok nem mondanak ellent a meghatározásnak. A fenti példánál maradva, a felhasználó VTÍ vagy VTÍP választ is bebillentyűzhet, V azonban nem elegendô, valami hasonló, például VTLÉPTÉK vagy VTÍPUSA pedig nem egyezik meg a kulcsszó betűivel. − Ha a karakterlánc argumentumban a kulcsszavak teljes egészében nagybetűvel vagy kisbetűvel szerepelnek, akkor azokat az AutoCAD csak egészben bebillentyűzve ismeri fel. Fontos: Az initget függvény által beállított szabályzóbitek és kulcsszavak csak a következô entsel, nentsel, nentselp vagy getxxx függvényhívásra vonatkoznak, azután automatikusan érvényüket vesztik. Ennek következtében nincs szükség újabb függvényhívásra a speciális feltételek törléséhez. Lásd még:A felhasználói input függvények feltételeinek

szabályozása című részt. (inters pont1 pont2 pont3 pont4 [rajta]) Az inters függvény két egyenest vizsgál meg, és a metszéspontjukkal tér vissza, illétve ha nem metszik egymást, akkor nil értékkel. A pont1 és pont2 az elsô, a pont3 és pont4 a második egyenes végpontjai A függvény az aktuális FKR-ben értelmezi mindegyik pontot. Amennyiben mind a négy térbeli (3D) pont, az inters függvény térbeli metszéspontra vizsgálja meg az egyeneseket, egyéb esetekben pedig levetíti ôket az aktuális szerkesztési síkra, és csak a vetületük síkbeli (2D) metszéspontját keresi. Ha az opcionális rajta argumentum is jelen van, és értéke nil, akkor a négy pont argumentum által meghatározott egyeneseket az inters függvény végtelen hosszúságúnak tekinti, és metszéspontjukat abban az esetben is kiszámítja, ha az egyik, vagy mindkét egyenes végpontján túl helyezkedik el. Ha a rajta argumentumot elhagyja, vagy értéke nem nil, akkor a

metszéspontnak a két egyenes közös pontjának kell lennie, máskülönben az inters függvény nil értékkel tér vissza. Vegyük például az alábbi értékadó utasításokat: (setq a (1.0 10) b (90 90)) (setq c (40 10) d (40 20)) ebben az esetben: (inters a b c d) eredménye nil (inters a b c d T) eredménye nil (inters a b c d ni1) eredménye (4.0 40) (itoa egész) Ez a függvény az egész számot karakterlánccá alakítja át, és ezzel a karakterlánccal tér vissza. Példák (itoa 33) eredménye ”33” (itoa-17) eredménye ”-17” (lambda argumentumok kifejezés.) A lambda egy névtelen függvényt definiál. Ezt a függvényt olyan esetben szokás használni, amikor új függvény definiálása nem indokolt. A programozó szándékát is világosabbá teszi, ha a függvény definíciója a felhasználás helyén látható. A lambda függvény az utolsó kifejezés értékével tér vissza, és gyakran használatos az apply és/vagy mapcar függvényekkel együtt,

amikor egy függvényt egy listára alkalmazunk. Például: (apply (lambda (x y z) (* x (- y z)) (5 20 14)) eredménye 30 és (setq számláló 0) (mapcar (lambda (x) (setq számláló (1+ számláló)) (* x 5)) (2 4 -6 10.2)) eredménye (10 2 0 -30 51.0) (last lista) Ez a függvény a lista utolsó elemével tér vissza. A lista nem lehet nil Például: (last (a b c d e)) eredménye E (1ast (a b c (d e))) eredménye (D E) Mint azt a példa mutatja, a last függvény atommal vagy listával is visszatérhet. Megjegyzés: Elsô pillantásra a last megfelelô függvénynek tűnik egy pont Y koordinátájának kiemelésére. Ez igaz is 2D pontok (két valós számból álló listák) esetében, de 3D pontok esetében a last függvény a Z koordinátát fogja eredményül adni. Amennyiben azt szeretné, hogy a programja 2D és 3D pontok esetében is helyesen működjön, azt javasoljuk, hogy az Y koordináták kiemelésére a cadr, a Z koordináták kiemelésére pedig a caddr

függvényt használja. (length lista) Ez a függvény egy egész értékkel tér vissza, amely a listában szereplô elemek számát mutatja. Például: (length (a b c d)) eredménye 4 (length (a b ( c d ))) eredménye 3 (length ()) eredménye 0 (list kifejezés.) Ez a függvény tetszôleges számú kifejezést fűz össze egy listába, és ezzel a listával tér vissza. Például: (list a b c) eredménye (A B C) (list a (b c) d) eredménye (A (B C) D) (list 3.9 67) eredménye (39 67) Az AutoLISP programnyelvben ezt a függvényt gyakran használjuk 2D és 3D pontok (két illetve három valós elemű listák) definiálására. Megjegyzés: Amennyiben a listában nincsenek változók vagy definiálatlan tételek, abban az esetben a list függvény használata helyett közvetlenül, aposztróf jellel is megadhatja a listát. (3.9 67) ugyanazt jelenti, mint (1ist 39 67) Ez a módszer jól alkalmazható asszociációs listák létrehozására és pontok definiálására. Lásd még a

quote függvény ismertetését. (listp tétel) Ez a függvény T értékkel tér vissza, ha a tétel lista, egyéb esetben pedig ni1 értékkel. Például: (1istp (a b c)) eredménye T (1istp a ) eredménye ni1 (1istp 4.343) eredménye ni1 (listp nil) eredménye T (a nil atom is és lista is) (load fájlnév [hibaeset]) Ez a függvény betölt egy AutoLISP kifejezésekbôl álló fájlt, és kiértékeli az abban szereplô kifejezéseket. A fájlnévegy karakterlánc, amely a kiterjesztés nélküli fájlnevet tartalmazza (a függvény a .lsp kiterjesztést feltételezi). A fájlnév könyvtár elôtagot is tartalmazhat, mint például a "/funkc/tesztl" esetében DOS rendszerek esetében a lemezmeghajtó betűjelének használata is megengedett, valamint visszahajló törtjelet () is használhat a törtjel (/) helyett (ne feledkezzen azonban meg arról, hogy egy karakterláncban a \ jelet kell használnia ahhoz, hogy egy visszahajló törtjelet kapjon). Abban az esetben,

ha a fájlnév karakterláncba nem foglalja bele a könyvtár elôtagot, a load függvény a megadott fájl kikereséséhez a findfile függvénynél ismertetett módon végigjárja az AutoCAD könyvtárútvonalát A load betölti a fájlt, ha bárhol megtalálta. Amennyiben a betöltés művelete sikeres volt, a load függvény a fájl utolsó kifejezésének értékével tér vissza, amely gyakran a fájlban utolsóként definiált függvény neve. Amennyiben a load művelet sikertelen, normális esetben egy AutoLISP hibát okoz. Ha azonban a hibaeset argumentumot is megadta, akkor a hibajelzés helyett ennek az argumentumnak az értéke tér vissza. Ez lehetôvé teszi, hogy a load függvényt hívó AutoLISP alkalmazás hiba esetén alternatív műveleteket hajtson végre. Természetesen biztosítani kell, hogy a hibaeset argumentum különbözzön a fájl utolsó kifejezésétôl, máskülönben a load által visszaadott érték nem lesz egyértelmű. Megjegyezzük, hogy ha a

hibaeset argumentum érvényes függvény, akkor kiértékelésre kerül. Ezért ennek a legtöbb esetben karakterláncnak vagy atomnak kell lennie. Példaként tételezzük fel, hogy a /fred/tesztl.lsp fájl a következôket tartalmazza: (defun SAJÁT-FÜGGV1 (x).a függvény leirása) (defun SAJÁT-FÜGGV2 (x).a függvény leirása) valamint, hogy a teszt2.lsp fájl nem létezik Ebben az esetben: (load, "/fred/tesztl") (load "\fred\tesztl") (load "/fred/tesztl" "rossz" ) (load "teszt2" "rossz" ) (load "teszt2") eredménye SAJÁT - FÜGGVÉNY2 eredménye SAJÁT - FÜGGVÉNY2 eredménye SAJÁT - FÜGGVÉNY2 „rossz” Autolisp hibát okoz A load függvényt egy másik AutoLISP függvényen belül is használhatja, sôt rekurzívan is hívható (abból a fájlból, amelyet éppen betölt). Minden egyes alkalommal, amikor egy rajz szerkesztéséhez hozzákezd, az AutoCAD betölti az acad.lsp fájlt (amennyiben az

létezik). Ebben a fájlban elhelyezhet függvénydefiníciókat, amelyek minden egyes rajz szerkesztésének megkezdésekor automatikusan kiértékelésre (definiálásra) kerülnek. Abban az esetben, ha egy sorozat AutoCAD parancsot vagy AutoLISP függvényt kíván automatikusan végrehajtatni a rajzok kezdésekor, elmentésekor vagy befejezésekor, a speciális S:STARTUP függvény definícióját (defun) kell belefoglalnia az acad.lsp fájlba Amennyiben ez a függvény létezik, az AutoCAD automatikusan végrehajtja Lásd még: a defun függvény ismertetését, valamint a "Függvények definiálása és automatikus betöltése" című részt. (log szám) Ez a függvény a szám természetes alapú logaritmusával tér vissza, valós érték formájában. Például: (log 4.5) eredménye 150408 (log 1.22) eredménye 0198851 (logand szám szám.) Ez a függvény a számok listáján elvégzett bitenkénti logikai AND műveletek végeredményével tér vissza. A

számoknak egész típusúaknak kell lenniük, és az eredmény is egész típusú lesz. Például: (logand 7 15 3) eredménye 3 (logand 2 3 15) eredménye 2 (logand 8 3 4) eredménye 0 (logior egész.) Ez a függvény a számok listáján elvégzett bitenkénti logikai inkluzív OR műveletek végeredményével tér vissza. A számoknak egész típusúaknak kell lenniük, és az eredmény is egész típusú lesz. Például: (logior 1 2 4) eredménye 7 (1ogior 9 3) eredménye 11 (lsh száml bitszám) Ez a függvény a szám1 értéknek bitszám bittel történô bitenkénti logikai eltolásával (shift) nyert számértékkel tér vissza. A szám1 és a bitszám értékeknek egész típusúaknak kell lenniük, és az eredmény is egész típusú lesz A pozitív bitszám a szám1 balra tolását, a negatív pedig jobbra tolását jelenti. Az eltolás mindkét esetben nullák beillesztését, és a túlcsorduló bitek elvesztését jelenti. Ha egy egész szám legmagasabb

helyiértékű bitjének (ez a 16 bites gépeken a 16., 32 bites munkahelyeken pedig a 32 bit) helyére egyes kerül, akkor a szám elôjele megváltozik. Például: (lsh 2 1) eredménye 4 (lsh 2 -1) eredménye 1 (lsh 40 2 ) eredménye 160 Megjegyzés: Az (lsh 15384 1) függvényhívás eredménye 16 bites gépeken -32768, 32 bites munkaállomásokon azonban 32768. (mapcar függvény lista1. listan) A mapcar függvény a függvény kiértékelésének eredményével tér vissza, oly módon, hogy a listák elemeit a lista1-tôl a listan-ig egyenként a függvény argumentumaiként kezeli. A1isták számának egyeznie kell a függvény által igényelt argumentumok számával. Például: (setq a 10 b 20 c 30) (mapcar 1+ (list a b c)) eredménye (11 21 31) Ez megfelel az alábbiaknak: (1+a) (1+b) (1+c) azzal a különbséggel, hogy a mapcar az eredményt lista formájában adja vissza. Hasonlóképpen: (mapcar + (10 20 30) (4 3 2)) eredménye (14 23 32) Ez hasonlít az alábbiakhoz: (+

10 4) (+ 20 3) (+ 30 2) A lambda függvénnyel megadhat olyan névtelen függvényt, amelyet a mapcar függvény hajt végre. Ez hasznos lehet abban az esetben, amikor a függvény argumentumai közül néhány érték konstans, vagy más módon jön létre. Például: (mapcar (lambda (x) (+ x 3)) (10 20 30)) eredménye (13 23 33) valamint (mapcar (lambda (x y z) (* x (- y z))) (5 6) (20 30) (14 5.0) eredménye (30 150.0) (max szám szám.) Ez a függvény az adott számok közül a legnagyobb értékével tér vissza. Mindegyik szám lehet valós vagy egész típusú. Ha az összes szám egész, akkor az eredmény is az lesz, ha viszont bármelyik szám valós, akkor az egészek is valósakká lépnek elô, és az eredmény valós szám lesz. Például: (max 4.07 -144 ) (max -88 19 5 2) (max 2.1 4 8) eredménye 4.07 eredménye 19 eredménye 8.0 (mem) Kijelzi az AutoLISP memóriájának aktuális állapotát. További információkat a mem függvényrôl a

"Memóriastatisztika" című részben. (member kifejezés lista) Ez a függvény a ki fejezés elôfordulását vizsgálja a listában, és a lista fennmaradó elemeinek listájával tér vissza, amelynek elsô eleme a kifejezés elsô elôfordulása. Amennyiben a kifejezés nem fordul elô a listában, akkor a member függvény nil értékkel tér vissza. Például: (member c (a b c d e)) (member q (a b c d e)) eredménye (C D E) eredménye nil (menucmd karakterlánc) A menucmd függvény lehetôséget nyújt az AutoLISP programok számára, hogy átkapcsoljanak egy AutoCAD menü egyes lapjai között. Ily módon egy AutoLISP program egy hozzá tartozó menüfájllal összhangban dolgozhat, minden felhasználói adatbevitel alkalmával megjelenítve a választási lehetôségeknek megfelelô almenüt. A menucmd függvény mindig nil értékkel tér vissza A karakterlánc argumentum formája: "szekció=almenü" ahol a szekció a menü szekcióját, az almenü

pedig a szekción belül aktivizálni kívánt almenüt határozza meg. A szekció lehetséges értékei megegyeznek a menüfájl almenü-hivatkozásaiban megengedett értékekkel; ezek az alábbi táblázatban láthatók: A szekció karakterlánc értékei Szekció Menüszekció karakterlánc S SCREEN menü B1-B4 BUTTONS menük 1-tôl 4-ig I IMAGE (ICON) menü P0-P16 Legördülô (POP) menük 0-tól 16-ig T1-T4 TABLET menük 1-tôl 4-ig A1-A4 AUX menük 1-tôl 4-ig M DIESEL karakterkifejezések Megjegyzés: A korábbi AutoLISP verziókkal való kompatibilitás érdekében a "s" szekciót a függvény "B1"-ként értelmezi. Lásd még: További információkat és példákat az "Interaktív output" című részben. (min szám szám.) Ez a függvény az adott számok közül a legkisebb értékével tér vissza. Mindegyik szám lehet valós vagy egész típusú. Ha az összes szám egész, akkor az eredmény is az lesz, ha viszont bármelyik szám valós,

akkor az egészek is valósakká lépnek elô, és az eredmény valós szám lesz. Például: (min 6 8 3 -10.0) (min 73 2 48 5) (min 2 4 6.7) (minusp tétel) eredménye -10.0 eredménye 2 eredménye 2.0 Ez a függvény T értékkel tér vissza, amennyiben a tétel egész vagy valós típusú, és kiértékelése negatív eredményt ad, egyébként a függvény értéke nil lesz. A tétel más típusú értékeire a függvény nem definiált Például: (minusp -1) (minusp -4.293) (minusp 830.2) eredménye T eredménye T eredménye nil (nentsel [prompt]) Ezzel a függvénnyel a beillesztett (egy Blokkon belüli) rajzelemek definíciós adataihoz lehet hozzáférni. A nentsel függvény kéri a felhasználót, hogy válasszon ki egy objektumot. A Traszter aktuális beállítását nem veszi figyelembe (nincs tárgyraszter), hacsak a felhasználó ezt a függvény működése közben külön nem kéri. További szolgáltatásként a Parancs: promptnál, a nentsel függvény az

elôzô initget hívás által meghatározott kulcsszavakat is elfogadja. Ha megadja az opcionális prompt argumentumot, akkor annak karakterláncnak kell lennie. Ha elhagyja, akkor a szabvány Select objetcs: prompt jelenik meg. Amennyiben a választott objektum nem összetett rajzelem (nem Vonallánc vagy Blokk), a nentsel az entsel függvénnyel azonos értékkel tér vissza. Ha azonban a kiválasztott rajzelem Vonallánc, akkor a nentsel listája az alárendelt rajzelem (Csomópont) nevét és a kiválasztás pontját tartalmazza. Ez hasonlít az entsel visszatérési listájához, azzal a különbséggel, hogy a Vonallánc fejrésze helyén a kiválasztott csomópont neve szerepel. A nentsel függvény mindig a Vonallánc kiválasztott szakaszának kezdôpontjával tér vissza. Például, a Vonallánc harmadik szakaszának kiválasztásakor ez a harmadik csomópont lesz. A Vonallánc Seqend eleme soha nem választható ki a nentsel függvénnyel. Amennyiben a választott objektum

egy Blokk részét képezi, a nentsel eredménylistája az alábbiakban ismertetett négy elemet tartalmazza. Ez alól egy Blokk Attribútumainak kiválasztása jelent kivételt, mivel ebben az esetben csak az Attribútum neve és a kijelölési pont szerepel a listában (hasonlóan az entsel által szolgáltatott listákhoz). Egy Blokkon belüli rajzelem kiválasztásakor a lista elsô tétele az adott rajzelem neve. A második tétel az elem kiválasztásához használt pont koordinátáit tartalmazó lista. A harmadik tétel neve Modell-Világ Transzformációs Mátrix. Ez egy olyan lista, amely négy koordinátacsoportokat tartalmazó -allistából áll Ennek a mátrixnak a segítségével lehet egy rajzelem definíciós adatait egy belsô Modell Koordináta-rendszerbôl (MKR) a Világ Koordináta-rendszerbe (VKR) transzformálni. Az MKR origóját a kiválasztott elemet tartalmazó Blokk beillesztési pontja határozza meg. Tengelyeinek iránya a Blokk létrehozásakor használt

FKR tengelyeinek irányával azonos. A negyedik tétel egy lista, amely a kiválasztott rajzelemet magában foglaló Blokk elemnevét tartalmazza. Amennyiben a kiválasztott rajzelem egy beágyazott Blokk (Blokk a Blokkban) része, akkor a lista kiegészül mindazon Blokkok elemnevével, amelyekbe a kiválasztott rajzelem beágyazódott, a "legbelsô" Blokktól kezdve egészen a rajzba beillesztett Blokkig. (<Elem neve: enév1> (Px Py Pz) ((X0 Y0 Z0) (X1 Y1 Z1) (X2 Y2 Z2) (X3 Y3 Z3)) (<Elem neve: enév2> <Elem neve: enévn>)) a rajzelem neve kijelölési pont Modell-Világ Transzformációs Mátrix a rajzelemet tartalmazó legmélyebben beágyazott Blokk elemneve a rajzelemet tartalmazó legkülsô Blokk elemneve Miután rendelkezésére áll a rajzelem neve és a Modell-Világ Transzformációs Mátrix, transzformálni tudja az elemdefiníciós adatok pontjait az MKR-bôl a VKR-be. Az MKR koordinátákban kifejezett definíciós pontokat úgy kaphatja

meg, ha az entget és assoc függvényeket alkalmazza a rajzelem nevére. A nentsel függvény által szolgáltatott Modell-Világ Transzformációs Mátrix ugyanazt a célt szolgálja, mint az, amelyet a nentselp függvény ad eredményül. Ez azonban egy 4x3-as -négy pontból álló tömbként átadódó- mátrix, amelyben megállapodás szerint a sorok képviselnek egy-egy pontot, nem pedig az oszlopok. A transzformáció a következô mátrixszorzással írható le: M00 M01 M02 [X Y Z 1.0] = [X Y Z 10]*[ M10 M11 M12 ] M20 M21 M22 M30 M31 M32 Ennek alapján az új koordináták a következô egyenletekkel származtathatók: X = XMoo + YMlo + ZM2o + M3o Y = XMol + YMl1 + ZM21 + M31 Z = XMo2 + YMl2 + ZM22 + M32 Az Mij értékek -ahol 0<= i,j <=2- a Modell-Világ Transzformációs Mátrix koordinátái, X, Y és Z az elemdefiníciós adatpontot kifejezô MKR koordináták, X, Y és Z pedig az eredményül kapott elemdefiníciós adatpontot kifejezô VKR koordináták.

Megjegyzés: Ilyen típusú mátrixot egyedül ez az AutoLISP függvény használ. A nentselp függvény ahhoz hasonló mátrixot ad eredményül, mint amilyet más AutoLISP és ADS függvények használnak. Lásd még: az "Elemneveket kezelô függvények" című részt, valamint az entsel és az initget függvények ismertetését. (nentselp [prompt] [pont]) A nentselp a nentsel függvényhez hasonló hozzáférési lehetôséget nyújt egy Blokkon belüli rajzelem definíciós adataihoz. Ez a függvény azonban az opcionális prompt argumentum mellett az ugyancsak opcionális pont argumentumában egy kiválasztási pont megadását is elfogadja. Ezáltal lehetôvé teszi egy rajzelem kiválasztását felhasználói adatbevitel nélkül is. A nentselp függvény a következôképpen definiált 4x4-es transzformációs mátrixot szolgáltatja: M00 M01 M02 M03 M10 M11 M02 M03 M20 M21 M22 M23 M30 M31 M32 M33 A mátrix elsô három oszlopa a nagyítást és a forgatást

határozza meg. A negyedik oszlop az eltolási vektor Az ilyen típusú mátrixot használó függvények megállapodás szerint négydimenziós oszlopvektorként kezelik a pontokat. A pontot homogén koordinátákkal fejezik ki, úgy, hogy a pontvektor negyedik eleme egy arányossági tényezô, amelynek értéke normális esetben 1.0 A mátrix utolsó sora az [M30 M31 M32 M33] vektor, amelynek névleges értéke [0 0 0 1]; ezt a vektort az ilyen típusú mátrixot használó függvények jelenleg nem veszik figyelembe. A megállapodás szerint egy pont transzformálását a következô alakú mátrixszorzás jelenti:  X   M00  Y   M   =  10  Z   M20    .   00 10 M01 M11 M21 M02 M12 M22 0.0 0.0 M03   X  M13   Y  ⋅ M23   Z     10 .  10 .  Ez a szorzás a pont egyes koordinátáit a következôképpen adja meg: X = XMoo + YM01 + Zm02 + M03 (1.0) Y = XMl0 + YM11 + ZM12 +

M13 (1.0) Z = XM20 + YM21 + ZM22 + M23 (1.0) Amint a fenti egyenletekbôl látható, az arányossági tényezô és a mátrix utolsó sora elhanyagolható, az eredményt nem befolyásolja. Lásd még: a további információkat a "Transzformációs mátrixok" című részében. (not tétel) Ez a függvény T értékkel tér vissza, amennyiben a tétel értéke nil, egyéb esetekben nil értékkel. Rendszerint a null függvény használatos a listák, a not pedig minden egyéb adattípus vizsgálatára, néhány más típusú vezérlô függvénnyel együtt. Például: (setq a 123) (setq b "karakterek") (setq c nil) ebben az esetben: (not a) eredménye nil (not b) eredménye ni1 (not c) eredménye T (not ‘()) eredménye T (nth n lista) Ez a függvény a lista n-edik elemével tér vissza, ahol az n a keresett elem sorszáma (a lista elsô elemének sorszáma nulla). Abban az esetben, ha az n nagyobb, mint a lista utolsó elemének sorszáma, a függvény nil

értékkel tér vissza. Például: (nth 3 ‘(a b c d e)) (nth 0 ‘(a b c d e)) (nth 5 ‘(a b c d e)) eredménye D eredménye A eredménye ni1 (null tétel) Ez a függvény T értékkel tér vissza, amennyiben a tételhez rendelt érték nil, egyéb esetekben nil értékkel. Például: (setq a 123) (setq b "karakterek") (setq c nil) ebben az esetben: (null a) eredménye nil (null b) eredménye nil (null c) eredménye T (null ()) eredménye T (numberp tétel) Ez a függvény T értékkel tér vissza, ha a téte1 valós vagy egész típusú szám, egyébként nil értékkel. Például: (setq a 123) (setq b a) ebben az esetben (numberp 4) (numberp 3.8348) (numberp "Hogyvagy") (numberp a) (numberp a) (numberp b) (numberp (eval b)) (open fájlnév mód) eredménye eredménye eredménye eredménye eredménye eredménye eredménye T T nil nil T nil T Ez a függvény megnyit egy fájlt az AutoLISP I/O függvényei általi hozzáférésre. A függvény a

fájlleíróval tér vissza, amelyet az I/O függvények fognak felhasználni, így ezt a setq függvénnyel hozzá kell rendelni egy szimbólumhoz. (setq a (open "fájl.kit" "r")) A fájlnévargumentum egy olyan karakterlánc, amely a megnyitni kívánt fájl nevét és kiterjesztését adja meg. A mód argumentum az írás/olvasás flaget tartalmazza, amely csak egyetlen kisbetűbôl álló karakterlánc lehet. A módok érvényes betűjeleit a következô táblázatban foglaltuk össze. Az open függvény mód opciói Open mód Leírás "r" Olvasásra nyitja meg a fájlt. Amennyiben a fájlnév nem található, a függvény nil értékkel tér vissza. "w" Írásra nyitja meg a fájlt. Amennyiben a fájlnév nem létezik, a függvény egy új fájlt hoz létre, és azt megnyitja. Ha a fájlnév nevű fájl már létezik, a benne lévô adatok felülíródnak "a" Hozzáfűzésre nyitja meg a fájlt. Amennyiben a fájlnév nem létezik,

a függvény egy új fájlt hoz létre, és azt megnyitja. Ha a fájlnév nevű fájl már létezik, akkor ezt a függvény megnyitja, és a fájlban lévô adatok végére áll, így a fájlba írt új adatok a meglévô adatokhoz lesznek hozzáfűzve. Vigyázat: DOS operációs rendszerek esetében néhány program, illetve szövegszerkesztô a szövegfájlok végéhez egy "fájl vége" jelet (CTRL Z, decimális ASCII kódja 26) illeszt. A szövegfájlok olvasásakor, ha a DOS egy CTRL Z jellel találkozik, akkor egy "fájl vége" státuszt küld, még abban az esetben is, ha ezt a jelet további adatok követik. Amennyiben az OPEN függvény "a" módját használva adatokat kíván egy másik programmal készített fájl végéhez hozzáfűzni, elôször bizonyosodjon meg arról, hogy a szóbanforgó program nem illeszt CTRL Z jelet a szövegfájl végéhez. Tételezzük fel, hogy a következô példákban szereplô fájlok még nem léteznek: (setq f

(open "uj.tst" "w")) eredménye <Fájl #nnn> (setq f (open "nincs.fil" "r")) eredménye nil (setq f (open "naplofj" "a")) eredménye <Fájl #nnn> A fájlnév könyvtár elôtagot is tartalmazhat, mint például a /teszt/funkc3 esetében. DOS operációs rendszerek esetében a lemezmeghajtó betűjelének használata is megengedett, valamint visszahajló törtjelet () is használhat a törtjel (/) helyett (ne feledkezzen meg azonban arról, hogy egy karakterláncban a \ jelet kell használnia ahhoz, hogy egy visszahajló törtjelet kapjon). Például: (setq f (open "/x/uj.tst" "w")) (setq f (open "nincs.fil" "r")) eredménye <Fájl #nnn> eredménye nil (or kifejezés.) Ez a függvény a kifejezések listáján elvégzett logikai OR művelet végeredményével tér vissza. Az or függvény a kifejezéseket balról jobbra haladva értékeli ki, eközben egy nem-nil

kifejezést keres. Ha talált egyet, az or függvény abbahagyja a további kiértékelést, és T értékkel tér vissza. Amennyiben mindegyik kifejezés nil értékű, az or függvény nil értékkel tér vissza. Például: (or nil 45, ‘()) (or nil, ()) eredményeT eredménye nil (osnap pont mód-karakterlánc) Ez a függvény annak a 3D pontnak az értékével tér vissza, amelyet a mód-karakterláncban megadott, és a pontra vonatkoztatott tárgyraszter mód eredményéként kap. A mód-karakterlánc egy vagy több értelmezhetô tárgyraszter mód azonosítóját tartalmazhatja, mint például a felezôpont, középpont, és így tovább, egymástól vesszôvel elválasztva. Például: (setq pt2 (osnap pt1 "mid")) Ennek a függvénynek a működése függ az aktuális térbeli nézettôl. Lásd még: a "Tárgyraszter" című részt. pi Ez nem függvény, hanem a n konstans. Értéke megközelítôleg 31415926 (polar pont szög távolság) Ez a

függvény az FKR pont pontjától a szög szögre és távolság távolságra lévô 3D pontját adja eredményül. A szög az X tengelytôl mérve, radiánokban értendô, és az óramutató járásával ellentétes irányban növekszik. Bár a pont lehet 3D pont, a szöget a függvény mindig az aktuális szerkesztési síkra vonatkoztatja. Például: (polar (1 1 3.5) 0785398 1414214) eredménye(20 20 35) (prin1 [kifejezés [fájlleiró]]) Ez a függvény megjeleníti a kifejezés értékét a képernyôn, és ugyanezzel az értékkel tér vissza. A ki fej ezés argumentum tetszôleges kifejezés lehet, nem szükséges, hogy karakterlánc legyen. Ha a fájlleíró is szerepel az argumentumok között (és ez egy írásra megnyitott fájlra vonatkozik), akkor a függvény a kifejezés értékét a fájlba írja, pontosan úgy, ahogyan az a képernyôn jelent volna meg. A függvény csak az adott kifejezést jeleníti meg, szóköz vagy újsor karaktereket nem illeszt hozzá.

Például: (setq a 123) (setq b (a)) ebben az esetben: (prin1 a) kiírás: (prin1 a) kiírás: (prin1 b) kiírás: (prin1 "Helló") kiírás:" A eredménye: A 123 eredménye: 123 (A) eredménye: (A) Helló" eredménye: "Helló" Az elôzô példák mindegyike a képernyôn jelenítette meg a kiírást, mivel nem adtunk meg fájlleiró argumentumot. Feltételezve, hogy az f érvényes fájlleírója egy írásra megnyitott fájlnak: (prin1 "Helló" f) a függvény a "Hel ló" karakterláncot beírná a megadott fájlba, "Helló" értékkel térne vissza. Amennyiben a kifej ezés vezérlôkaraktereket is tartalmazó karakterlánc, a prin1 függvény a következôképpen értelmezi (bôvíti ki) a jelet követô karaktereket: Vezérlôkódok Kód \ " e nn Jelentés karakter " karakter Escape karakter Újsor karakter Return karakter Tabulátor karakter A nyolcas számrendszerben nnn kódú karakter Tehát:

(prin1 (chr2)) kiírás: "02" (prin1 (chr 10)) kiírás: " " eredménye: eredménye: "02" " " A prinl függvény argumentumok nélkül is használható, ebben az esetben a függvény egy üres karakterláncot jelenít meg (és ezzel is tér vissza). Ha a prin1 függvényt egy felhasználó által definiált függvényben utolsó kifejezésként használja (argumentumok nélkül), akkor a szóbanforgó függvény befejezôdését követôen csak egy üres sor fog megjelenni, és így "csendesen" léphet ki a függvénybôl. Például: (defun C:SETUP() (setvar"LUNITS" 4) (setvar "BLIPMODE" 0) (prin1)) Ekkor a Parancs: setup elvégzi a felhasználó által definiált parancsot, végrehajtja a kívánt setvar függvényeket, és bármilyen oda nem illô üzenet kiírása nélkül visszatér a Parancs: prompthoz. Lásd még: az "Interaktív output" című részt. (princ [kifejezés [fájlleiró]]) Ez a

függvény megegyezik a prin1 függvénnyel, de a kifejezésben lévô vezérlôkaraktereket kibôvítés nélkül jeleníti meg. Általánosságban elmondható, hogy a prin1 arra szolgál, hogy a load függvénnyel kompatibilis módon jelenítse meg a kifejezéseket, míg a princ olyan függvények számára szolgáltat olvasható kifejezéseket, mint például a read-line. Lásd még: az "Interaktív output". (print [kifejezés [fájlleíró]]) Ez a függvény megegyezik a prin1 függvénnyel, azzal a különbséggel, hogy a kifejezés elé egy újsor karaktert illeszt, a kifejezés mögé pedig egy szóközt. Lásd még: az "Interaktív output" című részt. (progn kifejezés.) Ez a függvény sorban egymás után kiértékeli az összes kifejezést, és az utolsó kifejezés értékével tér vissza. A progn függvényt több kifejezés kiértékelésére használhatja olyan helyeken, ahol eredetileg csak egy függvény szerepelhetne. Példa: (if (= a b)

(progn (setq a (+ a 10)) (setq b (-b 10))) Az if függvény, amennyiben a feltétel-kifkifejezés nil-tôl különbözô értékű, normális esetben csak egyetlen akkor-kifkifejezést értékel ki. Ezzel ellentétben, a fenti példában a progn függvény segítségével két kifejezést értékeltettünk ki. (prompt üzenet) Ez a függvény az üzenetet megjeleníti a képernyô promptterületén, és nil értékkel tér vissza. Az üzenet karakterlánc típusú. Kétképernyôs AutoCAD konfigurációk esetében a prompt függvény mindkét képernyôn megjeleníti az üzenetet, ezért használata elônyösebb, mint a princ függvényé. Példa: (prompt „új érték:”) a képernyô(kö)n megjeleníti: Új érték: és nil értékkel tér vissza. Lásd még: az "Interaktív output" című részt. (quit) A quit függvény kilépést hajt végre az aktuális alkalmazásból. A quit függvény hívásának eredményeképpen a quit/exit megszakítás hibaüzenet, majd

az AutoCAD Parancs: promptja jelenik meg. Lásd még: az exit függvény ismertetését. (quote kifejezés) A kifejezés kiértékeletlen formájával tér vissza. Ez a következôképpen is írható: kifejezés Például: (quote a) (quote cat) (quote (a b)) a cat (a b) eredménye eredménye eredménye eredménye eredménye eredménye A CAT (A B) A CAT (A B) Az utolsó három"kifejezés egy AutoCAD promptra adott válaszként nem billentyűzhetô be közvetlenül a klaviatúráról. Ne feledkezzen meg arról, hogy az inputnak egy "(" vagy "!" jellel kell kezdôdnie ahhoz, hogy az AutoCAD LISP kifejezésként értelmezni tudja. (read karakterlánc) Ez a függvény a karakterláncból vett elsô listával vagy atommal tér vissza. A karakterlánc argumentum nem tartalmazhat szóközöket, kivéve, ha azok egy listán vagy karakterláncon belül fordulnak elô. A read függvény az argumentumát a megfelelô adattípussá konvertálja. Például: (read

"helló") (read "hé te") (read ""Szia srácok"") (read "(a b c)") (read "(a b c) (d)") (read "1.2300") (read "87") (read "87 3.2") eredménye atom eredménye karakterlánc eredménye karakterlánc eredménye lista eredménye lista eredménye valós szám eredménye egész eredménye egész HELLÓ HÉ TE "szia srácok” (A B C) (A B C) 1.23 87 87 (read-char [fájlleíró]) Ez a függvény egyetlen karaktert olvas be a billentyűzet input pufferébôl, vagy a fájlleiró argumentummal meghatározott nyitott fájlból. A függvény a beolvasott karakter decimális (egész típusú) ASCII kódjával tér vissza. Ha nem ad meg fájlleiró argumentumot, és a billentyű pufferben sincs karakter, akkor a read-char függvény addig vár, amíg a klaviatúra egyik billentyűjét le nem nyomja (<ENTER> billentyűvel lezárva). Példaként tételezzük fel, hogy a billentyűzet bemeneti

puffere üres. A (read-char) függvény arra vár, hogy Ön bebillentyűzzön valamit. Amennyiben az ABC karaktereket írja be, majd lenyomja az <EBTER> billentyűt, a read-char függvény a 65 értékkel tér vissza (ez az A betű ASCII kódja). A read-char következô három hívása sorra a 66, 67 és 10 (újsor) értékekkel fog visszatérni. Egy ezt követô újabb read-char függvényhívás már ismét inputra fog várni. A különbözô operációs rendszerek, amelyek alatt az AutoCAD és az AutoLISP futtatható, az ASCII szövegfájlokban eltérô módon jelölik a sor végét. A UNIX rendszerek például egyetlen újsor karaktert használnak (LF, ASCII kódja 10), míg a DOS rendszerek ugyanerre a célra egy karakterpárt (CR/LF, ASCII kódjuk 13 és 10) használnak. Az AutoLISP programok fejlesztésének megkönnyítése érdekében, valamint hogy ezek hordozhatók legyenek az AutoCAD programot támogató operációs rendszerek között, a read-char függvény

bármelyik jelölést elfogadja, és egyetlen újsor karakterrel tér vissza (ASCII kódja 10), amikor egy "sor vége" karaktert (vagy karakterpárt) észlel. (read-line [fájlleiró]) Ez a függvény egy kárakterláncot olvas be a billentyűzetrôl, vagy a fájleiró argumentummal meghatározott nyitott fájlból. Amennyiben a read-line függvény a "fájl vége" jellel találkozik, nil értékkel tér vissza, egyébként pedig a beolvasott karakterlánccal. Példaként tételezzük fel, hogy az f egy érvényes nyitott fájlra mutat, ekkor a (read-line f) függvény a fájl következô input sorával tér vissza, illetve ha elérte a fájl végét, akkor nil értékkel. (redraw [elemnév [mód]]) Ennek a függvénynek a hatása a megadott argumentumok számától függ. Ha a függvényt argumentumok nélkül hívja meg: (redraw) ekkor a függvény az aktuális nézetablakban lévô rajzot felfrissíti, hasonlóan az AutoCAD REDRAW parancsához. Ha

argumentumként egy rajzelem nevét adja meg, és úgy hívja meg a függvényt: (redraw elemnév) ekkor csak a megadott rajzelemet rajzolja újra. Ezzel a függvénnyel könnyen azonosíthat egy rajzelemet, miután a grclear függvénnyel letörölte a képernyôt. Az elemnevekrôl az "Elemneveket kezelô függvények" című részben, talál ismertetést. Egy rajzelem felfrissítésének átfogó szabályozását a redraw függvény két argumentummal történô hívása biztosítja: ahol az elemnév a felfrissíteni kívánt rajzelem neve, a mód pedig az alább felsorolt egész értékek egyike lehet: A redraw függvény módjai Redraw mód Művelet 1 Felfrissíti a rajzelemet 2 Eltünteti a rajzelemet (a háttérszínnel rajzolja ki) 3 Kiemelten jeleníti meg a rajzelemet 4 A rajzelem megjelenítését visszaállítja normál módba Ha az elemnév egy összetett rajzelem (Vonallánc, vagy attribútumokkal rendelkezô Blokk) fejrészére vonatkozik, és a mód argumentum

értéke pozitív szám, akkor a művelet a fô rajzelemre és valamennyi alárendelt rajzelemére is vonatkozik. Amennyiben a mód argumentum értéke negatív szám, a redraw függvény csak az összetett rajzelem fô elemére van kihatással. A redraw függvény mindig nil értékkel tér vissza (regapp alkalmazás) Ez a függvény egy, az aktuális AutoCAD rajzhoz tartozó alkalmazás nevét jegyzi be (regisztrálja). Az alkalmazások által definiált bôvített elemadatok csoportosításának, tárolásának, lekérdezésének és módosításának alapja az alkalmazásnév. Egy alkalmazás a bôvített elemadatok szervezéséhez annyi alkalmazásnevet tarthat nyilván, amennyi csak szükséges. Amennyiben az alkalmazás neve azonos egy már bejegyzett névvel, a függvény nil értékkel tér vissza, ellenkezô esetben az alkalmazás nevével. Amennyiben a regisztrálás sikerrel jár, az alkalmazás bekerül az APPID szimbólumtáblába. Ez a tábla a rajzban bôvített

elemadatokat használó alkalmazások listáját tartalmazza. Ez lehetôvé teszi, hogy egy alkalmazás a saját bôvített elemadatait megkülönböztesse más alkalmazásokétól. A bôvített elemadatokat az AutoLISP nyelven vagy AutoCAD Fejlesztôi Rendszerben (ADS) készült alkalmazások egyaránt kiegészíthetik vagy módosíthatják. Az alkalmazás argumentum egy maximum 31 karakter hosszú karakterlánc, melyre a szimbólumokra (úgy mint a táblanevekre) érvényes elnevezési szabályok vonatkoznak. Az alkalmazásnév tartalmazhat betűket, számokat, valamint speciális $ (dollár), - (kötôjel) és (aláhúzás) karaktereket, de nem tartalmazhat szóközt. A névben szereplô betűket az AutoCAD nagybetűkké alakítja át. Példák: (regapp"ADESK 4153322344") (regapp "TERVEZÔ-v2.1-124753") Megjegyzés: Javasoljuk, hogy garantáltan egyedi alkalmazásneveket válasszon. Ennek egyik módja olyan elnevezési módszert alkalmazni, amely a

vállalat vagy a termék nevét és egy egyedi számot (például az Ön telefonszámát vagy az aktuális dátumot/idôt) használja. A termék verziószámát tartalmazhatja az alkalmazás neve, de az alkalmazás egy elkülönített valós vagy egész típusú mezôben is tárolhatja, például: (1040 2.1) A fenti példák is ezt az elvet követik. Lásd még: a bôvített elemadatokra vonatkozó információkat valamint az ADS rendszerre vonatkozó információkat. (rem szám1 szám2.) Ez a függvény a szám1 értéket elosztja a szám2 értékkel, és az osztás (szám1 mod szám2) maradék értékével tér vissza. A rem függvény a kiértékelés szokásos szabályai szerint egész vagy valós számokkal is használható Például: (rem 42 12) eredménye 6 (rem 12.0 16) eredménye 120 (rem 60 3) eredménye 0 (repeat szám kifejezés.) Ebben a függvényben a szám tetszôleges pozitív számot jelölhet. A függvény mindegyik kifejezést szám alkalommal értékel ki, és az

utolsó kifejezés értékével tér vissza. Vegyük például az alábbi értékadó utasításokat: (setq a 10) (setq b 100) ebben az esetben: (repeat 4 (setq a (+ a 10)) (setq b (+ b 100))) az a=50, a b=500, a visszatérési érték 500 lesz (reverse lista) Ez a függvény a lista elemeinek sorrendjét megfordítja, és a megfordított sorrendű listával tér vissza. Például: (reverse ‘((a) b c)) eredménye (C B (A)) (rtos szám [mód [pontosság]]) Ez a függvény a szám (valós) argumentumban szereplô számjegyek karakterláncával tér vissza, melynek formátuma a mód, a pontosság, valamint az AutoCAD UNITMODE rendszerváltozójának és DIMZIN méretváltozójának beállításától függ. A mód és a pontosság egész számok, amelyek a választott hosszmértékegységet és a pontosságot határozzák meg. Az értelmezhetô mód beállításokat az alábbi táblázat foglalja össze:: Hosszmértékegységek értékei Mód értéke Karakterlánc formátuma 1

Tudományos 2 3 4 5 Tizedes Mérnöki (láb és tizedes hüvelyk) Építészeti (láb és a hüvelyk törtrésze) Tört A mód és a pontosság argumentumok megfelelnek az AutoCAD LUNITS illetve LUPREC rendszerváltozóinak. Amennyiben az argumentumokat elhagyja, az rtos függvény a LUNITS és LUPREC rendszerváltozók aktuális értékét fogja alapul venni. A UNITMODE rendszerváltozónak csak akkor van hatása a visszatérô karakterláncra, ha mérnöki, építészeti vagy tört mértékegységet választ (a mód értéke 3, 4 vagy 5). Lásd még: az rtos függvény tárgyalásának folytatását. (set szimbólum kifejezés) Ez a függvény a szimbólumhoz a kifejezés értékét rendeli hozzá (ahol a szimbólum egy aposztrofált szimbólumnév), és ezzel az értékkel tér vissza. Például: (set ‘a 5.0) (set (quote b) ‘a) eredménye 5. 0 ésbeállítja az a szimbólumértékét eredménye a és beállítja a b szimbólum értékét Ha a set függvényt egy

aposztróf nélküli szimbólumnévre alkalmazza, akkor közvetett módon új értéket adhat egy másik szimbólumnak. A fenti példából kiindulva: (set b 640) eredménye 640 és a 640 értéket az a szimbólumhoz rendeli hozzá (mivel a b szimbólum ezt tartalmazza). Lásd még: setq függvény ismertetését az alábbiakban. (setq szimbólum1 kifejezés1 [szimbólum2 kifejezés2].) Ez a függvény a szimbólum1 szimbólumhoz a kifejezés1, a szimbólum2 szimbólumhoz a kifejezés2 értéket rendeli hozzá, és így tovább. Ez az AutoLISP alapvetô értékadó függvénye Egyetlen setq függvényhívással több szimbólumnak is adhat értéket, de a függvény csak az utolsó kifejezés értékével tér vissza. Például: (setq a 5.0) eredménye 50 és az a szimbólúmhoz az 50 értéket rendeli hozzá Ezt követôen az a kiértékelésekor az 5.0 valós számot kapja eredményül (setq b 123 c 4.7) eredménye 47 (setq s „az”) eredménye „az” (setq x ‘(a b))

eredménye (A B) A set és setq függvények által közvetlenül a szimbólumokhoz legfeljebb 132 karakter hosszúságú karakterláncok rendelhetôk. Azonban a strcat függvénnyel több karakterláncot összefűzve, az eredmény hozzárendelhetô egy szimbólumhoz. A setq megegyezik a set függvénnyel, azzal a különbséggel, hogy a szimbólumnév ez esetben nincs aposztrofálva. Más szóval, a set kiértékeli az elsô argumentumot, a setq pedig nem A következô példa a két függvény hasonlóságát mutatja. (setq a 5.0) egyenértékű kifejezése ( set ( quote a) 50) A set és a setq függvények globális szimbólumokat hoznak létre, illetve módosítanak, kivéve, ha defun függvényen belül a függvény argumentumának vagy lokálisnak deklarált szimbólumának értékadására használja ôket. Például: (setq g1o1 123) (defun demo (arg1 arg2 / lok1 lok2) (s e t q a rg 1 234) (setq 1ok1 345) (setq g1o1 456) globális szimbólumot hoz létre új lokális

értékadás új lokális értékadás új lokális értékadás (setq glo2 567)) létrehoz egy új globális szimbólumot A globális szimbólumokhoz bármelyik függvény hozzáférhet, illetve azokat módosíthatja. A globális szimbólumok továbbá bármely kifejezésben felhasználhatók. A lokális szimbólumok és az argumentumok csak az ôket definiáló függvény (és az ezen függvénybôl hívott függvények) kiértékelése során bírnak jelentéssel. A függvények argumentumai lokális argumentum módjára viselkednek: a függvény megváltoztathatja értéküket, de a függvénybôl történô kilépést követôen ezek a változtatások elvesznek. Figyelmeztetés: A set és setq függvények arra is alkalmasak, hogy Ön az AutoLISP beépített szimbólumainak és függvényeinek új értéket adjon, elvetve, vagy hozzáférhetetlenné téve az eredeti jelentésüket. Néhány felhasználó az alábbi, szerencsétlen megoldásokkal próbálkozott: (setq angle

(.)) helytelen! (setq length ( )) helytelen! (setq max (.)) helytelen! (setq t ( )) helytelen! (setq pi 3.0) helytelen!!! Mindenféle furcsa hiba léphet fel, ha nem elég körültekintô saját szimbólumneveinek megválasztásakor. Soha ne használja a beépitett szimbólumok vagy függvények nevét saját szimbólumainak neveként! Ha bizonytalan a választani kívánt szimbólumnév eredetiségét illetôen, akkor az AutoCAD parancssorában a következôket billentyűzheti be (tételezzük fel, hogy az énszimb nevű szimbólumot kívánja ellenôrizni): Parancs: (atoms-family 0 ("énszimb")) Ennek eredménye (nil) lesz, ha ez a szimbólum még nincs definiálva. (setvar változónév érték) Ez a függvény a változónév nevű AutoCAD rendszerváltozót az adott értékre állítja be, és ezzel az értékkel tér is vissza. A rendszerváltozó nevét idézôjelek közé kell tenni Például: (setvar "FILLETRAD" 0.50) eredménye 05 az AutoCAD

lekerekítési sugarát 05 egységre állítja be Egész típusú értékkel rendelkezô rendszerváltozók esetében a megadott értéknek -32768 és +32767 közé kell esnie. Bizonyos AutoCAD parancsok, még mielôtt bármilyen promptot kiadnának, a rendszerváltozóktól vesznek át értékeket. Ha a setvar függvény segítségével a folyamatban lévô parancs használata során ad új értéket ezen rendszerváltozóknak, akkor az újonnan beállított érték csak, a következô AutoCAD parancs használatakor fejti ki hatását. Megjegyzés: Amikor az ANGBASE rendszerváltozó beállítására használja a setvar függvényt, akkor az érték radiánban értendô. Ez különbözik az AutoCAD VÁLTOZÓK parancsától, amely ezt az argumentumot fokokban értelmezi. Abban az esetben, ha a SNAPANG rendszerváltozó beállítására használja a setvar függvényt, akkor az érték radiánban értendô az alapértelmezés szerinti 0 szöghöz viszonyítva, amely a keleti iránynak,

vagy a 3 órának felel meg. Ez szintén különbözik az AutoCAD VÁLTOZÓK parancsától, amely ezt az argumentumot fokokban értelmezi az ANGBASE rendszerváltozó beállításához képest. Vigyázat: A VISSZA parancs nem érvényteleníti a CVPORT rendszerváltozó értékének a setvar függvény által történt megváltoztatását. Kapcsolódó témák: Lásd a getvar függvény ismertetését. (sin szög) Ez a függvény a radiánokban kifejezett szög valós számmal kifejezett szinuszával tér vissza. Például: (sin 1.0) eredménye 0841471 (sin 0.0) eredménye 00 (sqrt szám) Ez a függvény a szám négyzetgyökének valós számmal kifejezett értékével tér vissza. Például: (sqrt 4) eredménye 2.0 (sqrt 2.0) eredménye 141421 (ssadd [elemnév [elemsor ]]) Az ssadd függvény új, elemek nélküli kiválasztott elemsorozatot hoz létre, ha argumentumok nélkül kerül hívásra. Ha egyetlen elemnév argumentummal hívja meg, akkor az ssadd függvény ezt az egy

elemet tartalmazó kiválasztott elemsorozatot készít. Abban az esetben, ha egy elemnéwel és egy elemsor kiválasztott elemsorozattal hívja meg, akkor a függvény a rajzelemet hozzáadja a kiválasztott elemsorozathoz. Az ssadd függvény mindig az új vagy módosított kiválasztott elemsorozattal tér vissza. Amennyiben egy rajzelemet hozzáad egy kiválasztott elemsorozathoz, ez a rajzelem ténylegesen is hozzáadódik a létezô sorozathoz, és a függvény az így kapott elemsor sorozattal tér vissza. Ez azt jelenti, hogy ha az elemsorozat más változókhoz is hozzá van rendelve, akkor azok tartalma szintén tükrözni fogja a változást. Amennyiben a nevezett rajzelem már szerepel a sorozatban, a rendszer az ssadd műveletrôl nem vesz tudomást, és hibajelzést sem ad. Példa: (setq e1 (entnext)) (setq es (ssadd)) (ssadd e1 es) (setq e2 (entnext e1)) (ssadd e2 es) e1 értéke a rajz elsô rajzelemének neve lesz létrehozza az es nevű üres

kiválasztottelemsorozatot az es sorozathoz hozzáadja az e1 nevű elemet e2-höz rendeli az e1 elemet követô rajzelemet az e2 elemet hozzáadja az es-hez, és es-sel tér vissza (ssdel elemnév elemsor) Az ssdel függvény kitörli az elemnév nevű elemet az elemsor nevű kiválasztott elemsorozatból, és az elemsor nevével tér vissza. Meg kell jegyezni, hogy a függvény nem egyszerűen egy, a megadott elem nélküli új elemsorozattal tér vissza, hanem a rajzelem ténylegesen is kitörlôdik az adott kiválasztott elemsorozatból. Ha a rajzelem nem szerepel az elemsorozatban, akkor a függvény nil értékkel tér vissza. Például, ha az e1 nevű elem szerepel az es1 elemsorozatban, az e2 pedig nem, akkor (ssdel e1 es1) eredménye az e1 nélküli es1 kiválasztott elemsorozat (ssdel e2 es1) eredménye nil (az es1 változatlan marad) (ssget [mód] [pont1 [pont2]] [pontlista] [szűrőlista]) Az ssget függvény egy kiválasztott elemsorozattal tér vissza. Az opcionális

mód argumentum egy karakterlánc, amely az alkalmazott rajzelemkiválasztási módszert határozza meg. Ez az AutoCAD Ablak, APoligon, Metsz, MPoligon, Utolsó, Elôzô, elôVálaszott vagy Felfűz kiválasztási módjainak megfelelôen "A", "AP", "M", "MP", "U", "E", "V", illetve "F" lehet. Egy további opció az "x" mód, amely a teljes adatbázist választja ki A pont1 és pont2 argumentumok a kiválasztáshoz felhasználni kívánt pontokat határozzák meg. Amennyiben mód argumentum nélkül csak egyetlen pontot ad meg, ez a pontkijelöléssel történô rajzelemkiválasztásnak felel meg. A Traszter aktuális beállítását a függvény figyelmen kívül hagyja (nincs tárgyraszter), hacsak azt Ön a függvény futása közben kifejezetten nem kéri. A szűrôlista argumentumot bármelyik móddal együtt használhatja, finomabban szabályozva ezzel a rajzelemkiválasztás folyamatát.

Abban az esetben, ha az összes argumentumot elhagyja, az ssget függvény az AutoCAD általánosan használt Válasszon objektumokat: módszerével kéri a felhasználót, hogy interaktív módon állítson össze egy kiválasztott elemsorozatot. A kiválasztott elemsorozat egyaránt tartalmazhat papír- és modelltérbeli rajzelemeket, de amikor a kiválasztott elemsorozatot felhasználja egy műveletben, akkor az aktuálisan nem használt tér elemeit az AutoCAD automatikusan kiszűri.Ez az összes AutoCAD parancsra igaz Az ssget függvénnyel kiválasztott elemsorozat csak fô rajzelemeket tartalmazhat (Attribútumokat vagy Vonalláncok csomópontjait nem). Az alábbiakbanaz ssget alkalmazására láthat példákat: (ssget) kiválasztott (ssget "P") (ssget "L") (ssget "v") (ssget (2 2)) (ssget "W" (0 0) (5 5)) kiv.elemsort (ssget "M" (0 0) (1 1)) (ssget "x") (ssget "x" szűrôlista) (ssget szűrôlista)

megfelelô (ssget "P" szűrôlista) kiv.elemsort,amelyek a felhasználótól általános rajzelemkiválasztást kér,és a rajzelemeket egy elemsorozatban (kiv.elemsor) helyezi el a legutóbb kiválasztott objektumokból képez kiv.elemsort az adatbázishoz utoljára hozzáadott,látható rajzelembôl képez kiv.elemsort az ELÔVÁLASZTOTT kiválasztott elemsorozatban lévô rajzelemekbôl (melyek kiválasztása a PICKFIRST aktiv állapotában történt) képez kiv.elemsort a (2,2) ponton átmenô rajzelembôl képez kiv.elemsort a (0,0) és (5,5) pontok által kifeszitett ablakon belüli rajzelemekbôl képez a (0,0) és (1,1) pontok által kifeszitett ablakkal elmetszett rajzelemekbôl képez kiv.elemsort az adatbázis összes rajzelemébôl képez kiv.elemsort végigpásztázza az adatbázist,és a szűrôlistának megfelelô rajzelemekbôl képez kiv.elemsort a felhasználótól általános rajzelemkiválasztástkér,de csak a szűrôlistának rajzelemeket helyezi el a

kiv.elemsorban a legutóbb kiválasztottak közül azokból a rajzelemekbôl képez megfelelnek a szűrôlistának Az alábbi példákban az ssget függvény egy pontokat tartalmazó lista átadását igényli. (setq ptlista ((1 1) (3 1) (5 2) (2 4))) (ssget "WP" pt lista) a pt lista által meghatározottpoligon belsejében található összes rajzelembôl képez kiv.elemsort (ssget "WC" pt lista) a pt lista által meghatározottpoligon belsejében található, valamint azzal elmetszett összes rajzelembôl képez kiv.elemsort (ssget "F" pt lista) a pt lista által meghatározottfelfűzô vonalak által elmetszett összes rajzelembôl képez kiv.elemsort (ssget "AP" pt lista szűrôlista) a pt lista által meghatározottpoligon belsejében található összes rajzelem közül azokból képez kiv.elemsort, amelyek megfelelnek a szűrôlistának A kiválasztott objektumok csak akkor kerülnek kiemelt megvilágításba, ha az ssget függvényt

argumentumok nélkül használja. A rajzelemek kijelölésének módjáról nem marad fenn információ (lásd az entsel függvényt alternatív megoldásként). A kiválasztott elemsorozatok az AutoCAD ideiglenes fájljai számára fenntartott helyekbôl vesznek el, ezért az AutoLISP 128-nál több elemsorozatot nem tarthat egyszerre nyitva. Amennyiben ezt a határt eléri, az AutoCAD megtagadja további kiválasztott elemsorozatok létrehozását, és minden ssget függvényhívás nill értékkel tér vissza. Egy már szükségtelen kiválasztott elemsorozatot úgy zárhat le, ha az azt tartalmazó változónak nil értéket ad. Egy kiválasztott elemsorozatot tartalmazó változóval az AutoCAD minden olyan Válasszon objektumokat: promptjára válaszolhat, amelynek esetében az Utolsó kiválasztási módszer megengedett. Ez megfelel a változóhoz rendelt elemsorozatban lévô összes objektum kiválasztásának. Kiválasztott elemsorozatok szűrôi Az elemsorozatok

kiválasztására szolgáló szűrôlisták bármely kiválasztási móddal együtt használhatók. A szűrôlista egy asszociációs lista, hasonló ahhoz, amelyet az entget függvény szolgáltat. A szűrôlista határozza meg a rajzelemek vizsgálni kívánt tulajdonságát (vagy tulajdonságait), és feltételt képezô értékeit. Ennek a módszernek a használatával kiválasztott elemsorozatot képezhet például az adott típusú, adott fólián elhelyezkedô vagy adott színű összes rajzelembôl. A következô példa eredménye egy olyan kiválasztott elemsorozat, amely kizárólag az előválasztott (a PICKFIRST aktív állapotában kiválasztott rajzelemeket tartalmazó) elemsorozat részét képezô kék színű vonalakat foglalja magában: (ssget "P" ((0 . "LINE") (62 5))) Az ssget szűrôlistájának segítségével kiválaszthatja az összes olyan rajzelemet, amely egy adott alkalmazáshoz tartozó bôvített rajzelemadatot tartalmaz. Ezt a -3-as

csoportkód felhasználásával teheti meg, például így: (ssget "P" ((0 . "CIRCLE") (-3 ("ALKNÉV")))) Ezzel az összes olyan kört választja ki, amely az "ALKNÉV" alkalmazáshoz tartozó bôvített adatot tartalmaz. Lásd még: az "Elemsorozatok kiválasztására szolgáló szűrôlisták" című részt és a "Bôvített rajzelemadatok szűrése" című részt. Relációvizsgálat Egyéb rendelkezés hiányában a szűrôlista elemeit a függvény "egyenlôségre" vizsgálja. A számszerű értékeket tartalmazó csoportok (egészek, valós számok, pontok és vektorok) esetében egyéb relációk is megadhatók egy relációjelet meghatározó speciális -4-es csoportkód beiktatásával. A -4-es csoport értéke egy karakterlánc, amely a szűrôlista következô csoportj ának vizsgálatára vonatkozó relációjelet tartalmazza. Például: (ssget "X" ((0 . "CIRCLE") (-4

">=") (40 20))) minden olyan kört kiválaszt, amelynek sugara (csoportkódja 40) nagyobb vagy egyenlô, mint 2.0 egység A következô táblázat a lehetséges relációjeleket mutatja be: RelációJelek az elemsorozatok kiválasztására szolgáló szűrôlistákban Relációjel „*” „=” "!=” „/=” „<>” "<" "<=" „>” „>=” „&” „&=” Jelentés Bármi lehet (mindenképpen igaz) Egyenlô Nem egyenlô Kisebb Kisebb vagy egyenlô Nagyobb Nagyobb vagy egyenlô Bitenkénti AND (csak egész típusú csoportok esetében) Bitenként maszkolt egyenlôség (csak egész típusú csoportok esetében) A relációjelek használata a vizsgálni kívánt csoportok fajtájától függ: − A valós vagy egész számértéket tartalmazó csoportok esetében valamennyi relációjel érvényes, kivéve a bitenkénti relációk jeleit ("&" és "&="). − A "&" és

"&=" bitenkénti relációk jelei csak egész típusú csoportok esetében használhatók. A bitenkénti AND ("&") akkor ad igaz értéket, ha ((egész csoport & szűrô) /= 0), azaz ha a maszkban beállított bitek bármelyike az egész típusú csoportban is be van állítva. A bitenként maszkolt egyenlôség ("&=") akkor teljesül, ha ((egész csoport & szűrô) = szűrő), azaz ha a maszkban beállított valamennyi bit be van állítva az egész típusú csoportban is (az egész csoport egyéb bitjei is be lehetnek állítva, a vizsgálat azonban ezekre nem terjed ki). − Pont típusú csoportok esetében az X, Y és Z koordináták vizsgálata egyetlen karakterlánccal végezhetô, amelyben az egyes relációjeleket vesszôk választják el egymástól (például: "=,<>,*"). Ha a karakterláncból hiányzik az egyik relációjel (például: "=,<>", kihagyva a Z koordinátát a vizsgálatból),

akkor azt úgy kell értelmezni, mintha a "bármi lehet" jel, a "*" állna azon a helyen. − Az irányvektorok (210-es típusú csoport) összehasonlítása csak a "*", "=" és a "!=" (valamint ez utóbbival egyenértékű "nem egyenlô") relációjelekkel történhet. − A relációjelek nem használhatók a karakterlánc típusú csoportok esetében; vizsgálatukra a globális karakterek alkalmasak. Szűrôvizsgálatok logikai csoportosítása A fentiekben ismertetett relációjelek bináris műveleteket jelölnek. A csoportok vizsgálatára az alábbi táblázatban látható csoportosító operátorok alkalmazásával beágyazott logikai (Boole) kifejezéseket is létrehozhat. A csoportosító operátorokat a relációjelekhez hasonlóan -4-es csoportkód segítségével adhatja meg. Párosával fordulnak elô, és a párosításnak a szűrôlistában tökéletesen kiegyenlítettnek kell lennie, máskülönben az ssget

függvény hívása hibához vezet. Az operátorok által közrezárható operandusok száma az adott művelettôl függ, amint az a táblázatban látható. Csoportositó operátorok az elemsorozatok kiválasztására szolgáló szűrôlistákban Nyitó operátor "<AND" "<OR" "<XOR" Közrezárt operandusok Egy vagy több operandus Egy vagy több operandus Két operandus Záró operátor "AND>" "OR>" "XOR>" "<NOT" Egy operandus "NOT>" A csoportosító operátorok esetében az operandus egy rajzelem-mezôt tartalmazó csoport, egy relációjel és azt követôen egy rajzelem-mezôt tartalmazó csoport, vagy egy ezen operátorokból alkotott beágyazott kifejezés lehet. A következô példa a csoportosító operátorok használatát mutatja be egy szűrôlistában: (ssget "X" ((-4 . "<OR") (-4 . "<AND") (0 . "CIRCLE") (40 . 10)

(-4. "AND>") (-4. "<AND") (0 . "LINE") (8 . "ABC") (-4 . "AND>") (-4 . "OR>"))) Ez a függvényhívás kiválasztja mindazokat a köröket, amelyek sugara 1.0 egység, valamint mindazokat a vonalakat, amelyek az "ABC" fólián helyezkednek el. A csoportosító operátorok nagy- és kisbetűs írásmódja között nincs különbség, így használhatja a kisbetűs megfelelôjüket is: "<and", "and>", "<or", "or>", "<xor", "xor>", "<not" és "not>". (sslength elemsor) Ez a függvény az elemsor kiválasztott elemsorozatban lévô rajzelemek egész értékben kifejezett számával tér vissza. Amennyiben a szám a 32767 értéket meghaladja, valós típusú lesz A kiválasztott elemsorozatban soha nem szerepel kétszer ugyanaz az elem. Például: (setq esor (ssget "L")) (sslength esor) az

utolsó objektumot elhelyezi az esor kiválasztott elemsorozatban eredménye 1 (ssmemb elemnév elemsor) Ez a függvény megvizsgálja, hogy az elemnévnevű rajzelem szerepel-e az elemsor kiválasztott elemsorozatban. Ha igen, akkor az ssmemb a rajzelem nevével (elemnév) tér vissza, ha nem, akkor pedig nill értékkel. Például, ha az e1 nevű rajzelem szerepel az es1 kiválasztott elemsorozatban, az e2 nevű rajzelem viszont nem, akkor (ssmemb e1 ss1 ) eredménye az e1 elemnév (ssmemb e2 ss1) eredménye nil (ssname elemsor index) Ez a függvény az elemsor nevű kiválasztott elemsorozat index-edik elemének nevével tér vissza Amennyiben az index értéke negatív, vagy nagyobb, mint a kiválasztott elemsorozat legmagasabb indexű elemének indexe, a függvény nil értékkel tér vissza. Az elemsorozat elsô elemének indexe 0 Az ssget függvénnyel képzett kiválasztott elemsorozatokban csak fô rajzelemek nevei találhatók. Alárendelt rajzelemekhez (Blokkok

attribútumaihoz és Vonalláncok csomópontjaihoz) ezzel a módszerrel nem férhet hozzá (ezek elérésére az entnext függvény nyújt lehetôséget). Például: (setq esor (ssget)) létrehoz egy esor nevű kiválasztott elemsorozatot (setq ent1 (ssname sset 0)) kiolvassa az elsô rajzelem nevét az esor-ból (setq ent4 (ssname sset 3)) kiolvassa a negyedik rajzelem nevét az esor-ból A 32767-nél magasabb indexű rajzelemek eléréséhez az index argumentumot valós számként kell megadni. Például: (setq elnx (ssname esor 50843.0)) kiolvassa az esor 50844 elemének nevét (strcase karakterlánc [melyik]) A strcase függvény a karakterlánc argumentumában megadott karakterlánc másolatával tér vissza, amelyben a betű karaktereket a melyik argumentumnak megfelelôen nagy- vagy kisbetűkké alakítja át. Amennyiben a melyik argumentum nincs megadva, vagy értéke nil, a karakterlánc minden betűjét nagybetűvé konvertálja. Ha a melyik argumentum is szerepel a

függvényhívásban, és értéke nem nil, akkor az összes betű kisbetű lesz. Például: (strcase "Mint a") eredménye "MINTA" (strcase "Minta" T) eredménye "minta" Az strcase függvény az aktuálisan konfigurált karakterkészletnek megfelelôen rendeli egymáshoz a kis- és nagybetűket Lásd még:az "Idegen nyelvek támogatása" című részt. (strcat karakterlánc1 [karakterlánc2].) Ez a függvény a karakterláncl, karakterlánc2, stb. összefűzésével kapott karakterlánccal tér vissza Például: (strcat "el" "visz") eredménye "elvisz" (strcat "a" "b" "c") eredménye "abc" (strcat "a" """c") eredménye " ac " (strlen [karakterlánc].) Ez a függvény a karakterlánc egész értékben kifejezett hosszával, azaz a benne szereplô karakterek számával tér vissza. Amennyiben több karakterlánc argumentumot ad

meg, az argumentumokban szereplô összes karakter összege lesz a visszatérési érték. Ha elhagyja az argumentumokat, vagy üres karakterláncot ad meg (amint azt az utolsó két példa mutatja), akkor a függvény a 0 (nulla) egész számmal tér vissza. (strlen "abcd") (strlen "ab") (strlen "egy" "kettô" "három") (strlen) (strlen"") eredménye eredménye eredménye eredménye eredménye 4 2 11 0 0 (subst újtétel régitétel lista) Ez a függvény kikeresi a listában szereplô régi tételeket, és eredményül a lista egy olyan másolatával tér vissza, amelyben a régi téte1ek minden elôfordulását lecseréli az új tételre. Amennyiben a subst függvény a listában nem talál régitételt, a változatlan formájú listával tér vissza. Legyen adott például: (setq minta (a b (c d) b)) ebben az esetben (subst qq b minta) (subst qq z minta) (subst qq (c d) minta) (subst (qq rr) (c d) minta) (subst (qq rr)

z minta) eredménye ( A QQ ( c D ) QQ ) eredménye ( A B ( C D ) B ) eredménye ( A B QQ B ) eredménye ( A B ( QQ RR ) B ) eredménye ( A B ( c D ) B ) A subst függvényt az assoc függvénnyel együtt használva, egy asszociációs lista adott kulcshoz tartozó értékeit egyszerűen lecserélheti. Legyen adott például: (setq kicsoda ((elsô jani) (közép q) (hátsó emb))) ebben az esetben: (setq régi (assoc elsô kicsoda)) (setq új (elsô j) ) (subst új régi kicsoda) edménye (ELSÔ JANI) eredménye (ELSÔ J) eredménye ((ELSÔ J) (KÖZÉP Q) (HÁTSÓ EMB)) (substr karakterlánc kezdô [hossz]) Ez a függvény a karakterláncnak azzal a részkarakterláncával tér vissza, amely a kezdô karakterpozíciónál kezdôdik, és hossz számú karaktert tartalmaz. Amennyiben a hossz argumentumot nem adja meg, a részkarakterlánc a karakterlánc végéig fog tartani. A kezdô (és amennyiben megadja, a hossz) értékeinek pozitív egész számoknak kell lenniük. Fontos

megjegyezni, hogy a karakterlánc elsô karaktere az 1-es számú karakter Ez különbözik a listaelemekkel foglalkozó összes többi függvénytôl (mint az nth, ssname, és így tovább), amelyek az elsô elemet a 0 sorszámmal kezelik. Példa (substr "abcde" 2) eredménye "bcde" (substr "abcde" 2 1) eredménye "b" (substr "abcde" 3 2) eredménye "cd" (tablet kód [sor1 sor2 sor3 irány]) Ez a függvény a digitalizáló tábla kalibrációjának lekérdezésére és beállítására szolgál. Segítségével egyszerűen elmenthetôk és visszaállíthatók a beállítások, illetve új tábla-transzformációk hozhatók létre. A kód argumentumban megadott egész számtól függôen, a tablet függvény vagy lekérdezi a digitalizáló eszköz (a tábla) aktuális kalibrációját, vagy beállítja azt. Ha a kód értéke 1, akkor azt az új beállítás értékeinek kell követniük: sor1, sor2, sor3 és irány. Kód

az sorl, sor2, sor3 irány Világ Egy egész szám Amennyiben a megadott kód értéke 0, a tablet függvény az aktuális kalibrációval tér vissza; ebben esetben a többi argumentumot el kell hagyni. Ha a megadott kód értéke 1, akkor a tablet függvény beállítja a kalibrációt a többi argumentumnak megfelelôen. Három térbeli (3D) pont. Ezek az argumentumok határozzák meg a tábla transzformációs mátrixának három sorát. Egy térbeli (3D) pont. Ez a tábla felülete által képviselt síkra merôleges normálvektor (a VKR, Koordináta-rendszerben kifejezve). Megjegyzés: Amennyiben a megadott irány nem normalizált, a tablet függvény helyesbíti, így a kalibráció beállításakor a függvény által visszaadott irány különbözhet az argumentumban megadott értéktôl. Hasonlóképpen, a sor3 harmadik elemének (Z) mindig 1-gyel kell egyenlônek lennie; a tablet függvény mindig 1et ad vissza ezen a helyen, még ha a sor3 lista más értéket tartalmaz

is. Hiba esetén a tablet függvény nil értékkel tér vissza, és az ERRNO rendszerváltozóban elhelyezi a hiba okát jelzô értéket. Ez történik például abban az esetben, ha nem tábla a digitalizáló eszköz A tablet függvénnyel meghatározható legegyszerűbb transzformáció az azonosság: (tablet 1 (1 0 0) (0 1 0) (0 0 1) (0 0 1)) Amennyiben ez a transzformáció van érvényben, az AutoCAD a digitalizáló tábla tényleges, feldolgozatlan koordinátáit fogja megkapni. Például, amennyiben a digitalizáló (5000,15000) koordinátájú pontját jelöli ki, akkor azt az AutoCAD az aktuális rajz ugyanilyen koordinátájú pontjának fogja tekinteni. Megjegyzés: A TABMODE rendszerváltozó segítségével az AutoLISP rutinok Be vagy Ki tudják kapcsolni a tábla módot. Lásd még: a további tudnivalókat a tábla transzformációs mátrixáról a "A digitalizáló tábla kalibrálása" című részben. (tblnext táblanév [(vissza]) Ezt a függvényt

egy teljes szimbólumtábla végigpásztázására használhatja. Az elsô argumentuma egy karakterlánc, amely a kívánt szimbólumtáblát azonosítja. A lehetséges táblanevek: "LAYER", "LTYPE", "VIEW", "STYLE", "BLOCK", "UCS", "APPID", "DIMSTYLE" és "VPORT". A karakterláncnak nem szükséges nagybetűkbôl állnia. Ha a tblnext függvényt egymás után többször használja, akkor az normális esetben mindig a megadott tábla következô elemével tér vissza. (A késôbbiekben ismertetett tblsearch függvény segítségével beállítható a következô lekérdezni kívánt táblabejegyzés.) Ha azonban a vissza argumentumot is megadta, és kiértékelése niltôl különbözô értéket ad, akkor a függvény visszatér a szimbólumtábla elejére, és annak elsô bejegyzését olvassa ki. Amikor a táblában nincs több bejegyzés, a függvény ni 1 értékkel tér vissza A függvény

törölt táblabejegyzéssel soha nem tér vissza. Amennyiben megtalálta a keresett bejegyzést, a függvény egy DXF típusú kódokat és.értékeket tartalmazó kapcsolt értékpárokból álló listával tér vissza, amely hasonló az entget függvény által szolgáltatott listához. Például: (tblnext "layer" T) lekérdezi az elsô fóliát eredményül az alábbiakkal térhet vissza: (0 . "LAYER") szimbólum típusa (2 . "0") szimbólum neve (70 . 0) lagek (62 . 7) szinszám,ha ki van kapcsolva,negativ (6 . "CONTINUOUS") vonaltipus neve Figyelje meg, hogy a fentiekben nem szerepel -1-es csoport. Az AutoCAD megjegyzi az egyes táblákból utoljára kiolvasott bejegyzést, és a tblnext függvénynek ugyanarra a táblára vonatkozó minden újabb hívásakor a következô bejegyzéssel tér vissza. Amikor egy tábla végigpásztázását elkezdi, egy nem nil értékű második argumentummal biztosítsa a tábla visszapörgetését, hogy a

függvény az elsô bejegyzéssel térjen vissza. A Blokk táblából kiolvasott bejegyzések egy -2-es csoportot, és a Blokk definíciójában szereplô elsô rajzelem elemnevét tartalmazzák (amennyiben létezik ilyen). Azaz, ha adott egy DOBOZ nevű Blokk: (tblnext "block") lekérdezi a Blokk defnicióját eredményül az alábbiakkal térhet vissza: ((0 . "BLOCK") szimbôium tipusa (2 . "DOBOZ") szimbólum neve (70 . 0) fagek (10 9.0 20 00) origó X, Y, Z koordinátái (-2 . <Elem neve: 40000126>) az elsô rajzelem A -2-es csoportban szereplô elemnevet az entget és az entnext függvények elfogadják, de a többi rajzelemkezelô függvény nem. Nem illesztheti be például egy kiválasztott elemsorozatba az ssadd függvény segítségével A -2-es csoportban található elemnevet átadva az entnext függvénynek, végigpásztázhatja a Blokkdefinícióban szereplô rajzelemeket; a Blokkdefinícióban lévô utolsó elem után áz entnext

függvény nil értékkel tér vissza. Megjegyzés: Amennyiben egy Blokk nem tartalmaz rajzelemeket, a tblnext függvény eredményében szereplô -2es csoport a Blokk Endblk elemének nevét tartalmazza. (tblsearch táblanév szimbólum [következôt]) Ez a függvény a táblanévargumentummal megadott táblát a szimbólum argumentummal (a tblnext függvényhez hasonlóan) megadott szimbólumnév kikeresése céljából végigvizsgálja. Mindkét argumentum betűit a függvény automatikusan nagybetűkké konvertálja. Amikor talált egy szimbólumot a megadott névvel, a függvény a tblnext függvénynél ismertetett formátumú listával tér vissza. Ha ilyet nem talált, akkor nil értékkel tér vissza Például: (tblsearch "style" "standard") lekérdez egy szövegsttlust eredményül az alábbiakkal térhet vissza: ((0 . "STYLE") (2 . "STANDARD") (70 . 0) (40 . 00) (41 . 10) (50 . 00) (71 . 0) (3 . "txtshx") (4 .

"")) szimbólum tipusa szimbólum neve flagek rögzitett magasság szélességi tényezô dôlésszög generálási flag elsôdleges fontfájl big-fontfájl Normális esetben a tblnext függvény által lekérdezett táblabejegyzések sorrendjére a tblsearch függvény nincs kihatással. Ha azonban a tblsearch művelet sikeres volt, és a következôt argumentum jelen van nil-tôl különbözô értékkel, akkor a tblnext bejegyzésszámlálója úgy módosul, hogy a következô tblnext hívás a jelen tblsearch hívással lekérdezett bejegyzés utáni bejegyzéssel fog visszatérni. Lásd még: a "Hozzáférés a szimbólumtáblákhoz" című részt. (terpri) Ez a függvény egy újsor karaktert nyomtat ki a képernyôre (sort emel), és nil értékkel tér vissza. A terpri függvénnyel nem lehet fájlba írni. Ha egy fájlba kíván újsor karaktert beírni, akkor a print vagy a princ függvényt használhatja. (textbox elemlista) Ez a függvény leméri

egy adott Szöveg rajzelem kiterjedését, és a szöveg köré rajzolható keret átlós koordinátáival tér vissza. Az elemlistának egy Szöveg rajzelemet kell definiálnia. Amennyiben az elemlista csak a magát a szöveget definiáló mezôt tartalmazza, a többi szövegparaméter az aktuális (vagy alapértelmezés szerinti) értékeknek fog megfelelni. Sikeres hívás esetén a textbox függvény két pontból álló listával tér vissza, máskülönben nil értékkel. A textbox függvény által elfogadott minimális lista csak magát a szöveget tartalmazza. (textbox, ‘((1 . „Helló világ”))) lehetséges eredménye: ((00 00 00) (08 02 00)) Ebben az esetben a textbox függvény a hiányzó paraméterek értékeként az aktuális alapértelmezés szerinti értékeket használná fel. A textbox függvény által visszaadott pontok a Szöveg rajzelemet határoló képzeletbeli keretet úgy határozzák meg, mintha a Szöveg beillesztési pontja a (0,0,0) pont,

elforgatási szöge pedig 0 volna. Az elsô helyen visszaadott lista általában a (0.0 00 00) pont, hacsak a Szöveg rajzelem nem dôlt, nem függôleges, vagy nem tartalmaz olyan karaktereket, melyeknek alsó szára az alapvonal alá nyúlik (mint például a g vagy a p betű). Ez az elsô lista a szöveg köré rajzolható legkisebb téglalap bal alsó sarokpontjának a szöveg beillesztési pontjához viszonyított koordinátáit adja meg. A második lista ennek a téglalapnak a jobb felsô sarokpontját jelöli A függvény által visszaadott pontok mindig ennek a befoglaló keretnek a bal alsó és jobb felsô sarokpontját határozzák meg, tekintet nélkül a vizsgált Szöveg irányára. Lásd még: a "Szöveg befoglaló méreteit meghatározó segédfüggvény" című részt. (textpage) Egyképernyôs AutoCAD konfigurációk esetében ez a függvény letörli az AutoCAD szöveges ablakát, és a grafikus ablak elôtt jeleníti meg azt. A textpage csak annyiban

különbözik a textscr függvénytôl, hogy a szöveges ablakból minden elôzôleg megjelenített szöveget töröl. Visszatérési értéke mindig nil Lásd még: az alább következô textscr függvényt, valamint a graphscr függvény ismertetését. (textscr) Egyképernyôs rendszerek esetében a textscr függvény a grafikus képernyôrôl átvált a szöveges képernyôre (hasonlóan, mint az AutoCAD Képváltó funkcióbillentyűje). A textscr függvény mindig nil értékkel tér vissza Lásd még: a fent ismertetett textpage függvényt, valamint a graphscr függvény ismertetését. (trace függvény.) Ez a függvény hibakeresô (debug) segédeszköz. Beállítja a megadott függvények nyomkövetô (trace) flagjét A megadott függvény minden kiértékelésekor megjelenik a nyomkövetô (trace) kijelzés, amely (a hívás mélységének szintjéig tabulálva) jelzi a függvény belépését, és kiírja a függvény eredményét. Például: (trace saját-függv)

eredménye SAJÁT-FÜGGV és beállítja a SAJÁT-FÜGGV nyomkövetô flagjét. A trace függvény az utolsó függvény nevével tér vissza Lásd még: az untrace függvény ismertetését. (trans pont kiinduló céI [elmozdulás]) Ez a függvény egy pontot (vagy egy elmozdulást) transzformál át az egyik koordináta-rendszerbôl egy másikba. A pont argumentum három valós értékbôl álló lista, amely jelenthet egy 3D pontot, vagy egy 3D elmozdulást (vektort). A kiinduló argumentum annak a koordináta-rendszernek a kódja, amelyben a pont meg van adva, a cé1 pedig annak a koordináta-rendszernek a kódja, amelybe a pontot transzformálni kívánja. Az opcionális elmozdulás argumentum, amennyiben jelen van és értéke nem nil, azt jelzi, hogy a pont argumentumot nem pontként, hanem 3D elmozdulásként kell értelmezni. A kiinduló és a cé1 argumentum a következô értékek valamelyikét veheti fel: • Egy egész érték az alábbi táblázatból.

Koordináta-rendszerek kódjai Kód Koordináta-rendszer 0 Világ (VKR) 1 Felhasználói (aktuális FKR) 2 Képernyô: A 0-ás vagy 1-es kóddal együtt használva az aktuális nézetablak KKR rendszere A 3-as kóddal együtt használva a modelltér aktuális nézetablakának KKR rendszere 3 A papírtér KKR rendszere (csak a 2-es kóddal együtt használható) • Egy rajzelem neve, amelyet az entnext, entlast, entsel, nentsel vagy ssname függvények eredményeként kapott. Ennek segítségével egy adott rajzelem Elem Koordináta-rendszerébe (EKR), vagy megfordítva, abból egy másik koordináta-rendszerbe transzformálhat egy pontot. (Néhány rajzelem esetében az EKR megegyezik a VKR rendszerrel, így ezeknél az EKR és a VKR közötti konverzió egy üres műveletet jelent.) • Egy 3D kihúzási irányvektor (három valós szám listája). Ez egy másik módszer egy rajzelem EKR rendszerébôl, illetve rendszerébe való transzformációra. Ez a módszer azon rajzelemek

esetében azonban nem működik, amelyek EKR rendszere megegyezik a VKR rendszerrel. A trans függvény a megadott cél koordináta-rendszerben kifejezett 3D ponttal (vagy elmozdulással) tér vissza. Legyen adott például az az FKR, amely a VKR Z tengely körüli 90 fokos, az óramutató járásával ellentétes irányú elforgatásával jön létre: (trans ‘(1.0 20 30) 0 1) eredménye (20 -10 30) (trans ‘(1.0 20 30) 1 0) eredménye (-20 10 30) A koordináta-rendszerekrôl részletesebb ismertetô a "Koordináta-rendszerek közötti transzformációk" című részben, található. Például, ha egy Szöveg rajzelem beillesztési pontjától kíván egy vonalat húzni (Traszter használata nélkül), akkor a Szöveg beillesztési pontját a saját EKR rendszerébôl át kell transzformálnia az FKR rendszerbe: (trans szöveg-beill-pont szöveg-elemnév1) és a Ponttól: promptra válaszként a kapott eredményt kell megadnia Megfordítva, egy pontot (vagy egy

elmozdulást) át kell transzformálnia a cél EKR rendszerbe, mielôtt az entmod függvénynek bemenô adatként átadná. Például, ha egy kört kíván elmozgatni (a MOZGAT parancs használata nélkül) az FKR rendszerhez viszonyított (1,2,3) elmozdulás értékkel, akkor az elmozdulást elôször át kell transzformálnia az FKR rendszerbôl a Kör EKR rendszerébe: (trans (1 2 3)) kör-elemnév) és az eredményül kapott elmozdulás értéket kell hozzáadnia a Kör középpontjának koordinátáihoz. Például, ha van egy felhasználó által megadott pont, és meg akarja tudni, hogy az adott nézetben egy Vonal melyik végpontja látszik ehhez a ponthoz közelebb, akkor a pontot át kell transzformálnia az FKR rendszerbôl a KKR rendszerbe: (trans felhaszn-pont 1 2) valamint a Vonal mindkét végpontját a Vonal EKR rendszerébôl a KKR rendszerbe: (trans végpont vonal-elemnév 2) Ez alapján kiszámíthatók a felhasználó által megadott pont és a Vonal végpontjai

közötti távolságok (a Z összetevôket figyelmen kívül hagyva), és megállapítható, hogy melyik látszik közelebbinek. A trans függvény 2D pontok transzformációjára is felhasználható. Ezt a függvény a Z összetevô megfelelô értékkel való feltöltésével teszi meg. A használt Z összetevô értéke a megadott kiinduló koordináta-rendszertôl, valamint attól függ, hogy a transzformálni kívánt érték pont, avagy elmozdulás érték. Ha el mozdulás, akkor a Z érték mindig 0.0; ha pont, akkor a feltöltött Z meghatározása a következôképpen történik: Z értékek 2D pontok transzformálásakor Kiinduló Feltöltött Z érték VKR 0.0 FKR az aktuális kiemelés EKR 0.0 KKR Az aktuális szerkesztési síkra vetítve (az FKR XY síkja + az aktuális kiemelés) PTKKR Az aktuális szerkesztési síkra vetítve (az FKR XY síkja + az aktuális kiemelés) (type tétel) Ez a függvény a tétel típusával tér vissza, ahol a típus az alább felsoroltak

(atomok) egyike lehet. Azon tételek esetében, amelyek kiértékelése nil eredményt ad (például azon szimbólumok esetében, amelyekhez nincs érték rendelve), a függvény nil értékkel tér vissza. Szimbólumok tipusai Típus Jelentés REAL Lebegôpontos számok FILE Fájlleírók STR Karakterláncok INT Egész számok SYM Szimbólumok LIST Listák (és felhasználói függvények) SUBR Belsô függvények EXSUBR Külsô (ADS) függvények PICKSET Kiválasztott elemsorozatok ENAME Elemnevek PAGETB Függvények laptáblája Vegyük például az alábbi értékadó utasításokat: (setq a 123 r 3.45 s "Helló:" x (a b c)) (setq f (open "név" "r")) ebben az esetben (type a) eredménye SYM (type a) eredménye INT (type f) eredménye FILE (type r) eredménye REAL (type s) eredménye STR (type x) eredménye LIST (type +) eredménye SUBR (type nil) eredménye nil A következô példa azt illusztrálja, hogy miként használhatja a type

függvényt: (defun egész-e (a) (if (= (type a) INT) egész típusú? T igen, eredmény T nill)) nem, eredmény nil (untrace függvény.) Ez a függvény törli a megadott függvények nyomkövetô (trace) flagjét, és az utolsó függvény nevével tér vissza. Ez a függvény szelektíven tiltja le a nyomkövetô segédeszközt. A következô függvényhívás például törli a SAJÁT-FÜGGV függvény nyomkövetô flagjét: (untrace saját-függv) eredménye SAJÁT-FÜGGV Lásd még: a trace függvény ismertetését. (ver) Ez a függvény egy karakterlánccal tér vissza, amely az AutoLISP aktuális verziószámát tartalmazza. Ez felhasználható (az equal függvénnyel) a programok kompatibilitásának ellenôrzésére. A karakterlánc formátuma a következô: "AutoLISP Release XX" ahol az XX az aktuálisan használt verzió száma. Például: (ver) eredménye lehet "AutoLISP Release 12. 0 (hu) " Az alkalmazások a ver függvény által visszaadott

karakterlánc alapján megállapíthatják, hogy az AutoLISP melyik verziója alatt futnak. (vmon) Erre a függvényre többé már nincsen szükség a virtuális függvénylapozás engedélyezéséhez, azonban továbbra is érvényes a korábbi verziókkal való kompatibilitás megôrzése céljából. Lásd a "Virtuális függvénylapozás" című részt. (vports) Ez a függvény az aktuális nézetablak-konfiguráció nézetablak-leíróinak listájával tér vissza. Mindegyik nézetablak-leíró a nézetablak azonosítószámát, valamint a nézetablak bal alsó és jobb felsô sarokpontjának pozícióját tartalmazza. Amennyiben az AutoCAD TILEMODE rendszerváltozója 1-re (be) van állítva, a lista az AutoCAD NÉZETABL parancsával létrehozott nézetablak-konfigurációt írja le. A nézetablakok sarkait 00 és 1.0 közötti értékekkel fejezi ki, ahol a (00 00) a képernyô grafikus területének bal alsó, az (10 10) pedig a jobb felsô sarkát képviseli. Ha a

TILEMODE értéke 0 (ki), akkor a visszatérô lista az MNÉZET paranccsal létrehozott nézetablak rajzelemek leírását tartalmazza. A nézetablak rajzelemek sarokpontjai papírtérbeli koordinátákban vannak kifejezve. Kikapcsolt (0) TILEMODE esetén az 1-es számú nézetablak mindig a papírtérben van Például, egyetlen nézetablakból álló konfiguráció és TILEMODE 1 értéke esetén a vports függvény az alábbi eredménnyel térhet vissza: ((1 (0.0 00) (10 10))) Hasonlóképpen, ha adott a képernyô négy sarkában elhelyezkedô négy egyenlô nagyságú nézetablakból álló konfiguráció, és a TILEMODE be van kapcsolva, akkor a vports függvény a következô eredménnyel térhet vissza: ((5 (0.5 00) (10 05)) (2 (05 05) (10 10)) (3 (00 05) (05 10)) (4 (00 00) (05 05))) A listában mindig az aktuális nézetablak leírója szerepel az elsô helyen. A fenti példában az 5-ös számú az aktuális nézetablak. (wcmatch karakterlánc minta) Ez a függvény

globális karakter-összehasonlítást végez az adott karakterIáncon. A karakterláncot és a mintát egyezést keresve összehasonlítja. Egyezés esetén a visszatérési érték T, egyébként ni 1. A karakterlánc és a minta egyaránt lehet idézôjeles karakterlánc vagy változó. A minta az alábbi globális összehasonlító karaktereket tartalmazhatja. A karakterláncnak és a mintának csak az elsô, megközelítôleg 500 karaktere kerül összehasonlításra, a továbbiakról a függvény nem vesz tudomást. Globális karakterek Karakter Meghatározás # (Font) Egyetlen számjegyet helyettesít @ (At) Egyetlen alfabetikus karaktert helyettesít .(Pont) Egyetlen nem-alfanumerikus karaktert helyettesít * (Csillag) Bármilyen karaktersorozatot helyettesít,az üreset is.Bárhol használható a mintában: elején,közepén,végén ? (Kérdôjel) Egyetlen tetszôleges karaktert helyettesít ~ (Hullám) Ha ez a minta elsô karaktere,akkor a mintával egyezôk kivételével az

összeset keressük [. ] A szögletes zárójelek között felsorolt karakterek bármelyikét (egyet) helyettesíti [~.] A szögletes zárójelek között fel nem sorolt karakterek bármelyikét (egyet) helyettesíti - (Kötôjel) Szögletes zárójelek között használható,segítségével megadható egy karakter lehetséges értékeinek halmaza ,(Vesszô) Elválaszt két mintát ` (Ford.aposztróf) Kiemeli (hatástalanítja) a speciális karaktereket (betű szerint értelmezi a következô karaktert) Például: (wcmatch "Neve" "N*" ) eredménye T Ezzel ellenôrizhetô, hogy a Neve karakterlánc N betűvel kezdôdik-e. A mintában vesszôket is használhat, ezzel egyszerre több feltételt adva meg. Az alábbi példa három összehasonlítást végez: (wcmatch "Neve" "???,~*v,N") eredménye T Abban az esetben, ha a három feltétel bármelyike teljesül, a wcmatch függvény T értékkel tér vissza. A fenti példában a feltételek a

következôk: Neve három karakterbôl áll (hamis), Neve nem tartalmaz v betűt (hamis), és neve elsô betűje N (igaz). Mivel ez utolsó feltétel teljesült, ezért a kifejezés visszatérési értéke T Az összehasonlítás megkülönbözteti a kis- és nagybetűket is, így a minta megadásakor erre is tekiittettel kell lenni. A karakterláncban és a mintában AutoLISP függvények visszatérési értékének és változóknak a használata is megengedett. Ha egy globális karakter elôfordulását szeretné megvizsgálni egy karakterláncban, akkor azt egy fordított aposztróf (`) jellel kiemelve teheti meg. A kiemelés azt jelenti, hogy a fordított aposztrófot követô globális karaktert betű szerint kell értelmezni, figyelmen kívül hagyva annak speciális jelentését. Például, ha egy vesszôt keres bárhol a Neve karakterláncban, azt így adhatja meg: (wcmatch "Neve" "*`,") eredménye nil Vigyázat: Mivel a következô AutoLISP verziókban a

globális karakterek készlete kibôvülhet, a kompatibilitás megôrzése érdekében célszerű az összes nem-alfanumerikus karaktert kiemelni a mintában. A visszahajló törtjelet () a C programnyelv és az AutoLISP is vezérlô (escape) karakterként használja, ezért két (\) jelet kell tegyen, ha a karakterláncban egy () jelet kíván szerepeltetni. Például, ha egy visszahajló törtjelet keres bárhol a Neve karakterláncban, ezt így adhatja meg: (wcmatch "Neve" "*\") eredménye nil Minden szögletes zárójelbe tett karakter ([.])) betű szerint értendô, így ezek kiemelése nem szükséges, az alábbiak kivételével: a hullám jel (~) csak akkor értendô betű szerint, ha nem az elsô karakter a zárójelen belül (például: "[A~BC]"), egyébként negáló karakterként működik, és bármely, a zárójelek között nem található karakterrel való egyezést keres (például: "[~-BC]"). A kötôjelnek (-) a zárójelen

belül akkor van betű szerinti éretelmezése, ha ez az elsô vagy az utolsó karakter a zárójelen belül (például: "[-ABC]" vagy "[ABC-]"), vagy közvetlenül a bevezetô hullám után következik (például: "[~-ABC]"). Ellenkezô esetben a szögletes zárójelen belül a kötôjel (-) annak meghatározására használható, hogy egy adott karakternek milyen értéktartományon belül kell elhelyezkednie. A tartomány meghatározása csak egyedülálló karakterek esetében lehetséges, így a "szo [138] "a szo1, szo2, szo3 és szo8 karakterláncokra illik rá, az "[A-Z]" mintát pedig az összes egyedülálló nagybetű elégíti ki. A lezáró szögletes zárójel ("]") szintén betű szerint értendô a zárójeleken belül, ha ez a zárójelben lévô elsô karakter, vagy ha közvetlenül a bevezetô hullám jelet követi (például: "[ ]ABC]" vagy "[~]ABC]"). (while feltétel-kif kifejezés. )

Ez a függvény kiértékeli a feltétel-kif kifejezést, és ha értéke nem nil, akkor a többi kifejezést is kiértékeli, majd újból kiértékeli a feltéte1-ki f kifejezést. Ezt addig folytatja, amíg a feltétel-kif értéke nem nil A while függvény az utolsó ki fejezés legutolsó értékével tér vissza. Például az alábbi értékadó utasítást: (setq felt 1) ebben az esetben: (while (<= felt 10) (valami-függv felt) (setq felt (1+ felt)) tíz alkalommal hívná meg a felhasználó által definiált valami-függv függvényt, a felt 1-tôl 10-ig terjedô értékeivel. Ezt követôen az utolsó kiértékelt kifejezés értékével,11-gyel térne vissza (write-char szám [fájlleíró]) Ez a függvény egy karaktert ír ki a képernyôre, vagy a fájlleíróval azonosított nyitott fájlba. A szám a kiírni kívánt karakter decimális ASCII kódja; a függvény ezzel az értékkel tér is vissza. Például: (write-char 67) eredménye 67 és megjeleníti a

képernyôn a C betűt. Feltételezve, hogy az f egy megnyitott fájl azonosítója: (write-char 67 f ) eredménye 67 és a C betűt ebbe a fájlba írja ki. A különbözô operációs rendszerek, amelyek alatt az AutoCAD és az AutoLISP futtatható, az ASCII szövegfájlokban eltérô módon jelölik a sor végét. A UNIX rendszerek például egyetlen újsor karaktert használnak (LF, ASCII kódja 10), míg a DOS rendszerek ugyanerre a célra egy karakterpárt (CR/LF, ASCII kódjuk 13 és 10) használnak. Az AutoLISP programok fejlesztésének megkönnyítése érdekében, valamint hogy ezek hordozhatók legyenek az AutoCAD programot támogató operációs rendszerek között, a write-char függvény az újsor karaktert (ASCII kódja 10) az éppen használt operációs rendszernek megfelelô "sor vége" karakterré (vagy karakterpárrá) alakítja át. Tehát DOS operációs rendszer esetében: (write-char 10 f ) eredménye 10 de a fájlba a CR/LF (ASCII kódjuk 13 és 10)

karakterpárt írja be. A write-char függvény NUL karaktert (ASCII kódja 0) nem képes a fájlba írni. Lásd még: az ASCII kódok felsorolását. (write-line karakterlánc [fájlleiró]) Ez a függvény egy karakterláncot ír ki a képernyôre, vagy a fájlleiróval azonosított nyitott fájlba. A függvény a szokott módon idézôjelek közé tett karakterlánccal tér vissza, de a fájlba az idézôjeleket nem illeszti be. Példaként tételezzük fel, hogy az f egy nyitott fájl érvényes azonosítója: (write-line "Próba" f) kiírás: Próba eredmény: "Próba" (xdroom elemnév) Ez a függvény az elemnév nevű rajzelemhez hozzáfűzhetô bôvített adatok számára rendelkezésre álló hely nagyságával tér vissza. Amennyiben az xdroom hívása sikertelen, a visszatérési értéke nil Mivel egy rajzelemhez csak korlátozott (jelenleg 16 kilobájt) mennyiségű bôvített adat tartozhat, továbbá több alkalmazás is fűzhet bôvített

adatokat ugyanahhoz a rajzelemhez, ezért ez a függvény arra szolgál, hogy segítségével az alkalmazások ellenôrizhessék, van-e elegendô hely az adott rajzelemhez általuk hozzáfűzni kívánt bôvített adatok számára. Hívása kapcsolódhat az xdsize függvényéhez, amely egy bôvített adatlista méretét adja vissza. Az alábbi példa egy Nézetablak rajzelem bôvített adatai számára rendelkezésre álló helyet vizsgálja meg. Tételezzük fel, hogy a nabneve változó egy Nézetablak rajzelem nevét tartalmazza: (xdroom nabneve) eredménye 16162 Ebben a példában a bôvített rajzelemadatok eredeti 16383 bájtjából 16162 áll rendelkezésre, ami azt jelenti, hogy 221 bájt már foglalt. A már felhasznált bôvített adathely nagysága az xdsize függvénnyel tudható meg közvetlenül (xdsize lista) Ez a függvény annak a helynek a nagyságával tér vissza (bájtokban), amelyet a lista elfoglalna, ha egy rajzelemhez bôvített elemadatként csatolná.

Sikertelen hívás esetén a függvény nil értékkel tér vissza A listának érvényes bôvített adatlistának kell lennie; tartalmaznia kell egy elôzôleg a regapp függvénnyel bejegyzett alkalmazásnevet, és egyenlô számú nyitó illetve záró mezôt (csoportkódja 1002). Érvénytelen lista hibát okoz, és a hibának megfelelô kód az ERRNO rendszerváltozóba kerül. Amennyiben a bôvített adatok be nem jegyzett alkalmazásnevet tartalmaznak, a következô hibaüzenet jelenik meg (feltéve, hogy a CMDECHO be van kapcsolva): Érvénytelen alkalmazásnév a(z) 1001 csoportban A lista kezdôdhet -3-as csoportkóddal (bôvített adat jelzôje), de ez nem feltétlenül szükséges. Mivel a bôvített adatok több alkalmazásról is tartalmazhatnak információt, a listát még egyszer zárójelbe kell tenni. Például: (-3 ("SAJALK" (1000 . "SODRONYING") (1002 ."{") (1040 . 00) (1040 . 10) (1002 . "}"))) A következô példa ugyanez,

a -3-as csoportkód nélkül. Ez a lista az elsô példának csak a cdr értéke, de fontos megfigyelni, hogy a zárójeleket ez is tartalmazza: (("SAJALK" (1000 . "SODRONYING") (1002 ."{") (1040 . 00) (1040 . 10) (1002 . "}"))) Az alábbi xdsize lista érvényteÍen, mivel nincs zárójelbe téve: ("SAJALK" (1000 . "SODRONYING") (1002 ."{") HIBAS (1040 . 00) (1040 . 10) (1002 . "}")) A következô példában az xdsize függvény olyan listát kap, amely két bejegyzett alkalmazásról tartalmaz információt: (setq n1 (list "SAJALK" (cons 1000 "SODRONYING") (cons 1040 0.0) (cons 1040 1.0))) (setq n2 (list "MÁSALK" (cons 1000 "SODRONYING") (cons 1040 0.0) (cons 1040 1.0))) (regapp "SAJALK") (regapp "MÁSALK") (xdsize (list n1 n2)) eredménye 48 (xload alkalmazás [hibaeset]) Ez a függvény egy AutoCAD Fejlesztôi Rendszerben (ADS) készült

alkalmazást tölt be. Amennyiben az alkalmazás betöltése sikeres volt, a függvény annak nevével tér vissza, egyébként hibaüzenetet küld. A függvény hibát jelez, ha Ön egy már betöltött alkalmazással próbálkozik. Az alkalmazás megadható a futtatható fájl nevét tartalmazó, idézôjelbe tett karakterlánccal, vagy változóval. A fájl betöltésekor az AutoLISP ellenôrzi, hogy az ADS alkalmazás érvényes-e, valamint kompatibilis-e az aktuális ADS rendszerrel és az éppen használt AutoLISP verzióval. (xload "/sajat/alk") ha sikeres, eredménye "/sajat/alk" Amennyiben az xload művelet sikertelen, normális esetben egy AutoLISP hibát okoz. Ha azonban a hibaeset argumentumot is megadta, akkor a hibajelzés helyett ennek az argumentumnak az értéke tér vissza. Az xload függvénynek ez a tulajdonsága megegyezik a load függvényével. (xunload alkalmazás [hibaeset]) Ez a függvény egy ADS alkalmazást töröl a memóriából.

Amennyiben az alkalmazás törlése sikeres volt, annak nevével tér vissza, egyébként hibaüzenetet küld. Adja meg az alkalmazást, mint idézôjelbe tett karakterláncot, vagy mint változót, amely az xload függvénnyel betöltött alkalmazás nevét tartalmazza. Az alkalmazásnévnek pontosan meg kell egyeznie azzal, amit az alkalmazás betöltésekor megadott. Az xload függvényhívásban használt elérési útvonal (könyvtárnév) elhagyható. Például, a következô függvényhívás sikeresen törli az xload függvénnyel az elôbb betöltött alkalmazást. (xunload "alk") ha sikeres, eredménye "alk" Amennyiben az xunload művelet sikertelen, normális esetben egy AutoLISP hibát okoz. Ha azonban a hibaeset argumentumot is megadta, akkor a hibajelzés helyett ennek az argumentumnak az értéke tér vissza. Az xunload függvénynek ez a tulajdonsága megegyezik a load függvényével. (zerop tétel) Ez a függvény T értékkel tér vissza, ha a

tétel valós vagy egész típusú, és kiértékelésének eredménye nulla. Minden egyéb esetben nil értékkel tér vissza. Más típusú tételekre a függvény nem definiált Például: (zerop 0) eredménye T (zerop 0.0) eredménye T (zerop 0.00001) eredménye nil ADS révén definiált AutoLISP függvények A következô függvényeket az acadapp nevű (DOS platformokon.exp kiterjesztésű) ADS program definiálja, és csak akkor használhatók, ha ezt a programot betöltötte. E függvények hívása elôtt az xload függvény segítségével bizonyosodhat meg arról, hogy az acadapp program rendelkezésre áll. (acad colordlg színszám [flag]) Megjeleníti az AutoCAD színkiválasztásra szolgáló szabvány párbeszédablakát. A szinszám argumentum egy 0 és 256 közé esô egész szám, mely a kezdetben megjeleníteni kívánt alapértelmezés szerinti szín számát adja meg. Amennyiben az opcionális flagargumentum is adott és nil, a FÓLIA és BLOKK nyomógombok

letiltásra kerülnek. Ha nincs megadva, vagy értéke nem nil, akkor ezek a nyomógombok engedélyezettek Az acad colordlg függvény annak a színnek a számával tér vissza, amelyet a felhasználó az OK nyomógomb révén kiválaszt. Ha a felhasználó elveti a párbeszédablakot, akkor az acad colordlg függvény nil értékkel tér vissza. Példa A következô kifejezés a felhasználótól egy szín kiválasztását kéri. Alapértelmezésként a zöld szint adja meg: (acad colordlg 3) Megjegyzés: A szinszám 0 értéke esetén a BLOKK, 256 esetén pedig a FÓLIA az alapértelmezés szerinti szín. (acad helpdlg sosfájl téma) Megjeleníti az AutoCAD szabvány SOS párbeszédablakát egy adott fájl felhasználásával. Ennek a függvénynek az Ön által írt AutoLISP rutinból történô meghívásával segítséget nyújthat a szabvány AutoCAD parancsok, vagy speciálisan a saját alkalmazásának használatához. Az sosfájl argumentum egy AutoCAD SOS fájl megadására

szolgáló karakterlánc (a.hlp kiterjesztés megadása nem szükségés). A téma argumentum egy kulcsszó, amely a párbeszédablakban kezdetben megjelenô témát határozza meg. Ha a téma argumentum egy üres karakterlánc (""), akkor az SOS párbeszédablakban az SOS fájl bevezetô része jelenik meg. A saját alkalmazások esetében általában egy erre a célra adaptált SOS fájlt szokás megadni. Példák Elkészítheti az alábbi, ac sos nevű AutoCAD SOS fájlt (az AutoCAD SOS fájljainak .hlp kiterjesztésűeknek kell lenniük): Az acad helpdlg függvény az Auto CAD szabvány SOS párbeszédablakát jeleníti meg. Hívása a következô formában történik: acad helpdlg <sosfájl> <téma> SOSFÁJL Az <sosfájl> argumentum egy AutoCAD SOS fájlt határoz meg. Ahlp kiterjesztés opcionális TÉMA A <téma> argumentum a kezdetben megjelenô témát jelöli ki Ha a <téma> argumentum üres (""), akkor az acad helpdlg

függvény a megadott SOS fájl bevezetô részét jeleníti meg Az alábbi programsorban szereplô acad helpdlg függvényhívás az ac sos.hlp nevű SOS fájl bevezetô szövegét jeleníti meg: (acad helpdlg "ac sos" "") A következô programsor csaknem azonos ezzel, azonban a TÉMA kulcsszóhoz tartozó szövegoldalt jeleníti meg: (acad helpdlg "ac sos" "téma") (acad strlsort lista) Betűrend szerint sorba rendez egy karakterláncokból álló listát. A lista argumentum a rendezni kívánt karakterláncokat tartalmazó lista. Az acad strlsort függvény egy olyan listával tér vissza, mely ugyanezeket a karakterláncokat betűrendben tartalmazza. Ha az argumentumként átadott lista formája nem megfelelô, vagy nincs elegendô memória a rendezés végrehajtásához, akkor az acad strlsort függvény nil értékkel tér vissza. Példa A következô programrészlet a napok neveit rendezi sorba: (setq napok ("hétfô"

"kedd" "szerda" "csütörtök" "péntek" "szombat" "vasárnap")) (acad strlsort napok) és a következô listát adja eredményül: ("csütörtök" "hétfô" "kedd" "péntek" "szerda" "szombat" "vasárnap") ADS révén definiált parancsok Ez a rész az ADS programokkal definiált azon AutoCAD parancsok felsorolását tartalmazza, amelyek azzal a speciális tulajdonsággal rendelkeznek, hogy AutoLISP kifejezésekbôl elérhetôk. Csak abban az esetben használhatók, ha az acadapp nevű ADS program be van töltve. (c:hsraffoz pont [elemsor] [vektor]) Besraffoz egy kiválasztott területet a HSRAFFOZ parancs felhasználásával Ennek a függvénynek az elsô, pont argumentuma egy pont a határvonalig besraffozni kívánt terület belsejében. Ez a pont (ha érvényes) egy határoló Vonalláncot eredményez, amely a sraffozási területet határozza meg. Az

elemsor argumentum egy kiválasztott elemsorozat, amely a határvonalat képezô további rajzelemeket tartalmaz. A vektor, az utolsó argumentum egy pontlista, amely a HSRAFFOZ parancs vetítô sugara által használt irányvektort adja meg. Amennyiben ez az argumentum nincs megadva, akkor az alapértelmezés a (0 0) vektor, amely a "Szomszédos" módszernek felel meg. A vektor argumentumban a függvény 2D vagy 3D pontlistát is elfogad, de a 3D pont Z koordinátáját nem veszi figyelembe. Példák: A következô példák feltételezik, hogy a HPNAME rendszerváltozó egy érvényes Sraffozási minta nevét tartalmazza. (setq pl (3 5) es1 (entlast)) kiválasztja az utoljára létrehozottrajzelemet (c:hsraffoz p1) besraffozza a (3,5) pont által létrehozott határoló Vonallánc meghatározta területet (c:hsraffoz p1 es1) besraffozza a (3,5)pontvalamintaz es1 elemsorozat által létrehozott határoló Vonallánc meghatározta területet (c:hsraffoz p1 (1 0)) besraffozza a

(3,5) pont által létrehozott határoló Vonallánc meghatározta területet +X irányú vetitô sugár alkalmazásával A vektor argumentum koordinátaértékei valós számok, amelyek tetszôleges értéket vehetnek fel. A következô táblázat példákat mutat be a HSRAFFOZ párbeszédablakában használatosaknak megfelelô értékekre: Vetitôsugár-irányok és vektorértékek Vektor értéke Irány (0 0) (Szomszédos) (1 0) +X (0fok) (0 1) +Y (90fok) (-1 0) -X (180fok) (0 -1) -Y (270fok) (1000 1732) 60fok (megköz.) (1 -1) 315fok Sikeres hívás esetén a c:hsraffoz függvény a létrehozott Sraff rajzelem nevével, hiba esetén pedig nil értékkel tér vissza. Ha a c:hsraffoz függvényhívás sikertelen, akkor egy hibaüzenet olvasható ki a bherrs függvény segítségével. (c:hvlánc pont [elemsor] [vektor]) Egy határoló Vonalláncot hoz létre a HVLÁNC parancs felhasználásával. Ennek a függvénynek az elsô, pont argumentuma egy pont a határvonallal

körülvenni kívánt terület belsejében. Az elemsor argumentum egy kiválasztott elemsorozat, amely a határvonalat képezô további rajzelemeket tartalmaz. A vektor, az utolsó argumentum egy pontlista, amely a HVLÁNC parancs vetítô sugara által használt irányvektort adja meg (lásd az előző táblázatot). Amennyiben ez az argumentum nincs megadva, az alapértelmezés a (0 0) vektor, amely a "Szomszédos" módszernek felel meg. A vektor argumentumban a függvény 2D vagy 3D pontlistát is elfogad, de a 3D pont Z koordinátáját nem veszi figyelembe. Sikeres hívás esetén a c:hvlánc függvény a létrehozott határoló Vonallánc rajzelem nevével, hiba esetén pedig nil értékkel tér vissza. Ha a c:hvlánc függvényhívás sikertelen, akkor egy hibaüzenet olvasható ki a bherrs függvény segítségével. (bherrs) Kiolvassa egy sikertelen c:hsraffoz vagy c:hvlánc függvényhívás során keletkezett hibaüzenatet. Eredménye sikeres hívás esetén a

hibaüzenetet tartalmazó karakterlánc, egyébként pedig nil. Példa: A c:hsraffoz függvényhívás után a program hibaellenôrzés céljából a következô sort tartalmazhatja: (if (bherrs) (princ (car (bherrs)))) Ha a függvényhívás azért nem sikerült, mert a HPNAME rendszerváltozó értéke nem volt beállítva, akkor a bherrs függvény a "hsraffoz: nincs definiálva sraffozási minta " karakterláncot adja vissza, melyet a princ függvény az AutoCAD promptsorában jelenít meg. (c:pskép mód) A PSKÉP parancs meghívásával a PSDRAG értékét állíthatja be. A mód argumentum egy egész szám, melynek értéke 0 vagy 1 lehet. A PSDRAG aktuális értéke a PSBE parancs interaktív használatát befolyásolja Amennyiben a PSDRAG értéke l, a PSBE parancs folyamatosan kirajzolja a PostScript képet, miközben a felhasználó vontatással változtatja annak méretét. Amennyiben a PSDRAG értéke 0, a PSBE parancs csak a kép befoglaló keretét rajzolja ki

vontatás közben. Sikeres hívás esetén a c:pskép függvény a PSDRAG új értékével, hiba esetén pedig nil értékkel tér vissza. Példa Az alábbi kifejezés az 1 érték beállításával bekapcsolja a PSDRAG módot. Ezt követôen a PSBE parancs interaktív használatakor folyamatosan kirajzolja a PostScript képet, miközben a felhasználó vontatással változtatja annak méretét. (c:pskép 1) (c:pskitölt elemnév minta [arg1 [arg2]].) A PSKITÖLT parancs meghívásával PostScript mintával tölt ki egy Vonallánc rajzelemet. Az elemnév argumentum a Vonallánc neve. A minta argumentum a kitöltési minta nevét tartalmazó karakterlánc A minta karakterláncnak meg kell egyeznie az aktuális acad.psffájlban definiált kitöltési minták egyikével Az argumentumok a belsô PostScript kitöltési eljárás argumentumai: számuk és típusuk a minta által igényelt argumentumoknak felelnek meg az acad.psf fájlban szereplô definíció szerint Minden argumentum egy

egész vagy valós számérték. Számuk mintánként 0-tól 25-ig terjedhet Ha a függvényhívásban kevesebb argumentum szerepel, mint amennyit a minta definíciója megkövetel, akkor a fennmaradó argumentumok helyett az AutoCAD a minta alapértelmezés szerinti értékeit veszi figyelembe. Sikeres hívás esetén a c:pskitölt függvény T, hiba esetén pedig nil értékkel tér vissza. Példa A Greyscale kitöltési mintának egyetlen argumentuma van. A következô függvényhívás az alapértelmezés szerinti Greyscale argumentumot használja fel, melynek értéke 50 százalék: (c:pskitölt elemnév "Greyscale") Ez a hívás pedig 10 százalékos szürkeárnyalatot határoz meg: (c:pskitölt elemnév "Greyscale" 10) (c:psbe fájlnév pozíció lépték) A PSBE parancs meghívásával átvesz egy Encapsulated PostScript (.eps) fájlt A fájlnév argumentum a PostScript kép nevét tartalmazó karakterlánc (a fájl .eps kiterjesztését nem kell

megadnia) A pozíció argumentum a (névtelen) PostScript blokk beillesztési pontját határozza meg. A lépték argumentum egy valós szám, amely a méretarány tényezôt adja meg. Sikeres hívás esetén a c:psbe függvény az újonnan létrehozott rajzelem nevével, hiba esetén pedig nil értékkel tér vissza. Példa A következô kifejezés átvesz egy minta.eps nevű PostScript fájlt a (24,19) pontba beillesztve, 25-szörös nagyítással: (c:psbe "minta" (24 19) 25)