国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

利用改進(jìn)掃描線(xiàn)法的面曝光快速成形的掩模圖形

2014-06-27 06:18金礦礦胥光申王亞寧
關(guān)鍵詞:掃描線(xiàn)掩模邊區(qū)

金礦礦,胥光申,王亞寧,羅 聲,金 京

(西安工程大學(xué) 機(jī)電工程學(xué)院,陜西 西安 710048)

面曝光快速成形是近年迅速發(fā)展起來(lái)的一種用于制作小尺寸零件的光固化快速成形方法,其基本原理是由三維零件的CAD模型或STL模型切層后得到的具有零件截面特征的視圖文件驅(qū)動(dòng)動(dòng)態(tài)視圖發(fā)生器,在樹(shù)脂液面上生成相應(yīng)的掩模圖形以選擇性固化單層樹(shù)脂,再移動(dòng)升降臺(tái),逐層堆積形成整個(gè)實(shí)體零件[1].與激光掃描固化相比,面曝光固化具有制作時(shí)間短,系統(tǒng)成本低,工藝簡(jiǎn)單等優(yōu)點(diǎn),是快速成形技術(shù)重要的發(fā)展方向[1-2].

掩模圖形的生成是面曝光快速成形的關(guān)鍵技術(shù)之一[2].目前,已有不少學(xué)者對(duì)生成掩模圖的方法作了大量研究[3-4],研究?jī)?nèi)容主要集中在基于CAD模型直接生成掩模圖形方面,但由于CAD系統(tǒng)之間往往存在兼容性問(wèn)題,限制了這些方法的應(yīng)用.STL文件格式作為一種三維數(shù)據(jù)格式具有格式簡(jiǎn)單、跨平臺(tái)性良好等優(yōu)點(diǎn)[5],已被作為快速成形領(lǐng)域的工業(yè)標(biāo)準(zhǔn)和最常用的數(shù)據(jù)文件格式而廣泛應(yīng)用[6].因此,研究基于STL模型生成掩模圖形具有重要意義.

本文提出用掃描線(xiàn)算法生成基于STL模型的掩模圖形,通過(guò)對(duì)該算法的改進(jìn),實(shí)現(xiàn)了直接利用邊表掃描填充截面輪廓,得到了可適用于面曝光快速成形系統(tǒng)的掩模圖形.

1 掩模圖形生成機(jī)理

STL模型經(jīng)切層后得到的是一組離散點(diǎn),其對(duì)應(yīng)坐標(biāo)用直線(xiàn)段順次連接,即形成由一系列簡(jiǎn)單多邊形組成的截面輪廓環(huán),離散點(diǎn)為相應(yīng)的輪廓頂點(diǎn),而由相鄰的輪廓頂點(diǎn)組成的直線(xiàn)段為輪廓邊[7].如圖1所示,該截面上有2個(gè)輪廓環(huán),編號(hào)分別為輪廓環(huán)1和輪廓環(huán)2.J,L,F(xiàn)和M為輪廓環(huán)2 的輪廓頂點(diǎn),JL,LF,F(xiàn)M和MJ為輪廓環(huán)2 的輪廓邊.

圖1 截面輪廓環(huán)及其交點(diǎn)情況示意圖

由切層得到的截面輪廓環(huán)是用頂點(diǎn)表示的,其圍成的區(qū)域只存在需要曝光的實(shí)體區(qū)域(曝光域)和無(wú)需曝光的非實(shí)體區(qū)域(非曝光域)2種狀態(tài),如圖1所示,輪廓環(huán)1和輪廓環(huán)2將所在區(qū)域分割為子區(qū)域a和b,其中子區(qū)域a為曝光域,而b為非曝光域.因此,只要將頂點(diǎn)表示的曝光域轉(zhuǎn)換為一種顏色(白色)的點(diǎn)陣表示,而非曝光域(黑色)依舊用頂點(diǎn)表示,進(jìn)而生成能反映零件截面特征的視圖文件,再由該視圖文件驅(qū)動(dòng)動(dòng)態(tài)視圖發(fā)生器,在樹(shù)脂液面上生成相應(yīng)的掩模圖像.

