999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

OPENGL在激光快速成型系統(tǒng)中的應(yīng)用

2007-04-12 00:00:00徐鵬程曹俊武
職業(yè)時空 2007年21期

成型技術(shù)的概念(RP)是在1979年日本東京大學(xué)教授中川威雄發(fā)明的疊層模型制造法的基礎(chǔ)上發(fā)展起來的一門新興技術(shù)。到目前它已成為一門集CAD技術(shù)、數(shù)控技術(shù)、激光技術(shù)和新材料技術(shù)于一身的綜合學(xué)科。為了在電腦上能準(zhǔn)確、逼真地反應(yīng)出模型的輪廓構(gòu)造,這就要求在整個快速成型系統(tǒng)中,軟件部分的設(shè)計必須做到精益求精??焖俪尚拖到y(tǒng)軟件包括從CAD造型直到驅(qū)動數(shù)控加工整個過程中所有軟件。我們可以把整個過程分成三個部分:即造型軟件、預(yù)處理軟件和數(shù)控加工軟件。造型軟件的作用是設(shè)計出待加工工件的模形;預(yù)處理軟件的主要作用是對由STL文件格式所描述的模型進(jìn)行處理,以提供數(shù)控軟件所要求的數(shù)據(jù);數(shù)控加工軟件的作用主要是在成型過程中對各電機(jī)的加工參數(shù)、工作狀態(tài)及電力系統(tǒng)進(jìn)行控制和監(jiān)控。筆者詳細(xì)分析了OpenGL在激光快速成型系統(tǒng)中的實現(xiàn)過程和方法,供同行參考。STL文件的整個模型顯示和處理的過程是比較復(fù)雜的,基本的流程分為以下幾個步驟:

一、OpenGL和繪圖環(huán)境的初始化

初始化部分可分為OpenGL的初始化和繪圖環(huán)境的初始化兩部分,我們通常在FormCreate()函數(shù)中完成OpenGL的初始化。

1.創(chuàng)建DC(設(shè)備描述表)。hDC=GetDC(Handle);選擇最佳像素格式,并保存索引號,如希望在一個Panel中輸出圖形,那么可以用Panel1-Handle作為此函數(shù)的參數(shù)。

2.創(chuàng)建RC(圖形操作描述表)。定義像素格式:PIXELFORMATDESCRIPTOR pfd={ };選擇最佳像素格式,并把保存索引號:PixelFormat=ChoosePixelFormat(hdc, pfd);用DC創(chuàng)建RC :hrc=wglCreateContext(hdc);

3.制定當(dāng)前的DC、RC。wglMakeCurrent(hDC,hRC);把產(chǎn)生的圖形操作描述表置為當(dāng)前的程序,此后的所有OpenGL函數(shù)都通過此圖形操作描述表執(zhí)行,并將圖形繪制在設(shè)備描述表引用的設(shè)備上。

4.設(shè)置光源。Void glLightfv(Glenum light, Glenum pname,GL_DIFFUSE,GL_AMBIENT,GL_SPECULAR,const Glfloat* params);//指向顏色向量的指針,設(shè)置全局環(huán)境光函數(shù):void glLightModelfv(GL_LIGHT_MODEL_AMBIENT,const Glfloat* param);//param 指向顏色向量的指針,起用光源函數(shù):void glEnable(GL_LIGHTING); void glEnable(GL_enum cap);//cap:指明光源號。

5.設(shè)置材質(zhì)。void glMaterialfv( GLenum face,GL_FRONT, GL_BACK,GL_FRONT_AND_BACK,GLenum pname,const float* params);//指向材質(zhì)的顏色向量。

6.定義投影方式。void glOrtho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near,GLdouble far);(left,bottom,near)和(right,top,far)分別給出正射投影投影范圍的左下角和右上角的坐標(biāo)。到此就完成了初始化工作,這些步驟基本上是固定的(像素格式的參數(shù)設(shè)置也是如此),對于一般的應(yīng)用可以直接使用上述語句。

