版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 前言</b></p><p> 畢業(yè)設(shè)計(jì)是對(duì)我們大學(xué)四年的一個(gè)總結(jié),也是對(duì)我們綜合實(shí)力的一個(gè)檢驗(yàn)。</p><p> 本次畢業(yè)設(shè)計(jì)是AutoCAD系列標(biāo)準(zhǔn)零件參數(shù)化設(shè)計(jì),它涉及到AutoCAD,機(jī)械制圖,Visual LISP,Auto LISP等知識(shí),是對(duì)以前知識(shí)的在學(xué)習(xí)過(guò)程,也是對(duì)新知識(shí)靈活應(yīng)用的過(guò)程。通過(guò)本次畢業(yè)設(shè)計(jì)鍛煉了我分析
2、問(wèn)題,解決問(wèn)題的能力,使我再一次充分認(rèn)識(shí)到所學(xué)知識(shí)的重要性和嚴(yán)謹(jǐn)性,為我將來(lái)參加工作打下了良好的基礎(chǔ)。</p><p> 在本次畢業(yè)設(shè)計(jì)過(guò)程中我得到了姜增輝老師和同組同學(xué)的大力幫助支持和指導(dǎo),在此謹(jǐn)表示衷心的感謝。由于本人能力有限,設(shè)計(jì)中的不足之處和錯(cuò)誤地方在所難免還望各位老師批評(píng)指正。</p><p><b> 第一章 緒論</b></p><
3、;p> LISP(List Processing Language)是人工智能領(lǐng)域中廣泛采用的一種程序設(shè)計(jì)語(yǔ)言。主要用于人工智能、機(jī)器人、專家系統(tǒng)、博弈、定理證明等領(lǐng)域。LISP也被稱為符號(hào)式語(yǔ)言,因?yàn)樗幚淼膶?duì)象是符號(hào)表達(dá)式。LISP語(yǔ)言的程序和數(shù)據(jù)都以符號(hào)表達(dá)式的形式來(lái)表示,即一個(gè)LISP程序可以把另一個(gè)LISP程序作為它的數(shù)據(jù)來(lái)處理。</p><p> LISP在它 10多年的發(fā)展過(guò)程中產(chǎn)生了多種
4、版本,比如 MacLISP, InterLISP, ZetaLISP,CommonLISP等。其中 CommnLISP是近幾年美國(guó)的幾所大學(xué)(比如 MIT, STANFORD,CMU, RUTGERS等)和工業(yè)界(如 Bell實(shí)驗(yàn)室、 DEC公司、 HP公司等)的人工智能研究人員協(xié)同推出的,它概括了MacLISP、InterLISP、ZetaLISP等版本的特點(diǎn),因而功能較強(qiáng)且擁有其他版本的一些優(yōu)點(diǎn),是目前 LISP語(yǔ)言比較完整的版
5、本。</p><p> AutoLISP語(yǔ)言是嵌套在AutoCAD內(nèi)部、將LISP語(yǔ)言與AutoCAD有機(jī)結(jié)合的產(chǎn)物。使用AutoLISP可以直接調(diào)用幾乎所有的AutoCAD命令。AutoLISP語(yǔ)言既具備一般高級(jí)語(yǔ)言的基本結(jié)構(gòu)和功能,又具有一般高級(jí)語(yǔ)言所沒(méi)有的強(qiáng)大圖形處理功能,是當(dāng)今世界上CAD軟件中被廣泛采用的語(yǔ)言之一。</p><p> 美國(guó)Autodesk公司在AutoCAD內(nèi)
6、部嵌入AutoLISP語(yǔ)言的目的是使用戶充分利用AutoCAD進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)直接增加和修改AutoCAD命令,隨意擴(kuò)大圖形編輯功能,建立圖形庫(kù)和數(shù)據(jù)庫(kù)并對(duì)當(dāng)前圖形進(jìn)行直接訪問(wèn)和修改,開(kāi)發(fā)CAD軟件包等。</p><p> AutoLISP語(yǔ)言最典型的應(yīng)用之一就是實(shí)現(xiàn)參數(shù)化繪圖程序設(shè)計(jì),包括尺寸驅(qū)動(dòng)程序</p><p> 和鼠標(biāo)拖動(dòng)程序等。尺寸驅(qū)動(dòng)是指通過(guò)改變實(shí)體標(biāo)注的尺寸值來(lái)實(shí)現(xiàn)圖
7、形的自動(dòng)修改,鼠標(biāo)拖動(dòng)即利用AutoLISP語(yǔ)言提供的(GRREAD[<track>])函數(shù),讓用戶直接讀取AutoCAD為輸入設(shè)備(通常為鼠標(biāo)),任選項(xiàng)追蹤光標(biāo)移動(dòng)存在且為真時(shí),調(diào)整所需的參數(shù)值而達(dá)到自動(dòng)改變屏幕圖形的屬性。到目前為止,大多數(shù)參數(shù)化程序都是針對(duì)二維平面圖編制的。實(shí)際上,立體圖同樣可以實(shí)現(xiàn)參數(shù)化繪圖。另一個(gè)AutoLISP的典型應(yīng)用就是驅(qū)動(dòng)利用AutoCAD提供的 PDB模板構(gòu)成 DCL(Dialog Control L
8、anguage一文件創(chuàng)建自己的對(duì)話框。</p><p> 自從AutoLISP嵌入AutoCAD之后,使僅僅作為交互式圖形編輯軟件的AutoCAD編</p><p> 程能真正進(jìn)行計(jì)算機(jī)輔助設(shè)計(jì)、繪圖的CAD軟件。由于LISP靈活多變、易于學(xué)習(xí)和使用,因而使AutoCAD成為功能很強(qiáng)大的工具性軟件。</p><p> AutoLISP具有如下的特點(diǎn):</
9、p><p> · AutoLISP語(yǔ)言是在普通LISP語(yǔ)言基礎(chǔ)上,擴(kuò)充了許多適用于CAD應(yīng)用的特殊功</p><p> 能而形成的,是一種僅能以解釋方式運(yùn)行于AutoCAD內(nèi)部的解釋型程序設(shè)計(jì)語(yǔ)言。</p><p> · AutoLISP語(yǔ)言中的一切成分都是以函數(shù)的形式給出的,它沒(méi)有語(yǔ)句概念和其他語(yǔ)法結(jié)構(gòu)。執(zhí)行AutoLISP程序就是執(zhí)行一些函
10、數(shù),再調(diào)用其他函數(shù)。</p><p> · AutoLISP把數(shù)據(jù)和程序統(tǒng)一表達(dá)為表結(jié)構(gòu),即S一表達(dá)式,因此可以把程序當(dāng)作數(shù)據(jù)來(lái)處理,也可以把數(shù)據(jù)當(dāng)作程序來(lái)執(zhí)行。</p><p> · AutoLISP語(yǔ)言中的程序運(yùn)行過(guò)程就是對(duì)函數(shù)求值的過(guò)程,是在對(duì)函數(shù)求值的過(guò)程中實(shí)現(xiàn)函數(shù)的功能。</p><p> · AutoLISP語(yǔ)言的主要
11、控制結(jié)構(gòu)是采用速歸方式。遞歸方式的使用,使得程序設(shè)計(jì)簡(jiǎn)單易懂。</p><p> 第二章 AutoLISP 語(yǔ)言概述</p><p> 2.1 AutoLISP的程序結(jié)構(gòu)</p><p> 與一般的程序語(yǔ)言不同的是,AutoLISP語(yǔ)言沒(méi)有“語(yǔ)句”這一概念,AutoLISP程序是由一個(gè)或者一系列按照特定順序排列的標(biāo)準(zhǔn)表組成的。那么什么是所謂的標(biāo)準(zhǔn)表呢?先來(lái)看
12、幾個(gè)標(biāo)準(zhǔn)表的例子。</p><p><b> 例1—1</b></p><p> ?。╯etq x 10.0)</p><p> (setq 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)境中試著運(yùn)行以上的幾個(gè)例子。比如,在命令行中</p><p> command提示符下輸入:</p><p>
14、(setq x 10.0)</p><p> 按回車(chē),就能看到程序運(yùn)行的結(jié)果:</p><p><b> 10.0</b></p><p> 這也就是程序運(yùn)行完畢之后變量X的值。</p><p> 類(lèi)似地,其余幾條語(yǔ)句運(yùn)行之后的結(jié)果分別為:</p><p><b> 10.0&
15、lt;/b></p><p> 200(也就是x和y相加之后的值)</p><p> ”HelloWorld!”;</p><p> 在坐標(biāo)分別為(0,0)和(10,10)的2個(gè)點(diǎn)之間畫(huà)一條線段;</p><p> 以坐標(biāo)為(100,100)的點(diǎn)為圓心,50為半徑畫(huà)了一個(gè)圓。</p><p> 到這里可
16、以得到標(biāo)準(zhǔn)表的基本概念:標(biāo)準(zhǔn)表由左右2個(gè)括號(hào)組成,其功能由括號(hào)中的代碼實(shí)現(xiàn);標(biāo)準(zhǔn)表的第征個(gè)元素(如setq、十、command)均為操作符或者函數(shù)名,其余的元素都是相應(yīng)函數(shù)的參數(shù)。其一般格式為:</p><p> (函數(shù)名[<參數(shù)1>][<參數(shù)2>]……[<參數(shù)n>])</p><p> 在這里需要強(qiáng)調(diào)的是,標(biāo)準(zhǔn)表中可能包含著別的表,這是允許的,就像上面的(setq z (+ x y)
17、)一樣。</p><p> 將例1-1中的6個(gè)標(biāo)準(zhǔn)表組合在一起,就可以看作是一個(gè)AutoLISP程序了。這個(gè)程序所實(shí)現(xiàn)的功能就是其中每個(gè)標(biāo)準(zhǔn)表所實(shí)現(xiàn)功能的總和。同樣地,只要將希望程序?qū)崿F(xiàn)的功能不斷地分解,分別用不同的標(biāo)準(zhǔn)表來(lái)實(shí)現(xiàn),然后再組合在一起,就能實(shí)現(xiàn)讀者所期望的任何功能。</p><p> AutoLISP程序的書(shū)寫(xiě)格式有著如下的特點(diǎn)。</p><p>
18、 · AutoLISP程序是由標(biāo)準(zhǔn)表組成的,因此程序中所有的括號(hào)都必須左右匹配。</p><p> · AutoLISP程序閱讀函數(shù)時(shí),按照從左到右的規(guī)則進(jìn)行。</p><p> · 操作符(也可以理解稱為函數(shù)名,比如賦值函數(shù),十相加函數(shù)等等)必須放在標(biāo)</p><p> · 準(zhǔn)表中第1個(gè)元素的位置。標(biāo)準(zhǔn)表中的函數(shù)與參數(shù)
19、、參數(shù)與參數(shù)之間至少要用一個(gè)空格來(lái)分開(kāi)。</p><p> · 2個(gè)標(biāo)準(zhǔn)表之間和表內(nèi)的多余空格和回車(chē)都是不需要的,因此一個(gè)表可以占多行,一行內(nèi)也可以寫(xiě)下很多表。比如,例1-1中的程序可以寫(xiě)成下面的形式。</p><p> (setq 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> 很明顯,處于程序可讀性的考慮,應(yīng)該采取前一種格式書(shū)寫(xiě)程序,一行內(nèi)只寫(xiě)一個(gè)標(biāo)準(zhǔn)表。當(dāng)標(biāo)準(zhǔn)表的長(zhǎng)度過(guò)長(zhǎng),可以從表中任意位置按回車(chē)斷開(kāi),然后再繼續(xù)書(shū)寫(xiě),以保持程序源代碼的整潔。</p><p> · AutoLISP程序中使用分號(hào)“;”作注釋。AutoLISP執(zhí)行程序的時(shí)候
21、會(huì)自動(dòng)跳過(guò)</p><p> 每一行中分號(hào)以后的部分。注釋可以放在程序中的任何地方。</p><p> · AutoLISP程序的擴(kuò)展名為(.lsp),并以ASCll碼文本文件的形式表達(dá),因此可以使用 Wndows操作系統(tǒng)自帶的 notepad或者 UltreEdit32 text editor等文本編輯軟件打開(kāi)已有的.lsp文件并進(jìn)行編輯。</p><p
22、> AutoLISP哪程序就是對(duì)一個(gè)個(gè)AutoLISP函數(shù)的調(diào)用。函數(shù)是AutoLISP語(yǔ)言處理數(shù)的工具,學(xué)習(xí)掌握AutoLISP語(yǔ)言,核心就是要掌握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ù),是編寫(xiě)高質(zhì)量AutoLISP程序的基本條件,讀者應(yīng)該養(yǎng)成</p><p> 經(jīng)常翻閱幫助文件的良好習(xí)慣。&
25、lt;/p><p> 在學(xué)習(xí)AutoLISP的系統(tǒng)內(nèi)部函數(shù)時(shí),必須掌握以下基本內(nèi)容。</p><p> · 函數(shù)調(diào)用格式:即函數(shù)名、函數(shù)要求的參數(shù)個(gè)數(shù)和類(lèi)型。</p><p> · 函數(shù)功能:即該函數(shù)的作用,它對(duì)其參數(shù)如何進(jìn)行處理。</p><p> · 函數(shù)的求值情況:即哪些參數(shù)要求值,哪些不要求值。
26、</p><p> · 函數(shù)求值返回結(jié)果的類(lèi)型。</p><p> 2.2 AutoLISP程序的執(zhí)行過(guò)程</p><p> 對(duì)子很短的AutoLISP程序(只有1至2個(gè)表組成,比如簡(jiǎn)單的數(shù)值函數(shù)的運(yùn)算</p><p> 可以直接在AutoCAD環(huán)境中command命令提示符下輸入,返回的結(jié)果立即顯示在文本</p
27、><p> 屏幕上。例如在command命令提示行下鍵入:</p><p> ?。╯etq string”P(pán)rogramming with AutoLISP is great fun!”)接回車(chē)。則立</p><p> “Programming with AutoLISP is great fun !”。也就是賦予string的值。</p><p
28、> 如果讀者認(rèn)為命令行的顯示范圍過(guò)于狹小,可以按FZ鍵彈出AutoCAD Text Window</p><p> 查著所有命令的歷史記錄,如圖l-4所示。</p><p> 對(duì)于一般的AutoLISP應(yīng)用程序,需要采用文本編輯器進(jìn)行編輯,否則一行行地輸入語(yǔ)句,一旦出現(xiàn)錯(cuò)誤,將很難處理。一般情況下,在安裝了AutoCAD 2004之后,就可以利用軟件自帶的文本編輯器進(jìn)行.lsp
29、文件的編寫(xiě)和調(diào)試。如果由于某種特殊原因,使得用戶程序編制環(huán)境與AutoCAD環(huán)境相分離,我們就要采取其他的文本編輯器來(lái)編輯程序。在這里推薦使用 UltraEdit 9。0,這是一款相當(dāng)不錯(cuò)的文本編輯軟件,支持多種格式的文本格式。下面的例子將示范如何利用 UltraEdit 9.0編寫(xiě).lsp程序文件,再用 Load函數(shù)裝載并運(yùn)行。</p><p><b> 例1-2</b></p&g
30、t;<p> ?。?)打開(kāi)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> ?。?)啟動(dòng)AutoCAD,在command命令提示符下鍵入:</p><p> (load:“l(fā)isp/myautolisp.lsp”)</p><p> (注意:這里用的是除號(hào)\,讀者可以試試看用反斜杠號(hào)\會(huì)發(fā)生什么結(jié)果)</p><p> 回車(chē)后,即執(zhí)行第
32、1句并返回最后一個(gè)defun函數(shù)定義的函數(shù)名:</p><p> Welcome! C:WELCOME</p><p><b> 程序文件裝載完畢。</b></p><p> ?。?)運(yùn)行defun定義的函數(shù),在command命令提示符下鍵入:welcome</p><p> 按回車(chē),命令行中就顯示”AntoLIS
33、P welcomes you!”</p><p> 2.3 Visual LISP編程環(huán)境</p><p> 自 AutoCAD R14.01開(kāi)始,出現(xiàn)了 Visual LISP語(yǔ)言,它是Autodesk公司為了增強(qiáng)Auto</p><p> LISP程序開(kāi)發(fā)能力而設(shè)計(jì)的軟件工具。 Visual LISP為 AutoLISP增加了許多新的函數(shù),</p&
34、gt;<p> 擴(kuò)展了AutoLISP的能力。在對(duì)AutoCAD進(jìn)行專業(yè)設(shè)計(jì)的應(yīng)用范圍內(nèi),已經(jīng)比較接近ARX</p><p> 程序的能力.Visual LISP是設(shè)計(jì)用來(lái)加速AutoLISP程序開(kāi)發(fā)的軟件工具。Visual LISP</p><p> 成開(kāi)發(fā)環(huán)境提供了很多特性,使用戶創(chuàng)建和修改原代碼、測(cè)試和調(diào)試程序更加方便。</p><p>
35、 此外,Visual LISP還提供了用于傳遞AutoLISP中特殊應(yīng)用的方法。在 Visual LIS</p><p> 中用戶可以在一個(gè)單獨(dú)的環(huán)境中執(zhí)行大部分必要的操作,包括文本編輯、程序調(diào)試</p><p> AutoCAD和其他應(yīng)用程序的交互。</p><p> 以下是 Visual LISP集成開(kāi)發(fā)環(huán)境的組成部分。</p><p&
36、gt; ·語(yǔ)法檢查器:可以識(shí)別錯(cuò)誤的AutoLISP結(jié)構(gòu)和內(nèi)部函數(shù)調(diào)用中不合適的參數(shù)。</p><p> ·文件編譯器:可以改善程序的執(zhí)行速度并提供一個(gè)安全有效的發(fā)布平臺(tái)。</p><p> ·資源調(diào)試器:允許用戶在一個(gè)窗口中一步步地執(zhí)行AutoLISP程序源代碼,并在</p><p> AutoCAD圖形窗口中顯示代碼執(zhí)行的結(jié)
37、果。</p><p> ·文本編輯器:使用AutoLISP和DCL顏色編碼對(duì)程序源代碼進(jìn)行編輯。</p><p> ·AutoLISP格式工具:可以重新安排程序的格式,增強(qiáng)程序可讀性。</p><p> ·檢查和觀察工具:可以方便地訪問(wèn)變量和表達(dá)式的值,還可以劃覽AutoCAD圖</p><p> 形實(shí)體
38、的各項(xiàng)屬性值。</p><p> ·上下文相關(guān)菜單:提供有關(guān)AutoLISP函數(shù)的信息以及對(duì)符號(hào)名的搜索。</p><p> ·項(xiàng)目管理系統(tǒng):使用戶可以更容易地管理多文件應(yīng)用程序。編譯過(guò)的AutoLISP文</p><p> 件將被封裝為一個(gè)單獨(dú)的模塊。</p><p> ·窗口的保護(hù)和恢復(fù)功能:使用戶可
39、以保護(hù)并再次使用任一 Visual LISP情景的窗口</p><p><b> 環(huán)境。</b></p><p> ·智能化的控制臺(tái)窗口:為AutoLISP用戶提供了更多的便利和更高的效率??刂?lt;/p><p> 臺(tái)的基本功能對(duì)應(yīng)于AutoCAD文本屏幕的功能,同時(shí)還提供了一些交互特性。</p><p>
40、 Visual LISP擁有自己的窗口和菜單,它們與 AutoCAD的其他窗口是不同的。但是</p><p> Visual LISP不能離開(kāi)AutoCAD而單獨(dú)運(yùn)行。用戶如果要使用Visual LISP,必須首先運(yùn)行AutoCAD;當(dāng)用戶在Visual LISP集成開(kāi)發(fā)環(huán)境中執(zhí)行AutoLISP程序時(shí),也需要與AutoCAD中的圖形和命令窗口進(jìn)行交互來(lái)相應(yīng)程序的提示。</p><p>
41、; 2.3.1 Visual LISP的特點(diǎn)</p><p> Visual LISP(簡(jiǎn)稱 VLISP)是為加速 AutoLISP程序開(kāi)發(fā)而設(shè)計(jì)的軟件工具,它提供一個(gè)完整的集成開(kāi)發(fā)環(huán)境(IDE),包括編譯器、調(diào)試器和其他工具。VisualLISP可以顯著地提高自定義AutoCAD的效率。VLISP提供的主要工具有:文本編輯器、格式編排器、語(yǔ)法檢查器、源代碼調(diào)試器、檢驗(yàn)和監(jiān)視工具、文本編譯器、工程管理系統(tǒng)、上
42、下文相關(guān)幫助與自動(dòng)匹配功能和智能控制臺(tái)等。</p><p> 在VLISP集成環(huán)境下開(kāi)發(fā)AutoLISP程序,不再像以前那樣用其他系統(tǒng)的文本編輯程序編寫(xiě)代碼;調(diào)試程序需要用戶自己決定在程序的什么位置加入打印語(yǔ)句,以便查看這些變量的內(nèi)容,要像查看變量的內(nèi)容還必須在AutoCAD中加載并運(yùn)行源程序代碼:如果沒(méi)有足夠的信息來(lái)診斷錯(cuò)誤,就不得不返回文本編輯器程序并再次修改代碼,以加入更多的調(diào)試點(diǎn);在程序運(yùn)行正確之后,還
43、必須將加入的調(diào)試代碼刪除或者注釋掉。在VLISP集成環(huán)境下可以便捷、高效地開(kāi)發(fā)AutoLISP程序,可以得到運(yùn)行效率更高、代碼更加緊湊、源代碼收到保護(hù)的應(yīng)用程序。</p><p> VLISP是新一代AutoLISP語(yǔ)言,它對(duì)AutoLISP語(yǔ)言進(jìn)行了擴(kuò)展,可以通過(guò)Microsoft</p><p> ActiveX Automation接回與對(duì)象交互,可以通過(guò)反應(yīng)器函數(shù)擴(kuò)展 Auto
44、LISP響應(yīng)事件的能力。如果使用VLISP對(duì)AutoLISP的擴(kuò)展功能,必須調(diào)用vl一load-com函數(shù),或者將對(duì)該函數(shù)調(diào)用包括在acad2004Doc.lip文件內(nèi)。</p><p> VLISP的用戶界面良好,用過(guò)Microsoft軟件的用戶只需要很短的時(shí)間就可以掌握它。</p><p> 2.3.2 啟動(dòng)Visual LISP</p><p> Vis
45、ual LISP是運(yùn)行在 AutoCAD之外的一套窗口中的。啟動(dòng) Visual LISP步驟如下:</p><p> 啟動(dòng) AutoCAD 2004。</p><p> (2)在AutoCAD的菜單中,執(zhí)行tools→AutoLISP→VisualLISPEditor命令,或者在命令提示符下輸入命令:</p><p> command :vlisp</p
46、><p> 這時(shí)就會(huì)彈出 Visual LISP for AutoCAD窗口,如圖 2-3所示。</p><p> 圖2-3 Visual LISP界面</p><p> 當(dāng)加載Visual LISP時(shí),一個(gè)或者多個(gè)Visual LISP的窗口就會(huì)暫時(shí)顯示在屏幕上。Visual LISP可以存儲(chǔ)上一次退出時(shí)正在打開(kāi)的窗口。在下一次運(yùn)行時(shí),Visual LISP會(huì)
47、自動(dòng)打開(kāi)并恢復(fù)這些窗口里的內(nèi)容。</p><p> 用戶在任何時(shí)候都可以通過(guò)使用菜單命令或者VLISP命令從AutoCAD返回到Visual LIS集成開(kāi)發(fā)環(huán)境中。</p><p> 2.3.3 Visual LISP環(huán)境界面</p><p> Visual LIS的環(huán)境界面由下面幾個(gè)部分組成。</p><p> ·菜
48、單項(xiàng):用戶可以通過(guò)選擇各種各樣的菜單項(xiàng)來(lái)調(diào)用 Visual LISP的命令。如果某個(gè)菜單項(xiàng)高亮顯示,Visual LISP就會(huì)在屏幕底部的狀態(tài)欄上顯示關(guān)于此命令的說(shuō)明文字。</p><p> ·工具欄:通過(guò)單擊工具欄按鈕,用戶可以快速調(diào)用 Visual LISP命令。在 Visual LISP具欄中調(diào)用。如果移動(dòng)鼠標(biāo)指針到某一個(gè)工具欄按鈕的上方,停留2秒鐘,VisualLISP會(huì)顯示該按鈕的提示文字,
49、表明這個(gè)按鈕的功能;同時(shí)一個(gè)比較詳細(xì)的描述會(huì)出現(xiàn)在Visual LISP屏幕底部的狀態(tài)欄上。</p><p> ·控制臺(tái)窗口:這是一個(gè)在主 Visual LISP窗口界面上獨(dú)立的窗口。在控制臺(tái)窗口中,</p><p> 用戶可以輸入AutoLISP命令,這與在AutoCAD的命令行中輸入的效果是一樣的。</p><p> 此外,用戶還可以在這個(gè)窗口中
50、輸入消Visual LISP命令,以代替使用菜單和工具欄命令。</p><p> ·狀態(tài)欄:位于屏幕的底部,顯示當(dāng)前 Visual LISP的狀態(tài)信息。信息的內(nèi)容會(huì)根據(jù)當(dāng)前在 Visual LISP中所作的工作的不同而不同。</p><p> ·跟蹤窗口:在啟動(dòng) Visual LISP時(shí),還可以看到一個(gè)最小化了的跟蹤(Trace)窗口。這個(gè)窗口包含了一些關(guān)于 Vis
51、ual LISP當(dāng)前版本的信息,以及當(dāng)啟動(dòng) Visual LISP遇到錯(cuò)誤時(shí)的其他一些信息。</p><p> ·文本編輯器:Visual LISP本身包括一個(gè)集成的文本編輯器,可以用來(lái)編輯 AutoLISP代碼。用戶只要打開(kāi)一個(gè)朋Visual LISP源程序,就可以看到文本編輯器的全貌。</p><p> 在 Visual LISP中打開(kāi)一個(gè)源程序,Visual LISP提
52、供了一些例子程序,這些例子程序放在AutoCAD安裝目錄下的Samples于目錄里。按照下面的步驟操作,讀者可以打開(kāi)一個(gè)名為 drawline.lsp的源程序。</p><p> (1)在 Visual LISP菜單下,執(zhí)行 File—Open File…命令。</p><p> (2)把目錄改變到\AutoCAD 2004\Sample\Visual LISP下。</p&g
53、t;<p> ?。?)雙擊drawline.lsp文件。</p><p> Visual LISP會(huì)在一個(gè)新的文本編輯窗口中打開(kāi)此文件,并在窗口的狀態(tài)欄上顯示此文</p><p> 件名。如果在編輯框中對(duì)代碼做了改動(dòng),或者增加了新的文本,Visual LISP 就會(huì)在</p><p> 文件名的后面顯示一個(gè)星號(hào)(*),對(duì)應(yīng)的文本編輯器的標(biāo)題符號(hào)
54、處會(huì)添加一只筆的圖形。只有在存儲(chǔ)或者關(guān)閉了該文件之后,星號(hào)和筆的圖形才會(huì)被去掉。</p><p> 用戶可以在 Visual LISP中同時(shí)打開(kāi)多個(gè)文件,每打開(kāi)一個(gè)文件,Visual LISP都會(huì)生成一個(gè)新的窗口來(lái)顯示這個(gè)文件。</p><p> ·其他 Visual LISP窗口Visual LISP可以在控制臺(tái)中顯示一些輸出信息,但是有幾個(gè) Vsual LISP功能可用來(lái)
55、生成它們自己的窗口來(lái)顯示運(yùn)行結(jié)果。例如,當(dāng)用戶在AutoCAD程序運(yùn)行過(guò)程中跟蹤一系列事件時(shí),跟蹤功能就會(huì)打開(kāi)一個(gè)窗口顯示程序事件、在這些窗口中不能用鍵盤(pán)輸入文本,但是可以復(fù)制其中的文本并在編輯器窗日或者控制臺(tái)窗口粘貼這些文本。</p><p> 2.3.4 菜單概述</p><p> 用戶可以通過(guò)選擇各種各樣的菜單項(xiàng)來(lái)調(diào)用 Visual LISP命令。例如,在 File菜單可以生成一
56、個(gè)新的 Visual LISP程序文件,選擇一個(gè)已有的程序文件來(lái)編輯并打印正在編輯的文件。如圖2-4所示。</p><p> 圖2-4 Visual LISP菜單</p><p> 菜單的內(nèi)容不是固定不變的。當(dāng)前激活的Visual LISP窗口不同(例如,文本編輯)窗口和控制臺(tái)),菜單內(nèi)容也不一樣。單擊一個(gè)窗口的標(biāo)題欄,或者單擊那個(gè)窗口中任何一個(gè)空白區(qū)域,就可以激活這個(gè)窗口。<
57、;/p><p> 例如,單擊包含程序的文本編輯器窗口,然后在Visual LISP菜單中執(zhí)行Edit命令,</p><p> 顯示的就是 Edit菜單的內(nèi)容。然后激活 Visual LISP的控制臺(tái)窗口,再次執(zhí)行菜單中的 Edit命令,則菜單內(nèi)容就改變了。 </p><p> 表 2-l介紹了每一個(gè)菜單項(xiàng)的功能,這對(duì)充分使用 Visual LISP的各種菜單命令功
58、能有很大的幫助。</p><p> Edit 提供對(duì)程序代碼的編輯命令,可以用來(lái)復(fù)制、粘貼文本恢復(fù)對(duì)程序所做的改動(dòng)(或恢復(fù)在控制臺(tái)窗日?qǐng)?zhí)行的命令)、在文本編輯器或控制臺(tái)窗口中選擇文本、在表達(dá)式中進(jìn)行括號(hào)匹配以及重新顯示在控制臺(tái)窗日提示符下輸入的上一個(gè)命令</p><p> Search 提供查詢功能,可以用來(lái)查找和替換文本字符串、設(shè)置書(shū)簽以及通過(guò)
59、書(shū)簽在程序中定位</p><p> View 提供視圖功能,包含一些在 Visual LISP程序中查找和替換變量及符號(hào)值的命令</p><p> Project 提供應(yīng)用程序工程功能,包含一些用來(lái)管理項(xiàng)目和編譯程序的命令</p><p> Debug 提供程序調(diào)試功能,允許用戶在程序中設(shè)置和刪除斷點(diǎn),
60、以及在程序運(yùn)行時(shí)單步執(zhí)行程序,還可以檢查變量的狀態(tài)和表達(dá)式的結(jié)果</p><p> Tool 提供設(shè)置巧Visual LISP選項(xiàng)文本格式、環(huán)境變量的工具,例如窗口和工具欄的位置</p><p> Window 提供管理窗口功能,允許用戶組織在當(dāng)前Visual LISP進(jìn)程中的窗口顯示,以及激活A(yù)utoCAD窗口菜單中執(zhí)行Edit命令,</
61、p><p> 2.3.5控制臺(tái)窗口</p><p> 控制臺(tái)窗口是用戶用命令進(jìn)行操作的地方。用戶可以在控制臺(tái)窗口中輸入并運(yùn)行</p><p> Visual LISP和 AutoLISP命令,并能看到這些命令運(yùn)行的結(jié)果,這種方式和 AutoCAD中的命令窗口是一樣的,但是 Visual LISP用的是自己的命令解釋器來(lái)運(yùn)行命令。因此在不同的環(huán)境中運(yùn)行相同的任務(wù)時(shí)會(huì)
62、有一些不同之處,有時(shí)候會(huì)產(chǎn)生很微妙的差別。例如,為了在Visual LISP中顯示一個(gè)AutoLISP變量的當(dāng)前值,只要簡(jiǎn)單地在控制臺(tái)窗口中輸入變量名即可。要想在AutoCAD命令窗口中觀察一個(gè)變量的值,在命令窗口中輸入變量名之前必須先輸入一個(gè)驚嘆號(hào)(?。?。</p><p> 控制臺(tái)窗口也是Visual LISP顯示AutoLISP的診斷信息和顯示AutoLISP函數(shù)運(yùn)行結(jié)果的地方。例如,用 Print和Pri
63、nc函數(shù)輸入的結(jié)果就顯示在控制臺(tái)窗口中。用戶可以通過(guò)滾動(dòng)控制臺(tái)窗口的方式來(lái)觀察先前的輸入文本和輸出結(jié)果。</p><p> 除了運(yùn)行AutoLISP命令和顯示信息之外,Visual LISP解釋器還支持許多 Visual LISP獨(dú)有的調(diào)試特征。</p><p> 在控制臺(tái)窗口的任一地方單擊鼠標(biāo)右鍵,或者按Shift+F10組合鍵,會(huì)顯示一個(gè)如圖所示的關(guān)聯(lián)菜單。這個(gè)菜單包含了部分Vis
64、ual LISP命令。用戶可以利用這個(gè)特征在控制臺(tái)窗口的命令行上復(fù)制、粘貼和查找文本,以及初始化 Visual LISP的調(diào)試特征。</p><p> 圖2-5 關(guān)聯(lián)菜單</p><p> 2.3.6文本編輯器概述</p><p> Visual LISP的文本編輯器如圖所示。它不只是一個(gè)書(shū)寫(xiě)工具,而且是 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、用戶查找輸入程序時(shí)的拼寫(xiě)錯(cuò)誤</p><p> 文本格式化消 Visual LISP文本編輯器能夠自動(dòng)對(duì)AutoLISP程序代碼進(jìn)行格式化,增強(qiáng)可讀性。用戶可以自由選擇具體格式化代碼的樣式</p><p> 括號(hào)匹配 AutoLISP程序中包含著許多括號(hào), Visual LISP的文本編輯器可以幫助用戶查找閉合的括號(hào),并幫助檢查是否丟失了符號(hào)<
67、/p><p> 執(zhí)行AutoLISP表達(dá)式 可以幫助用戶在離開(kāi)文本編輯器的情況下,運(yùn)行一個(gè)表達(dá)式或者幾行程序代碼,以得到它們的運(yùn)行結(jié)果在多文件中進(jìn)行查找可以幫助用戶在只運(yùn)行一個(gè)命令的情況下,在多個(gè)文件中查找一個(gè)字 一個(gè)表達(dá)式</p><p> 語(yǔ)法檢查 Visual LISP的文本編輯器具有語(yǔ)法檢查的功</p><p> 2.3.7加載并運(yùn)行
68、AutoLISP應(yīng)用程序</p><p> 用戶一旦在 Visual LISP的文本編輯器中打開(kāi)了 AutoLISP程序文件,就可以加載并運(yùn)</p><p> 行它。所謂加載就是把一個(gè)文件中的程序提供給 Visual LISP的程序解釋器的過(guò)程。</p><p> 加載AutoLISP應(yīng)用程序的方法如下。</p><p> ?。?)激活
69、要加載的文本窗口。</p><p> ?。?)在菜單欄中執(zhí)行 Tools→ Load Text in Editor命令(或者在工具欄中單擊相應(yīng)的按鈕)。Visual LISP會(huì)在控制臺(tái)窗口中通過(guò)顯示信息來(lái)作出回應(yīng),表明程序加載是否成功。</p><p> ?。?)如果加載成功,用戶就可以在控制臺(tái)命令行上運(yùn)行這個(gè)程序。只需要在提示符</p><p> 上輸入括
70、號(hào)括起來(lái)的函數(shù)名,按Enter鍵就可以了。</p><p> ?。?)當(dāng)對(duì)所有的提示都作出了反應(yīng)后,控制又返回到了 Visual LISP,并且用戶可以再次看到Visual LISP窗口。</p><p> 當(dāng)用戶在控制臺(tái)富日中輸入了一個(gè)命令來(lái)運(yùn)行從文本編輯器中加載的程序時(shí),也許需要在Visual LISP和 AutoCAD窗口反復(fù)進(jìn)行切換。除了在菜單項(xiàng)中執(zhí)行Window命令進(jìn)行應(yīng)用
71、程序之間的切換之外,Visual LISP還提供了 2種切換的方法。</p><p> · 在Visual LISP窗口中激活A(yù)utoCAD窗口,從菜單項(xiàng)中執(zhí)行Window→Active</p><p> AutoCAD命令,或者單擊工具欄中的相應(yīng)按鈕。</p><p> · 在AutoCAD命令行提示符下,輸入”vlide”命令,可以從
72、AutoCAD窗口返回到Visual LISP環(huán)境。</p><p> Visual LISP還允許在文本編輯窗口中選中幾行代碼,然后只運(yùn)行這選中的幾行,不是整個(gè)程序。用acad2004doc.lsp程序作為一個(gè)例子,高亮選中其中的幾行代碼,</p><p> 在菜單欄中執(zhí)行Tools→ Load Selection命令,或者單擊工具欄中相應(yīng)的按鈕, Visual LISP就會(huì)通過(guò)命
73、令解釋器立即執(zhí)行這幾行代碼。</p><p> 2.3.8加載AutoLISP擴(kuò)展函數(shù)</p><p> Visual LISP提供了一些 AutoLISP的擴(kuò)展函數(shù),這些函數(shù)在啟動(dòng) AutoCAD的時(shí)候并不會(huì)自動(dòng)加載。這些函數(shù)所具有的前綴名及相關(guān)功能如表2-3所示。</p><p> 表 2-3 AutoLISP擴(kuò)展函數(shù)前綴名以及函數(shù)功能</p>
74、;<p> 函數(shù)前綴名 函數(shù)功能</p><p> Via一 實(shí)現(xiàn)在AutoLISP中對(duì)ActiveX的支持</p><p> Vlax- ActiveX使用函數(shù),可以進(jìn)行數(shù)據(jù)轉(zhuǎn)換、詞典操作和曲線測(cè)量</p><p> Vlr- 提供對(duì)AutoC
75、AD中反應(yīng)器的支持</p><p> 在應(yīng)用其中任何一個(gè)函數(shù)之前,需要加載AutoLISP擴(kuò)展。用戶可以通過(guò)調(diào)用下面的函數(shù)來(lái)實(shí)現(xiàn)這個(gè)目的。</p><p> 這個(gè)函數(shù)首先檢查AutoLISP是否已經(jīng)被加載了。如果已經(jīng)被加載,此函數(shù)不作任何操作,否則就加載AutoLISP擴(kuò)展函數(shù)。</p><p> 當(dāng)正在應(yīng)用 Visual LISP的交互開(kāi)發(fā)環(huán)境編制代碼時(shí),如
76、果想要使用 AutoLISP擴(kuò)展函數(shù),最好在加載Visual LISP之前先運(yùn)行vl一load一com函數(shù),或者在acad2004doc.lsp文件中調(diào)用這個(gè)函數(shù),這樣就可以自動(dòng)加載了。但是,如果用戶想要在程序中使用任何一個(gè)擴(kuò)字函數(shù),就需要在程序中加入一行代碼來(lái)調(diào)用vl一load一com函數(shù)。</p><p> 2.3.9退出 Visual LISP環(huán)境</p><p> 如果用戶想要
77、結(jié)束 Visual LISP的使用,從菜單欄中執(zhí)行 File— Exit命令,或者單擊窗口上的關(guān)閉按鈕就可以了。</p><p> 如果已經(jīng)在文本編輯窗口中做了修改,但是還沒(méi)有保存Visual LISP會(huì)詢問(wèn)是否要保存修改過(guò)的幫助,就像很多其他軟件一樣。</p><p> 如果在退出Visual LISP時(shí)仍然有Visual LISP源程序窗口處于打開(kāi)的狀態(tài),下一次啟動(dòng) Visual
78、LISP進(jìn)程時(shí)這些程序就會(huì)自動(dòng)打開(kāi)。</p><p> 第三章 AutoCAD 的二次開(kāi)發(fā)設(shè)計(jì)</p><p> 用AutoLISP生成零件圖</p><p> AutoCAD參數(shù)化程序從用戶取得參數(shù)或外部文件,然后在AutoCAD圖形中生成圖象。這些參數(shù)可以是基于AutoCAD,AutoLISP或ADS。一個(gè)參數(shù)程序可以畫(huà)一個(gè)公共零件的許多不同尺寸,不同形狀
79、的圖。通過(guò)參數(shù)化,可以畫(huà)出一系列復(fù)雜的物體,他們共享公共的參數(shù)關(guān)系。如果只改變比例,塊是最好的解決方法。但如果這種變動(dòng)需要大規(guī)模的相似塊的庫(kù)時(shí),采用參數(shù)化可以提供柔性,減少錯(cuò)誤,并產(chǎn)生巨大的效益。</p><p> 本章從一個(gè)參數(shù)化繪圖實(shí)例出發(fā),說(shuō)明什么是參數(shù)化,以及如何規(guī)劃和設(shè)計(jì)一個(gè)參數(shù)化的系統(tǒng)。</p><p> 3.1.1參數(shù)化繪圖實(shí)例</p><p>
80、 圖3-1編程示意圖 </p><p> 繪制一個(gè)六角頭螺桿帶孔螺栓,如圖3-1所示,我們所需要的幾個(gè)要素:</p><p> 螺栓的公稱長(zhǎng)度l(mm)</p><p><b> 螺紋長(zhǎng)度b(mm)</b></p><p><b> 螺紋直徑d(mm)</b></p>
81、<p> 六角螺栓頭厚度k(mm)</p><p> 螺桿孔直徑d1(mm)</p><p> 用戶與程序進(jìn)行交互的方式有很多種。最方便的是通過(guò)對(duì)話框來(lái)與用戶進(jìn)行交互,這也是目前幾乎所有的程序進(jìn)行交互的基本方式了。接下來(lái),我們根據(jù)需求來(lái)設(shè)計(jì)對(duì)話框以及主程序。</p><p> 設(shè)計(jì)對(duì)話框。為了方便和直觀,我在對(duì)話框中用圖塊的方式顯示一些參數(shù)的幾何
82、意義。設(shè)計(jì)的對(duì)話框如圖3-2所示。</p><p><b> 圖3-2 對(duì)話框</b></p><p> 用戶可以自己在對(duì)話框的下方輸入坐標(biāo),也可以通過(guò)鼠標(biāo)在屏幕上進(jìn)行選取,如圖3-2所示。選擇視圖,螺紋規(guī)格,公稱長(zhǎng)度,螺栓級(jí)別,按“確定”按鈕,即可在屏幕上畫(huà)出一個(gè)給定參數(shù)的六角頭螺桿帶孔螺栓。</p><p> (2)編制AutoLIS
83、P程序。</p><p> 對(duì)話框已經(jīng)設(shè)計(jì)好了,AutoLISP程序是提供對(duì)話框的調(diào)用,沒(méi)有AutoLISP程序,對(duì)話框就沒(méi)有實(shí)際的意義,所以,AutoLISP程序是實(shí)現(xiàn)參數(shù)化最重要的基礎(chǔ)。對(duì)于AutoLISP軟件的介紹和開(kāi)發(fā)環(huán)境,前幾章已經(jīng)作了很詳細(xì)的介紹,在這里,我主要介紹本實(shí)例的AutoLISP程序的詳細(xì)編制運(yùn)行過(guò)程。程序見(jiàn)副本。</p><p> 3.2調(diào)試并運(yùn)行程序</
84、p><p> 由于程序并不總是按照設(shè)計(jì)者的意愿執(zhí)行,有時(shí)會(huì)出現(xiàn)執(zhí)行錯(cuò)誤,甚至?xí)l(fā)生程序崩潰,而且很難找到程序的錯(cuò)誤之處;因此,VISP提供了一些調(diào)試程序的工具,可以幫助用戶迅速查找并改正程序中的錯(cuò)誤。VISP的調(diào)試工具有很多,下面,我以圖片的方式進(jìn)行演示,方便直觀,并且容易理解,如圖3-3所示。</p><p> 圖3-3 調(diào)試工具欄
85、 </p><p> 調(diào)試程序舉例:如圖3-4</p><p> 圖3-4 調(diào)試程序欄 </p><p> 如果程序中沒(méi)有語(yǔ)法錯(cuò)誤,則顯示如下圖3-5:</p><p><b> 圖3-5 調(diào)試成功</b></p><p> 如果程序中有錯(cuò)誤,則顯示如圖3-6:</p>&
86、lt;p><b> 圖3-6 程序出錯(cuò)</b></p><p> 如果調(diào)試成功,則在AutoCAD界面加載菜單樣板mnu,然后把相應(yīng)的AutoLISP程序和對(duì)話框程序保存到菜單樣板所顯示的硬盤(pán)文件目錄里,然后運(yùn)行程序,也就是實(shí)現(xiàn)參數(shù)化的最終結(jié)果!</p><p> 生成圖象具體操作步驟如下:</p><p> 加載菜單樣板。如圖3
87、-7</p><p> 圖3-7 加載菜單樣板</p><p> 在標(biāo)準(zhǔn)件中運(yùn)行對(duì)話框。如圖3-8</p><p><b> 圖3-8查找標(biāo)準(zhǔn)件</b></p><p> 生成圖象。如圖3-9</p><p> 圖3-9鋼結(jié)構(gòu)用高強(qiáng)度大六角頭螺栓(GB1228-84)</p>
88、<p><b> 3.3主要設(shè)計(jì)成果</b></p><p> 1.六角頭螺栓-細(xì)桿-B級(jí)(GB5784-86),主視圖,旋轉(zhuǎn)角度=75°螺栓規(guī)格M3,公稱長(zhǎng)度=20,如圖3-10</p><p> 圖3-10六角頭螺栓-細(xì)桿-B級(jí)(GB5784-86)</p><p> 2.六角頭螺桿帶孔螺栓(GB31.1-8
89、8),主視圖,旋轉(zhuǎn)角度=0°螺栓規(guī)格M24,公稱長(zhǎng)度=80,如圖3-11</p><p> 圖3-11六角頭螺桿帶孔螺栓(GB31.1-88)</p><p> 3.沉頭方頸螺栓(GB10-88),主視圖,旋轉(zhuǎn)角度=15°螺栓規(guī)格M6,公稱長(zhǎng)度=30,如圖3-12</p><p> 圖3-12沉頭方頸螺栓(GB10-88)</p>
90、;<p> 4.T型槽用螺栓(GB37-88),主視圖,旋轉(zhuǎn)角度=0°螺栓規(guī)格M5,公稱長(zhǎng)度=25,如圖3-13</p><p> 圖3-13 T型槽用螺栓(GB37-88)</p><p> 5.沉頭雙榫螺栓(GB800-88),主視圖,旋轉(zhuǎn)角度=-15°螺栓規(guī)格M6,公稱長(zhǎng)度=35,如圖3-14</p><p> 圖3-
91、14沉頭雙榫螺栓(GB800-88)</p><p> 6.鋼結(jié)構(gòu)用扭剪型高強(qiáng)度螺栓(GB3632-83),主視圖,旋轉(zhuǎn)角度=90°螺栓規(guī)格M16,公稱長(zhǎng)度=40,如圖3-15</p><p> 圖3-15鋼結(jié)構(gòu)用扭剪型高強(qiáng)度螺栓(GB3632-83)</p><p> 7.六角頭頭部帶孔螺栓(GB32.1-88),主視圖,旋轉(zhuǎn)角度=0°螺
92、栓規(guī)格M6,公稱長(zhǎng)度=30,如圖3-16</p><p> 圖3-16六角頭頭部帶孔螺栓(GB32.1-88)</p><p> 8.六角頭鉸制孔螺栓(GB27-88),主視圖,旋轉(zhuǎn)角度=30°螺栓規(guī)格M6,公稱長(zhǎng)度=25,如圖3-17</p><p> 圖3-17六角頭鉸制孔螺栓(GB27-88)</p><p><b
93、> 結(jié)束語(yǔ)</b></p><p> 到此,本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲,從剛開(kāi)始課題的選擇到確定,經(jīng)過(guò)收集資料,查看各種相關(guān)課題到自己設(shè)計(jì)方案的初步確定,到正式進(jìn)入設(shè)計(jì)階段,修改,再修改,逐步完善這么一系列過(guò)程,我真正體會(huì)到了一個(gè)產(chǎn)品從構(gòu)思到問(wèn)世這個(gè)期間的艱辛和愉悅。一個(gè)從無(wú)到有的全過(guò)程。也讓我在大學(xué)的最后階段深切感受到了師生之間的情誼,以及老師那種無(wú)私奉獻(xiàn)的精神。在這次設(shè)計(jì)就要結(jié)束是我在這里
94、深深感謝我的指導(dǎo)老師對(duì)我的指導(dǎo)和幫助,同時(shí)同組同學(xué)也對(duì)我給予了很多幫助,我對(duì)他們也表示由衷的感謝。</p><p><b> 致謝</b></p><p> 在指導(dǎo)教師姜增輝的大力指導(dǎo)下,歷時(shí)兩個(gè)多月的時(shí)間,終于完成了這次重要的畢業(yè)設(shè)計(jì)。</p><p> 通過(guò)這次的畢業(yè)設(shè)計(jì),使我更加深入的認(rèn)識(shí)到畢業(yè)設(shè)計(jì)的重要性,它對(duì)我四年來(lái)所學(xué)知識(shí)的一
95、個(gè)總結(jié)和鑒定,是檢驗(yàn)我們將所學(xué)理論知識(shí)與生產(chǎn)實(shí)踐相結(jié)合的極好機(jī)會(huì),也是接受機(jī)械工程師初步基本訓(xùn)練的必要過(guò)程,為我們將來(lái)走向工作崗位打下了良好的基礎(chǔ)。</p><p> 在這次畢業(yè)設(shè)計(jì)過(guò)程中,我真正體會(huì)到了一名設(shè)計(jì)人員由一個(gè)題目到通過(guò)收集資料階段,方案設(shè)計(jì),結(jié)構(gòu)設(shè)計(jì)階段到最終完成產(chǎn)品的獨(dú)立設(shè)計(jì)全過(guò)程所要具備的能力,我不僅學(xué)習(xí)了不少以前從來(lái)未涉及的知識(shí),開(kāi)闊了視野,更多的是從指導(dǎo)教師姜增輝老師身上學(xué)到了嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)
96、度以及誨人不倦的優(yōu)秀品質(zhì)。姜老師在指導(dǎo)我畢業(yè)設(shè)計(jì)的過(guò)程中,給我提供了很多的幫助,使我能夠在規(guī)定時(shí)間內(nèi)更好的完成了畢業(yè)設(shè)計(jì)的任務(wù),達(dá)到了要求。當(dāng)然由于經(jīng)驗(yàn)不足和設(shè)計(jì)時(shí)間緊迫,所以在設(shè)計(jì)中難免會(huì)存在著一些錯(cuò)誤和不足,這些將會(huì)激勵(lì)我更加努力的去學(xué)習(xí)提高。</p><p> 在此由衷感謝姜老師給予我的指導(dǎo)和幫助,感謝在這次畢業(yè)設(shè)計(jì)中給予我無(wú)私幫助的老師和同學(xué)。</p><p> 對(duì)于這次畢業(yè)設(shè)
97、計(jì)中的錯(cuò)誤和不足,懇請(qǐng)各位老師和同學(xué)批評(píng)指正,在此謹(jǐn)表謝意。</p><p> 2005年6月29日 </p><p><b> 參考文獻(xiàn)</b></p><p> [1] 徐灝等編,機(jī)械設(shè)計(jì)手冊(cè)(第3冊(cè)),機(jī)械工業(yè)出版社,1991 </p><p> [2] 藍(lán)屹生主編,學(xué)習(xí)指導(dǎo),中國(guó)鐵道出版社,20
98、02 </p><p> [3] 胡仁喜等編,AutoLISP機(jī)械設(shè)計(jì)高級(jí)應(yīng)用實(shí)例,機(jī)械工業(yè)出版社,2005</p><p> [4] 趙景亮等編,用Visual LISP開(kāi)發(fā)AutoCAD2004應(yīng)用程序,科學(xué)出版社,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. 本站所有資源如無(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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于AutoCAD的標(biāo)準(zhǔn)件的參數(shù)化設(shè)計(jì).pdf
- 精講solidworks 系列化零件設(shè)計(jì)
- solidworks系列零件設(shè)計(jì)
- 在autocad中參數(shù)化繪制化工設(shè)備標(biāo)準(zhǔn)件
- 基于UG的零件參數(shù)化設(shè)計(jì).pdf
- 軸系零件結(jié)構(gòu)參數(shù)化設(shè)計(jì)與開(kāi)發(fā).pdf
- 系列零件編輯
- 覆蓋件模具復(fù)雜零件參數(shù)化設(shè)計(jì)方法的研究.pdf
- catia參數(shù)化設(shè)計(jì)及零件庫(kù)的建立
- 零件參數(shù)設(shè)計(jì)的有關(guān)思考
- 畢業(yè)設(shè)計(jì)(論文)-基于proe齒輪類(lèi)零件參數(shù)化設(shè)計(jì)
- 數(shù)學(xué)建模-零件參數(shù)的優(yōu)化設(shè)計(jì)
- 基于proe的齒輪類(lèi)零件參數(shù)化設(shè)計(jì)畢業(yè)設(shè)計(jì)(論文)
- 沖模導(dǎo)向頂料相關(guān)零件標(biāo)準(zhǔn)化設(shè)計(jì)
- 基于AutoCAD的紙箱參數(shù)化設(shè)計(jì).pdf
- solidworks的配置以及系列零件設(shè)計(jì)表
- 基于AutoCAD的軸系零件造型設(shè)計(jì)系統(tǒng)研究.pdf
- 基于參數(shù)化技術(shù)的零件精度變型設(shè)計(jì)方法研究.pdf
- 基于AutoCAD環(huán)境下的零件管理及零件裝配系統(tǒng)的開(kāi)發(fā).pdf
- 基于VC++的SOLIDWORKS機(jī)械零件參數(shù)化設(shè)計(jì).PDF
評(píng)論
0/150
提交評(píng)論