圓柱與圓柱相貫實體造型及展開CAD的研究畢業(yè)論文_第1頁
圓柱與圓柱相貫實體造型及展開CAD的研究畢業(yè)論文_第2頁
圓柱與圓柱相貫實體造型及展開CAD的研究畢業(yè)論文_第3頁
圓柱與圓柱相貫實體造型及展開CAD的研究畢業(yè)論文_第4頁
圓柱與圓柱相貫實體造型及展開CAD的研究畢業(yè)論文_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、圓柱與圓柱相貫實體造型及展開cad的研究摘 要建立了圓柱與圓柱相貫的統一數學模型。據此模型,以autocad為平臺,應用其內嵌的vba(visual basic for application)語言為編程工具,設計了繪制圓柱與圓柱相貫實體的通用源程序。建立了求解兩圓柱軸線垂直交錯時相貫線上點的坐標的通用數學模型,并以此為基礎,給出了繪制含有相貫線的圓柱展開圖的原理和方法。根據以上數學模型,應用vba編程,設計了繪制含有相貫線的圓柱展開圖的通用源程序。在上述源程序的基礎上,設計了基于vba的圓柱與圓柱相貫實體造型及繪制展開圖的參數化軟件。應用該軟件,可以通過輸入特征參數,方便地繪制帶有圓柱支管的

2、圓柱形管道、爐具、罐等設備的實體和展開圖形。因此,該參數化造型軟件在中小型鈑金制件行業(yè)中具有一定的實用價值。關鍵詞:autocad vba語言 參數化實體造型 展開圖目 錄摘 要i1 引 言12 autocad的發(fā)展概況23 autocad vba簡介44 圓柱與圓柱相貫實體造型64.1 vba環(huán)境中的實體造型機制64.2 圓柱與圓柱相貫實體的生成65 圓柱與圓柱相貫線展開圖的生成9結束語14參考文獻151 引 言生產實際中,經常遇到一些主體為圓柱、圓錐形的管道、爐具、罐等設備,其上往往有一些叉管、觀察孔、測試孔等分支結構,這些通常為圓柱或圓錐形鈑金制件。所謂參數化,是指對零件的各種特征施加各

3、種約束形式。各個特征的幾何形狀與尺寸大小用變量(具體的數據或代數表達式)的方式來表示。如果與某特征對應的參數發(fā)生了變化,那么零件上該特征的幾何形狀或尺寸大小將隨之變化。三維參數化實體造型的實現有兩種途徑:其一,從底層開發(fā)cad軟件。這種方法較困難,不適于小型企業(yè);其二,在基礎繪圖軟件平臺(如autocad)上作二次開發(fā)。autocad作為cad二次開發(fā)平臺,具有強大的繪圖功能和良好的開發(fā)性,受到國內外許多企業(yè)的青睞。計算機輔助制圖是現代企業(yè)生產和設計的重要工具,autocad是計算機輔助設計工具的一種,vb 是autocad軟件的重要組成部分。它是autocad軟件二次開發(fā)的重要工具。它可使一

4、些常用的機械零件能很快的調用,簡捷方便,很大的提高了工作效率縮短了新產品的開發(fā)周期,提高制圖的質量。利用vb語言對autocad進行二次開發(fā)是現代計算機技術不可缺少的內容,而且直接影響到制圖的速度和質量。2 autocad的發(fā)展概況隨著現代工業(yè)文明的發(fā)展,越來越多的企業(yè)對工業(yè)產品的外形和內部結構的要求越來越高,產品更新的速度越來越快,傳統的手工制圖已經不能滿足現代企業(yè)的要求。計算機輔助設計技術的引進是近代工業(yè)史上的一次革命,它顯著的提高了制圖的速度和制圖的質量,縮短了新產品設計開發(fā)的時間。autocad是計算機輔助設計工具的一種,它是美國autodesk公司在1982年12月開發(fā)出來的,aut

5、o- cad軟件是計算機輔助設計與繪圖相結合的綜合軟件,從第一版autocad r1.0起,經歷了若干次升級,現已達到autocad2006。在autocad 14版中,autodesk首次包括了microsoft的visual basic for applications(vba)。將autocad和visual basic的功能結合在一起,可以創(chuàng)建非常好的定制應用程序,從而在使用autocad執(zhí)行當前任務時,可以在很短的時間內創(chuàng)建出正常情況下需要好幾個小時才能完成的圖形。經過三十多年的發(fā)展,cad技術得到了迅速普及,已成為電子信息技術的重要組成部分。cad技術使產品的內容和方式發(fā)生了根本性