二、STL文件的讀入及圖形的顯示和渲染

STL文件一般有二進(jìn)制格式和ASCII碼格式兩種存貯方式,因此,要求預(yù)處理軟件對這兩種格式均可讀入。為了正確顯示模型,我們將讀入的數(shù)據(jù)存入一組數(shù)組當(dāng)中,在需要顯示模型的時候,將數(shù)組中的數(shù)據(jù)再讀出即可。數(shù)據(jù)的讀入可以直接利用C語言實現(xiàn)。由于STL文件是對原始CAD模型進(jìn)行表面三角化所得的,要實現(xiàn)STL文件的顯示,只需將每個三角形面片顯示出來即可;而要顯示三角形面片,只要將三角形的每個頂點的坐標(biāo)求出,然后調(diào)用OpenGL中的繪制三角形的庫函數(shù)來實現(xiàn)顯示功能。

glBegin(GL_TRIANGLES);glNormal3f(N1,N2,N3); // N1,N2,N3表示法向量的三維坐標(biāo), glVertex3f(X1,Y1,Z1);//X1,Y1,Z1表示其中一個頂點的三維坐標(biāo), glVertex3f(X2,Y2,Z2);glVertex3f(X3,Y3,Z3);glEnd();

在激光快速成型系統(tǒng)中,利用OpenGL來實現(xiàn)圖形的顯示和渲染必須進(jìn)行以下幾個步驟:

1.在FormDestroy()中作清理工作以釋放資源。如果在同一個程序里對多個窗體用繪圖必須嚴(yán)格進(jìn)行清理,否則輸出會出現(xiàn)混亂。

(1)清屏glClearColor(0.0,0.0,0.0,1.0);設(shè)置背景色為黑色。glClear(GL_COLOR_BUFFER_BIT);清屏以防止對以后窗口操作的影響。

(2)當(dāng)前DC、RC設(shè)置為空。wglMakeCurrent(NULL,NULL);使不再有當(dāng)前的圖形操作描述表。

(3)刪除DC、RC 。wglDeleteContext(hRC);刪除該圖形操作描述表。DeleteObject(hDC);刪除該設(shè)備描述表。

2.在FormPaint()中實施繪圖的相關(guān)操作。每當(dāng)窗體重畫時進(jìn)行繪圖的動作。OnPaint事件可能由系統(tǒng)觸發(fā)例如置為當(dāng)前窗口;也可以由程序觸發(fā)即在需要改變繪圖時調(diào)用TForm-FormPaint(Sender)。把所有繪圖操作統(tǒng)一歸入FormPaint()事件的響應(yīng)函數(shù)中使我們很容易控制繪圖的時機(jī),程序變得很有條理。

(1)繪圖準(zhǔn)備。指定DC和設(shè)置背景顏色。

(2)繪圖。調(diào)用自定義的繪圖函數(shù)mydraw();

(3)緩沖操作。glFlush();強制完成繪圖工作。SwapBuffers(hDC);完成兩個圖形緩沖區(qū)的交換,把畫完的非顯示緩沖圖形顯示出來。

(4)編寫繪圖函數(shù)。根據(jù)數(shù)據(jù)讀入的原理,利用OpenGL顯示三角形的功能,編寫出繪圖函數(shù)。

(5)視口變換。OpenGL中有多種圖形變換,其中視口變換是比較簡單而且常用的變換方式,事實上只需要使用一個函數(shù)glViewport(0,0, ClientWidth, ClientHeight);

此函數(shù)可以指定全部圖形最后投影的一個矩形區(qū)域,上句以整個窗體的客戶區(qū)為例。在FormResize()事件響應(yīng)函數(shù)中調(diào)用這個函數(shù)可以使圖形在窗體大小形狀變化時保持相同比例的縮放。

三、STL文件的處理

在快速成型系統(tǒng)中,對STL文件的處理工作實際上就是對操作模型的處理工作,從處理的過程來看主要包括:

