資源描述:
《visual_lisp編程基礎(chǔ)1》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、一VisualLISP編程基礎(chǔ)一、實(shí)驗(yàn)?zāi)康?.VisualLISP開(kāi)發(fā)環(huán)境介紹;2.熟悉VisualLISP開(kāi)發(fā)環(huán)境和開(kāi)發(fā)步驟,并掌握VisualLISP調(diào)試方法和調(diào)試過(guò)程,斷點(diǎn)設(shè)置,單步執(zhí)行,自動(dòng)執(zhí)行和數(shù)據(jù)監(jiān)視等功能的使用。二、實(shí)驗(yàn)設(shè)備1.硬件環(huán)境:臺(tái)式計(jì)算機(jī);2.軟件環(huán)境:WINXP操作系統(tǒng),AutoCAD2004。三、實(shí)驗(yàn)步驟1熟悉VisualLISP開(kāi)發(fā)環(huán)境(1)進(jìn)入VisualLISP啟動(dòng)AutoCAD,通過(guò)選擇菜單:工具->AutoLISP->VisualLISP編輯器,進(jìn)入如下編程環(huán)
2、境。圖5-1VisualLISP集成開(kāi)發(fā)環(huán)境(2)輸入如下所示程序選擇菜單:文件->新建文件,或工具按鈕,啟動(dòng)新的文件編輯窗口如下,并輸入其中的LISP程序。圖5-2編輯helloworld源程序源程序:(print“hello,world”)(3)保存選擇菜單:文件->保存,或工具按鈕,文件取名為helloworld.lsp,注意LISP文件名后綴。(4)運(yùn)行選擇菜單:工具->加載編輯器中的文字,或工具按鈕,即可運(yùn)行當(dāng)前程序。程序運(yùn)行結(jié)果將會(huì)顯示在控制臺(tái)窗口中,如圖5-3所示。圖5-3hello
3、world程序運(yùn)行結(jié)果該程序利用函數(shù)print輸出字符串“hello,world”。控制臺(tái)窗口是一個(gè)單獨(dú)的、可任意移動(dòng)的窗口。在控制臺(tái)窗口中用戶(hù)可以直接輸入、運(yùn)行AutoLISP表達(dá)式并查看結(jié)果,與AutoCAD命令窗口的工作方式非常類(lèi)似。但在控制窗口中顯示一個(gè)AutoLISP變量的當(dāng)前值只需輸入變量名后回車(chē),不再需要在變量名前加一個(gè)“!”。在控制臺(tái)中可以實(shí)現(xiàn)下面一些典型功能:l可以執(zhí)行表達(dá)式并顯示表達(dá)式的返回值l可以一次執(zhí)行多個(gè)表達(dá)式l可以在控制臺(tái)和文本編輯窗口之間復(fù)制或粘貼文本,在控制臺(tái)中可以
4、使用大部分文本編輯命令l通過(guò)在控制臺(tái)中按Tab鍵可以回溯到以前輸入的命令。多次按Tab鍵則可以回溯到更早輸入的命令,按Shift+Tab則可以反向回溯命令l通過(guò)按Tab鍵還可以實(shí)現(xiàn)對(duì)輸入歷史的關(guān)聯(lián)搜索。例如,如果輸入了表達(dá)式(+后按Tab鍵,VLISP將檢索最近輸入的以(+開(kāi)頭的表達(dá)式。按Shift+Tab鍵則可以反向回溯。l按Esc鍵可以清除在控制臺(tái)提示下剛輸入的內(nèi)容,按Shift+Esc將跳過(guò)在控制臺(tái)提示下輸入的內(nèi)容,出現(xiàn)新的控制臺(tái)提示行。2簡(jiǎn)單函數(shù)的編寫(xiě)(1)進(jìn)入VisualLISP編程環(huán)境
5、并新建一個(gè)文件,輸入以下程序,并命名為area.lsp。圖5-4area源程序注意其中的代碼分色表示,即文本編輯器可以識(shí)別程序的不同組成部分并以各自的顏色表示,這樣可以很容易地從程序中找出所需要的部分,以及發(fā)現(xiàn)拼寫(xiě)錯(cuò)誤。(2)運(yùn)行選擇菜單:工具->加載編輯器中的文字。注意這時(shí)在控制臺(tái)窗口沒(méi)有任何輸出。在控制臺(tái)窗口的命令提示符后輸入(area)并回車(chē),會(huì)得到如下結(jié)果:圖5-5area程序運(yùn)行結(jié)果這是由于這個(gè)程序中定義了一個(gè)LISP函數(shù)(area),加載當(dāng)前程序只是在當(dāng)前的內(nèi)存中定義了一個(gè)名叫area
6、的函數(shù),但是并沒(méi)有去調(diào)用并執(zhí)行它。要想得到結(jié)果,還需要用戶(hù)明確地調(diào)用該函數(shù),才能被執(zhí)行。3調(diào)試程序VLISP提供了許多有用的功能幫助調(diào)試程序。包括l跟蹤程序的執(zhí)行;l在程序執(zhí)行中跟蹤變量值;l觀察各個(gè)表達(dá)式的執(zhí)行順序l檢查在函數(shù)調(diào)用中的變量值l中斷程序的執(zhí)行l(wèi)單步執(zhí)行程序l檢查堆棧為了實(shí)現(xiàn)這些功能,VLISP,提供了許多相應(yīng)的工具:中斷循環(huán)模式,檢驗(yàn)器,監(jiān)視窗口,跟蹤堆棧工具和跟蹤工具。(1)設(shè)置斷點(diǎn)中斷程序的執(zhí)行將光標(biāo)移到要設(shè)置斷點(diǎn)的程序行,選擇菜單調(diào)試->切換斷點(diǎn),或工具按鈕,即可在當(dāng)前位置設(shè)
7、置(取消)一個(gè)斷點(diǎn),當(dāng)程序執(zhí)行到這里時(shí)將中斷。圖5-6斷點(diǎn)的設(shè)置選擇菜單:調(diào)試->繼續(xù),或點(diǎn)擊工具按鈕,則可繼續(xù)程序的執(zhí)行。(2)單步執(zhí)行程序選擇菜單:調(diào)試->下一嵌套表達(dá)式,或工具按鈕,可以逐個(gè)表單步執(zhí)行,便于查看程序執(zhí)行的步驟及其中間結(jié)果。圖5-7下一嵌套表達(dá)式單步執(zhí)行選擇菜單:調(diào)試->下一表達(dá)式,或工具按鈕,則可以執(zhí)行下一個(gè)頂層表,而不進(jìn)入表的內(nèi)部。(3)監(jiān)視表達(dá)式的值選擇菜單:調(diào)試->監(jiān)視最新結(jié)果,或工具按鈕,則可以即時(shí)監(jiān)視最后一個(gè)運(yùn)算的表達(dá)式的值。如圖5-8所示,當(dāng)單步執(zhí)行到(+abc)
8、時(shí),監(jiān)視窗口中顯示出它的值為12。圖5-8監(jiān)視窗口(4)動(dòng)態(tài)執(zhí)行程序選擇菜單:調(diào)試->自動(dòng)執(zhí)行,即可將當(dāng)前運(yùn)行模式設(shè)為動(dòng)態(tài)執(zhí)行。當(dāng)通過(guò)前述的方法加載并執(zhí)行該程序時(shí),在程序編輯窗口中將會(huì)動(dòng)態(tài)顯示當(dāng)前被求值的表,直至整個(gè)程序運(yùn)行完??梢酝ㄟ^(guò)選擇菜單:工具->環(huán)境選項(xiàng)->基本選項(xiàng),在彈出的對(duì)話(huà)框中修改自動(dòng)執(zhí)行延時(shí)時(shí)間。圖5-9自動(dòng)執(zhí)行延時(shí)設(shè)置對(duì)話(huà)框4編程練習(xí)編制程序?qū)崿F(xiàn)對(duì)某一實(shí)數(shù)小數(shù)點(diǎn)后第n位進(jìn)行四舍五入運(yùn)算。四、實(shí)驗(yàn)總結(jié)1.完成編程練習(xí)中的程序,加上程序說(shuō)明與必要的注釋?zhuān)米⑨屨f(shuō)明程