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: "