版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 前言</b></p><p> 畢業(yè)設計是對我們大學四年的一個總結,也是對我們綜合實力的一個檢驗。</p><p> 本次畢業(yè)設計是AutoCAD系列標準零件參數(shù)化設計,它涉及到AutoCAD,機械制圖,Visual LISP,Auto LISP等知識,是對以前知識的在學習過程,也是對新知識靈活應用的過程。通過本次畢業(yè)設計鍛煉了我分析
2、問題,解決問題的能力,使我再一次充分認識到所學知識的重要性和嚴謹性,為我將來參加工作打下了良好的基礎。</p><p> 在本次畢業(yè)設計過程中我得到了姜增輝老師和同組同學的大力幫助支持和指導,在此謹表示衷心的感謝。由于本人能力有限,設計中的不足之處和錯誤地方在所難免還望各位老師批評指正。</p><p><b> 第一章 緒論</b></p><
3、;p> LISP(List Processing Language)是人工智能領域中廣泛采用的一種程序設計語言。主要用于人工智能、機器人、專家系統(tǒng)、博弈、定理證明等領域。LISP也被稱為符號式語言,因為它處理的對象是符號表達式。LISP語言的程序和數(shù)據(jù)都以符號表達式的形式來表示,即一個LISP程序可以把另一個LISP程序作為它的數(shù)據(jù)來處理。</p><p> LISP在它 10多年的發(fā)展過程中產(chǎn)生了多種
4、版本,比如 MacLISP, InterLISP, ZetaLISP,CommonLISP等。其中 CommnLISP是近幾年美國的幾所大學(比如 MIT, STANFORD,CMU, RUTGERS等)和工業(yè)界(如 Bell實驗室、 DEC公司、 HP公司等)的人工智能研究人員協(xié)同推出的,它概括了MacLISP、InterLISP、ZetaLISP等版本的特點,因而功能較強且擁有其他版本的一些優(yōu)點,是目前 LISP語言比較完整的版
5、本。</p><p> AutoLISP語言是嵌套在AutoCAD內(nèi)部、將LISP語言與AutoCAD有機結合的產(chǎn)物。使用AutoLISP可以直接調(diào)用幾乎所有的AutoCAD命令。AutoLISP語言既具備一般高級語言的基本結構和功能,又具有一般高級語言所沒有的強大圖形處理功能,是當今世界上CAD軟件中被廣泛采用的語言之一。</p><p> 美國Autodesk公司在AutoCAD內(nèi)
6、部嵌入AutoLISP語言的目的是使用戶充分利用AutoCAD進行二次開發(fā),實現(xiàn)直接增加和修改AutoCAD命令,隨意擴大圖形編輯功能,建立圖形庫和數(shù)據(jù)庫并對當前圖形進行直接訪問和修改,開發(fā)CAD軟件包等。</p><p> AutoLISP語言最典型的應用之一就是實現(xiàn)參數(shù)化繪圖程序設計,包括尺寸驅(qū)動程序</p><p> 和鼠標拖動程序等。尺寸驅(qū)動是指通過改變實體標注的尺寸值來實現(xiàn)圖
7、形的自動修改,鼠標拖動即利用AutoLISP語言提供的(GRREAD[<track>])函數(shù),讓用戶直接讀取AutoCAD為輸入設備(通常為鼠標),任選項追蹤光標移動存在且為真時,調(diào)整所需的參數(shù)值而達到自動改變屏幕圖形的屬性。到目前為止,大多數(shù)參數(shù)化程序都是針對二維平面圖編制的。實際上,立體圖同樣可以實現(xiàn)參數(shù)化繪圖。另一個AutoLISP的典型應用就是驅(qū)動利用AutoCAD提供的 PDB模板構成 DCL(Dialog Control L
8、anguage一文件創(chuàng)建自己的對話框。</p><p> 自從AutoLISP嵌入AutoCAD之后,使僅僅作為交互式圖形編輯軟件的AutoCAD編</p><p> 程能真正進行計算機輔助設計、繪圖的CAD軟件。由于LISP靈活多變、易于學習和使用,因而使AutoCAD成為功能很強大的工具性軟件。</p><p> AutoLISP具有如下的特點:</
9、p><p> · AutoLISP語言是在普通LISP語言基礎上,擴充了許多適用于CAD應用的特殊功</p><p> 能而形成的,是一種僅能以解釋方式運行于AutoCAD內(nèi)部的解釋型程序設計語言。</p><p> · AutoLISP語言中的一切成分都是以函數(shù)的形式給出的,它沒有語句概念和其他語法結構。執(zhí)行AutoLISP程序就是執(zhí)行一些函
10、數(shù),再調(diào)用其他函數(shù)。</p><p> · AutoLISP把數(shù)據(jù)和程序統(tǒng)一表達為表結構,即S一表達式,因此可以把程序當作數(shù)據(jù)來處理,也可以把數(shù)據(jù)當作程序來執(zhí)行。</p><p> · AutoLISP語言中的程序運行過程就是對函數(shù)求值的過程,是在對函數(shù)求值的過程中實現(xiàn)函數(shù)的功能。</p><p> · AutoLISP語言的主要
11、控制結構是采用速歸方式。遞歸方式的使用,使得程序設計簡單易懂。</p><p> 第二章 AutoLISP 語言概述</p><p> 2.1 AutoLISP的程序結構</p><p> 與一般的程序語言不同的是,AutoLISP語言沒有“語句”這一概念,AutoLISP程序是由一個或者一系列按照特定順序排列的標準表組成的。那么什么是所謂的標準表呢?先來看
12、幾個標準表的例子。</p><p><b> 例1—1</b></p><p> ?。╯etq x 10.0)</p><p> ?。╯etq y 10.0)</p><p> ?。╯etq z ( x y))</p><p> ?。╯etq a“Helloworld”)</p>
13、<p> ?。?command “l(fā)ine” “0.0” “10.10”)</p><p> ?。╟ommand“circle” “100,100” “50”)</p><p> 讀者不妨在AutoCAD 2004環(huán)境中試著運行以上的幾個例子。比如,在命令行中</p><p> command提示符下輸入:</p><p>
14、(setq x 10.0)</p><p> 按回車,就能看到程序運行的結果:</p><p><b> 10.0</b></p><p> 這也就是程序運行完畢之后變量X的值。</p><p> 類似地,其余幾條語句運行之后的結果分別為:</p><p><b> 10.0&
15、lt;/b></p><p> 200(也就是x和y相加之后的值)</p><p> ”HelloWorld!”;</p><p> 在坐標分別為(0,0)和(10,10)的2個點之間畫一條線段;</p><p> 以坐標為(100,100)的點為圓心,50為半徑畫了一個圓。</p><p> 到這里可
16、以得到標準表的基本概念:標準表由左右2個括號組成,其功能由括號中的代碼實現(xiàn);標準表的第征個元素(如setq、十、command)均為操作符或者函數(shù)名,其余的元素都是相應函數(shù)的參數(shù)。其一般格式為:</p><p> ?。ê瘮?shù)名[<參數(shù)1>][<參數(shù)2>]……[<參數(shù)n>])</p><p> 在這里需要強調(diào)的是,標準表中可能包含著別的表,這是允許的,就像上面的(setq z (+ x y)
17、)一樣。</p><p> 將例1-1中的6個標準表組合在一起,就可以看作是一個AutoLISP程序了。這個程序所實現(xiàn)的功能就是其中每個標準表所實現(xiàn)功能的總和。同樣地,只要將希望程序?qū)崿F(xiàn)的功能不斷地分解,分別用不同的標準表來實現(xiàn),然后再組合在一起,就能實現(xiàn)讀者所期望的任何功能。</p><p> AutoLISP程序的書寫格式有著如下的特點。</p><p>
18、 · AutoLISP程序是由標準表組成的,因此程序中所有的括號都必須左右匹配。</p><p> · AutoLISP程序閱讀函數(shù)時,按照從左到右的規(guī)則進行。</p><p> · 操作符(也可以理解稱為函數(shù)名,比如賦值函數(shù),十相加函數(shù)等等)必須放在標</p><p> · 準表中第1個元素的位置。標準表中的函數(shù)與參數(shù)
19、、參數(shù)與參數(shù)之間至少要用一個空格來分開。</p><p> · 2個標準表之間和表內(nèi)的多余空格和回車都是不需要的,因此一個表可以占多行,一行內(nèi)也可以寫下很多表。比如,例1-1中的程序可以寫成下面的形式。</p><p> ?。╯etq x 10.0)(setq y 10.0)(setq z ( x y))(setq a “HelloWorld!”)(cornmand“l(fā)ine”
20、 “0,0” “10,10”)(command“circle””100,100”“50”)</p><p> 很明顯,處于程序可讀性的考慮,應該采取前一種格式書寫程序,一行內(nèi)只寫一個標準表。當標準表的長度過長,可以從表中任意位置按回車斷開,然后再繼續(xù)書寫,以保持程序源代碼的整潔。</p><p> · AutoLISP程序中使用分號“;”作注釋。AutoLISP執(zhí)行程序的時候
21、會自動跳過</p><p> 每一行中分號以后的部分。注釋可以放在程序中的任何地方。</p><p> · AutoLISP程序的擴展名為(.lsp),并以ASCll碼文本文件的形式表達,因此可以使用 Wndows操作系統(tǒng)自帶的 notepad或者 UltreEdit32 text editor等文本編輯軟件打開已有的.lsp文件并進行編輯。</p><p
22、> AutoLISP哪程序就是對一個個AutoLISP函數(shù)的調(diào)用。函數(shù)是AutoLISP語言處理數(shù)的工具,學習掌握AutoLISP語言,核心就是要掌握AutoLISP函數(shù)。AutoLISP函數(shù)分為內(nèi)部</p><p> 函數(shù)和外部函數(shù)。其中內(nèi)部函數(shù)是AutoCAD系統(tǒng)自帶的,外部函數(shù)是用戶自行定義的。</p><p> AutoLISP提供了大量的系統(tǒng)內(nèi)部函數(shù),讀者可以在Aut
23、oCAD 2004中按FI鍵查看幫助文</p><p> 檔,如圖2-1所示。</p><p> 圖2-1 按F1鍵查看AutoCAD 2004幫助文件</p><p> 在Customization Guide— AutoLISP,Visual LISPand DXF中查看 AutoLISP </p><p> Reference,
24、里面包含了所有AutoLISP所提供的系統(tǒng)內(nèi)部函數(shù),按照英文字母A~Z</p><p> 順排列。如圖2-2所示。</p><p> 圖2-2 按字母順序查看AutoLISP系統(tǒng)內(nèi)部函數(shù)</p><p> 充分了解并利用這些函數(shù),是編寫高質(zhì)量AutoLISP程序的基本條件,讀者應該養(yǎng)成</p><p> 經(jīng)常翻閱幫助文件的良好習慣。&
25、lt;/p><p> 在學習AutoLISP的系統(tǒng)內(nèi)部函數(shù)時,必須掌握以下基本內(nèi)容。</p><p> · 函數(shù)調(diào)用格式:即函數(shù)名、函數(shù)要求的參數(shù)個數(shù)和類型。</p><p> · 函數(shù)功能:即該函數(shù)的作用,它對其參數(shù)如何進行處理。</p><p> · 函數(shù)的求值情況:即哪些參數(shù)要求值,哪些不要求值。
26、</p><p> · 函數(shù)求值返回結果的類型。</p><p> 2.2 AutoLISP程序的執(zhí)行過程</p><p> 對子很短的AutoLISP程序(只有1至2個表組成,比如簡單的數(shù)值函數(shù)的運算</p><p> 可以直接在AutoCAD環(huán)境中command命令提示符下輸入,返回的結果立即顯示在文本</p
27、><p> 屏幕上。例如在command命令提示行下鍵入:</p><p> ?。╯etq string”Programming with AutoLISP is great fun!”)接回車。則立</p><p> “Programming with AutoLISP is great fun !”。也就是賦予string的值。</p><p
28、> 如果讀者認為命令行的顯示范圍過于狹小,可以按FZ鍵彈出AutoCAD Text Window</p><p> 查著所有命令的歷史記錄,如圖l-4所示。</p><p> 對于一般的AutoLISP應用程序,需要采用文本編輯器進行編輯,否則一行行地輸入語句,一旦出現(xiàn)錯誤,將很難處理。一般情況下,在安裝了AutoCAD 2004之后,就可以利用軟件自帶的文本編輯器進行.lsp
29、文件的編寫和調(diào)試。如果由于某種特殊原因,使得用戶程序編制環(huán)境與AutoCAD環(huán)境相分離,我們就要采取其他的文本編輯器來編輯程序。在這里推薦使用 UltraEdit 9。0,這是一款相當不錯的文本編輯軟件,支持多種格式的文本格式。下面的例子將示范如何利用 UltraEdit 9.0編寫.lsp程序文件,再用 Load函數(shù)裝載并運行。</p><p><b> 例1-2</b></p&g
30、t;<p> ?。?)打開UltraEdit 9.0,在文本編輯環(huán)境中輸入如下代碼。</p><p> ?。╬rinc “\n Welcome!”)</p><p> (defun c:welcome)</p><p> (print“AutoLISP welcomes you!” )</p><p> (2)將上面的程序
31、保存為D:“\lisp\MyAutoLISP.lsp”。</p><p> ?。?)啟動AutoCAD,在command命令提示符下鍵入:</p><p> (load:“l(fā)isp/myautolisp.lsp”)</p><p> ?。ㄗ⒁猓哼@里用的是除號\,讀者可以試試看用反斜杠號\會發(fā)生什么結果)</p><p> 回車后,即執(zhí)行第
32、1句并返回最后一個defun函數(shù)定義的函數(shù)名:</p><p> Welcome! C:WELCOME</p><p><b> 程序文件裝載完畢。</b></p><p> (4)運行defun定義的函數(shù),在command命令提示符下鍵入:welcome</p><p> 按回車,命令行中就顯示”AntoLIS
33、P welcomes you!”</p><p> 2.3 Visual LISP編程環(huán)境</p><p> 自 AutoCAD R14.01開始,出現(xiàn)了 Visual LISP語言,它是Autodesk公司為了增強Auto</p><p> LISP程序開發(fā)能力而設計的軟件工具。 Visual LISP為 AutoLISP增加了許多新的函數(shù),</p&
34、gt;<p> 擴展了AutoLISP的能力。在對AutoCAD進行專業(yè)設計的應用范圍內(nèi),已經(jīng)比較接近ARX</p><p> 程序的能力.Visual LISP是設計用來加速AutoLISP程序開發(fā)的軟件工具。Visual LISP</p><p> 成開發(fā)環(huán)境提供了很多特性,使用戶創(chuàng)建和修改原代碼、測試和調(diào)試程序更加方便。</p><p>
35、 此外,Visual LISP還提供了用于傳遞AutoLISP中特殊應用的方法。在 Visual LIS</p><p> 中用戶可以在一個單獨的環(huán)境中執(zhí)行大部分必要的操作,包括文本編輯、程序調(diào)試</p><p> AutoCAD和其他應用程序的交互。</p><p> 以下是 Visual LISP集成開發(fā)環(huán)境的組成部分。</p><p&
36、gt; ·語法檢查器:可以識別錯誤的AutoLISP結構和內(nèi)部函數(shù)調(diào)用中不合適的參數(shù)。</p><p> ·文件編譯器:可以改善程序的執(zhí)行速度并提供一個安全有效的發(fā)布平臺。</p><p> ·資源調(diào)試器:允許用戶在一個窗口中一步步地執(zhí)行AutoLISP程序源代碼,并在</p><p> AutoCAD圖形窗口中顯示代碼執(zhí)行的結
37、果。</p><p> ·文本編輯器:使用AutoLISP和DCL顏色編碼對程序源代碼進行編輯。</p><p> ·AutoLISP格式工具:可以重新安排程序的格式,增強程序可讀性。</p><p> ·檢查和觀察工具:可以方便地訪問變量和表達式的值,還可以劃覽AutoCAD圖</p><p> 形實體
38、的各項屬性值。</p><p> ·上下文相關菜單:提供有關AutoLISP函數(shù)的信息以及對符號名的搜索。</p><p> ·項目管理系統(tǒng):使用戶可以更容易地管理多文件應用程序。編譯過的AutoLISP文</p><p> 件將被封裝為一個單獨的模塊。</p><p> ·窗口的保護和恢復功能:使用戶可
39、以保護并再次使用任一 Visual LISP情景的窗口</p><p><b> 環(huán)境。</b></p><p> ·智能化的控制臺窗口:為AutoLISP用戶提供了更多的便利和更高的效率??刂?lt;/p><p> 臺的基本功能對應于AutoCAD文本屏幕的功能,同時還提供了一些交互特性。</p><p>
40、 Visual LISP擁有自己的窗口和菜單,它們與 AutoCAD的其他窗口是不同的。但是</p><p> Visual LISP不能離開AutoCAD而單獨運行。用戶如果要使用Visual LISP,必須首先運行AutoCAD;當用戶在Visual LISP集成開發(fā)環(huán)境中執(zhí)行AutoLISP程序時,也需要與AutoCAD中的圖形和命令窗口進行交互來相應程序的提示。</p><p>
41、; 2.3.1 Visual LISP的特點</p><p> Visual LISP(簡稱 VLISP)是為加速 AutoLISP程序開發(fā)而設計的軟件工具,它提供一個完整的集成開發(fā)環(huán)境(IDE),包括編譯器、調(diào)試器和其他工具。VisualLISP可以顯著地提高自定義AutoCAD的效率。VLISP提供的主要工具有:文本編輯器、格式編排器、語法檢查器、源代碼調(diào)試器、檢驗和監(jiān)視工具、文本編譯器、工程管理系統(tǒng)、上
42、下文相關幫助與自動匹配功能和智能控制臺等。</p><p> 在VLISP集成環(huán)境下開發(fā)AutoLISP程序,不再像以前那樣用其他系統(tǒng)的文本編輯程序編寫代碼;調(diào)試程序需要用戶自己決定在程序的什么位置加入打印語句,以便查看這些變量的內(nèi)容,要像查看變量的內(nèi)容還必須在AutoCAD中加載并運行源程序代碼:如果沒有足夠的信息來診斷錯誤,就不得不返回文本編輯器程序并再次修改代碼,以加入更多的調(diào)試點;在程序運行正確之后,還
43、必須將加入的調(diào)試代碼刪除或者注釋掉。在VLISP集成環(huán)境下可以便捷、高效地開發(fā)AutoLISP程序,可以得到運行效率更高、代碼更加緊湊、源代碼收到保護的應用程序。</p><p> VLISP是新一代AutoLISP語言,它對AutoLISP語言進行了擴展,可以通過Microsoft</p><p> ActiveX Automation接回與對象交互,可以通過反應器函數(shù)擴展 Auto
44、LISP響應事件的能力。如果使用VLISP對AutoLISP的擴展功能,必須調(diào)用vl一load-com函數(shù),或者將對該函數(shù)調(diào)用包括在acad2004Doc.lip文件內(nèi)。</p><p> VLISP的用戶界面良好,用過Microsoft軟件的用戶只需要很短的時間就可以掌握它。</p><p> 2.3.2 啟動Visual LISP</p><p> Vis
45、ual LISP是運行在 AutoCAD之外的一套窗口中的。啟動 Visual LISP步驟如下:</p><p> 啟動 AutoCAD 2004。</p><p> ?。?)在AutoCAD的菜單中,執(zhí)行tools→AutoLISP→VisualLISPEditor命令,或者在命令提示符下輸入命令:</p><p> command :vlisp</p
46、><p> 這時就會彈出 Visual LISP for AutoCAD窗口,如圖 2-3所示。</p><p> 圖2-3 Visual LISP界面</p><p> 當加載Visual LISP時,一個或者多個Visual LISP的窗口就會暫時顯示在屏幕上。Visual LISP可以存儲上一次退出時正在打開的窗口。在下一次運行時,Visual LISP會
47、自動打開并恢復這些窗口里的內(nèi)容。</p><p> 用戶在任何時候都可以通過使用菜單命令或者VLISP命令從AutoCAD返回到Visual LIS集成開發(fā)環(huán)境中。</p><p> 2.3.3 Visual LISP環(huán)境界面</p><p> Visual LIS的環(huán)境界面由下面幾個部分組成。</p><p> ·菜
48、單項:用戶可以通過選擇各種各樣的菜單項來調(diào)用 Visual LISP的命令。如果某個菜單項高亮顯示,Visual LISP就會在屏幕底部的狀態(tài)欄上顯示關于此命令的說明文字。</p><p> ·工具欄:通過單擊工具欄按鈕,用戶可以快速調(diào)用 Visual LISP命令。在 Visual LISP具欄中調(diào)用。如果移動鼠標指針到某一個工具欄按鈕的上方,停留2秒鐘,VisualLISP會顯示該按鈕的提示文字,
49、表明這個按鈕的功能;同時一個比較詳細的描述會出現(xiàn)在Visual LISP屏幕底部的狀態(tài)欄上。</p><p> ·控制臺窗口:這是一個在主 Visual LISP窗口界面上獨立的窗口。在控制臺窗口中,</p><p> 用戶可以輸入AutoLISP命令,這與在AutoCAD的命令行中輸入的效果是一樣的。</p><p> 此外,用戶還可以在這個窗口中
50、輸入消Visual LISP命令,以代替使用菜單和工具欄命令。</p><p> ·狀態(tài)欄:位于屏幕的底部,顯示當前 Visual LISP的狀態(tài)信息。信息的內(nèi)容會根據(jù)當前在 Visual LISP中所作的工作的不同而不同。</p><p> ·跟蹤窗口:在啟動 Visual LISP時,還可以看到一個最小化了的跟蹤(Trace)窗口。這個窗口包含了一些關于 Vis
51、ual LISP當前版本的信息,以及當啟動 Visual LISP遇到錯誤時的其他一些信息。</p><p> ·文本編輯器:Visual LISP本身包括一個集成的文本編輯器,可以用來編輯 AutoLISP代碼。用戶只要打開一個朋Visual LISP源程序,就可以看到文本編輯器的全貌。</p><p> 在 Visual LISP中打開一個源程序,Visual LISP提
52、供了一些例子程序,這些例子程序放在AutoCAD安裝目錄下的Samples于目錄里。按照下面的步驟操作,讀者可以打開一個名為 drawline.lsp的源程序。</p><p> ?。?)在 Visual LISP菜單下,執(zhí)行 File—Open File…命令。</p><p> ?。?)把目錄改變到\AutoCAD 2004\Sample\Visual LISP下。</p&g
53、t;<p> ?。?)雙擊drawline.lsp文件。</p><p> Visual LISP會在一個新的文本編輯窗口中打開此文件,并在窗口的狀態(tài)欄上顯示此文</p><p> 件名。如果在編輯框中對代碼做了改動,或者增加了新的文本,Visual LISP 就會在</p><p> 文件名的后面顯示一個星號(*),對應的文本編輯器的標題符號
54、處會添加一只筆的圖形。只有在存儲或者關閉了該文件之后,星號和筆的圖形才會被去掉。</p><p> 用戶可以在 Visual LISP中同時打開多個文件,每打開一個文件,Visual LISP都會生成一個新的窗口來顯示這個文件。</p><p> ·其他 Visual LISP窗口Visual LISP可以在控制臺中顯示一些輸出信息,但是有幾個 Vsual LISP功能可用來
55、生成它們自己的窗口來顯示運行結果。例如,當用戶在AutoCAD程序運行過程中跟蹤一系列事件時,跟蹤功能就會打開一個窗口顯示程序事件、在這些窗口中不能用鍵盤輸入文本,但是可以復制其中的文本并在編輯器窗日或者控制臺窗口粘貼這些文本。</p><p> 2.3.4 菜單概述</p><p> 用戶可以通過選擇各種各樣的菜單項來調(diào)用 Visual LISP命令。例如,在 File菜單可以生成一
56、個新的 Visual LISP程序文件,選擇一個已有的程序文件來編輯并打印正在編輯的文件。如圖2-4所示。</p><p> 圖2-4 Visual LISP菜單</p><p> 菜單的內(nèi)容不是固定不變的。當前激活的Visual LISP窗口不同(例如,文本編輯)窗口和控制臺),菜單內(nèi)容也不一樣。單擊一個窗口的標題欄,或者單擊那個窗口中任何一個空白區(qū)域,就可以激活這個窗口。<
57、;/p><p> 例如,單擊包含程序的文本編輯器窗口,然后在Visual LISP菜單中執(zhí)行Edit命令,</p><p> 顯示的就是 Edit菜單的內(nèi)容。然后激活 Visual LISP的控制臺窗口,再次執(zhí)行菜單中的 Edit命令,則菜單內(nèi)容就改變了。 </p><p> 表 2-l介紹了每一個菜單項的功能,這對充分使用 Visual LISP的各種菜單命令功
58、能有很大的幫助。</p><p> Edit 提供對程序代碼的編輯命令,可以用來復制、粘貼文本恢復對程序所做的改動(或恢復在控制臺窗日執(zhí)行的命令)、在文本編輯器或控制臺窗口中選擇文本、在表達式中進行括號匹配以及重新顯示在控制臺窗日提示符下輸入的上一個命令</p><p> Search 提供查詢功能,可以用來查找和替換文本字符串、設置書簽以及通過
59、書簽在程序中定位</p><p> View 提供視圖功能,包含一些在 Visual LISP程序中查找和替換變量及符號值的命令</p><p> Project 提供應用程序工程功能,包含一些用來管理項目和編譯程序的命令</p><p> Debug 提供程序調(diào)試功能,允許用戶在程序中設置和刪除斷點,
60、以及在程序運行時單步執(zhí)行程序,還可以檢查變量的狀態(tài)和表達式的結果</p><p> Tool 提供設置巧Visual LISP選項文本格式、環(huán)境變量的工具,例如窗口和工具欄的位置</p><p> Window 提供管理窗口功能,允許用戶組織在當前Visual LISP進程中的窗口顯示,以及激活AutoCAD窗口菜單中執(zhí)行Edit命令,</
61、p><p> 2.3.5控制臺窗口</p><p> 控制臺窗口是用戶用命令進行操作的地方。用戶可以在控制臺窗口中輸入并運行</p><p> Visual LISP和 AutoLISP命令,并能看到這些命令運行的結果,這種方式和 AutoCAD中的命令窗口是一樣的,但是 Visual LISP用的是自己的命令解釋器來運行命令。因此在不同的環(huán)境中運行相同的任務時會
62、有一些不同之處,有時候會產(chǎn)生很微妙的差別。例如,為了在Visual LISP中顯示一個AutoLISP變量的當前值,只要簡單地在控制臺窗口中輸入變量名即可。要想在AutoCAD命令窗口中觀察一個變量的值,在命令窗口中輸入變量名之前必須先輸入一個驚嘆號(?。?lt;/p><p> 控制臺窗口也是Visual LISP顯示AutoLISP的診斷信息和顯示AutoLISP函數(shù)運行結果的地方。例如,用 Print和Pri
63、nc函數(shù)輸入的結果就顯示在控制臺窗口中。用戶可以通過滾動控制臺窗口的方式來觀察先前的輸入文本和輸出結果。</p><p> 除了運行AutoLISP命令和顯示信息之外,Visual LISP解釋器還支持許多 Visual LISP獨有的調(diào)試特征。</p><p> 在控制臺窗口的任一地方單擊鼠標右鍵,或者按Shift+F10組合鍵,會顯示一個如圖所示的關聯(lián)菜單。這個菜單包含了部分Vis
64、ual LISP命令。用戶可以利用這個特征在控制臺窗口的命令行上復制、粘貼和查找文本,以及初始化 Visual LISP的調(diào)試特征。</p><p> 圖2-5 關聯(lián)菜單</p><p> 2.3.6文本編輯器概述</p><p> Visual LISP的文本編輯器如圖所示。它不只是一個書寫工具,而且是 Visual LISP編程環(huán)境的核心元素。<
65、/p><p> Visual LISP文本編輯器的主要功能如表2-2所示。</p><p> 功能名稱 內(nèi)容介紹</p><p> 彩色代碼顯示 Visual LISP的文本編輯器可以區(qū)分出AutoLISP程序的不同部分,為這些部分指定不同的、便于區(qū)分的顏色,這就使得用戶可以很方便地查找程序元素(例如函數(shù)調(diào)用和變量名),并能幫助
66、用戶查找輸入程序時的拼寫錯誤</p><p> 文本格式化消 Visual LISP文本編輯器能夠自動對AutoLISP程序代碼進行格式化,增強可讀性。用戶可以自由選擇具體格式化代碼的樣式</p><p> 括號匹配 AutoLISP程序中包含著許多括號, Visual LISP的文本編輯器可以幫助用戶查找閉合的括號,并幫助檢查是否丟失了符號<
67、/p><p> 執(zhí)行AutoLISP表達式 可以幫助用戶在離開文本編輯器的情況下,運行一個表達式或者幾行程序代碼,以得到它們的運行結果在多文件中進行查找可以幫助用戶在只運行一個命令的情況下,在多個文件中查找一個字 一個表達式</p><p> 語法檢查 Visual LISP的文本編輯器具有語法檢查的功</p><p> 2.3.7加載并運行
68、AutoLISP應用程序</p><p> 用戶一旦在 Visual LISP的文本編輯器中打開了 AutoLISP程序文件,就可以加載并運</p><p> 行它。所謂加載就是把一個文件中的程序提供給 Visual LISP的程序解釋器的過程。</p><p> 加載AutoLISP應用程序的方法如下。</p><p> ?。?)激活
69、要加載的文本窗口。</p><p> (2)在菜單欄中執(zhí)行 Tools→ Load Text in Editor命令(或者在工具欄中單擊相應的按鈕)。Visual LISP會在控制臺窗口中通過顯示信息來作出回應,表明程序加載是否成功。</p><p> (3)如果加載成功,用戶就可以在控制臺命令行上運行這個程序。只需要在提示符</p><p> 上輸入括
70、號括起來的函數(shù)名,按Enter鍵就可以了。</p><p> ?。?)當對所有的提示都作出了反應后,控制又返回到了 Visual LISP,并且用戶可以再次看到Visual LISP窗口。</p><p> 當用戶在控制臺富日中輸入了一個命令來運行從文本編輯器中加載的程序時,也許需要在Visual LISP和 AutoCAD窗口反復進行切換。除了在菜單項中執(zhí)行Window命令進行應用
71、程序之間的切換之外,Visual LISP還提供了 2種切換的方法。</p><p> · 在Visual LISP窗口中激活AutoCAD窗口,從菜單項中執(zhí)行Window→Active</p><p> AutoCAD命令,或者單擊工具欄中的相應按鈕。</p><p> · 在AutoCAD命令行提示符下,輸入”vlide”命令,可以從
72、AutoCAD窗口返回到Visual LISP環(huán)境。</p><p> Visual LISP還允許在文本編輯窗口中選中幾行代碼,然后只運行這選中的幾行,不是整個程序。用acad2004doc.lsp程序作為一個例子,高亮選中其中的幾行代碼,</p><p> 在菜單欄中執(zhí)行Tools→ Load Selection命令,或者單擊工具欄中相應的按鈕, Visual LISP就會通過命
73、令解釋器立即執(zhí)行這幾行代碼。</p><p> 2.3.8加載AutoLISP擴展函數(shù)</p><p> Visual LISP提供了一些 AutoLISP的擴展函數(shù),這些函數(shù)在啟動 AutoCAD的時候并不會自動加載。這些函數(shù)所具有的前綴名及相關功能如表2-3所示。</p><p> 表 2-3 AutoLISP擴展函數(shù)前綴名以及函數(shù)功能</p>
74、;<p> 函數(shù)前綴名 函數(shù)功能</p><p> Via一 實現(xiàn)在AutoLISP中對ActiveX的支持</p><p> Vlax- ActiveX使用函數(shù),可以進行數(shù)據(jù)轉換、詞典操作和曲線測量</p><p> Vlr- 提供對AutoC
75、AD中反應器的支持</p><p> 在應用其中任何一個函數(shù)之前,需要加載AutoLISP擴展。用戶可以通過調(diào)用下面的函數(shù)來實現(xiàn)這個目的。</p><p> 這個函數(shù)首先檢查AutoLISP是否已經(jīng)被加載了。如果已經(jīng)被加載,此函數(shù)不作任何操作,否則就加載AutoLISP擴展函數(shù)。</p><p> 當正在應用 Visual LISP的交互開發(fā)環(huán)境編制代碼時,如
76、果想要使用 AutoLISP擴展函數(shù),最好在加載Visual LISP之前先運行vl一load一com函數(shù),或者在acad2004doc.lsp文件中調(diào)用這個函數(shù),這樣就可以自動加載了。但是,如果用戶想要在程序中使用任何一個擴字函數(shù),就需要在程序中加入一行代碼來調(diào)用vl一load一com函數(shù)。</p><p> 2.3.9退出 Visual LISP環(huán)境</p><p> 如果用戶想要
77、結束 Visual LISP的使用,從菜單欄中執(zhí)行 File— Exit命令,或者單擊窗口上的關閉按鈕就可以了。</p><p> 如果已經(jīng)在文本編輯窗口中做了修改,但是還沒有保存Visual LISP會詢問是否要保存修改過的幫助,就像很多其他軟件一樣。</p><p> 如果在退出Visual LISP時仍然有Visual LISP源程序窗口處于打開的狀態(tài),下一次啟動 Visual
78、LISP進程時這些程序就會自動打開。</p><p> 第三章 AutoCAD 的二次開發(fā)設計</p><p> 用AutoLISP生成零件圖</p><p> AutoCAD參數(shù)化程序從用戶取得參數(shù)或外部文件,然后在AutoCAD圖形中生成圖象。這些參數(shù)可以是基于AutoCAD,AutoLISP或ADS。一個參數(shù)程序可以畫一個公共零件的許多不同尺寸,不同形狀
79、的圖。通過參數(shù)化,可以畫出一系列復雜的物體,他們共享公共的參數(shù)關系。如果只改變比例,塊是最好的解決方法。但如果這種變動需要大規(guī)模的相似塊的庫時,采用參數(shù)化可以提供柔性,減少錯誤,并產(chǎn)生巨大的效益。</p><p> 本章從一個參數(shù)化繪圖實例出發(fā),說明什么是參數(shù)化,以及如何規(guī)劃和設計一個參數(shù)化的系統(tǒng)。</p><p> 3.1.1參數(shù)化繪圖實例</p><p>
80、 圖3-1編程示意圖 </p><p> 繪制一個六角頭螺桿帶孔螺栓,如圖3-1所示,我們所需要的幾個要素:</p><p> 螺栓的公稱長度l(mm)</p><p><b> 螺紋長度b(mm)</b></p><p><b> 螺紋直徑d(mm)</b></p>
81、<p> 六角螺栓頭厚度k(mm)</p><p> 螺桿孔直徑d1(mm)</p><p> 用戶與程序進行交互的方式有很多種。最方便的是通過對話框來與用戶進行交互,這也是目前幾乎所有的程序進行交互的基本方式了。接下來,我們根據(jù)需求來設計對話框以及主程序。</p><p> 設計對話框。為了方便和直觀,我在對話框中用圖塊的方式顯示一些參數(shù)的幾何
82、意義。設計的對話框如圖3-2所示。</p><p><b> 圖3-2 對話框</b></p><p> 用戶可以自己在對話框的下方輸入坐標,也可以通過鼠標在屏幕上進行選取,如圖3-2所示。選擇視圖,螺紋規(guī)格,公稱長度,螺栓級別,按“確定”按鈕,即可在屏幕上畫出一個給定參數(shù)的六角頭螺桿帶孔螺栓。</p><p> (2)編制AutoLIS
83、P程序。</p><p> 對話框已經(jīng)設計好了,AutoLISP程序是提供對話框的調(diào)用,沒有AutoLISP程序,對話框就沒有實際的意義,所以,AutoLISP程序是實現(xiàn)參數(shù)化最重要的基礎。對于AutoLISP軟件的介紹和開發(fā)環(huán)境,前幾章已經(jīng)作了很詳細的介紹,在這里,我主要介紹本實例的AutoLISP程序的詳細編制運行過程。程序見副本。</p><p> 3.2調(diào)試并運行程序</
84、p><p> 由于程序并不總是按照設計者的意愿執(zhí)行,有時會出現(xiàn)執(zhí)行錯誤,甚至會發(fā)生程序崩潰,而且很難找到程序的錯誤之處;因此,VISP提供了一些調(diào)試程序的工具,可以幫助用戶迅速查找并改正程序中的錯誤。VISP的調(diào)試工具有很多,下面,我以圖片的方式進行演示,方便直觀,并且容易理解,如圖3-3所示。</p><p> 圖3-3 調(diào)試工具欄
85、 </p><p> 調(diào)試程序舉例:如圖3-4</p><p> 圖3-4 調(diào)試程序欄 </p><p> 如果程序中沒有語法錯誤,則顯示如下圖3-5:</p><p><b> 圖3-5 調(diào)試成功</b></p><p> 如果程序中有錯誤,則顯示如圖3-6:</p>&
86、lt;p><b> 圖3-6 程序出錯</b></p><p> 如果調(diào)試成功,則在AutoCAD界面加載菜單樣板mnu,然后把相應的AutoLISP程序和對話框程序保存到菜單樣板所顯示的硬盤文件目錄里,然后運行程序,也就是實現(xiàn)參數(shù)化的最終結果!</p><p> 生成圖象具體操作步驟如下:</p><p> 加載菜單樣板。如圖3
87、-7</p><p> 圖3-7 加載菜單樣板</p><p> 在標準件中運行對話框。如圖3-8</p><p><b> 圖3-8查找標準件</b></p><p> 生成圖象。如圖3-9</p><p> 圖3-9鋼結構用高強度大六角頭螺栓(GB1228-84)</p>
88、<p><b> 3.3主要設計成果</b></p><p> 1.六角頭螺栓-細桿-B級(GB5784-86),主視圖,旋轉角度=75°螺栓規(guī)格M3,公稱長度=20,如圖3-10</p><p> 圖3-10六角頭螺栓-細桿-B級(GB5784-86)</p><p> 2.六角頭螺桿帶孔螺栓(GB31.1-8
89、8),主視圖,旋轉角度=0°螺栓規(guī)格M24,公稱長度=80,如圖3-11</p><p> 圖3-11六角頭螺桿帶孔螺栓(GB31.1-88)</p><p> 3.沉頭方頸螺栓(GB10-88),主視圖,旋轉角度=15°螺栓規(guī)格M6,公稱長度=30,如圖3-12</p><p> 圖3-12沉頭方頸螺栓(GB10-88)</p>
90、;<p> 4.T型槽用螺栓(GB37-88),主視圖,旋轉角度=0°螺栓規(guī)格M5,公稱長度=25,如圖3-13</p><p> 圖3-13 T型槽用螺栓(GB37-88)</p><p> 5.沉頭雙榫螺栓(GB800-88),主視圖,旋轉角度=-15°螺栓規(guī)格M6,公稱長度=35,如圖3-14</p><p> 圖3-
91、14沉頭雙榫螺栓(GB800-88)</p><p> 6.鋼結構用扭剪型高強度螺栓(GB3632-83),主視圖,旋轉角度=90°螺栓規(guī)格M16,公稱長度=40,如圖3-15</p><p> 圖3-15鋼結構用扭剪型高強度螺栓(GB3632-83)</p><p> 7.六角頭頭部帶孔螺栓(GB32.1-88),主視圖,旋轉角度=0°螺
92、栓規(guī)格M6,公稱長度=30,如圖3-16</p><p> 圖3-16六角頭頭部帶孔螺栓(GB32.1-88)</p><p> 8.六角頭鉸制孔螺栓(GB27-88),主視圖,旋轉角度=30°螺栓規(guī)格M6,公稱長度=25,如圖3-17</p><p> 圖3-17六角頭鉸制孔螺栓(GB27-88)</p><p><b
93、> 結束語</b></p><p> 到此,本次畢業(yè)設計已經(jīng)接近尾聲,從剛開始課題的選擇到確定,經(jīng)過收集資料,查看各種相關課題到自己設計方案的初步確定,到正式進入設計階段,修改,再修改,逐步完善這么一系列過程,我真正體會到了一個產(chǎn)品從構思到問世這個期間的艱辛和愉悅。一個從無到有的全過程。也讓我在大學的最后階段深切感受到了師生之間的情誼,以及老師那種無私奉獻的精神。在這次設計就要結束是我在這里
94、深深感謝我的指導老師對我的指導和幫助,同時同組同學也對我給予了很多幫助,我對他們也表示由衷的感謝。</p><p><b> 致謝</b></p><p> 在指導教師姜增輝的大力指導下,歷時兩個多月的時間,終于完成了這次重要的畢業(yè)設計。</p><p> 通過這次的畢業(yè)設計,使我更加深入的認識到畢業(yè)設計的重要性,它對我四年來所學知識的一
95、個總結和鑒定,是檢驗我們將所學理論知識與生產(chǎn)實踐相結合的極好機會,也是接受機械工程師初步基本訓練的必要過程,為我們將來走向工作崗位打下了良好的基礎。</p><p> 在這次畢業(yè)設計過程中,我真正體會到了一名設計人員由一個題目到通過收集資料階段,方案設計,結構設計階段到最終完成產(chǎn)品的獨立設計全過程所要具備的能力,我不僅學習了不少以前從來未涉及的知識,開闊了視野,更多的是從指導教師姜增輝老師身上學到了嚴謹?shù)闹螌W態(tài)
96、度以及誨人不倦的優(yōu)秀品質(zhì)。姜老師在指導我畢業(yè)設計的過程中,給我提供了很多的幫助,使我能夠在規(guī)定時間內(nèi)更好的完成了畢業(yè)設計的任務,達到了要求。當然由于經(jīng)驗不足和設計時間緊迫,所以在設計中難免會存在著一些錯誤和不足,這些將會激勵我更加努力的去學習提高。</p><p> 在此由衷感謝姜老師給予我的指導和幫助,感謝在這次畢業(yè)設計中給予我無私幫助的老師和同學。</p><p> 對于這次畢業(yè)設
97、計中的錯誤和不足,懇請各位老師和同學批評指正,在此謹表謝意。</p><p> 2005年6月29日 </p><p><b> 參考文獻</b></p><p> [1] 徐灝等編,機械設計手冊(第3冊),機械工業(yè)出版社,1991 </p><p> [2] 藍屹生主編,學習指導,中國鐵道出版社,20
98、02 </p><p> [3] 胡仁喜等編,AutoLISP機械設計高級應用實例,機械工業(yè)出版社,2005</p><p> [4] 趙景亮等編,用Visual LISP開發(fā)AutoCAD2004應用程序,科學出版社,2003</p><p> A unified approach to kinematic synthesis of</p>
99、<p> mechanism by adaptive curve fitting</p><p> WANG Delun & WANG Shufen</p><p> SchooJ of Mechanica1 Engjneering, Dalian University of Technology, DaIian 116024, China</p>
100、<p> Correspoodence should be addressed to Wang Delun (email:d1unwang @dlut.edu.cn)</p><p> Rec8ived November 27, 2002</p><p> Abstract A unified approach to kinematic synthesis of mecha
101、nism is presented in this paper. Firstly a new approach.to adaptive curve fitting is presented, which Ieads the normal fitting error to be minimum for a series of given discrete points, including a planecurve fitting, a
102、spherical curve fitting and a ruled surface titting in terms of invariants ofruled surface. Approximate characteristic points and lines are defined, such as anapproximate circte point, an approximate slide point, an appr
103、o</p><p> Keywords: kinematics mechanism synthesis, ruled surface, adaptive curve fitting.</p><p> DOI: 10. 1 360/02ye0455</p><p> The kinematic synthesis of mechanism is to loca
104、te the characteristic points or lines in a moving body or in a fixed frame. The traditional way is to list a group of theconstraint equations by use of the distance between the characteristic points or theangle between c
105、haracteristic lines and then to convert the nonlinear equations into anoptimum problem. The traditional method of the kinematic synthesis of mechanismwould be valid for some special problems if the initial values of desi
106、gn parameters</p><p> paper we extend the method to a unified approach to kinematic synthesis of mechanism.</p><p> In spatial mechanism synthesis, not only the trajectory of a point, but also
107、 that of aline should be investigated. What a ruled surface or a line's trajectory is similar to aconstraint ruled surface? How can we judge which one is the closest? It is difficult tocompare two ruled surfaces byco
108、nstraint equations. The approximate characteristic line,sindlar to the approximate circle points mentioned in re f.[l8] is defined and a newapproach of ruled surface adaptive fitting is presented by means of </p>
109、<p> 1 The discrete presentation of trajectory of a point and trajectory of a line</p><p> As shown in fig. 1, the displacement of a point A of a moving rigid body either in</p><p> p1an
110、ar or in spatial motion can be expressed as = + (1)</p><p> Fig.1. Rigid body displacement.</p><p> where is the ith position vector of thepoint A of the moving body; is the ithposition
111、 vector of the original reference point Bof the moving body, (both are examned in thefixed reference frame),. is the positionvector of the point A in the reference frame ofthe moving body; is a rotation matrix fromthe re
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于AutoCAD的標準件的參數(shù)化設計.pdf
- 精講solidworks 系列化零件設計
- solidworks系列零件設計
- 在autocad中參數(shù)化繪制化工設備標準件
- 基于UG的零件參數(shù)化設計.pdf
- 軸系零件結構參數(shù)化設計與開發(fā).pdf
- 系列零件編輯
- 覆蓋件模具復雜零件參數(shù)化設計方法的研究.pdf
- catia參數(shù)化設計及零件庫的建立
- 零件參數(shù)設計的有關思考
- 畢業(yè)設計(論文)-基于proe齒輪類零件參數(shù)化設計
- 數(shù)學建模-零件參數(shù)的優(yōu)化設計
- 基于proe的齒輪類零件參數(shù)化設計畢業(yè)設計(論文)
- 沖模導向頂料相關零件標準化設計
- 基于AutoCAD的紙箱參數(shù)化設計.pdf
- solidworks的配置以及系列零件設計表
- 基于AutoCAD的軸系零件造型設計系統(tǒng)研究.pdf
- 基于參數(shù)化技術的零件精度變型設計方法研究.pdf
- 基于AutoCAD環(huán)境下的零件管理及零件裝配系統(tǒng)的開發(fā).pdf
- 基于VC++的SOLIDWORKS機械零件參數(shù)化設計.PDF
評論
0/150
提交評論