




免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于OpenGL的數(shù)控加工教學(xué)平臺(tái)的建模與仿真摘要:文章以 Windows XP為開發(fā)平臺(tái),以 開放式圖形開發(fā)庫OpenGL及Visual C+6.0 軟件為開發(fā)工具,建立了數(shù)控加工教學(xué)平臺(tái)中的幾何模型和運(yùn)動(dòng)模型并論述了其編程原理。關(guān)鍵詞:數(shù)控教學(xué)平臺(tái);建模;數(shù)控仿真;OpenGLAbstract: This paper uses Windows XP as developing platform, uses OpenGL and Visual C+6.0 software as developing tool to build geometry model and movement model of NC Teaching Platform and the principle of program is expounded.Key words: NC teaching platform; modeling; NC simulation; OpenGL 0 前言二十一世紀(jì)機(jī)械制造業(yè)的競爭,其實(shí)質(zhì)是數(shù)控技術(shù)的競爭。近年來,國內(nèi)外都十分重視數(shù)控教學(xué)。數(shù)控教學(xué)大致包括一般數(shù)控知識(shí)的教學(xué)和實(shí)際操作技能的培訓(xùn)兩部分內(nèi)容,相應(yīng)的培訓(xùn)除了必要的理論講解,大部分工作是在數(shù)控設(shè)備上的實(shí)際操作訓(xùn)練。而數(shù)控設(shè)備價(jià)格昂貴,培訓(xùn)者的誤操作還可能會(huì)危及機(jī)床設(shè)備甚至于操作者自身的人身安全。因此,數(shù)控先期教學(xué)不適合在實(shí)際設(shè)備上進(jìn)行。隨著計(jì)算機(jī)軟硬件技術(shù)、圖形圖像處理及虛擬加工技術(shù)的發(fā)展, 建立一個(gè)經(jīng)濟(jì)、高效、快捷、通用的數(shù)控加工教學(xué)平臺(tái)已經(jīng)成為可能。在這個(gè)數(shù)控加工教學(xué)平臺(tái)上,操作者能夠在生動(dòng)、直觀的動(dòng)畫環(huán)境下,數(shù)控編程、手工操作、試切對刀和數(shù)控加工,猶如在操作一臺(tái)真正的數(shù)控機(jī)床。數(shù)控加工教學(xué)平臺(tái)的開發(fā)需要專門的三維圖形加速引擎及開發(fā)接口平臺(tái), Windows操作系統(tǒng)下提供了多種這樣的平臺(tái) ,最常見的有 Direct3D和 OpenGL兩種。下面介紹基于OpenGL的數(shù)控加工教學(xué)平臺(tái)的建模與仿真。1 OpenGL建模方法OpenGL是開放式圖形開發(fā)庫(Open Graphics Library)的縮寫,是美國硅谷圖像公司用C語言為圖形工作站開發(fā)的圖形軟件。 OpenGL是一個(gè)圖形和硬件的軟件接口,它由幾百個(gè)指令或函數(shù)組成,是一個(gè)三維的圖形和模型庫,在CAD/CAM 等需要高級三維對象可視化和圖形繪制的領(lǐng)域被廣泛應(yīng)用,OpenGL還提供了諸如基本圖元繪制、變換矩陣、著色模式、光照、反走樣等方法來控制三維圖形的繪制。現(xiàn)在,Windows操作系統(tǒng)全面支持OpenGL,使用戶在 PC機(jī)上可用它開發(fā)圖形動(dòng)畫產(chǎn)品,實(shí)現(xiàn)虛擬仿真。目前,OpenGL己成為新一代三維圖形開發(fā)的工業(yè)標(biāo)準(zhǔn)。OpenGL建模的工作流程,如圖1所示。幾何頂點(diǎn)數(shù)據(jù)圖像象素?cái)?shù)據(jù)運(yùn)算器顯示列表逐個(gè)頂點(diǎn)操作圖像操作光柵化逐個(gè)片元操作紋理映射幀緩沖器圖1 OpenGL建模的工作流程圖1中幾何頂點(diǎn)數(shù)據(jù)包括模型的頂點(diǎn)集、線集、多邊形集,這些數(shù)據(jù)經(jīng)過運(yùn)算器、逐個(gè)頂點(diǎn)操作等;圖像象素?cái)?shù)據(jù)包括象素集、影像集、位圖集等,圖像象素?cái)?shù)據(jù)的處理方式與幾何頂點(diǎn)數(shù)據(jù)的處理方式是不同,但它們都經(jīng)過光柵化,逐個(gè)片元 (Fragment)操作,直至把最后的光柵數(shù)據(jù)寫入幀緩沖器。在 OpenGL中的所有數(shù)據(jù),包括幾何頂點(diǎn)數(shù)據(jù)和圖像數(shù)據(jù)都可以被存儲(chǔ)在顯示列表中,或者立即可以得到處理。OpenGL中,顯示列表技術(shù)是一項(xiàng)重要的技術(shù)。OpenGL要求把所有的幾何圖形單元都用頂點(diǎn)來描述,這樣運(yùn)算器和逐個(gè)頂點(diǎn)計(jì)算操作都可以針對每個(gè)頂點(diǎn)進(jìn)行計(jì)算和操作,然后進(jìn)行光柵化形成圖形碎片;對于圖像數(shù)據(jù),象素操作結(jié)果被存儲(chǔ)在紋理組裝用的內(nèi)存中,再與幾何頂點(diǎn)操作一樣光柵化形成圖形片元。整個(gè)流程操作的最后,圖形片元都要進(jìn)行一系列的逐個(gè)片元操作,這樣最后的象素值送入幀緩沖器實(shí)現(xiàn)圖形的顯示。OpenGL并未提供復(fù)雜物體的建模技術(shù),只提供了一些繪制點(diǎn)、線及多邊形的基本建模函數(shù),給程序員以巨大的自由發(fā)揮空間。通過基本圖形的組合、平移、旋轉(zhuǎn)和縮放,可得到任意三維形體。在OpenGL中,通過定義光源的顏色、透明度、位置和照射方向來定義光源。而材質(zhì)反映了物體的本身特性,它決定了反射光的顏色、特性和強(qiáng)度。材質(zhì)顏色包括環(huán)境反射光、漫反射光、鏡面反射光和自身發(fā)射光。通過光源和材質(zhì)的合理設(shè)置,能逼真模擬出物體外觀。紋理映射是真實(shí)感圖形制作的一個(gè)重要部分。OpenGL提供了一系列完整的操作函數(shù)來定義、設(shè)置和調(diào)用紋理,用戶可用它們構(gòu)造理想的物體表面,將紋理圖案用不同方式粘貼到曲面上,使三維場景中的物體更生動(dòng)、更自然。2 數(shù)控加工教學(xué)平臺(tái)的總體設(shè)計(jì)數(shù)控加工教學(xué)平臺(tái)的具體設(shè)計(jì)目標(biāo)為:(1)能實(shí)現(xiàn)零件裝夾、自動(dòng)換刀、切削成形等過程的仿真。(2)能通過鍵盤、鼠標(biāo)、圖形終端等外部設(shè)備實(shí)現(xiàn)人機(jī)交互。(3)能夠進(jìn)行刀具與夾具、工件的碰撞干涉檢查。(4)能對加工誤差進(jìn)行分析與評價(jià)。根據(jù)上述的具體設(shè)計(jì)目標(biāo),結(jié)合現(xiàn)有的研究基礎(chǔ),數(shù)控加工教學(xué)平臺(tái)的總體框架如圖2所示,包括數(shù)控機(jī)床模型、刀具模型、夾具模型、工件模型,通過逐條讀取及編譯NC代碼來進(jìn)行切削加工仿真及碰撞干涉檢查仿真,最終實(shí)現(xiàn)數(shù)控加工過程的仿真教學(xué)。數(shù)控加工教學(xué)平臺(tái)加工環(huán)境加工過程刀具模型夾具模型工件模型程序處理機(jī)床模型切削加工干涉檢驗(yàn)圖2 數(shù)控教學(xué)平臺(tái)的總體結(jié)構(gòu)3 數(shù)控加工教學(xué)平臺(tái)的建模根據(jù)系統(tǒng)總體結(jié)構(gòu)框架圖,把系統(tǒng)劃分為如下幾個(gè)模塊:加工環(huán)境模塊、NC代碼處理模塊、切削加工仿真模塊、碰撞干涉檢查模塊。3.1 加工環(huán)境建模加工環(huán)境模型主要包括機(jī)床模型、毛坯模型、刀具模型、夾具模型等, 這些模型在NC代碼驅(qū)動(dòng)下相互協(xié)同工作,完成加工的仿真。在這里我們需要用OpenGL和Visual C+6.0來建立模型, 從而建立符合功能要求的加工環(huán)境仿真模塊?;静襟E如下:(1)根據(jù)基本圖形單元建立景物模型,并且對所建立的模型進(jìn)行數(shù)學(xué)描述(點(diǎn)、線、多邊形、圖像和位圖都看作基本圖形單元);(2)把景物模型放在三維空間中的合適的位置,并且設(shè)置視點(diǎn)(ViewPoint);(3)計(jì)算模型中所有物體的色彩, 其中的色彩根據(jù)應(yīng)用要求來確定,同時(shí)確定紋理粘貼方式等;(4)把景物模型的數(shù)學(xué)描述及其色彩信息轉(zhuǎn)換至計(jì)算機(jī)屏幕上的象素。下面是建模的部分程序:void CRenderView:DrawBase() glPushMatrix(); /壓入當(dāng)前矩陣堆棧/DrawBoard(); /建立橫向溜板、縱向工作臺(tái)、工件等模塊函數(shù)/glColor3f(0.8f,0.8f,0.8f); /設(shè)置當(dāng)前顏色/glTranslatef(-5.0f,-(2.5f+1.5f*board_ply),0.0f); /把當(dāng)前矩陣乘上一個(gè)平移矩陣/auxSolidBox(base_width,5.0f,10.0f); /建立床身底座模型/glTranslatef(-(base_width/2.0f-5.0f),2.5f+pole_high/2.0f,0.0f); /把當(dāng)前矩陣乘上一個(gè)平移矩陣/ glPopMatrix(); /彈出當(dāng)前矩陣堆棧/3.2 NC代碼處理模塊NC代碼是由定義了一定功能的大寫字母附上數(shù)據(jù)后組合而成的,一般每條指令完成一個(gè)動(dòng)作, 若干條指令按一定結(jié)構(gòu)構(gòu)成一段程序,主要包括準(zhǔn)備功能G代碼、輔助功能M代碼、進(jìn)給功能F代碼、主軸轉(zhuǎn)速功能S代碼及刀具功能T代碼等。NC代碼處理模塊用于實(shí)現(xiàn)NC代碼輸入、顯示修改及分析解釋功能。程序的讀取可以采用直接鍵盤手工輸入和程序文件讀入兩種方式;代碼解釋和分析主要是分析程序的結(jié)構(gòu),通過對NC代碼的理解、檢查代碼語法語意的正確性,經(jīng)過譯碼、刀補(bǔ)計(jì)算、進(jìn)給速度處理,以得到刀具中心軌跡和其它所需數(shù)據(jù),為刀具路徑建立數(shù)據(jù)表,作為仿真的驅(qū)動(dòng)信息,用于模擬加工模塊。NC代碼的處理過程主要包括NC程序的讀入以及對讀入程序的詞法、語法檢查和解釋。目前國內(nèi)外的數(shù)控裝置幾乎都采用可變程序段“字地址格式”,國際標(biāo)準(zhǔn)化組織制定了字地址程序段格式ISO6983-1-1982標(biāo)準(zhǔn),形式如下:N G X Y Z I J K M S T F根據(jù)NC代碼的特點(diǎn),本系統(tǒng)存取、管理這些代碼采用單向鏈表結(jié)構(gòu)來實(shí)現(xiàn)。由于本系統(tǒng)數(shù)控源代碼是以文本格式存儲(chǔ)的,所以首先由C +提供的I/O流操作函數(shù)Ofstream,fstream,ifstream來實(shí)現(xiàn)對源代碼的存取,由類ifstream讀入每一程序行,將讀入的程序行以字符串的格式存入text_list鏈表的text成員中,該鏈表的具體結(jié)構(gòu)為: struct Pro _text CString text;int lengh; Pro text3next;對數(shù)控程序代碼和數(shù)控仿真目的分析可知,我們只需從數(shù)控程序中提煉與仿真系統(tǒng)運(yùn)動(dòng)部件有關(guān)的運(yùn)動(dòng)與狀態(tài)信息,而對于那些與運(yùn)動(dòng)軸無關(guān)的代碼,只要計(jì)算機(jī)能夠識(shí)別它們并進(jìn)行詞法的檢驗(yàn)就可以了。因此,遍歷text_list鏈表對結(jié)構(gòu)體中成員text進(jìn)行分析,根據(jù)特定的算法,去除注釋等不必要的信息,提取有用的代碼信息即程序行中的指令值存入dictate _ list鏈表。同時(shí)該過程還完成數(shù)控程序的詞法和語法的檢查,若有錯(cuò)誤的信息將其存入指定的文件中。dictate_list鏈表的結(jié)構(gòu)為:struct Command intN; /行號 CString G; /G指令 double X; /x坐標(biāo) double Z; /z坐標(biāo) double R; /圓弧半徑值 double I; /圓弧中心坐標(biāo) Idouble K; /圓弧中心坐標(biāo) Kdouble F; /進(jìn)給速度值int S; /S指令 CStringM; /M指令 int T; /刀具號 Command3next; /next指針 然后提取有關(guān)命令動(dòng)作和狀態(tài)信息,通過對已經(jīng)存入緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行分析掃描,即遍歷dictate_list鏈表,分離出相應(yīng)的信息,進(jìn)行刀具軌跡的離散和插補(bǔ),得到仿真的驅(qū)動(dòng)信息,將其存入一定的數(shù)據(jù)結(jié)構(gòu)中。3.3 切削加工仿真模塊切削加工仿真模塊是根據(jù)NC代碼對加工環(huán)境模型中各運(yùn)動(dòng)部件的運(yùn)動(dòng)進(jìn)行模擬,實(shí)現(xiàn)教學(xué)系統(tǒng)中刀具和工件之間的相對運(yùn)動(dòng)。該模塊利用計(jì)算機(jī)圖形技術(shù),讓計(jì)算機(jī)模擬真實(shí)的加工過程,通過動(dòng)畫的形式形象、直觀的模擬數(shù)控加工的切削過程。通過仿真結(jié)果的可視化顯示,可以發(fā)現(xiàn)錯(cuò)誤,修改工藝文件,優(yōu)化加工方案。根據(jù)計(jì)算機(jī)動(dòng)畫原理,每秒顯示25幅以上的切削加工場景,整個(gè)加工過程的演示就是連續(xù)的。用OpenGL 的雙緩存(Double Buffering)技術(shù)可以方便地實(shí)現(xiàn)刀具相對運(yùn)動(dòng)過程的動(dòng)畫仿真。雙緩存提供兩個(gè)顏色緩存,在一個(gè)緩存中顯示幀時(shí),在另一個(gè)緩存中繪制幀。在繪圖時(shí),數(shù)控加工仿真系統(tǒng)根據(jù)插補(bǔ)計(jì)算得到的刀位軌跡值,在屏幕上實(shí)時(shí)的顯示刀具的變化情況。對于每一個(gè)計(jì)算出的插值點(diǎn),刀具就進(jìn)給一步,系統(tǒng)即刷新一次,此時(shí)在后臺(tái)緩存進(jìn)行建模及對模型進(jìn)行變換,在前臺(tái)緩存顯示由后臺(tái)緩存已計(jì)算好的畫面,如此反復(fù),最終動(dòng)態(tài)顯示切削加工過程。另外還利用OpenGL 的顯示列表技術(shù)和局部刷新技術(shù)防止場景的顫動(dòng),增強(qiáng)切削場景的顯示效果。3.4干涉碰撞檢驗(yàn)?zāi)K干涉碰撞檢驗(yàn)?zāi)K主要是檢驗(yàn)刀具和主軸相對于非加工部件如夾具、工件的非加工部位、加工工作臺(tái)的干涉現(xiàn)象,由于加工過程由NC代碼驅(qū)動(dòng),干涉出現(xiàn)位置的NC代碼信息可及時(shí)反饋提交用戶進(jìn)行檢查和修改。干涉檢查結(jié)果需進(jìn)行分析,按以下判據(jù)得出結(jié)論:(1)刀具切削部件與加工好的部件有干涉為過切;(2)刀具非切削部位與物體干涉為碰撞;(3)進(jìn)給速度快時(shí)的切削為碰撞;(4)主軸不轉(zhuǎn)時(shí)的干涉或切削為碰撞。我們采用形體求交的方法進(jìn)行干涉的定性檢查。如果兩個(gè)形體之間存在交集,就認(rèn)為他們互相干涉,在數(shù)控仿真建模過程中采用的體素定義方法不是通常所說的BOX、CYLINDER、CONE、SPHERE、TORUS等等,而是平掃體和旋轉(zhuǎn)體等,它們本身就可能表示很復(fù)雜的形狀。在本算法中,工件和夾具不是以整體的信息參與求交計(jì)算的,而是個(gè)別地進(jìn)行的。在論證這種方法的好處之前,先敘述形體求交算法的基本步驟:(1)將待計(jì)算的刀具和主軸形體的坐標(biāo)系轉(zhuǎn)換到工件坐標(biāo)系下,工件的幾何信息已經(jīng)在裝夾時(shí)計(jì)算出;(2)對任一對求交形體A和B作包圍和干涉檢查,若不干涉,無需進(jìn)一步求交,轉(zhuǎn)(4);(3)將A的所有棱邊和B的所有面進(jìn)行求交計(jì)算,若出現(xiàn)交點(diǎn)在面片內(nèi),判定為形體相交,退出,否則進(jìn)入下一步;(4)取下一對求交形體,轉(zhuǎn)(2)。大多數(shù)情況下,在刀具沒有深入工件加工的情況下,僅包圍盒的檢查就可以排除大多數(shù)的相交情況。我們采用讓刀具和當(dāng)前工步已加工好的狀態(tài)件作干涉計(jì)算,若發(fā)生干涉,則一定會(huì)出現(xiàn)過切。將工件和夾具的信息分散成交簡單的多個(gè)BREP描述用于干涉檢驗(yàn)中的求交計(jì)算,可以提高檢驗(yàn)的速度,這是分類枚舉和多路思想的體現(xiàn)。簡單的信息便于計(jì)算和減少不必要的計(jì)算,而只要能夠判斷,立即做出計(jì)算,避免出現(xiàn)將刀具和工件的所有面進(jìn)行求交計(jì)算的機(jī)會(huì)。需要說明的是,邊界描述是用多面體逼近實(shí)際的形體的,這一近似性使得在描述孔和曲面時(shí)產(chǎn)生一定的誤差。增大離散等分?jǐn)?shù)的方法并不明智,因?yàn)檫@使得求交計(jì)算的效率大大降低。我們分析到這一問題主要在鉆孔、鉸孔、鏜孔、攻絲和孔的銑削加工中出現(xiàn),如果適當(dāng)減小刀具的直徑,便可以避免由于離散化誤差引起干涉檢驗(yàn)的錯(cuò)誤報(bào)警。圖所示為數(shù)控車削加
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國黃冰糖市場分析及競爭策略研究報(bào)告
- 2025至2030年中國青銅暖氣截止閥市場分析及競爭策略研究報(bào)告
- 2025至2030年中國門窗插銷市場分析及競爭策略研究報(bào)告
- 2025至2030年中國蟹腿肉市場分析及競爭策略研究報(bào)告
- 2025至2030年中國重型紙箱市場分析及競爭策略研究報(bào)告
- 2025至2030年中國調(diào)速閥市場分析及競爭策略研究報(bào)告
- 醫(yī)院危急值報(bào)告流程和制度他
- 學(xué)校少先隊(duì)大項(xiàng)活動(dòng)方案
- 套餐充值活動(dòng)方案
- 嬰童展會(huì)配套活動(dòng)方案
- 混凝土地面施工方案
- 二級評茶技師知識(shí)考核試題題庫與答案
- 工程材料與應(yīng)用完整版教學(xué)課件全書電子講義(最新)
- 消防工程擬投入主要施工設(shè)備機(jī)具表
- T∕CFA 0203141-2021 綠色鑄造設(shè)計(jì)產(chǎn)品 球墨鑄鐵管水冷金屬型離心機(jī)通用技術(shù)要求
- 【2020-2021自招】江蘇蘇州實(shí)驗(yàn)中學(xué)初升高自主招生數(shù)學(xué)模擬試卷【4套】【含解析】
- 監(jiān)理報(bào)審表(第六版)-江蘇省建設(shè)工程監(jiān)理現(xiàn)場用表
- 圓通快遞借殼上市案例分析(課堂PPT)
- 25公斤級平焊法蘭及螺栓規(guī)格尺寸
- 配電網(wǎng)工程典型設(shè)計(jì)10kV電纜分冊
- 中文版EN-12546
評論
0/150
提交評論