6、變革,這一技術已成為工業(yè)發(fā)達國家保持競爭優(yōu)勢,開拓市場的主要技術手段。1989年,美國國家工程科學院將cad技術評為人類25年間(19651989)當代十項最杰出工程技術成就之一。cad技術之所以在短短的三十年發(fā)展如此迅速,是因為它幾乎推動了一切領域的設計革命,徹底的改變了傳統的手工繪圖的方式,極大的提高了產品開發(fā)的速度,提高了設計精度。這一新技術的應用將使人類的聰明才智和創(chuàng)造能力與計算機高速而精確的計算能力、大容量的儲存和數據處理功能結合起來,是兩者相得益彰。cad技術的發(fā)展與應用水平成為衡量的科學技術現代化和工業(yè)現代化的重要標志之一。近幾年來,隨著計算機技術的飛速發(fā)展,cad技術已由發(fā)達國

7、家向發(fā)展中國家擴展,而且發(fā)展的勢頭非常迅猛。我國政府部門十分重視這一技術,已經和科技界、工業(yè)界一起把cad技術的應用推廣當作一件大事來抓,如果國家科委實施了cims工程和cad應用工程,組建了全國性的cad培訓網絡;機械工業(yè)部把1997年定位“cad推廣年”。將cad推廣工作作為重中之重項目,目前正在組織實施“cad應用1550工程”。很多大中型甚至小型企業(yè)都在努力引進這一新技術,以提高企業(yè)自身的技術素質,增強產品在國內外市場上的競爭能力。另外,cad教學也得到了個高校的普遍重視。要想全面推廣普及cad技術,提高我國的整體技術水平。為了拓寬autocad的運用領域,從1993年夏季起,auto

8、desk公司已設計自動化為主題,相繼推出了極具應用價值的軟件群體,包括3d max autocad、designer auto surf autocad、data extension auto cad、vision animator studio autocad、map mechanical desktop(mdt)。這些將在autocad中得到很好的發(fā)揮,autocad也將會也來越強大。3 autocad vba簡介autocad軟件包是美國autodesk公司推出的cad(計算機輔助設計)軟件,從autocad第一版誕生到現在已有三十年的時間。autocad r14是目前最流行的工程圖形處

9、理軟件。由于它具有完善的繪圖功能、良好的用戶界面、易學易用等特點,因而被廣泛地應用于測繪、規(guī)劃、設計、土地管理等行業(yè),autocad為用戶提供了多種二次開發(fā)工具,其中較常用的有autolisp、vba、objectarx三種方式。autolisp是一種解釋性的表結構處理語言,具有語言結構簡單、開發(fā)周期短、不依賴于操作平臺的特點,但是作為解釋語言,其運行速度和保密性方面有一定的缺陷,并且不適合開發(fā)有復雜運算的軟件。objectarx for r14是基于microsoft visual c+4.2的開發(fā)工具,一個arx應用程序分享autocad的地址空間并且函數可以直接為autocad所調用,因

10、而是運行速度最快的開發(fā)工具,但是microsoft visual c+語言較復雜,開發(fā)arx應用程序需要較多的軟件開發(fā)經驗,也不適合作為非軟件開發(fā)專業(yè)人員的測繪工作者的開發(fā)工具。visual basic(vb)是美國微軟公司推出的程序開發(fā)工具,它簡單易學,適用面廣,在windows平臺上被廣泛使用。為此,可以作為測繪工作者進行程序設計的首選工具。vba是visual basic for applications的縮寫,由visual basic派生而來,現在已經成為mictosoft產品的標準語言。與vb一樣,vba是面向對象的設計語言,它繼承了vb語法簡單、功能強大的特點,同時,由于vba可

11、與主程序在同一內存空間內運行,大大提高了運行的速度,并具有某些“智能”功能。每一套autocad 2000 都包含功能強大、易學易用的vba 5.0程序開發(fā)環(huán)境,這個繼承開發(fā)環(huán)境提供了高質量的用戶化編程能力。(1) vba能夠使autocad與其它應用程序直接共享數據,如microsoft office 97軟件,因為所有的vba應用程序都可以方便的相互溝通,在設計過程中可以很容易的將autocad的數據與基于windows的應用程序聯系起來。例如,可以使用autocad 2000生成材料表并直接輸出電子數據表為財務部門使用。繪制圖紙,然后用vba。(2) 在vba綜合開發(fā)環(huán)境中,可以通過拖動

12、圖表的方法,簡單而可視化的建立用戶界面。用戶可以使用autocad工具欄,可以使用標準vba界面工具創(chuàng)建新的工具欄。(3) vba的語言代碼完全繼承了vb的特征,可以說是世界上最簡單的編程語言,但其功能不弱。從數據計算、數據庫管理到internet軟件開發(fā),都可以見到vb的身影,并可通過各種在線幫助,隨時得到名師的真?zhèn)鳌?4) 具有開放式的對象模型。autocad 2000軟件中的activex對象模型十分重要,它顯示了每一個對象的方法和屬性,用戶可以按照自己的愿望編程或定制autocad 2000軟件。(5) 良好的運行速度。vba是一個內嵌式的控制器,共享autocad的內存空間,可以更好