由以上分析可知,生成掩模圖形是一個(gè)嵌套多邊形的區(qū)域填充問(wèn)題.在解決這一問(wèn)題的各種方法中,掃描線(xiàn)法是最常用的效率較高的一種方法[6].在用該方法生成掩模圖形時(shí),用截面輪廓環(huán)外一條直線(xiàn)與其求交,所求交點(diǎn)序列的第1個(gè)點(diǎn)和第2個(gè)點(diǎn)之間一定是曝光域,而第2個(gè)點(diǎn)和第3個(gè)點(diǎn)之間一定是非曝光域,以此類(lèi)推,可求得該條線(xiàn)上的曝光域與非曝光域.用一系列掃描線(xiàn)依次掃描截面輪廓,即可求得截面上的全部曝光域與非曝光域.該方法只需對(duì)一條直線(xiàn)進(jìn)行分析,且無(wú)需判斷截面的曝光域與非曝光域.

2 掃描線(xiàn)算法

掃描填充的關(guān)鍵是快速求取交點(diǎn),尤其是奇點(diǎn)的處理.在使用傳統(tǒng)掃描線(xiàn)算法時(shí),需要先構(gòu)建與維護(hù)邊表和活動(dòng)邊表,對(duì)于一條掃描線(xiàn),填充可分為求交、排序、配對(duì)和填色4個(gè)步驟,在已知前一條掃描線(xiàn)上交點(diǎn)序列的情況下,可充分利用邊的連貫性快速獲取下一條掃描線(xiàn)上的交點(diǎn)序列,也無(wú)需考慮斜率無(wú)窮大的情況[8].

STL模型切層后的截面輪廓環(huán)往往是多層嵌套的,而且每一個(gè)輪廓環(huán)又由大量輪廓邊(微直線(xiàn)段)組成[7],填充過(guò)程如果還是通過(guò)同時(shí)維護(hù)邊表與活動(dòng)邊表(況且兩張表的部分?jǐn)?shù)據(jù)是重復(fù)的)來(lái)實(shí)現(xiàn),內(nèi)存開(kāi)銷(xiāo)會(huì)很大,掃描速度也會(huì)受到影響.為此,可將這些輪廓邊分為三類(lèi):活動(dòng)邊、已經(jīng)處理的邊和尚未處理的邊.活動(dòng)邊是與當(dāng)前掃描線(xiàn)有交點(diǎn)的邊,已經(jīng)處理的邊是與當(dāng)前掃描線(xiàn)已無(wú)交點(diǎn)的邊,尚未處理的邊是還未和當(dāng)前掃描線(xiàn)相交,正在等待掃描處理的邊.相應(yīng)的,可將邊表分為三個(gè)區(qū)間:活動(dòng)邊區(qū)間、已經(jīng)處理的邊區(qū)間和尚未處理的邊區(qū)間.活動(dòng)邊區(qū)間用以存放活動(dòng)邊,已經(jīng)處理的邊區(qū)間用以存放已經(jīng)處理的邊,而尚未處理的邊區(qū)間用以存放尚未處理的邊.對(duì)掃描線(xiàn)算法的數(shù)據(jù)結(jié)構(gòu)進(jìn)行相應(yīng)的改進(jìn),以實(shí)現(xiàn)直接借助邊表快速求取交點(diǎn)和合理填充截面輪廓.下面詳細(xì)描述這一改進(jìn)算法的實(shí)現(xiàn)過(guò)程.

2.1 數(shù)據(jù)結(jié)構(gòu)定義

首先,為了高效獲取輪廓邊的所有屬性,構(gòu)建一個(gè)表示邊屬性信息的數(shù)據(jù)結(jié)構(gòu)EDGE,利用C++語(yǔ)言定義如下:

typedef struct tag-EDGE

{

double xi;//在活動(dòng)邊區(qū)間中表示邊與當(dāng)前掃描線(xiàn)交點(diǎn)的X坐標(biāo),在已經(jīng)處理的邊區(qū)間中表示邊的下端點(diǎn)的X坐標(biāo),尚未處理的邊區(qū)間中表示邊的上端點(diǎn)的X坐標(biāo)

double InverseSlope;//邊所在直線(xiàn)斜率的倒數(shù)

intyMax;//邊上端點(diǎn)的Y坐標(biāo)(較大值)

intyMin;//邊下端點(diǎn)的Y坐標(biāo)(較小值)

}EDGE;