1.對STL文件的正確性進(jìn)行檢驗和修補。由于STL文件是對原始CAD模型進(jìn)行表面三角化所得,所以無論是原始CAD模型中存在的問題,還是在表面三角化過程中產(chǎn)生的問題,最終都會反映到STL文件中。其主要問題包括在STL文件中存在裂縫空洞、懸面、重疊面和交叉面等。如果直接對含有這些問題的STL文件進(jìn)行分層處理,就會在分層后出現(xiàn)不封閉面和岐義面現(xiàn)象,所以要在分層處理前首先對STL文件的正確性進(jìn)行檢驗。由于引起STL文件中出現(xiàn)問題的原因是多方面的,有些錯誤可以用簡單的方法進(jìn)行修補(如片面錯誤和小裂縫等),但對于一些較大錯誤如面片丟失,模型中含有相交體和面時,就無法用簡單的方法進(jìn)行修正。例如在CAD實體造型系統(tǒng)中,常采用構(gòu)造實體幾何模型,即通過一些簡單形體結(jié)合來表示復(fù)雜形體,由于模型設(shè)計者的原因,在進(jìn)行兩個物體對接時常常會出現(xiàn)一個物體延伸到另一個物體內(nèi)的情況,結(jié)果產(chǎn)生了不正確STL文件,對這些問題,通常的解決方法是重新造型。因此要求在軟件中有對STL文件的進(jìn)行正確性檢驗的功能,而且能夠顯示錯誤類型,并可對一些簡單錯誤進(jìn)行修復(fù)。

2.分層處理。由于在STL文件中各三角形信息的存放是無序的,不反映各三角形之間的連接關(guān)系,因此在數(shù)據(jù)讀入后要根據(jù)STL文件所提供的信息,進(jìn)行信息前拓樸重建,從而可以根據(jù)任一三角形的頂點或邊可以快速找到與此點相關(guān)的所有三角形的邊,以及與邊相關(guān)的三角形的其它邊,以便提高后序求交處理的運算速度。所謂求交運算就是一組以一定間隔的平行于XOY平面的平面與模型輪廓求交,求得交線,然后以一定的規(guī)則對這些交線進(jìn)行分類和連接,從而產(chǎn)生了實體在不同高度上的截面輪廓線。各XOY平面間的間隔可根據(jù)加工精度要求進(jìn)行設(shè)定和調(diào)整。在有些分層處理軟件中,各層間的間隔在滿足精度要求的情況下是可變的,即當(dāng)相鄰層各輪廓的差異不大時,自動加大層與層間距,這樣,對于有些工件的加工時,可以大大提高加工效率。但由于層厚的選擇還與激光能量、掃描速度以及材料等因素有關(guān),因此在加工過程中,在對層厚進(jìn)行改變時,要相應(yīng)改變相關(guān)加工參數(shù)的設(shè)置。

3.掃描軌跡的優(yōu)化。掃描軌跡的優(yōu)化問題也是所有激光快速成型系統(tǒng)所具有的共性問題,因為掃描的過程就是要用激光的能量對實體各層內(nèi)外輪廓線所包圍區(qū)域的材料進(jìn)行燒結(jié)。為了得到更高的加工效率,當(dāng)對某層的區(qū)域劃分完成后,就存在一個掃描頭運動軌跡優(yōu)化問題。在解決掃描頭運動軌跡優(yōu)化問題時,其掃描頭運動距離最短并不是優(yōu)化的唯一標(biāo)準(zhǔn),同時應(yīng)該考慮到,在加工過程中減小由于激光的熱能引起材料的應(yīng)力變化而最終導(dǎo)致的工件翹曲變形問題,因此對這兩個問題應(yīng)綜合考慮,以確??焖?,高質(zhì)量的工件加工。

四、STL文件的保存及后續(xù)工作

