

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、autolisp入門教程.doc 特別簡明而有用的autolisp教程,你信不信,反正我信了(親,好的話請評價哈)。 三.撰寫 autolisp的動機?1.欲強化 autocad原有指令時. 2.欲制造更有用的 autocad新指令. 3.欲簡化繁瑣的環(huán)境設(shè)定或繪圖步驟時. 單元一:autolisp主角瀟灑登場一. autolisp是何方神圣?1. autolisp是 autocad的最佳拍檔! 2. autolisp內(nèi)含于 autocad軟件內(nèi),不用另外花錢買! 3. autolisp是強化 autocad最好、最直接的程序語言! 4. autolisp易學、易用,即使不會程序設(shè)計的 aut
2、ocad使用者,都能在最短的時間內(nèi),寫出令人驚異、贊美的功能! 5.若說 autolisp的消失,是替 autocad制造一片天的最大功臣,實不為過一點也不夸張! 6. autolisp盼望您去學習它、改善它、發(fā)揮它、享受它.真的!它的威力、魅力無窮! 4.欲處理參數(shù)式繪圖時. 5.欲做圖面資料讀文件、寫文件. 6.欲做 autocad簡報展現(xiàn)時. 7.欲達到真正敏捷掌控 autocad時. 8.欲提升自己跨上 autocad高手列車時. 四.autolisp的效益評估?1.對公司負責人或設(shè)計主管而言: a.或許某員工或干部花了 20個小時撰寫一個 autolisp程序,表面上,這將近三天的時
3、間,他連一張圖都沒有畫,甚至可能偶有發(fā)呆、沈思,若此程序一天可以替公司繪圖部門節(jié)約 1小時繪圖時間,那算一算,只要 20天就抵銷開發(fā)成本,而 20天以后都是賺的,用的愈久,省的愈多! b.若員工皆有此動力,在不影響正常工作,鼓舞都來不及,那有壓抑的道理,甚至還要派遣優(yōu)秀人員出去受訓,學習更好的設(shè)計技巧與創(chuàng)意呢?! c.千萬不要由于您的不懂或壓抑,show您的權(quán)威與 power,如此,不但對員工造成打擊,甚至您可能成為阻礙了公司計算機化進步的罪魁禍首 d.當然,若要撰寫的程序許多,內(nèi)部設(shè)計人員的程序功力距離太遠,達成需求的時間反而變得遙遙無期,那倒不如求助于市面上已有的相關(guān) autocad支持軟
4、件。 2.對設(shè)計人員而言: a.得到一筆提升績效獎金呢?當然,無形中,autocad高手的封號也將黃功力又往前邁出了一大步,對個人的成長關(guān)心匪淺,幸運的話,搞不好還可以袍加身,不亦樂乎! b.半桶水、響叮當,千萬不要由于會寫 autolisp程序而自傲、孤僻、囂張起來,功力的增長,只是讓您有更多服務(wù)他人、服務(wù)公司的機會,若自恃過重,寧可不要! c. autolisp程序功力的累進,是無遠弗屆的,千萬不要孤芳自賞,人外有人,天外有天,或許您覺得是珍寶加三級的程序,只是其它設(shè)計師基本程序中的一部份罷了!第 1頁,共 27頁 二. autolisp程序語言的特質(zhì)分析:學習 autolisp是特別簡單
5、的,對初學者而言,即使沒有學習過任何的程序語言,都能很快的上手,寫出精彩美麗的 autolisp程序!語法簡潔不用特別的變量宣告,特別富有彈性,比起其它的程序語言,它的語 法可說是特別簡潔而有其獨特的風格!除一般性的功能函數(shù)外,又擁有為數(shù)不少掌握協(xié)作 autocad的特功能函數(shù)強殊函數(shù),再加上 autolisp可直接呼叫執(zhí)行全部 autocad的指令,大以及把握運用全部的 autocad系統(tǒng)變量,功能之強大令人欣喜不已!撰寫的環(huán)境只要是一般的文書編輯軟件都適用!如:windows的記事本、 pe2、不挑剔 pe3、dw3、書中仙、漢書、edit.等直譯式程序不用再作編譯,即寫即測、即測即用,立
6、刻可以在 autocad中響應(yīng)效果,立刻就有成就感! autolisp卻可在不改寫的原貌下,加載與執(zhí)行! 橫跨各作業(yè)悠閑得意,雖然 autocad有 dos、 windows版本之分但是平臺 特別簡明而有用的autolisp教程,你信不信,反正我信了(親,好的話請評價哈)。 d.既然 autolisp是 autocad的最大功臣,當然不會輕易被舍棄,如此,您的學習,保證不會白費! e.精益求精、虛心求教、專心學習、觀摩、決心成為高手 3.對程序本身而言: a.少少的幾行,卻可能有大大滿足的時候! b.充份把握了掌握、制造 autocad的尚方寶劍,讓您在 autocad的設(shè)計運作中得心應(yīng)手,享
7、受無比的歡樂與成就感! 3.重要的 autolisp的基本語法結(jié)構(gòu)規(guī)章 1:以括號組成表達式,、相對稱左右括號數(shù)肯定要成雙成對規(guī)章 2:表達式型態(tài):(操作數(shù)運算子運算子運算子) 1.1操作數(shù)包括功能函數(shù)自定函式 1.2運算子(自變量)包括: a.整數(shù)(integer)如 8,-17,500,9999 . b.實數(shù)(real)如 8.5,-17.456 . c.字符串(string)如autocad,123 d.串行(list)如 (abc),(x y) e.像素名稱代碼如entity name: 6000f262 f.檔案代碼如file:#12438. g.選擇群集代碼如selection s
8、et:1規(guī)章 3:表達式中的運算子,可以是另一表達式或子程序規(guī)章 4:多重的括號表達式,運算的先后挨次是由內(nèi)而外、由左而右規(guī)章 5:以檔案型態(tài)存在的 autolisp程序(ascii檔案),其擴展名必需是.lsp規(guī)章 6:撰寫的環(huán)境,只要是一般的文書編輯軟件、記事本,可編輯 ascii檔案者都適用規(guī)章 7:以 defun功能函數(shù)定義新的指令或新的功能函式規(guī)章 8:新定義的功能函式名稱,若為c:函式名,則此函式可為 autocad新指令規(guī)章 9:加載 autolisp程序的作法:=指令:后直接鍵入 (loadlisp主檔名)規(guī)章 10: autolisp程序中,在分號;后的內(nèi)容均為批注,程序不處
9、理,適時的增加批注,將使程序更具可看性、學習性及完整性規(guī)章 11: autolisp最常用的變量型態(tài)是整數(shù)、實數(shù)、字符串、點串行四種,變量的型態(tài)依據(jù)設(shè)定值而自動定義,變量會始終儲存該值,直到被重新設(shè)定值或繪圖結(jié)束自動消逝規(guī)章 12:以 setq功能函數(shù)設(shè)定變量值 (setq變量名稱設(shè)定值)規(guī)章 13:欲在 autocad 的環(huán)境中,查看一變量值,指令:下鍵入!變量名即可規(guī)章 14:以(defun c:函式名(自變量/變數(shù)) .)程序中,程序中的變量若在/右邊變量內(nèi),則稱為區(qū)域變量,否則為整體變量 五.如何有效的學習 autolisp?1.先由小程序著手,熟悉 autolisp語法規(guī)定! 2.掃
10、瞄全部的 autolisp功能函數(shù),重要的功能函數(shù)要熟記腦海,俗語說的好一回生,二回熟,除非您不專心,否則沒有學不好的道理! 3.要懂得偷懶:不要認為在繪圖的過程中,繁瑣的步驟是合理的,困難的繪圖過程是必需忍耐的,試著用 autolisp解決看看! 4.多觀摩別人的程序設(shè)計,吸取精華,像海棉一樣=吸吸吸、 ! 5.動手寫程序比用眼睛看程序,更能夠領(lǐng)會深記腦海! 6.隨時隨地整理您的程序,并加以批注,以免因時間的飛逝,當時專心的成果也煙消云散,忘的一干二凈! 7.決心是學好 autolisp最重要的關(guān)鍵! 8.期許自己,要由操變成制造者! 單元二:autolisp的關(guān)鍵、基本結(jié)構(gòu)及語法一、學好
11、autolisp的關(guān)鍵、基本結(jié)構(gòu)與語法:1. autolisp程序語言的特質(zhì) a.語法簡潔 b.功能函數(shù)強大 c.撰寫的環(huán)境不挑剃 d.直譯式程序,即寫即測、即測即用 e.橫跨 autocad各作業(yè)平臺,悠閑得意 (注:以上五點,讀者可以參考上一章的剖析!) 2.學好 autolisp的關(guān)鍵:充份把握語法結(jié)構(gòu)功能函數(shù)的搭配! 第 2頁,共 27頁 特別簡明而有用的autolisp教程,你信不信,反正我信了(親,好的話請評價哈)。 二、學好 autolisp的關(guān)鍵:充份把握語法結(jié)構(gòu)功能函數(shù)的搭配!其時這個關(guān)鍵亦是學習其它程序語言的關(guān)鍵. 語法結(jié)構(gòu)autolisp的語法結(jié)構(gòu)規(guī)定的并不多,變量不用事
12、先定義及宣告,讀者可熟登記一單元有關(guān)重要的 autolisp基本語法結(jié)構(gòu),十四條設(shè)計上要求的規(guī)章功能函數(shù)autolisp之所以能功能如此強大,都有賴功能函數(shù),其成員共約 200個: 1.一般性函數(shù) 170個 2. ads定義特別函數(shù) 9個 3.協(xié)作 dcl交談框設(shè)計函數(shù) 22個各功能函數(shù)在使用上要求協(xié)作的運算子(自變量)型態(tài),均有其規(guī)定,當然,您可不能亂給!例如:指令:(+ 1 2 3abc)傳回:error: bad argument type (自變量型態(tài)錯誤)由于+函數(shù)不接受字符串,而abc正是字符串指令:(rtosabc)傳回:error: bad argument type (自變量
13、型態(tài)錯誤)由于rtos函數(shù)只接受實數(shù)轉(zhuǎn)字符串具體內(nèi)容可參考下一章快速掃瞄 autolisp功能函數(shù)至于各功能函數(shù)具體的語法與實例應(yīng)用,讀者請參閱本書第三篇 autolisp功能函數(shù)詳解 指令:(min 75 a 63)響應(yīng)最小值 50 (由于變量值 a代表 50)錯誤的范例:指令:(setq a (* 12.5 4) 1傳回 1表示少了一個括號 1 )此時,只要再補上一個 )即可指令:(setq a (* 12.5 4 2傳回 2表示少了二個括號 2 )此時,只要再補上二個 )即可規(guī)章 2:表達式型態(tài) (操作數(shù)運算子運算子運算子 .)或 (函數(shù)(式)自變量自變量自變量 .)或 (函數(shù)(式)元素
14、元素元素 .) 1.1操作數(shù)包括功能函數(shù)自定函式功能函數(shù):如上練習中的+、max、menucmd、getint、 setq、*、min,具體內(nèi)容可參考下一章快速掃瞄 autolisp功能函數(shù)第三篇 autolisp功能函數(shù)詳解自定函式:由設(shè)計者自行定義的新函式或子程序 1.2運算子(又稱自變量或元素)包括: a.整數(shù)(integer):如 8,-17,500,9999 正常范圍: 2的 16次方,介于-32768與+32767之間特別范圍:若以 float函數(shù)將其轉(zhuǎn)為實數(shù),則范圍 2的 32次方,介于 -2147483648與+2147483647之間 b.實數(shù)(real):如 8.5,-17
15、.456 正常范圍:帶有小數(shù)點的數(shù),精度可達 14位有效數(shù)字 c.字符串(string):如autocad,123,enter real:,7.5, 正常范圍:以雙引號內(nèi)夾字符為認定,字符數(shù)不受限制 d.串行(list):如 (abc),(x y),(x y z),(a 8 3.5),.正常范圍:以左右括號內(nèi)夾元素為認定,元素型態(tài)特別彈性使用頻率:在 autolisp程序設(shè)計中應(yīng)用特別高范例說明: (a 8 3.5 kk (1 2)表示此串行內(nèi)有五個元素a表示字符串 a、8表示整數(shù) 8、3.5表示實數(shù) 3.5、 kk表示變量 kk、(1 2)表示串行(1 2) 2d點坐標(x y)表示法=以二
16、實數(shù)形成串行第 3頁,共 27頁 三、重要的 autolisp的基本語法結(jié)構(gòu):規(guī)章 1:以括號組成表達式,左右括號數(shù)肯定要成雙成對、相對稱請依序在指令:列 (或指令:)后面直接鍵入以下表達式指令:(+ 1 2 3 4 5)傳回加總和 15指令:(max 14.5 8.9 35)傳回最大值 35指令:(menucmdp1=*)顯示拉下 pop1指令:(getintenter real:)傳回 enter real:要求輸入一個實數(shù)指令:(setq a (* 12.5 4)傳回相乘值 50,同時設(shè)定給變量 a指令:!a回應(yīng) 50 (注:!號可用來查詢變數(shù)值) 特別簡明而有用的autolisp教程,
17、你信不信,反正我信了(親,好的話請評價哈)。 3d點坐標(x y z)表示法=以三實數(shù)形成串行 e.像素名稱代碼:如entity name: 6000f262 .使用范圍: autocad會自動給予像素指向代碼,透過此代碼可找到像素的數(shù)據(jù)庫記錄范例說明: (setq en (entlast)傳回entity name: 60000062 (entget en)可找到像素的數(shù)據(jù)庫串行 f.檔案代碼:如file:#12438 使用范圍:開啟(open)檔案作讀檔(r)、寫檔(w)使用時,所產(chǎn)生的代碼,如下:范例說明: (setq ffr (opentest.txtr)回應(yīng)file:#24138 (
18、setq ffw (openabc.txtw)回應(yīng)file:#34812 g.選擇群集代碼:如selection set:1、selection set:1 使用范圍:一個或數(shù)個像素所形成的選擇集范例說明: (setq ss (ssget)選取對象: (可選擇物體)選取對象: (可選擇物體)選取對象: (按enter鍵)回應(yīng)selection set:1規(guī)章 3:表達式中的運算子,可以是另一表達式或子程序功 能函數(shù)使用語法: (strcat字符串 1字符串 2字符串 3 .)字符串結(jié)合功能函數(shù) (getstring提示)要求鍵入一個字符串 (rtos實數(shù))將實數(shù)轉(zhuǎn)換成字符串范例說明 1: (s
19、trcatabc123lisp)傳回:abc123lisp范例說明 2: (strcatabc (getstringenter string: ) (rtos 123.45)執(zhí)行結(jié)果: enter string:鍵入任一字符串,假設(shè)是鍵入 *hello*回應(yīng)abc*hello*123.45本例中的 strcat函數(shù)在語法中要求的運算子必需是字符串型態(tài)運算子 1=abc是正常的字符串運算子 運算子 2=表達式 (getstringenter string:)傳回結(jié)果是一字符串*hello*運算子 3=表達式 (rtos 123.45)傳回結(jié)果是一字符串123.45規(guī)章 4:多重的括號表達式,運算
20、的先后挨次是由內(nèi)而外、由左而右范例說明:請將 10.25+ 17 - 13.2/ 7的結(jié)果,設(shè)定給變量 kk,并轉(zhuǎn)換成 autolisp的表達式解法技巧 a: 1:運用二分法、加括號:(10.25+ 17) - (13.2/ 7) 2:操作數(shù)往前提: kk= (- (10.25+ 17) (13.2/ 7) 3:操作數(shù)再往前提:kk= (- (+ 10.25 17) (/ 13.2 7) 4:轉(zhuǎn)換完成: (setq kk (- (+ 10.25 17) (/ 13.2 7)解法技巧 b: 1:運用二分法、加括號:(10.25+ (17 - (13.2/ 7) 2:操作數(shù)往前提: kk= (+
21、10.25 (17 - (13.2/ 7) 3:操作數(shù)再往前提:kk= (+ 10.25 (- 17 (/ 13.2 7) 4:轉(zhuǎn)換完成: (setq kk (+ 10.25 (- 17 (/ 13.2 7)規(guī)章 5:以檔案型態(tài)存在的 autolisp程序(ascii檔案),其擴展名必需是.lsp規(guī)章 6:撰寫的環(huán)境,只要是一般的文書編輯軟件,可編輯 ascii檔案者都適用如:pe2、pe3、dw3、書中仙、漢書、edit、記事本.等規(guī)章 7:以 defun功能函數(shù)定義新的指令或新的功能函式 (注:自變量及區(qū)域變量可省略)程序結(jié)構(gòu)型態(tài):(defun函式名稱(自變量/區(qū)域變量):程序內(nèi)容: )規(guī)
22、章 8:新定義的功能函式名稱,若為c:函式名,則此函式可為 autocad新指令 (注:自變量及區(qū)域變量可省略)程序結(jié)構(gòu)型態(tài): (defun c:kk(自變量/區(qū)域變量):程序內(nèi)容:第 4頁,共 27頁 特別簡明而有用的autolisp教程,你信不信,反正我信了(親,好的話請評價哈)。 : )則加載此 lisp程序后,可在指令:后直接鍵入新定義的 kk指令規(guī)章 9:加載 autolisp程序的作法:指令:后直接鍵入 (loadlisp主檔名)注:load與字符串間的空格,可有可無注:load與雙引號間的空格,可有可無 (loadlisp主檔名)范例:在 c:lsptools名目下有一 lisp
23、程序 tt.lsp,而您目前的工作名目在 c:dwg下 若環(huán)境設(shè)定之支持檔案搜尋路徑有指定到 c:lsptools名目,則 )規(guī)章 11:autolisp最常用的變量型態(tài)是整數(shù)、實數(shù)、字符串、點串行四種,變量的型態(tài)依據(jù)設(shè)定值而自動定義,變量會始終儲存該值,直到被重新設(shè)定值或繪圖結(jié)束自動消逝規(guī)章 12:以 setq功能函數(shù)設(shè)定變量值 (setq變量名稱設(shè)定 值)范例: (setq a 100);變量 a值設(shè)定成整數(shù) 100 (setq b 123.56);變量 b值設(shè)定成實數(shù) 123.56 (setq cgood morning!);變量 c值設(shè)定成字符串 (setq pt1 (getpoint
24、enter point:);變量 pt1值設(shè)定成點串行 (setq pt2 (list a b);此時,a值是 100,b值是 123.56變量 pt2值設(shè)定成點串行(100 123.56) (setq pt3 '(297 210);變量 pt3值設(shè)定成點串行 (297 210)留意:直接設(shè)定成點串行時,不能省略單引號'否則會被誤認 (297 210)又是一個表達式, 297是操作數(shù)而出錯!規(guī)章 13:欲在 autocad的環(huán)境中,查看一變量值,指令:下鍵入!變量名即可范例:指令:(setq aa (+ 100 75)傳回:175指令:!aa傳回:175指令:(setq pp
25、(list 90 50)傳回:(90 50)指令:!pp傳回: (90 50)指令:!ww傳回:nil空值無設(shè)定規(guī)章 14:以(defun c:函式名(自變量/變數(shù)) .)程序中,程序中的變量若在/右邊變量內(nèi),則稱為區(qū)域變量,否則為整體變量 (注:在 autolisp中,未給予值的變量,其值皆響應(yīng) nil)區(qū)域變量于此程序執(zhí)行完畢后,其值自動消逝整體變量于此程序執(zhí)行完畢后,其值仍舊存在范例: test.lsp內(nèi)容如下 (defun c:tt(/ sa sb sc) (setq sa 100) (setq sb 20) 欲使用加載 tt.lspa指令:后鍵入 (loadtt)即可若環(huán)境設(shè)定之支持
26、檔案搜尋路徑無指定到 c:lsptools名目,則鍵入 (loadtt)后,會消失錯誤訊息如下: 無法開啟tt.lsp做輸入錯誤:載入失敗(loadtt)*取消*此時您可鍵入:指令:(loadc:lsptoolstt)或指令:(loadc:/lsptools/tt)不行鍵入: (loadc:lsptoolstt)由于在 autolisp結(jié)構(gòu)語法中已經(jīng)用于跳脫碼掌握了規(guī)章 10:autolisp程序中,在分號;后的內(nèi)容均為批注,程序不處理,適時的增加批注,將使程序更具可看性、學習性及完整性范例: pp.lsp內(nèi)容如下:;本程序功能可快速畫門、窗;設(shè)計者:博士;版權(quán)全部,歡迎使用 (defun c
27、:pp():;以下為畫門子程序:;以下為畫窗子程序,: 第 5頁,共 27頁 特別簡明而有用的autolisp教程,你信不信,反正我信了(親,好的話請評價哈)。 (setq sc 10) (setq sd (+ sa sb sc) )回到:指令:鍵入(loadtt)傳回:c:tt指令:tt傳回:130指令:!sa傳回:nil (屬區(qū)域變量)指令:!sb傳回:nil (屬區(qū)域變量)指令:!sc傳回:nil (屬區(qū)域變量)指令:!sd傳回:130 (屬整體變量) 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 (/數(shù)值數(shù)值 .) (1+數(shù)值) (1-數(shù)值) (abs數(shù)值) (a
28、tan數(shù)值) (cos角度) (exp數(shù)值) (expt基數(shù)指數(shù)) (fix數(shù)值) (float數(shù)值) (gcd數(shù)值 1數(shù)值 2) (log數(shù)值) (max數(shù)值數(shù)值 .) (min數(shù)值數(shù)值 .) pi (rem數(shù)值 1數(shù)值 2) (sin角度) (sqrt數(shù)值) 第一個數(shù)值除以其次個以后數(shù)值的商數(shù)值+1數(shù)值-1數(shù)值的肯定值反正切值角度的余弦值,角度值為弳度數(shù)值的指數(shù)基數(shù)的指數(shù)值將數(shù)值轉(zhuǎn)換為整數(shù)值將數(shù)值轉(zhuǎn)換為實數(shù)值二數(shù) 值的最大公因子數(shù)值的自然對數(shù)值數(shù)值中的最大值數(shù)值中的最小值常數(shù) p,其值約為 3.1415926二數(shù)值的相除的余數(shù)角度的正旋值,角度值為弳度數(shù)值的平方根 單元三:快速分類掃瞄 a
29、utolisp功能函數(shù)(一)一 看到以下那么多的 autolisp功能函數(shù),洋洋灑灑 17大類:1.您第一個念頭,肯定驚異怎么會那么多,您可能快嚇壞了! 2.您其次個念頭,肯定會想那么多,怎么記得下來,您可能快放棄了!二 其實,您應(yīng)當要很興奮而布滿信念的,怎么說呢? 1. 2. 3.您有那么多的大將幫助您撰寫 autolisp程序,當然左右又逢源,不但輕松,而且要歡樂的不得了!這些函數(shù)只要您先掃瞄有印象,要用時,再翻查該函數(shù),了解用途語法再加入到您的程序中就可以了!常用的函數(shù),寫久、用久后,自然會深深牢記腦海,想忘都很難,不常用的函數(shù),若硬要您登記來,信任連高手都很困難,更何況是初學的您!您不
30、用再摸不著頭緒了,由于您幸運的擁有了本書,就是您勝利的開頭!第一類數(shù)學運算功能函數(shù)項目 1.1 1.2 1.3函數(shù)語法 (+數(shù)值數(shù)值 .) (-數(shù)值數(shù)值 .) (*數(shù)值數(shù)值 .)傳累計實數(shù)或整數(shù)數(shù)值減去數(shù)值全部數(shù)值乘積回 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21項目 2.1 2.2 2.3 2.4第 6頁,共 27頁 4. 其次類檢驗規(guī)律運算功能函數(shù)函數(shù)語法 (=表示式 1表示式 2) (/=表示式 1表示式 2) (表示式 1表示式 2) (=表示式 1表示式 2)字符串比較表示式 1是否大于等于表示式 2比較表示式 1是否小于表示式
31、 2比較表示式 1是否=小于等于表示式 2傳回 比較表示式 1是否等于表示式 2適用數(shù)值及 特別簡明而有用的autolisp教程,你信不信,反正我信了(親,好的話請評價哈)。 2.5 2.6 2.7 2.8 2.9 2.10 2.11 (表示式 1表示式 2) (=表示式 1表示式 2) (數(shù)值) 比較表示式 1是否大于表示式 2比較表示式 1是否大于等于表示式 2傳回:數(shù)值的位 not值,(1的補碼) 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10傳回 4.11 4.12角度轉(zhuǎn)成的字符串值字符串轉(zhuǎn)成實數(shù)值字符串轉(zhuǎn)成整數(shù)值 4.13 4.14 4.15 4.16 行) (ca
32、r串行) (cadr串行) (caddr串行) (cdr串行) (cons新元素串行)串行中的第一個元素通常用來求 x坐標串行中的其次個元素通常用來求 y坐標串行中的第三個元素通常用來求 z坐標除去第一個元素后的串行將新元素結(jié)合到串行 (and表示式 1表示式 2 )規(guī)律 and的結(jié)果 (boole函數(shù)整數(shù)整數(shù) )位式布爾運算 (eq表示式 1表示式 2)比較表示式 1與表示式 2是否相同,適用串行比較(實際相同) (equal表示式 1表示式 2比較表示式 1與表示式 2是否相同,差量可差量)省略(內(nèi)容相同)第三類轉(zhuǎn)換運算功能函數(shù) (foreach名稱串行表示將串行的每一元素對應(yīng)至名稱再依表
33、示式執(zhí)式)行響 應(yīng) (length串行) (list元素元素 ) (listp元素)串行內(nèi)的元素數(shù)量將全部元素結(jié)合成一串行推斷元素是否為一串 項目 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 函數(shù)語法 (angtof字符串模式) (angtos角度模式精度) (atof字符串) (atoi字符串) 角度值的字符串轉(zhuǎn)成實數(shù) (mapcar函數(shù)串行 1串將串行 1、串行 2、 等串行的元素協(xié)作函行 2 .)數(shù),求得新串行 (member關(guān)鍵元素串行) (nth n串行) (reverse串行) (subst新項舊項串行)依關(guān)鍵元素(含)以后的串行串行的第 n個元素將串行
34、元素依挨次顛倒過來的串行替換新舊串行后的串行 (cvunit數(shù)值原始單位轉(zhuǎn)數(shù)值轉(zhuǎn)換單位后的值轉(zhuǎn)換依據(jù) acad.unt換單位)檔案 (distof字符串模式) (itoa整數(shù)) (rtos數(shù)值模式精度) (trans點原位置新位置位移)依模式將字符串轉(zhuǎn)成實數(shù)值整數(shù)轉(zhuǎn)成字符串實數(shù)轉(zhuǎn)成字符串轉(zhuǎn)換坐標系統(tǒng)值 第五類字符串、字符、檔案處理功能函數(shù)項目 5.1 5.2 5.3函數(shù)語法 (ascii字符串) (chr整數(shù)) (close文件名稱) (open文件名模式) (read字符串) (read-char檔案代碼)傳回 字符串第一個字符的ascii碼整數(shù)所對應(yīng)的 ascii單一字符串關(guān)閉檔案開啟檔案
35、代碼,預(yù)備讀取或?qū)懭霐?shù)據(jù)串行中的字符串的第一組元素經(jīng)由鍵盤或檔案中讀取單一字符 第四類串行處理功能函數(shù)項目 4.1 4.2函數(shù)語法 (append串行串行 .)傳回 5.4 5.5 5.6第 7頁,共 27頁 結(jié)合全部串行成一個串行 (assoc關(guān)鍵元素聯(lián)合串依關(guān)鍵元素找尋聯(lián)合串行中關(guān)系數(shù)據(jù) 特別簡明而有用的autolisp教程,你信不信,反正我信了(親,好的話請評價哈)。 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 (read-line檔案代碼) (strcase字符串字樣) (strcat字符串 1字符串 2 .) (strlen字符串) (substr字符串
36、起始長度) (wcmatch字符串格式) (write-char數(shù)值檔案代碼) (write-line字符串檔案代碼) 經(jīng)由鍵盤或檔案中讀取一行字符串轉(zhuǎn)換字符串大小寫將各字符串結(jié)合成一字符串字符串構(gòu)成的字符數(shù)(即字符串長度)取出子字符串 t或 nil,將字符串與通用字符進行比對將一 ascii字符寫到檔案或屏幕 項目 7.1 7.2 7.3 7.4 7.5 7.6 函數(shù)語法 (angle點 1點 2) (distance點 1點 2) 傳取得二點的角度弳度值取得二點的距離 回 (inters點 1點 2點 3點取得兩條線的交點 4模式) (osnap點模式字符串) (polar基點弳度距離)
37、(textbox像素串行)依幫助抓點模式取得另一坐標點依極坐標法取得另一坐標點取得文字符串的二對角點坐標 第八類像素處理功能函數(shù)項目函數(shù)語法 (entdel像素名稱)傳刪除或逆刪除像素回 將字符串寫到檔案或屏幕上 8.1 8.2 第六類等待輸入功能函數(shù)項目 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10函數(shù)語法 (getangle基點提示) (getcorner基點提示) (getdist基點 提示) (getint提示) (getkword提示) (getorient基點提示) (getpoint基點提示) (getreal提示) (getstring提示)
38、 (initget位字符串)傳回 (entget像素名稱應(yīng)用程序取出像素名稱的數(shù)據(jù)串行串行) (entlast) (entmake像素串行) (entmod像素串行) (entnext像素名稱) (entsel提示) (entupd像素名稱) (handent圖碼) (nentsel提示) (nentselp提示點)取出圖形數(shù)據(jù)中的最終一個像素建立一個新的像素串行依更新的數(shù)據(jù)串行更新屏幕上元體找尋圖面中的下一個像素懇求選取一個像素,響應(yīng)包含像素名稱及選點坐標的串行更新屏幕上復(fù)元體圖形圖碼的元體名稱 block所含副元體像素數(shù)據(jù)串行 block所含副元體像素數(shù)據(jù)(以 4 x 4矩形表示) 懇求輸
39、入十進制角度數(shù)值,響應(yīng)一弳度值提示及參考點可有可無懇求輸入另一矩框?qū)屈c坐標懇求輸入一段距離懇求輸入一整數(shù)值懇求輸入關(guān)鍵詞懇求輸入十進制角度,響應(yīng)一弳度值不受 angbase、angdir影響懇求輸入一個點坐標懇求輸入一實數(shù)懇求輸入一字符串設(shè)定下次 getxxx函數(shù)的有效輸入 8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10 8.11 第七類幾何運算功能函數(shù) 單元四:快速分類掃瞄 autolisp功能函數(shù)(二)第 8頁,共 27頁 特別簡明而有用的autolisp教程,你信不信,反正我信了(親,好的話請評價哈)。 第九類選擇集、符號表處理功能函數(shù)項目 9.1 9.2 9.3 9
40、.4 9.5 9.6 9.7 9.8 9.9函數(shù)語法 (ssadd像素名稱選擇集) (ssdel像素名稱選擇集) (ssget模式點 1點 2) (ssgetx過濾串行) (sslenth選擇集) (ssmemb像素名稱選擇集)傳回 10.6 10.7 (setvar系統(tǒng)變量值) (regapp應(yīng)用類項) 設(shè)定該系統(tǒng)變量的值將目前的 autocad圖形登記為一個應(yīng)用程序名稱 將像素加入選擇集或建立一新選擇集將像素自選擇集中移出取得一個選擇集取得依過濾串行所指定范圍的選擇集計算選擇集的像素個數(shù) 11.3響應(yīng)像素名稱是否包含于選擇集內(nèi) 11.4 11.5 11.2項目 11.1 第十一類推斷式、循
41、環(huán)相關(guān)功能函數(shù)函數(shù)語法 (if比較式表示式 1表示式 2) (repeat整數(shù)表達式表達式 .)號) (cond環(huán)境變量) (progn表達式 1表達式 2 .)傳回 檢算比較式結(jié)果,假如為真,執(zhí)行表示式 1否則,執(zhí)行表示式 2重復(fù)執(zhí)行整數(shù)次數(shù) (while標題內(nèi)定檔名擴展名旗透過標準 autocad檔案對話 dcl交談框求得檔案取得該環(huán)境變量的設(shè)定值,以字符串表示連結(jié)其內(nèi)的表達式為一組,常用于協(xié)作 if、cond等函數(shù) (ssname選擇集索引依索引值取出選擇集中的像素名稱值) (tblnext符號表名稱t)檢視符號表,有效的符號表:layer、ltype、view、style、block
42、第十二類函數(shù)處理、定義、追蹤錯誤處理功能函數(shù)項目 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8函數(shù)語法 (*error*字符串) (alert 字符串) (apply功能函數(shù)串行) (defun名稱自變量串行表示式 .) (eval表示式) (exit) (lambda自變量表示式) (progn表達式 1表達式 2 .)傳回 (tblsearch符號表名稱在符號表中搜尋符號符號)第十類 autocad相關(guān)查詢、掌握功能函數(shù) 程序錯誤時的警示訊息以交談框式顯示出警告字符串將功能函數(shù)與串行結(jié)合后執(zhí)行自定函數(shù)或子程序傳回:表示式的執(zhí)行結(jié)果強制退出目前的應(yīng)用程序定義
43、未具名的函數(shù)連結(jié)其內(nèi)的表達式為一組,常用于協(xié)作 if、cond等函數(shù) 項目 10.1 10.2 10.3 10.4 10.5 函數(shù)語法 傳 回 (commandautocad指令 .)呼叫執(zhí)行 autocad指令 (findfile檔名) (getfiled標題內(nèi)定檔名擴展名旗號) (getenv環(huán)境變量) (getvar系統(tǒng)變量)傳回:應(yīng)當文件名的路徑及文件名透過標準 autocad檔案對話 dcl交談框求得檔案取得該環(huán)境變量的設(shè)定值,以字符串表示取得該系統(tǒng)變量的設(shè)定值,以字符串表示第 9頁,共 27頁 特別簡明而有用的autolisp教程,你信不信,反正我信了(親,好的話請評價哈)。 12
44、.9 12.10 (quit) 強制退出目前的應(yīng)用程序 13.13 (terpri) 13.14 (textscr) 13.15 (textpage) 13.16 (vports) 在屏幕上顯示新列作圖環(huán)境切換到文字畫面清除文字畫面文字類似 dos的 cls指令傳回:窗口組態(tài)串行第十四類符號、元素、表示式處理功能函數(shù) (tablet代碼列 1列 2列 3方取用或建立對數(shù)字板的校調(diào)向)對函數(shù)設(shè)定追蹤旗號,幫助除錯對函數(shù)設(shè)定解除追蹤旗號 12.11 (trace函數(shù) ) 12.12 (untrace函數(shù) ) 第十三類顯示、打印掌握功能函數(shù)項目 13.1 13.2 13.3 13.4 13.5 13
45、.6 13.7 13.8 13.9函數(shù)語法 (graphscr) (grclear) (grdraw起點終點顏色亮顯) (grread追蹤)傳回 項目 14.1 函數(shù)語法 (atom元素) (atoms-family格式符號串行) (boundp表示式) (minusp元素) (not元素) (null元素) (numberp元素) (. '表示式) (quote表示式) 傳 回 假如元素不是串行,響應(yīng) t,否則為 nil傳回:一組已定義函數(shù)的符號串行傳回:t或 nil,響應(yīng)表示式是否有值存在傳回:t或 nil,元素是否為負值傳回:t或 nil,判定元素是否為 nil傳回:t或 nil
46、判定元素是否被給予 nil值傳回:t或 nil,元素是否為整數(shù)或?qū)崝?shù)響應(yīng)表示式未檢算前狀態(tài)響應(yīng)表示式未檢算前狀態(tài),同'功能將表示式結(jié)果設(shè)定給帶單引號 '符號設(shè)定表示式結(jié)果給各符號傳回:元素的數(shù)據(jù)型態(tài)傳回:t或 nil,元素是否為 0值 作圖環(huán)境切換到圖形畫面臨時清除模前的屏幕畫面 14.2 14.3 臨時性的畫出一條線 14.4由輸入設(shè)備讀取追蹤值 14.5 14.6臨時性的畫出多條線 14.7供應(yīng)在 autolisp中呼叫各菜單將表示式打印于命令區(qū)或已開啟的檔案,句柄字符則以為前綴綻開除句柄字符則不以為前綴綻開外其余同 prin1除表示式會往下一新行列出,及一空 非常其余同
47、prin1將訊息顯示于屏幕的命令區(qū),并隨后響應(yīng)一個 nil訊息重繪整張圖或依像素名稱重繪該圖形 14.11 14.8 14.9 (grtext位置字符串亮顯)將字符串顯示在狀態(tài)列或屏幕菜單上 (grvecs向量串行轉(zhuǎn)置矩陣) (menucmd字符串) (prin1表示式檔案代碼) (princ表示式檔案代碼) 14.10 (set符號表示式) (setq符號 1表示式 1符號 2表示式 2.) 13.10 (print表示式檔案代碼) 13.11 (prompt訊息) 13.12 (redraw像素名稱模式) 14.12 (type元素) 143.13 (zerop元素)項目 15.1 (ad
48、s)函數(shù)語法 第十五類 ads、autolisp加載與釋放函數(shù)傳回 傳回:目前加載 ads程序串行 第 10頁,共 27頁 特別簡明而有用的autolisp教程,你信不信,反正我信了(親,好的話請評價哈)。 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 (ver) (load lsp檔名加載失敗) (arxload應(yīng)用程序名稱錯誤響應(yīng)) 傳回:目前 autolisp版本字符串載入 autolisp檔案(*.lsp)加載一個 arx應(yīng)用程序文件 17.3 (acad_strlsort串行) 作串行排序 單元五:輕松快速的把握 autolisp設(shè)計技巧一、auto
49、lisp程序設(shè)計的四個步驟:1.第一步驟:產(chǎn)生寫程序的動機、預(yù)期目標 2.其次步驟:構(gòu)思程序流程、所需之 lisp功能函數(shù)、相關(guān)變量訂定提示訊息 3.第三步驟:利用文書軟件 (如記事本)撰寫 xxx.lsp程序 4.第四步驟:回到 autocad下,加載 autolisp程序以 (loadlsp主檔名)或 (loadlsp主檔名) 5.第五步驟:執(zhí)行新的 autolisp指令 (arxunload應(yīng)用程序名稱錯誤響釋放 arx應(yīng)用程序文件應(yīng)) (autoarxload文件名稱指令定義)載入一個關(guān)連式的 arx檔 (autoload ads定義的函數(shù)指令)載入一個關(guān)連式的 autolisp檔 (
50、autoxload文件名稱指令定義) (xload應(yīng)用程序出錯處理)載入一個關(guān)連式的 ads檔加載 ads應(yīng)用程序釋放 ads應(yīng)用程序 二、透過簡潔范例全程演練 autolisp:1.第一步驟:動機、預(yù)期目標如圖:盼望能在輸入左下角點、矩形寬、矩形高后,自動的將圖形依所給的條件畫出,如此一來,爾后畫這個圖就輕松開心了! 15.10 (xunload應(yīng)用程序出錯處理) 第十六類內(nèi)存空間管理函數(shù)項目 16.1 16.2 16.3 16.4 16.5 16.6 16.7函數(shù)語法 (alloc數(shù)值) (expand數(shù)值) (gc) (mem) (vmon) (xdroom像素名稱) (xdsize串行
51、)傳回 以節(jié)點數(shù)值設(shè)定區(qū)段大小以區(qū)段數(shù)值配置節(jié)點空間強制收回廢內(nèi)存顯示目前的內(nèi)存使用狀態(tài)釋放 ads應(yīng)用程序傳回像素延長數(shù)據(jù)允用得內(nèi)存空間傳回像素延長數(shù)據(jù)所占用的內(nèi)存空間第十七類 arx定義的函數(shù) 2.其次步驟:構(gòu)思程序相關(guān)變量訂定(如下圖) 項目 17.1 17.2 函數(shù)語法 傳 回 (acad_colordlg顏色碼旗號)顯示出標準 autocad顏色選擇交談框 (acad_helpdlg求助文件名主題)顯示出標準 autocad求助交談框第 11頁,共 27頁 定 出程序名為 pbox.lsp 特別簡明而有用的autolisp教程,你信不信,反正我信了(親,好的話請評價哈)。 構(gòu)思程序流
52、程、相關(guān)變量:變量名稱可自行設(shè)定(如 pa、 ww、hh、pb、pc、pd、mp1、mp2、mp3、mp4),把握三個原則: 十進制角度 0度 90度 180度 270度 n度 0 1/2 2/3 弳度值 0 十進制轉(zhuǎn)弳度公式 不行重復(fù)好記不會混淆適時的以分號;加上批注 (/ pi 2)或 (* pi 0.5) pi (* pi 1.5) (* pi (/ n 180) (defun c:pbox();以下 pa、ww、hh值須由使用者輸入 (setq pa (懇求輸入左下角點) (setq ww (懇求輸入矩形寬度實數(shù)值) (setq hh (懇求輸入矩形高度實數(shù)值);以下 pb、pc、pd
53、值須由程序依據(jù) pa、ww、hh求出 (setq pb (依據(jù)相對極坐標法求出 pb點坐標值) (setq pc (依據(jù)相對極坐標法求出 pc點坐標值) (setq pd (依據(jù)相對極坐標法求出 pd點坐標值);以下依據(jù) pa、pb、pc、pd點畫矩形 (以 pline指令畫出矩形);以下 mp1、mp2、mp3、mp4值須由程序依據(jù) pa、ww、hh; pb、pc、pd值求出 (setq mp1 (求出 mp1點坐標值) (setq mp3 (求出 mp3點坐標值) (setq mp2 (求出 mp2點坐標值) (setq mp4 (求出 mp4點坐標值);以下依據(jù) mp1、mp2、mp3、
54、mp4點畫出二條線 (以 line指令畫出 mp1到 mp3的線) (以 line指令畫出 mp2到 mp4的線) ) 本程序所需的 autolisp功能函數(shù)及其用法 *n/180 (commandautocad指令 .)-呼叫執(zhí)行 autocad指令留意:指令及其副選項皆要用雙引號處理假設(shè) pa、pb、pc、pd皆為變量,其值為點坐標正確: (commandpline pa pb pc pdc)錯誤: (command pline pa pb pc pd c)緣由:指令 pline及其副選項 c皆沒用雙引號括住錯誤: (commandpline pa pb pc pd c)緣由:副選項 c
55、(代表 close)沒用雙引號括住,會被誤認為是 autolisp的變量名,但事實又沒有 c這個變數(shù)錯誤:(commandplinepapbpcpdc)緣由:變數(shù) pa、pb、pc、pd不須用雙引號括住留意:副選項中,若使用,連續(xù)二個雙引號,代表按enter鍵若想畫一條 pa到 pc的 line一條 pb到 pd的 line正確: (commandline pa pc) (commandline pb pd)錯誤: (commandline pa pc) (commandline pb pd) 其它相關(guān)接近的功能函數(shù). (getdist基點提示) 懇求輸入一段距離 (getint提示) 懇求輸
56、入一整數(shù)值 (getcorner基點提示) 懇求輸入另一矩框?qū)屈c坐標 (car串行) 傳回:串行中的第一個元素通常用來求 x坐標 (cadr串行) 傳回:串行中的其次個元素通常用來求 y坐標 (caddr串行) 傳回:串行中的第三個元素通常用來求 z坐標第 12頁,共 27頁 (getpoint基點提示)-懇求輸入一個點坐標 (getreal提示)-懇求輸入一實數(shù) (polar基點弳度距離)-依極坐標法取得另一坐標點其中弳度值之轉(zhuǎn)換為: 特別簡明而有用的autolisp教程,你信不信,反正我信了(親,好的話請評價哈)。 3.第三步驟:利用 pe2、ce或記事 本,撰寫 pbox.lsp程序并儲存到 c:lisptool名目下! (defun c:pbox();以下
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 庭院頁巖圍邊施工方案
- 海洋工程裝備海洋能利用考核試卷
- 畜牧業(yè)發(fā)展與鄉(xiāng)村文化傳承考核試卷
- 如何評估2025年證券從業(yè)資格證的考試結(jié)果試題及答案
- 礦物加工領(lǐng)域的國際發(fā)展趨勢考核試卷
- 環(huán)保技術(shù)市場準入與監(jiān)管政策考核試卷
- 電機材料研發(fā)考核試卷
- 2024項目管理計劃執(zhí)行試題及答案
- 2025年注會考試的重要性分析試題及答案
- 電力儀表的數(shù)字技術(shù)發(fā)展現(xiàn)狀與未來展望分析考核試卷
- 少先隊輔導(dǎo)員技能大賽考試題庫300題(含答案)
- 2024年保密教育培訓考試(題目和答案)
- 【中考真題】廣西壯族自治區(qū)2024年中考語文真題試卷
- 跨學科主題學習 做時間的主人 學案 蘇科版三上信息科技
- 馬斯克課件完整版本
- 行政復(fù)議法-形考作業(yè)3-國開(ZJ)-參考資料
- 2069-3-3101-002WKB產(chǎn)品判定準則-外發(fā)
- 外科常見手術(shù)備皮
- 抑郁癥的早期識別和干預(yù)
- T-CITSA 20-2022 道路交叉路口交通信息全息采集系統(tǒng)通用技術(shù)條件
- 護士行為規(guī)范及護理核心制度
評論
0/150
提交評論