這與計(jì)算機(jī)圖形學(xué)中的掃描線(xiàn)算法相比,多了一個(gè)yMin數(shù)據(jù)成員.在掃描過(guò)程中,用來(lái)判斷輪廓邊是否將退出活動(dòng)邊區(qū)間.

其次,為了方便動(dòng)態(tài)劃分邊表的3個(gè)區(qū)間,定義first“指針”和last“指針”.first“指針”之前為已經(jīng)處理的邊區(qū)間;last“指針”之后為尚未處理的邊區(qū)間;二者之間為活動(dòng)邊區(qū)間.將邊表、first“指針”和last“指針”作為三個(gè)成員構(gòu)建一個(gè)邊表的數(shù)據(jù)結(jié)構(gòu)NEWEDGESTABLE,利用C++語(yǔ)言定義如下:

typedef struct tagSP-EDGES-TABLE

{

CArray*slEdges;//

int first;//用以指示活動(dòng)邊區(qū)間的起始位置,初始化為0

int last;//用以指示活動(dòng)邊區(qū)間的終止位置,初始化為0

}NEWEDGESTABLE;

在掃描填充之前,邊表內(nèi)全是尚未處理的邊,first“指針”和last“指針”都初始化為0,二者同時(shí)指示邊表首節(jié)點(diǎn);在掃描過(guò)程中,first“指針”和last“指針”隨著掃描線(xiàn)的變化而不斷動(dòng)態(tài)指示當(dāng)前掃描線(xiàn)的活動(dòng)邊區(qū)間;在掃描填充完成后,邊表內(nèi)全是已經(jīng)處理的邊,first“指針”和last“指針”同時(shí)指示邊表尾節(jié)點(diǎn).

2.2 構(gòu)建邊表

STL模型經(jīng)切層處理后的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)為:每一個(gè)輪廓環(huán)對(duì)應(yīng)一個(gè)CArray類(lèi)數(shù)組,CArray類(lèi)數(shù)組的節(jié)點(diǎn)存放其對(duì)應(yīng)輪廓環(huán)的頂點(diǎn)坐標(biāo);每1層輪廓環(huán)對(duì)應(yīng)1個(gè)CObArray類(lèi)數(shù)組,CObArray類(lèi)數(shù)組的節(jié)點(diǎn)存放該層輪廓中與每一個(gè)輪廓環(huán)對(duì)應(yīng)的CArray類(lèi)數(shù)組.基于以上數(shù)據(jù)結(jié)構(gòu),通過(guò)調(diào)用CObArray類(lèi)數(shù)組和CArray類(lèi)數(shù)組構(gòu)建邊表.

圖2是程序中構(gòu)建邊表的框圖.相鄰的j和(j+1)節(jié)點(diǎn)數(shù)據(jù)確定1條輪廓邊,將該邊的信息由頂點(diǎn)表示轉(zhuǎn)換成EDGE結(jié)構(gòu)表示,并將EDGE結(jié)構(gòu)作為1個(gè)節(jié)點(diǎn)存放到CArray類(lèi)數(shù)組中去.水平邊與掃描線(xiàn)平行,不參與求交運(yùn)算,可以將其忽略,則CArray類(lèi)數(shù)組的節(jié)點(diǎn)個(gè)數(shù)等于非水平邊的邊數(shù).以結(jié)構(gòu)形式存放所有非水平邊的CArray類(lèi)數(shù)組即為邊表.

圖2 構(gòu)建邊表

2.3 截面輪廓掃描填充

圖3為程序中生成能反映零件截面特征的視圖文件的框圖.直接借助邊表實(shí)現(xiàn)掃描填充截面輪廓的過(guò)程為:在處理當(dāng)前掃描線(xiàn)yScan時(shí),首先從尚未處理的邊區(qū)間中檢索出所有滿(mǎn)足條件yMax=yScan的邊,移動(dòng)last“指針”,讓其成為活動(dòng)邊;然后從活動(dòng)邊區(qū)間中檢索出所有滿(mǎn)足條件yMin=yScan的邊,移動(dòng)first“指針”,讓其成為已處理的邊;first和last“指針”移動(dòng)之后,由二者指示的活動(dòng)邊區(qū)間內(nèi)的所有邊必滿(mǎn)足條件yMin

