CADLISP函數(shù).doc_第1頁(yè)
CADLISP函數(shù).doc_第2頁(yè)
CADLISP函數(shù).doc_第3頁(yè)
CADLISP函數(shù).doc_第4頁(yè)
CADLISP函數(shù).doc_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

CADLISP語(yǔ)言數(shù)據(jù)類型1. 表2. 文件描述符3. 實(shí)體名4. 選擇集5. 內(nèi)部函數(shù)(AutoLISP子程序)6. 外部函數(shù)(ADS、ARX函數(shù))代碼意義ASII碼鍵114”“鍵042eESC鍵033n換行012r回車015t制表鍵011賦值與數(shù)值計(jì)算函數(shù)1. (1+ 數(shù)) 加1函數(shù)2. (1- 數(shù)) 減1函數(shù)3. (abs 數(shù))求絕對(duì)值4. (max數(shù) 數(shù) )求最大數(shù)5. (min數(shù) 數(shù) )求最小數(shù)6. (sqrt數(shù))求平方根7. (expt數(shù) 冪)乘方8. (exp 冪)e的任意次方9. (log數(shù))對(duì)數(shù)10. (sin 角)正弦函數(shù)11. (cos角)余弦12. (atan數(shù)1數(shù)2)反正切函數(shù)13. (rem數(shù)1 數(shù)2)求余數(shù)14. (gcd數(shù) 數(shù))最大公約數(shù)15. ( 整數(shù))求補(bǔ) 注:用pi表示圓周率16. (logand數(shù) 數(shù))按位邏輯”與”函數(shù)17. (logior數(shù) 數(shù))按位邏輯”或”函數(shù)18. ( 數(shù))按位邏輯”非”函數(shù)19. (and 表達(dá)式)邏輯”與”函數(shù)20. (or 表達(dá)式)邏輯”或”函數(shù)21. (not 表達(dá)式)邏輯”非”函數(shù)22. (lsh 數(shù) 位數(shù))位移函數(shù)23. (boole 方式 數(shù)1 數(shù)2)布爾運(yùn)算。方式有16種,如1為and,6為xor(異或),7為or,8為not等。24. (= 原子 原子)等于函數(shù)25. (/= 原子 原子)不等于函數(shù)26. ( 原子 原子)小于函數(shù)27. ( 原子 原子)大于函數(shù)29. (= 原子 原子)大于等于函數(shù)30. (atom 項(xiàng))原子測(cè)試31. (listp 項(xiàng))表測(cè)試32. (boundp 原子)原子值測(cè)試33. (null 項(xiàng))空測(cè)試34. (numberp 項(xiàng))數(shù)值測(cè)試35. (minusp 項(xiàng))負(fù)值測(cè)試36. (zerop 項(xiàng))零測(cè)試37. (eq 式1 式2)相同表達(dá)式測(cè)試38. (equal式1 式2)相等測(cè)試39. (wcmatch 字符串 模式)字符匹配測(cè)試分支與循環(huán)1. (if 條件 式1式2)若條件為真,則執(zhí)行式1;否則執(zhí)行式2。2. (cond(條件1 式1)(條件2 式2)分支函數(shù)。如:(cond(minusp a)(- a)(T a))求a的絕對(duì)值。注:cond是AutoLISP中最基本的條件函數(shù),由它為核心構(gòu)成的自定義函數(shù)可以實(shí)現(xiàn)循環(huán)和遞歸等功能。3. (repeat 次數(shù) 式1 式2 )重復(fù)函數(shù)。將多個(gè)表達(dá)式重復(fù)執(zhí)行多次。4. (while 條件 式1 式2 )循環(huán)函數(shù)。條件為真,執(zhí)行表達(dá)式。否則結(jié)束循環(huán)。如:(setq s 0 a 1)(while( a 101)(setq s(+ s a)(setq a(1+ a))(print s) 計(jì)算0100之間所有整數(shù)的和。5. (progn 式1 式2 )求多個(gè)表達(dá)式值函數(shù)。在只能用一個(gè)表達(dá)式的地方,使用他可完成多個(gè)表達(dá)式的計(jì)算。如if 語(yǔ)句中字符串與類型轉(zhuǎn)換函數(shù)1. (ascii 字符串)ASCII碼轉(zhuǎn)換2. (chr 整數(shù))字符轉(zhuǎn)換3. (strcat 字符串)字符串連接4. (strlen 字符串)字符串長(zhǎng)度測(cè)試5. (substr 字符串 起點(diǎn) 長(zhǎng)度)取子字符串。如果不設(shè)置長(zhǎng)度,則取到最后一個(gè)字符。6. (strcase 字符串 方式)字符串大小寫轉(zhuǎn)換。若指定了方式且非空(NIL),則把所有的字母轉(zhuǎn)換為小寫;否則轉(zhuǎn)換為大寫。7. (float 數(shù))整型變實(shí)型8. (fix 數(shù))實(shí)型變整型9. (itoa 整型數(shù))整型變字符串10. (atoi 字符串)字符串變整型11. (atof 字符串)字符串變實(shí)型12. (angtos 角 方式 精度)角度單位轉(zhuǎn)換?!敖恰笔且曰《葹閱挝坏膶?shí)數(shù),轉(zhuǎn)換為其它單位,返回一個(gè)字符串。該字符串是以“方式”和“精度”的要求,按AutoCAD的系統(tǒng)變量UNITMODE(單位模式)對(duì)“角”進(jìn)行處理得到的,“精度”為小數(shù)點(diǎn)后的位數(shù)?!胺绞健庇校?為度,1為度/分/秒,2為梯度,3為弧度等。13. (rtos 數(shù) 方式 精度)實(shí)數(shù)計(jì)數(shù)制轉(zhuǎn)換。方式:1為科學(xué)計(jì)數(shù)法,2為十進(jìn)制,3為工程制(英寸與小數(shù)英寸),4為建筑制(英寸與分?jǐn)?shù)英寸)14. (cvunit 值 舊單位 新單位)單位制轉(zhuǎn)換。單位名稱可以是acad.unt文件中給出的任意單位格式,否則返回NIL(trans 點(diǎn) 舊坐標(biāo)系 新坐標(biāo)系)坐標(biāo)轉(zhuǎn)換。坐標(biāo):0為WCS(世界坐標(biāo)系),1為UCS(用戶坐標(biāo)系),2為DCS(顯示坐標(biāo)系)表處理函數(shù)1. (quote 表達(dá)式)引用函數(shù)。作用:告訴程序不要對(duì)后面的表達(dá)式求值。如:(quote(x y z)可簡(jiǎn)寫為 (x y z)2. (car 表)取表中的第一個(gè)元素3. (cdr 表)取子表函數(shù)。返回除第一個(gè)元素以外的所有元素組成的新表4. 由car與cdr組合而成的函數(shù)car與cdr是取表元素的基本函數(shù)。這兩個(gè)函數(shù)可以組合起來(lái)使用,從而獲得表中的其它元素,例如 cadr。這種組合最多可達(dá)四級(jí),即最多六個(gè)字符,如 caddar。AutoLISP執(zhí)行這組合函數(shù)時(shí)先從后面做起。例如:(caddr (1 2 3)) 返回3 (caddr (a (b c) d)) 返回(c)也就是說(shuō),若L為一張表,則有:(cadr L)=(car(cdr L))(cdadar L)=(cdr(car(cdr(car L)5. (last 表)取表中最后一個(gè)元素6. (nth n 表)取表中第n個(gè)元素(第一個(gè)元素的序號(hào)為0)7. (list 表達(dá)式)建立表函數(shù)8. (length 表)測(cè)量表長(zhǎng)9. (append 表1 表2 )連接表函數(shù)10. (cons 新元素 表)向表中添加元素11. (subst 新項(xiàng) 舊項(xiàng) 表)元素替換函數(shù)12. (reverse 表)表倒置函數(shù)13. (assoc 關(guān)鍵字 關(guān)聯(lián)表)assoc 函數(shù)。該函數(shù)在“關(guān)聯(lián)表”中搜索“關(guān)鍵字”,并返回關(guān)聯(lián)表中對(duì)應(yīng)元素。搜索無(wú)結(jié)果,則返回NIL14. (member 表達(dá)式 表)member函數(shù)。該函數(shù)在“表”中搜索“表達(dá)式”,并返回一張由第一次出現(xiàn)的“表達(dá)式”及其后面所有元素構(gòu)成的新表。15. (foreach 變量名 表 表達(dá)式)foreach函數(shù)。該函數(shù)依次將“表”中的每個(gè)元素的值賦給“變量名”對(duì)表中的每個(gè)元素計(jì)算每個(gè)表達(dá)式的值。函數(shù)返回最后一個(gè)表達(dá)式的計(jì)算結(jié)果。16. (apply 函數(shù) 表)Apply函數(shù)。以表為變?cè)?,?zhí)行“函數(shù)”給定的函數(shù)。如:(apply +(1 2 3)) 返回 6(apply strcat(“a” “b”)) 返回“ab”Apply既可用于內(nèi)部函數(shù),也可用于用戶定義的函數(shù)。17. (mapcar 函數(shù) 表1 表2)mapcar 函數(shù)。它執(zhí)行“函數(shù)”給定的函數(shù),并以后面各表中的每個(gè)元素作為函數(shù)的變?cè)?。如:(mapcar 1+(10 20 30))返回(11 21 31)(mapcar +(10 20 30)(4 3 2))返回(14 23 32) Apply函數(shù)的操作對(duì)象是單個(gè)表中的所有元素;mapcar函數(shù)則每次只處理多個(gè)表中的對(duì)應(yīng)元素,依次處理,直到結(jié)束。自定義函數(shù)1. defun函數(shù)格式:(defun 函數(shù)名 變量表 表達(dá)式)其中變量表被一個(gè)前后均有空格的斜杠符號(hào)“ / ”分成兩部分(形參 / 局部變量):形參在調(diào)用函數(shù)時(shí)接受參數(shù)傳遞而轉(zhuǎn)換為實(shí)參;局部變量?jī)H用于函數(shù)內(nèi)部1)變量表可以是空格,此時(shí)調(diào)用函數(shù)時(shí)無(wú)參數(shù)傳遞。2)變量表中的形參與局部變量均只在所定義的函數(shù)中起作用,甚至可以與某外部變量同名,而不會(huì)對(duì)外部變量造成任何影響2. defun函數(shù)定義AutoCAD新命令格式:(defun C:命令名() 表達(dá)式)其中:“命令名”前必須有“C:”,后面必須帶一張沒(méi)有形參的變?cè)怼?. lambda函數(shù)格式:(lambda 變?cè)?表達(dá)式)該函數(shù)定義一個(gè)無(wú)名函數(shù)。在經(jīng)常需要使用某一表達(dá)式,而又沒(méi)必要用defun將它定義為一個(gè)新函數(shù)時(shí),可使用lambda來(lái)完成這個(gè)任務(wù)。它返回最后一個(gè)表達(dá)式的值,且經(jīng)常與apply和mapcar一起使用。如:(apply (lambda (x y z )(* x(- y z)(5 20 14)返回30,即5*(20-14)。又如:(mapcar (lambda (x)(* x 5)(2 4 -6 10.2))返回(10 20 -30 51.0)數(shù)據(jù)交換及相關(guān)的計(jì)算函數(shù)1. (getint 提示) 整數(shù)輸入函數(shù)2. (getreal 提示) 實(shí)數(shù)輸入函數(shù)3. (getstring cr 提示) 字符串?dāng)?shù)輸入函數(shù)。字符串最大長(zhǎng)度為132個(gè)字符。如果提供了cr且cr不為NIL,則輸入的字符串中可以有空格,此時(shí)只有用回車來(lái)終止輸入,否則可以用空格終止輸入。4. (getpoint 基點(diǎn) 提示) 點(diǎn)輸入函數(shù)5. (getdist 基點(diǎn) 提示) 距離輸入函數(shù)。等待用戶輸入一個(gè)距離值或用光標(biāo)輸入兩個(gè)點(diǎn),返回兩點(diǎn)間的距離。若有基點(diǎn),則只需再輸入一個(gè)點(diǎn),該點(diǎn)與基點(diǎn)間的距離就是輸入的值。6. (getcorner 基點(diǎn) 提示) 矩形對(duì)角點(diǎn)輸入函數(shù)。他必須有基點(diǎn),且當(dāng)用戶移動(dòng)光標(biāo)時(shí),屏幕上畫一個(gè)由基點(diǎn)和當(dāng)前光標(biāo)點(diǎn)為對(duì)角點(diǎn)的矩形。7. (getangle 基點(diǎn) 提示) 角度輸入函數(shù)。等待用戶輸入一個(gè)角度,并將該角以弧度值返回。度量角度時(shí),以變量ANGBASE設(shè)置的當(dāng)前角度為零弧度,逆時(shí)針?lè)较驗(yàn)檎?。用戶可以鍵盤輸入角度。也可以指定屏幕上兩個(gè)點(diǎn)的方式輸入角度,此時(shí)兩點(diǎn)間連線與零度基準(zhǔn)線的夾角就是輸入的角度。若指定了“基點(diǎn)”,則可輸入一個(gè)點(diǎn)來(lái)獲取角度。后兩種方式屏幕上會(huì)出現(xiàn)拖動(dòng)線。8. (getorient 基點(diǎn) 提示) 方位角輸入函數(shù)。和getangle唯一不同的是getorient的零度基準(zhǔn)方向是水平向右的9. (initget 位值 關(guān)鍵字符串)輸入控制函數(shù)。該函數(shù)為其后使用get函數(shù)建立各種選項(xiàng)?!拔恢怠笨刂圃试S的輸入方式可以是以任何組合方式累加成的一個(gè)0127之間的整數(shù)。其含義見(jiàn)表:位值含義1不允許空輸入2不接受零值4不接受負(fù)值8不檢查屏幕限定范圍(即使LIMCHECK為on)16目前未使用32用虛線畫拖動(dòng)線和矩形框64忽略三維點(diǎn)的Z坐標(biāo)(僅用于getdist)關(guān)鍵字表的目的是使用戶可以以縮寫的方式輸入關(guān)鍵字。關(guān)鍵字的形式必須是“關(guān)鍵字1 關(guān)鍵字2 關(guān)鍵字3,縮寫”。每個(gè)關(guān)鍵字間用空格分隔,逗號(hào)后面是縮寫部分。有兩種方式定義關(guān)鍵字的縮寫:一是把保留的縮寫字母大寫,其余部分全用小寫字母;二是縮寫字母放在整個(gè)關(guān)鍵字后面(全部用大寫字母表示縮寫),并用逗號(hào)將它們分隔開(kāi)。注意:iniget建立的控制標(biāo)記和關(guān)鍵字表只對(duì)緊跟其后的get函數(shù)產(chǎn)生作用,然后被自動(dòng)清除。此外,iniget函數(shù)不用于getstring和getvar函數(shù)。10. (getkword 提示)關(guān)鍵字輸入函數(shù)。要求用戶輸入一個(gè)關(guān)鍵字 。在調(diào)用本函數(shù)之前需先用iniget函數(shù)設(shè)置一個(gè)關(guān)鍵字表。Getkword把與用戶輸入相匹配的關(guān)鍵字作為字符串返回。11. (angle 點(diǎn)1 點(diǎn)2)求方位角函數(shù)。返回弧度值。12. (distance 點(diǎn)1 點(diǎn)2)求兩點(diǎn)間距離函數(shù)。3D的。13. (polar 點(diǎn) 角度 距離)求另一點(diǎn)的坐標(biāo)函數(shù)。角度是以弧度為單位的 。14. (inters 點(diǎn)1 點(diǎn)2 點(diǎn)3 點(diǎn)4 方式)求交點(diǎn)函數(shù)。其中點(diǎn)1和點(diǎn)2為第一直線,點(diǎn)3和點(diǎn)4為第二直線?!胺绞健笨刂魄蠼稽c(diǎn)的方式,即若此處有值且為NIL時(shí),該函數(shù)允許交點(diǎn)在這兩條線段的延長(zhǎng)線上;若無(wú)方式或不為NIL,則函數(shù)只求兩線段內(nèi)的交點(diǎn)。若無(wú)交點(diǎn),返回NIL。與文件有關(guān)的函數(shù)1. (load 文件名 出錯(cuò)處理)AutoLISP應(yīng)用程序加載函數(shù)。該函數(shù)裝入一個(gè)AutoLISP程序文件,并執(zhí)行之。2. (ads)ads函數(shù)。返回當(dāng)前裝入的ADS應(yīng)用程序及ARX應(yīng)用程序的列表。3. (arx) arx函數(shù)。返回ARX應(yīng)用程序的列表4. (arxload 文件名 出錯(cuò)處理)arx程序加載程序。5. (xload 文件名 出錯(cuò)處理)ads程序加載程序。6. (arxunload 文件名 出錯(cuò)處理)arx程序卸載程序。7. (xunload 文件名 出錯(cuò)處理)ads程序卸載程序。8. (unload 文件名 出錯(cuò)處理)AutoLISP應(yīng)用程序卸載函數(shù)。9. (autoarxload 文件名 命令列表) arx程序自動(dòng)加載程序10. (autoload 應(yīng)用程序名 命令列表) AutoLISP應(yīng)用程序自動(dòng)加載函數(shù)。11. (autoxload 應(yīng)用程序名 命令列表) ADS應(yīng)用程序自動(dòng)加載函數(shù)。12. (tartapp 應(yīng)用程序命令 文件)WINDOWS應(yīng)用程序啟動(dòng)函數(shù)。13. (open 文件名 讀/寫標(biāo)志)打開(kāi)文件函數(shù)?!皉”為讀,“w”為寫?!癮”向舊文件中讀寫的內(nèi)容(該文件中應(yīng)沒(méi)有以CTRL/Z表示的文件結(jié)束符)?!皐”和“a”狀態(tài)下,可新建一個(gè)文件。文件名中含路徑時(shí),要以“/”代替“”。如:(setq f(open “new.txt” “w”)14. (close 文件描述符)關(guān)閉文件函數(shù)。如:(close f)15. (read 字符串)讀取函數(shù)。該函數(shù)返回從字符串中取得的第一個(gè)表或元素。16. (read-char 文件描述符)讀字符函數(shù)。該函數(shù)從鍵盤輸入緩沖區(qū)或從“文件描述符”表示的打開(kāi)文件中讀入一個(gè)字符,并返回該字符的ASCII碼。17. (read-line 文件描述符)讀行函數(shù)。和read-char類似。只是返回一行的字符串。每執(zhí)行一次,指針指向下一行。18. (write-char 整數(shù) 文件描述符)寫字符函數(shù)。整數(shù)是要寫字符的ASCII碼。寫到屏幕或“文件描述符”表示的打開(kāi)的文件中。19. (write-line 字符串 文件描述符)寫行函數(shù)。字符串要用引號(hào),返回一個(gè)字符串。20. (prinl 表達(dá)式 文件描述符)prinl函數(shù)。該函數(shù)可以將“表達(dá)式”打印在屏幕上或文件中,返回表達(dá)式。表達(dá)式可以是含控制字符的字符串。e代表ESCn代表?yè)Q行r代表回車t代表tabnnn代表八進(jìn)制碼為nnn的字符,例如:(prinl “hello”)打印“hello”(prinl “hello” f)將“hello”寫入文件中(prinl (char 2)打印“002”(prinl (char 10)打印“n”21. (princ 表達(dá)式 文件描述符) 和prinl基本相同,區(qū)別是它能在表達(dá)式中實(shí)現(xiàn)控制字符的作用。一般的,prinl打印表達(dá)式的方法和load相兼容,而princ打印的表達(dá)式可以由如read-line這樣的函數(shù)讀出。22. (print 表達(dá)式 文件描述符)和prinl基本相同,只是前面換行和打印之后加空格。23. (terpri)在屏幕上打印一個(gè)空行。不用于文件的I/O操作。24. (prompt 信息)提示函數(shù)。25. (findfile 文件名)文件查找函數(shù)。其他函數(shù)1. (command AutoCAD命令 參數(shù))注意:(1)一個(gè)空字符串(“”)等效從鍵盤輸入一個(gè)空格,通常用于結(jié)束一個(gè)命令。(2)空調(diào)用(不加任何參數(shù)),即(command),等效在鍵盤上鍵入Ctrl+C,它取消AutoCAD大多數(shù)命令(3)當(dāng)AutoCAD命令需要目標(biāo)選擇時(shí),應(yīng)提供一個(gè)包含entsel(實(shí)體選擇)的表,而不是一個(gè)點(diǎn)來(lái)選擇目標(biāo)。(4)下列命令不能與AutoLISP的command函數(shù)一起使用:dtext,sketch,plot和prplot。(5)用戶輸入函數(shù)get不能在AutoLISP的command函數(shù)中使用。此外,command函數(shù)還具有暫停功能。當(dāng)變量中出現(xiàn)PAUSE時(shí),command函數(shù)暫停,以便用戶進(jìn)行某些操作。2. (menucmd 字符串)menucmd函數(shù)。該函數(shù)可以實(shí)現(xiàn)AutoCAD菜單中各子菜單之間的轉(zhuǎn)換。格式為:菜單類型名=子菜單名菜單類型名為:S,B,I,P1P10,T1T4,A1等,其含義和菜單文件中的規(guī)定相同。如:(command “s=line”)3. (getenv 環(huán)境變量名)getenv函數(shù)。返回賦給系統(tǒng)環(huán)境變量的字符串。環(huán)境變量名是要讀取的內(nèi)容,若不存在則返回NIL4. (getvar 系統(tǒng)變量名)getvar 函數(shù)。提取AutoCAD系統(tǒng)變量的值。如:最近一次設(shè)定的倒角半徑為0.25,則:(getvar “FILLETRAD”)返回0.255. (setvar系統(tǒng)變量名 值)設(shè)定系統(tǒng)變量的值。CAD命令的setvar在設(shè)定ANGBASE時(shí)按度為單位,setvar函數(shù)按弧度為單位,再設(shè)定SNAPANG時(shí)setvar函數(shù)為相對(duì)于屏幕坐標(biāo)X軸正方向的弧度值,而setvar命令為相對(duì)于ANGBASE的度。6. (osnap 點(diǎn) 捕捉方式)按捕捉方式的要求,根據(jù)點(diǎn)去尋找所要求的點(diǎn)。如:(setq pt2(osnap pt1 “mid”))表示根據(jù)pt1去捕捉目標(biāo)的中點(diǎn),并賦值給pt2。7. (vports)返回當(dāng)前的視窗說(shuō)明表。這個(gè)表由視窗標(biāo)號(hào)及視窗左下角、右上角的位置構(gòu)成的表。該函數(shù)與系統(tǒng)變量TILEMODE的值有關(guān)。8. (type項(xiàng))返回項(xiàng)的類型。類型有:REAL實(shí)型數(shù)FILE文件描述符STR字符串INT整型數(shù)SYM符號(hào)LIST表及用戶函數(shù)SUBRAutoLISP內(nèi)部函數(shù)PICKSETAutoLISP選擇集ENAMEAutoLISP實(shí)體名PAGETB函數(shù)分頁(yè)表9. (redraw 實(shí)體名方式)該函數(shù)的操作取決于變量的個(gè)數(shù):1. 無(wú)變量時(shí)相當(dāng)于AutoCAD的REDRAW命令。2. 有實(shí)體變量名時(shí),僅重畫該實(shí)體。3. 若兩個(gè)變量都有,方式變量控制重畫的方式。方式作用1在屏幕上重畫實(shí)體2不畫實(shí)體(隱去)3加亮實(shí)體4加亮實(shí)體不10. (graphscr)將文本屏幕轉(zhuǎn)換為圖形屏幕。11. (textscr)將圖形屏幕轉(zhuǎn)換為文本屏幕。12. (textpage)將圖形屏幕轉(zhuǎn)換為文本屏幕,并清除該文本屏幕。13. (trace 函數(shù)名)該函數(shù)為一個(gè)輔助調(diào)試工具。他為指定的函數(shù)設(shè)置跟蹤標(biāo)志。14. (untrace 函數(shù)名)解除函數(shù)的跟蹤。15. (eval 表達(dá)式)返回表達(dá)式的計(jì)算結(jié)果,其中表達(dá)式為任何LISP表達(dá)式。16. (ver)返回當(dāng)前AutoLISP的版本號(hào)。17. (*error* 字符串)自定義出錯(cuò)提示。實(shí)體和設(shè)備訪問(wèn)函數(shù)1. (ssget 方式點(diǎn)1 點(diǎn)2)該函數(shù)得到一個(gè)選擇集。方式指定了選擇實(shí)體的方式,有:W(窗口) C(交叉) L(最新的) P(前一個(gè))等,如:(ssget “W”(0 0)(5 5))選擇在角點(diǎn)(0 0),(5 5)窗口內(nèi)的實(shí)體(ssget “C”(0 0)(5 5))選擇在角點(diǎn)(0 0),(5 5)窗口內(nèi)以及與其相交的實(shí)體(ssget (2 2))選擇通過(guò)點(diǎn)(2 2)的實(shí)體(ssget “L”)選擇最后完成的實(shí)體(ssget “P”)選擇前一次選過(guò)的實(shí)體(ssget )要求用交互式選擇實(shí)體該函數(shù)返回(selection set:n)。n為選擇集的序號(hào)。AutoCAD規(guī)定每次構(gòu)成的選擇集的個(gè)數(shù)不能多于六個(gè)。通常將選擇集賦值給一個(gè)變量。如:(setq s (ssget “p”))函數(shù)還有按“過(guò)濾表”的要求來(lái)構(gòu)造選擇集的方式。形式為(ssget “x” 過(guò)濾表)。過(guò)濾表為一關(guān)聯(lián)表,它指明要檢查的實(shí)體特性及匹配值。如:(ssget “x”(list (cons 0 “circle”))將返回由圖中所有圓組成的選擇集。如果過(guò)濾表中含有一個(gè)以上的關(guān)聯(lián)表,則選擇集中的每個(gè)實(shí)體必須滿足所有的條件。過(guò)濾表中可以使用通配符。2. (sslength 選擇集)返回選擇集的長(zhǎng)度。3. (ssname 選擇集 索引號(hào))返回選擇集中一個(gè)實(shí)體的名稱,該實(shí)體在選擇集中的序號(hào)為其索引號(hào)。如:(setq entx (ssname sset 600))取出選擇集sset中第601個(gè)實(shí)體的名稱4. (ssadd 實(shí)體名 選擇集)向選擇集中加入新實(shí)體。若無(wú)選擇集,則構(gòu)成新選擇集。若無(wú)任何變量,則返回一個(gè)新的空選擇集。5. (ssdel 實(shí)體名 選擇集)從選擇集中刪除指定實(shí)體。6. (ssmemb 實(shí)體名 選擇集)測(cè)試給定實(shí)體是否在選擇集中。若在,則返回實(shí)體名,否則返回NIL。7. (entnext 實(shí)體名)返回?cái)?shù)據(jù)庫(kù)中實(shí)體名之后的那個(gè)實(shí)體。若無(wú)變量調(diào)用,則返回?cái)?shù)據(jù)庫(kù)中第一個(gè)實(shí)體。用ssget函數(shù)構(gòu)成的選擇集中只有主實(shí)體名。但一個(gè)復(fù)雜實(shí)體除了主實(shí)體外,還有一些子實(shí)體。如塊的屬性及多義線的頂點(diǎn)等。用entnext函數(shù)可順序找出各子實(shí)體8. (entlast)返回?cái)?shù)據(jù)庫(kù)中最后一個(gè)實(shí)體的名稱。9. (entdel)刪除當(dāng)前圖中的指定實(shí)體。若在本次編輯中該實(shí)體已被刪除,則調(diào)用本函數(shù)可將其恢復(fù)。但它只能在刪除實(shí)體的那次編輯中使實(shí)體恢復(fù)。塊中定義的實(shí)體不能被刪除。10. (entsel 提示)要求用戶以交互的方式選擇一個(gè)實(shí)體。選擇實(shí)體時(shí)只能采用選點(diǎn)的方式,返回一張表:(實(shí)體名 選擇點(diǎn))。11. (nentsel 提示)用于存取包含插入的實(shí)體(內(nèi)部塊)定義數(shù)據(jù)。若被選擇的實(shí)體不是一個(gè)復(fù)雜實(shí)體(多義線和塊),nentsel和entsel返回的信息一個(gè)。若被選擇實(shí)體是多義線,則nentsel返回包含子實(shí)體(頂點(diǎn))和選取點(diǎn)的一個(gè)表。當(dāng)被選擇目標(biāo)是一個(gè)塊時(shí),netsel返回包含描述下一個(gè)塊的四個(gè)元素的一個(gè)表。12. (entget 實(shí)體名 任選集)根據(jù)實(shí)體名在數(shù)據(jù)庫(kù)中檢索實(shí)體,返回實(shí)體定義數(shù)據(jù)的一張表,用assoc函數(shù)可以從中檢索到每一個(gè)項(xiàng)。表中的內(nèi)容是用AutoCAD的 .DXF文件的組碼的形式定義的。若提供了記錄應(yīng)用程序名的任選表,則返回上述表的同時(shí)返回相關(guān)指定應(yīng)用程序的擴(kuò)展實(shí)體數(shù)據(jù)。13. (entmake 實(shí)體定義數(shù)據(jù)表)在圖中生成一個(gè)新的實(shí)體:若成功則返回?cái)?shù)據(jù)表,否則返回NIL。其變量必須是一個(gè)實(shí)體的定義數(shù)據(jù)表,該表與entget函數(shù)返回的表格式相似,且必須提供實(shí)體的所有信息。生成一個(gè)實(shí)體的一種方法是用entget函數(shù)獲取一個(gè)實(shí)體的定義數(shù)據(jù),然后對(duì)其進(jìn)行修改后加入圖中。如:按圓心坐標(biāo)(4,4)、半徑為1繪制一個(gè)紅色的圓。層和線型為缺省值:(entmake(0“CIRCLE”);實(shí)體類型(62 1);顏色(10 4.0 4.0 0.0);中心點(diǎn)(40 1.0);半徑)14. (entmod實(shí)體定義數(shù)據(jù)表)更新實(shí)體數(shù)據(jù)庫(kù)中的信息。變量為一個(gè)修改過(guò)的實(shí)體定義數(shù)據(jù)表。如:(setq en (entnext);置en為庫(kù)中第一個(gè)實(shí)體的名(setq ed(entget en);置ed為en的實(shí)體定義數(shù)據(jù)表(setq ed(subst(cons 8 “0”) (assoc 8 ed) ed);將ed中圖層組設(shè)為“0”層)(entmod ed);更新數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論