lisp函數(shù)大全詳解
AutoLISP提供了大量的預(yù)定義函數(shù)。若將函數(shù)名(大小寫都可)作為表中的第一個(gè)元素函數(shù)變?cè)ㄈ粲械脑挘┳鳛楸碇泻竺娴脑兀涂梢哉{(diào)用那個(gè)函數(shù)。本章按字母順序列出AutoLISP所有基本函數(shù)。用戶會(huì)發(fā)現(xiàn)其中許多函數(shù)都是標(biāo)準(zhǔn)函數(shù),可在LISP程序設(shè)計(jì)語言中找到。還有一些函數(shù)是由 AutoCAD提供的且專用于交互圖形環(huán)境。
1 FLATLAND 系統(tǒng)變量--與老版本的兼容性
AutoLISP版本10支持AutoCAD的最新增強(qiáng)型三維圖形功能,則時(shí)繼續(xù)保證與AutoCAD 老版本的兼容性。FLATLAND系統(tǒng)變量就是用來控制該兼容性的。當(dāng)FLATLAND為零時(shí),實(shí)現(xiàn)新三維功能;否則各函數(shù)操作與AutoLISP版本9的一樣。FLATLANDR的設(shè)置作用于下列
AutoLISP函數(shù):
DISTANCE GRREAD POLAR
ENTGET INITGET TBLNEXT
GETDIST INTERS TBLSEARCH
GETPOINT OSNAP
在各函數(shù)說明中,已注明FLATLAND對(duì)上述函數(shù)起作用的方式。
2 ( + 《數(shù)》 《數(shù)》 。。。)
這個(gè)函數(shù)返回所有《數(shù)》的總和。其中的《數(shù)》可以是整型或?qū)嵭偷?。如果所有的《?shù)》都是整數(shù),其結(jié)果也是整數(shù);如果其中有一個(gè)是實(shí)型的,那么其它整型數(shù)將轉(zhuǎn)換為實(shí)型
數(shù)結(jié)果將是實(shí)型數(shù)。例如:
?。? 1 2) returns 3
(+ 1 2 3 4.5) returns 10.5
?。? 1 2 3 4.0) returns 10.0
3 ( - 《數(shù)》 《數(shù)》 。。。)
這個(gè)函數(shù)把第一個(gè)《數(shù)》減去第二個(gè)《數(shù)》,返回它們的差。如果給定的《數(shù)》多于兩個(gè),那么將第一個(gè)《數(shù)》減去其后所有數(shù)之和,并返回最后的結(jié)果。如果只給了一個(gè)《數(shù)》,即返回零減這個(gè)《數(shù)》的結(jié)果。此函數(shù)中的《數(shù)》可以是實(shí)型或整型,按標(biāo)準(zhǔn)規(guī)則進(jìn)行類型轉(zhuǎn)換。
例如:
(- 50 40) returns 10
(- 50 40.0 2) returns 8.0
?。? 50 40.0 2.5) returns 7.5
?。? 8) returns -8
4 (* 《數(shù)》 《數(shù)》。。。)
這個(gè)函數(shù)返回所有《數(shù)》的乘積。其中《數(shù)》可以是實(shí)型或整型。按標(biāo)準(zhǔn)規(guī)則進(jìn)行類型轉(zhuǎn)換
例如:
?。? 2 3) returns 6
?。? 2 3 4.0) returns 24.0
?。? 3 -4.5) returns -13.5
5 (/ 《數(shù)》 《數(shù)》。。。)
這個(gè)函數(shù)將第一個(gè)《數(shù)》除以第二個(gè)《數(shù)》,返回其商。如果給出的《數(shù)》多于兩個(gè),則把第一個(gè)《數(shù)》除以其它所有《數(shù)》的乘積,并返回最后的商。此函數(shù)中的《數(shù)》可以是實(shí)型或整型,類型的轉(zhuǎn)換按標(biāo)準(zhǔn)規(guī)則進(jìn)行。例如:
(/ 100 2) returns 50
(/ 100 2.0) returns 50.0
?。? 100 20.0 2) returns 2.5
?。? 135 360) returns 0
?。? 135 360.0) returns 0.375
6 (= 《原子》 《原子》。。。)
這是“等于”關(guān)系函數(shù)。如果所有指定的《原子》在數(shù)值上是相等的,則返回T;否則返回空(nil)。這個(gè)函數(shù)適用于數(shù)和字符串。例如:
(= 4 4.0) returns T
?。? 20 388) returns nil
?。? 2.4 2.4 2.4) returns T
(= 499 499 500) returns nil
?。? “me” “me”) returns T
?。? “me” “you”) returns nil
7 (/= 《原子1》 《原子2》。..)
這是一個(gè)“不等于”關(guān)系函數(shù)。如果《原子1》數(shù)值上不等于《原子2》,則返回T;否則返回nil,如果提供的《變?cè)范嘤趦蓚€(gè),則函數(shù)無定義。例如:
?。?= 10 20) returns T
(/= “you” “you”) returns nil
?。?= 5.43 5.44) returns T
8 (《 《原子》 《原子》。。。)
這是一個(gè)“小于”關(guān)系函數(shù)。如果第一個(gè)《原子》值小于第二個(gè),則返回T;否則返回nil,如果所給的《原子》多于兩個(gè),那么當(dāng)每個(gè)《原子》都小于其右邊的《原子》時(shí),則返回T.
例如:
?。ā?10 20) returns T
?。ā?“b” “c”) returns T
?。ā?357 33.2) returns nil
?。ā?2 3 88) returns T
?。ā?2 3 4 4) returns nil
9 (《= 《原子》 《原子》。。。)
這是一個(gè)“小于或等于”關(guān)系函數(shù)。如果第一個(gè)《原子》值大于或等于第二個(gè)原子,則返回T;否則返回nil.如果所給的《原子》多于兩個(gè),則當(dāng)每一個(gè)《原子》都小于或等于其右邊的《原子》時(shí),才返回T.例如:
?。ā? 10 20) returns T
?。ā? “b” “b”) returns T
?。ā? 357 33.2) returns nil
?。ā? 2 9 9) returns T
?。ā? 2 9 4 5) returns nil
10 (》 《原子》 《原子》。。。)
這是一個(gè)“大于”關(guān)系函數(shù)。如果第一個(gè)《原子》值大于第二個(gè),則返回T;否則返回nil,若所給定的《原子》多于兩個(gè),當(dāng)每個(gè)《原子》都大于其右邊的《原子》時(shí),則返回T. 例如:
?。ā?120 17) returns T
(》 “c” “b”) returns T
?。ā?3.5 1792) returns nil
(》 77 4 2) returns T
?。ā?77 4 4) returns nil
評(píng)論
查看更多