13、的與autocad溝通。其速度與objectarx應用程序非常接近,比其他開發(fā)方式(如adsrx,ads和liap)要高許多。 無論編程技術水平如何,使用vba編程都不會感到很多困難。自從帶有vba開發(fā)接口的autocad r14 發(fā)行以來,已經有超過百萬的開發(fā)者使用了這一軟件,開發(fā)的主要程序將有更多機會為不斷增長的用戶群體服務。4 圓柱與圓柱相貫實體造型4.1 vba環(huán)境中的實體造型機制在vba程序中,調用documents集合的add(entity)方法,根據給定參數生成相應實體,然后將實體寫入atuocad系統的圖形數據庫。用戶可以使用參數方法創(chuàng)建三維實體,若給定長度(length)、寬

14、度(width)、高度(height)或者中心(center)、半徑(radius)等參數,即可創(chuàng)建長方體(box)、圓柱體(cylinder)、圓錐體(cone)、圓環(huán)(torus)、球體(sphere)等基本實體,分別調用acad3dsolid類的方法addbox、addcone、addcylinder、addtorus和addsphere來生成。也可以在二維面域(region)的基礎上用拉伸(extrude)或旋轉(revolved)的方法生成三維實體,分別調用addextrudesolid,addrevolved -solid方法生成三維實體。還可以在已有的實體基礎上通過布爾運算生成新

15、的三維實體。4.2 圓柱與圓柱相貫實體的生成打開atuocad的vba程序“宏”或者按“alt+f8”創(chuàng)建個新的“宏”程序,在用戶窗體中繪出相應的控點,再在各個控點下設定相應的程序,用add- cylinder的方法生成兩個圓柱實體,再用rotate3d的方法旋轉其中一個圓柱實體,最后用布爾運算讓兩個實體相貫。流程圖如4.1所示。開始分析數據在窗體上繪出控點設定相應命令addcylinder命令生成兩圓柱rotate3d旋轉圓柱體boolean布爾運算完 成圖4.1 圓柱與圓柱相貫實體造型流程圖部分程序如下:private sub commandbutton1_click()thisdrawi

16、ng.application.documents.adddim pi as doubledim cylin1_r, cylin1_h as doubledim cylin2_r, cylin2_h as doubledim cylin1_obj as acad3dsoliddim cylin2_obj as acad3dsoliddim cylin1_cen(0 to 2) as doubledim cylin2_cen(0 to 2) as doubledim dist, cen_hi, theta as doublepi = 4 * atn(1)cylin1_r = val(textbox

17、1.text)cylin1_h = val(textbox2.text)cylin2_r = val(textbox3.text)cylin2_h = val(textbox4.text)dist = val(textbox5.text)cen_hi = val(textbox6.text)theta = val(textbox7.text) * pi / 180繪圓柱1cylin1_cen(0) = 0cylin1_cen(1) = 0cylin1_cen(2) = cylin1_h / 2set cylin1_obj = thisdrawing.modelspace.addcylinder

18、(cylin1_cen, cylin1_r, cylin1_h)繪圓柱2cylin2_cen(0) = distcylin2_cen(1) = 0cylin2_cen(2) = cen_hiset cylin2_obj = thisdrawing.modelspace.addcylinder(cylin2_cen, cylin2_r, cylin2_h)dim ax_p1(0 to 2) as doubledim ax_p2(0 to 2) as doubleax_p1(0) = 1: ax_p1(1) = 0: ax_p1(2) = cen_hiax_p2(0) = 0: ax_p2(1)

19、= 0: ax_p2(2) = cen_hi旋轉圓柱2cylin2_obj.rotate3d ax_p1, ax_p2, pi / 2 - theta圓柱1與圓柱2的布爾運算cylin1_obj.boolean acunion, cylin2_objend sub用戶界面如圖4.1所示,生成的相貫實體如圖4.2所示。圖4.2 繪制相貫實體及其展開圖的用戶界面 (a) 垂直交錯 (b) 一般交錯圖4.3 在autocad環(huán)境下生成的相貫實體5 圓柱與圓柱相貫線展開圖的生成在實際生產中,圓柱體與圓柱體相貫展開圖可運用在管道間的連接焊點的確定,從而大量節(jié)約了時間與材料,實際運用非常廣泛。在展開圖中繪