在對視窗中的模型進(jìn)行操作時,已經(jīng)對模型本身的數(shù)據(jù)做了改動,而這些改動也是我們必須存儲下來的,所以,在STL文件的保存上需將修改后的數(shù)據(jù)寫入文件。數(shù)據(jù)的保存和數(shù)據(jù)讀出時的方法是一樣的,也要分別對兩種STL文件格式進(jìn)行保存(ASCII和二進(jìn)制)。后續(xù)工作主要是將處理后的模型通過數(shù)控加工設(shè)備制作出來,在這個環(huán)節(jié)的主要作用就是按用戶在加工前輸入的一些加工參數(shù),根據(jù)各分區(qū)輪廓線數(shù)據(jù)自動產(chǎn)生掃描頭給電機(jī)、工作平臺控制電機(jī)、鋪粉電機(jī)等,各電機(jī)的驅(qū)動使用NC代碼。同時對各電機(jī)工作狀態(tài)進(jìn)行監(jiān)控。并對電力系統(tǒng)進(jìn)行管理。為了保證加工過程的順利進(jìn)行,在軟件中還要有對數(shù)據(jù)格式進(jìn)行自動檢驗、加工模擬等功能,以及在加工過程中,如果各運動部件有異常時,要有報警功能。

在激光快速成型系統(tǒng)中,整個軟件不管是從開始的造型、數(shù)據(jù)讀入,還是模型處理、數(shù)控加工,其中的每一個環(huán)節(jié)都有OpenGL很好的應(yīng)用。

(作者單位:東華理工大學(xué)南昌校區(qū))

主站蜘蛛池模板: 国产精品无码一区二区桃花视频| 黄色网在线| 波多野结衣爽到高潮漏水大喷| 色成人综合| 国产97视频在线| 亚洲人人视频| 国模粉嫩小泬视频在线观看| 日韩精品中文字幕一区三区| 国产无码网站在线观看| 久久国产精品无码hdav| 国产情侣一区| 久久婷婷国产综合尤物精品| 久久青草精品一区二区三区| 91po国产在线精品免费观看| 国产永久无码观看在线| 亚洲视频色图| 国产一级精品毛片基地| 久久国产精品影院| 少妇极品熟妇人妻专区视频| 久久青草免费91线频观看不卡| 欧洲一区二区三区无码| 第一区免费在线观看| 婷婷丁香色| 国产大全韩国亚洲一区二区三区| 国产欧美日韩综合一区在线播放| 亚洲午夜福利精品无码不卡 | 日本一区二区不卡视频| 久精品色妇丰满人妻| 成年免费在线观看| 99成人在线观看| 国产高颜值露脸在线观看| 日韩国产无码一区| 曰韩人妻一区二区三区| 国产主播在线观看| 国产欧美精品一区二区| 成人精品午夜福利在线播放| 亚洲欧美另类专区| 欧美精品综合视频一区二区| 成人一级黄色毛片| 日韩资源站| 热久久这里是精品6免费观看| 国产成人精品一区二区| 久久99精品国产麻豆宅宅| 亚洲第一页在线观看| 久久精品日日躁夜夜躁欧美| 欧美国产综合视频| 国内精自视频品线一二区| 国产一区二区三区在线无码| 中日无码在线观看| 香蕉色综合| 国产精品自在在线午夜区app| 国产一级α片| 久久性妇女精品免费| 欧美日本在线观看| 国产精品99r8在线观看| 中国毛片网| 精品夜恋影院亚洲欧洲| 欧美有码在线观看| 亚洲欧洲日产国码无码av喷潮| 国产成+人+综合+亚洲欧美| 国产人人干| 国产女人在线视频| 久久精品这里只有国产中文精品| 欧美区国产区| 国产欧美精品一区二区| 激情爆乳一区二区| 香蕉久久国产超碰青草| 色综合日本| 狂欢视频在线观看不卡| 毛片手机在线看| 国产乱码精品一区二区三区中文| 中文字幕色站| 伊人激情综合| 久久国产亚洲偷自| 国产av剧情无码精品色午夜| 国产精品浪潮Av| 亚洲一区无码在线| 爽爽影院十八禁在线观看| 日本人又色又爽的视频| 狠狠色综合网| 久久黄色一级视频| 久草青青在线视频|