圖3 生成截面視圖

2.4 奇點(diǎn)分析

掃描線(xiàn)自上而下以一個(gè)像素的間隔依次掃描,必經(jīng)過(guò)每一個(gè)輪廓頂點(diǎn).奇點(diǎn)是指當(dāng)掃描線(xiàn)剛好通過(guò)輪廓頂點(diǎn)時(shí)所產(chǎn)生的交點(diǎn),在掃描過(guò)程中,能碰到的奇點(diǎn)只有二重點(diǎn).對(duì)于一般情況,當(dāng)掃描線(xiàn)過(guò)輪廓邊的中間時(shí),不會(huì)產(chǎn)生二重點(diǎn),但當(dāng)掃描線(xiàn)剛好過(guò)輪廓頂點(diǎn)時(shí),必然與2條輪廓邊交于同一個(gè)點(diǎn),此時(shí)會(huì)產(chǎn)生1個(gè)二重點(diǎn),導(dǎo)致交點(diǎn)個(gè)數(shù)可能出現(xiàn)奇數(shù),如圖1所示,掃描線(xiàn)3上的點(diǎn)E和F都為二重點(diǎn),總交點(diǎn)個(gè)數(shù)實(shí)際上為5,為了使每一條掃描線(xiàn)上參與排序的交點(diǎn)個(gè)數(shù)始終為偶數(shù),需要進(jìn)行奇點(diǎn)處理.奇點(diǎn)分為以下2種情況.

(Ⅰ) 如圖1所示,在極大值頂點(diǎn)(如點(diǎn)J)處,2條輪廓邊位于掃描線(xiàn)下側(cè),同時(shí)滿(mǎn)足條件yMax=yScan而成為活動(dòng)邊,產(chǎn)生的1個(gè)二重點(diǎn)可以像其他交點(diǎn)一樣參與排序;在極小值頂點(diǎn)(如點(diǎn)F)處,2條輪廓邊位于掃描線(xiàn)上側(cè),同時(shí)滿(mǎn)足條件yMin=yScan而成為已處理的邊,產(chǎn)生的1個(gè)二重點(diǎn)不參與排序.

(Ⅱ) 如圖1所示,在非極值頂點(diǎn)(如點(diǎn)E)處,2條輪廓邊分處掃描線(xiàn)上下兩側(cè),同時(shí)與掃描線(xiàn)相交產(chǎn)生1個(gè)二重點(diǎn),但此時(shí)位于上側(cè)的邊(如邊EN)滿(mǎn)足條件yMin=yScan而成為已處理的邊,而位于下側(cè)的邊(如邊ER)滿(mǎn)足條件yMax=yScan而成為活動(dòng)邊,因此,只有位于掃描線(xiàn)下側(cè)的輪廓邊產(chǎn)生的1個(gè)交點(diǎn)參與排序,這與掃描線(xiàn)過(guò)輪廓邊的中間時(shí)產(chǎn)生1個(gè)交點(diǎn)的情況類(lèi)似.

綜上所述,對(duì)于每一條掃描線(xiàn),讓所有滿(mǎn)足條件yMax=yScan的邊進(jìn)入活動(dòng)邊區(qū)間,滿(mǎn)足條件yMin=yScan的邊退出活動(dòng)邊區(qū)間,即可保證參與排序的交點(diǎn)個(gè)數(shù)始終為偶數(shù).如圖1所示,在掃描線(xiàn)1上,點(diǎn)H和K各算作1個(gè)交點(diǎn),點(diǎn)I算作0個(gè)交點(diǎn),點(diǎn)J算作2個(gè)交點(diǎn),因此掃描線(xiàn)1上參與排序的交點(diǎn)數(shù)實(shí)際上為4,滿(mǎn)足偶數(shù)條件.

3 應(yīng)用實(shí)例