20、出眾多相貫點從而確定展開圖相貫線的輪廓。在圖5.1中的p點是相貫線上的某一點,p的三維坐標是(x、y、z),通過已知條件求出p點坐標,過程如下:圖5.1 兩圓柱相貫實體三視圖豎直圓柱 水平圓柱 改為參數方程形式 將中的代入中 如果 則 如果 則無解,表示此時不存在相貫線,兩柱面不相交 圖5.2 展開圓柱相貫線的計算模型已知 如圖5.2,相貫線展開圖上某點p的坐標:程序如下:private sub commandbutton2_click()dim pi as doubledim cylin1_r, cylin1_h as doubledim cylin2_r, cylin2_h as doub

21、ledim line_obj as acadlinedim point_obj as acadpointdim dist, cen_hi, theta as doubledim pnt1(0 to 2) as doubledim pnt2(0 to 2) as doubledim pnt(0 to 2) as doublepi = 4 * atn(1)cylin1_r = val(textbox1.text)cylin1_h = val(textbox2.text)cylin2_r = val(textbox3.text)cylin2_h = val(textbox4.text)dist =

22、val(textbox5.text)cen_hi = val(textbox6.text)theta = val(textbox7.text) * pi / 180pnt1(2) = 0: pnt2(2) = 0: pnt(2) = 0圓柱2展開圖thisdrawing.application.documents.addpnt1(0) = -cylin2_h / 2: pnt1(1) = 0pnt2(0) = cylin2_h / 2: pnt2(1) = 0set line_obj = thisdrawing.modelspace.addline(pnt1, pnt2)pnt1(0) = c

23、ylin2_h / 2: pnt1(1) = 2 * pi * cylin2_rset line_obj = thisdrawing.modelspace.addline(pnt1, pnt2)pnt2(0) = -cylin2_h / 2: pnt2(1) = 2 * pi * cylin2_rset line_obj = thisdrawing.modelspace.addline(pnt1, pnt2)pnt1(0) = -cylin2_h / 2: pnt1(1) = 0set line_obj = thisdrawing.modelspace.addline(pnt1, pnt2)f

24、or beta = 0 to 2 * pi step 0.01 x = dist + cylin2_r * cos(beta) z = cen_hi + cylin2_r * sin(beta) delta2 = cylin1_r 2 - x 2 if delta2 = 0 then y = sqr(delta2) pnt(0) = y: pnt(1) = cylin2_r * beta set point_obj = thisdrawing.modelspace.addpoint(pnt) pnt(0) = -y set point_obj = thisdrawing.modelspace.

25、addpoint(pnt) end ifnext beta圓柱1展開圖pnt1(0) = 400: pnt1(1) = 0pnt2(0) = 400 + 2 * pi * cylin1_r: pnt2(1) = 0set line_obj = thisdrawing.modelspace.addline(pnt1, pnt2)pnt1(0) = 400 + 2 * pi * cylin1_r: pnt1(1) = cylin1_hset line_obj = thisdrawing.modelspace.addline(pnt1, pnt2)pnt2(0) = 400: pnt2(1) = c

26、ylin1_hset line_obj = thisdrawing.modelspace.addline(pnt1, pnt2)pnt1(0) = 400: pnt1(1) = 0set line_obj = thisdrawing.modelspace.addline(pnt1, pnt2)for phi = 0 to 2 * pi step 0.01 x = cylin1_r * cos(phi) y = cylin1_r * sin(phi) delta1 = cylin2_r 2 - (x - dist) 2 if delta1 = 0 then z = cen_hi + sqr(de

27、lta1) pnt(0) = 400 + cylin1_r * phi: pnt(1) = z set point_obj = thisdrawing.modelspace.addpoint(pnt) z = cen_hi - sqr(delta1) pnt(1) = z set point_obj = thisdrawing.modelspace.addpoint(pnt) end ifnext phiend sub利用以上程序,在autocad平臺中生成的兩垂直交錯圓柱相貫線的展開圖如圖5.3所示。(a) 水平圓柱展開圖 (b) 豎直圓柱展開圖圖5.3 在autocad環(huán)境下生成的相貫線展開圖結束語經過兩個月的工作,基于autocad 2004的圓柱與圓柱實體相貫及展開圖設計已經完成。本次設計主要涉及了autocad 2004的相關知識及autocad vba編程的諸多要領。設計中涉及的許多問題,更是對以前所學的知識的回顧及在過去的三年中學到知識的系統總結,這次設計對我們將來的工作有一定的幫助。在設計中,我們積極查閱資料,細心鉆研各個技術細節(jié),小組成員互相合作,協調一致地完成了小軟件的開發(fā)與調試,也讓我們明白了在設計中考慮問題應該全面,以及需要互相合作的精神。在設計中既鍛煉了我的動手能力,又學會查閱資料,提煉需要的信息。本次設計是a

溫馨提示

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

評論

0/150

提交評論