在VC++6.0環(huán)境下通過(guò)編程實(shí)現(xiàn)了掩模圖形的生成.圖4(a)為用SolidWorks設(shè)計(jì)的實(shí)體模型,該模型長(zhǎng)20mm,寬20mm,高4mm;圖4(b)為STL模型切層后的第20層輪廓環(huán),切層時(shí)設(shè)置層厚0.1mm,總層數(shù)40層;圖4(c)為用改進(jìn)的掃描線(xiàn)算法生成的第20層掩模圖形(其曝光域?yàn)榘咨?非曝光域?yàn)楹谏?;圖4(d)為利用改進(jìn)的掃描線(xiàn)算法生成的掩模在面曝光快速成形系統(tǒng)中制作出的模型實(shí)體.

(a) 三維模型 (b) 截面輪廓環(huán) (c) 掩模圖形 (d) 模型實(shí)體圖4 實(shí)例

4 結(jié) 論

(1) 改進(jìn)的掃描線(xiàn)算法可實(shí)現(xiàn)對(duì)多層嵌套的復(fù)雜截面輪廓的合理填充,生成的掩??蓾M(mǎn)足面曝光快速成形系統(tǒng)的需求.

(2) 對(duì)輪廓邊進(jìn)行分類(lèi),相應(yīng)的把邊表分成3個(gè)區(qū)間,只需在活動(dòng)邊區(qū)間中對(duì)截面輪廓進(jìn)行掃描填充,避免了傳統(tǒng)算法建立和維護(hù)活動(dòng)邊表的做法,進(jìn)一步簡(jiǎn)化了掃描線(xiàn)算法的實(shí)現(xiàn)過(guò)程.

(3) 采用的數(shù)據(jù)結(jié)構(gòu)類(lèi)型能夠?qū)崿F(xiàn)直接在邊表中掃描填充截面輪廓,也能針對(duì)一般的奇點(diǎn)進(jìn)行很方便的處理.

參考文獻(xiàn):

[1] 胥光申.用于高精度小尺寸零件制作的光固化快速成型技術(shù)的現(xiàn)狀與發(fā)展[J].機(jī)械科學(xué)與技術(shù),2004,23(10):1223-1225.

[2] 王伊卿,賈志洋,趙萬(wàn)華,等.面曝光快速成形關(guān)鍵技術(shù)及研究現(xiàn)狀[J].機(jī)械設(shè)計(jì)與研究,2009,25(2):96-100.

[3] 張建平,胥光申,金京,等.基于SolidWorks的CAD模型直接切層研究[J].西安工程大學(xué)學(xué)報(bào),2010,24(4):525-529.

[4] 景天佑,胥光申,馬訓(xùn)鳴,等.基于Pro/ENGINEER的CAD模型直接切層[J].西安工程大學(xué)學(xué)報(bào),2012,26(1):87-90.

[5] 朱虎,楊忠鳳,張偉.STL文件的應(yīng)用與研究進(jìn)展[J].機(jī)床與液壓,2009,37(6):186-189.

[6] TAYLOR J B,CORMIER D R,JOSHI S, et al.Contoured edge slice generation in rapid prototyping via 5-axis machining[J].Robotics and Computer-Integrated Manufacturing,2001,17(1/2):13-18.

[7] 潘海鵬.快速成型制造中分層處理技術(shù)的研究[D].南昌:南昌大學(xué),2007:4-5.

[8] 孫家廣.計(jì)算機(jī)圖形學(xué)[M].3版.北京:清華大學(xué)出版社,1998:56-62.

猜你喜歡
掃描線(xiàn)掩模邊區(qū)
細(xì)粒度圖像分類(lèi)的通道自適應(yīng)判別性學(xué)習(xí)方法
一種基于線(xiàn)掃描的受損一維條形碼識(shí)別方法
基于直寫(xiě)技術(shù)的微納掩模制作技術(shù)研究進(jìn)展*
基于掃描線(xiàn)模型的機(jī)載激光點(diǎn)云濾波算法
掩模圖像生成時(shí)閾值取值的合理性探討
掃描線(xiàn)點(diǎn)云數(shù)據(jù)的曲面重構(gòu)技術(shù)研究
一種新型魚(yú)眼圖像輪廓提取算法
三角形網(wǎng)格規(guī)則點(diǎn)的多進(jìn)制細(xì)分算法
戰(zhàn)斗在皖浙贛邊區(qū)的劉毓標(biāo)
《中共閩浙贛邊區(qū)史》出版發(fā)行