用于面曝光增材成型的3d模型切片及投影面生成方法
【專利摘要】本發(fā)明公開了一種用于面曝光增材成型的3D模型的切片及投影面生成方法,基于射線追蹤生成投影面及其支撐;采用基于半邊數(shù)據(jù)結(jié)構(gòu)的模型遍歷方法,提高切片效率,同時(shí)采取合適的抗鋸齒措施獲得最佳的切片效果;切片與生成支撐同時(shí)進(jìn)行,避免了額外的數(shù)據(jù)處理,采用最優(yōu)的拓?fù)浣Y(jié)構(gòu)構(gòu)建支撐柱和支撐分支,以實(shí)現(xiàn)最小的支撐體積并不影響加工實(shí)體形狀。
【專利說(shuō)明】用于面曝光增材成型的3D模型切片及投影面生成方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及增材成型制造領(lǐng)域的光敏式面曝光技術(shù),尤其是涉及一種3D模型的切片及投影面生成方法。
【背景技術(shù)】
[0002]增材制造(AdditiveManufacturing, AM),又稱3D打印技術(shù),將制造由三維縮減為二維,使復(fù)雜零件的加工成為可能?;趫D像投影的面曝光成型技術(shù)使用數(shù)字微型鏡片輸出成型零件截面圖形,圖像經(jīng)過(guò)透鏡聚焦到盛有光敏樹脂溶液的容器的液面上,形成一個(gè)層厚的實(shí)體,并由此自下而上逐層成型,最終得到目標(biāo)零件。
[0003]該技術(shù)的關(guān)鍵是高效地獲得高精度的截面圖形,其中如何在已有零件(這個(gè)“零件”是指要3D打印的實(shí)體模型)的基礎(chǔ)上獲得截面輪廓,以及如何生成零件懸掛部分的支撐是兩個(gè)主要的技術(shù)難點(diǎn)。目前的模型切片的研究主要集中在面向熔融層積工藝(FDM)和立體光刻工藝(SLA)的工具軌跡的計(jì)算和生成上。復(fù)雜零件截面圖形的生成往往存在效率低下、鋸齒明顯等問(wèn)題。
[0004]對(duì)于零件懸掛部分的支撐,目前的研究也主要集中于立體光刻工藝(SLA)。主要的方法是判斷三角面片的法向量與材料堆疊方向的關(guān)系。而在熔融層積工藝(FDM)中獲得支撐的方法主要是通過(guò)計(jì)算輪廓在二維平面的投影來(lái)獲得支撐的空間位置,但該方法獲得支撐填充了整個(gè)空隙部分,難以移除,無(wú)法適用于面曝光成型工藝。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種用于面曝光增材成型的3D模型的切片及投影面生成方法,運(yùn)算效率高,支撐結(jié)構(gòu)合理。
[0006]為此,本發(fā)明的用于面曝光增材成型的3D模型的切片及投影面生成方法包括以下步驟:
[0007]A)輸入三維實(shí)體模型的STL文件,讀取文件中包含的模型的頂點(diǎn)、邊、三角形數(shù)量信息,判斷其是否符合三維實(shí)體模型的歐拉公式,在滿足的情況下進(jìn)入步驟B);若不滿足,提示輸入模型錯(cuò)誤;
[0008]B)建立模型的頂點(diǎn)表格Vt、三角形表格Trt ;
[0009]C)遍歷頂點(diǎn)表格和三角形表格,建立半邊數(shù)據(jù)表HEt ;
[0010]D )模型顯示和渲染;
[0011]E)設(shè)定顯示圖片的像素值,根據(jù)加工設(shè)備平臺(tái)大小,獲取像素點(diǎn)和實(shí)體實(shí)際尺寸的轉(zhuǎn)換關(guān)系;
[0012]F)完成實(shí)體模型的顯示,將模型的最低面置于空間坐標(biāo)系的χ-y平面,通過(guò)一系列的旋轉(zhuǎn)、平移,使模型位于最佳加工位置一通常位于圖形及加工平臺(tái)的中心,即讓模型最底面的中心點(diǎn),位于加工平臺(tái)的中心;
[0013]G)沿z軸負(fù)方向一個(gè)單位的位置建立一個(gè)虛擬平面,稱之為切片基層,在切片基層上計(jì)算空間射線,分別有如下幾個(gè)步驟:
[0014]Gl)計(jì)算實(shí)體模型的包圍盒坐標(biāo)(包圍盒指能夠包圍實(shí)體模型的最小的長(zhǎng)方體),作為整個(gè)空間射線計(jì)算的邊界Xmin, Xmax, Ymin, Ymax ;
[0015]G2)該虛擬平面的z坐標(biāo)值存儲(chǔ)為各像素點(diǎn)對(duì)應(yīng)的射線的初始邊界點(diǎn);
[0016]G3)遍歷實(shí)體模型的所有三角片,提取其包圍盒邊界坐標(biāo),利用步驟E)中所得的像素實(shí)體尺寸轉(zhuǎn)換關(guān)系獲得三角形邊界Xmin, Xmax, Ymin, Ymax對(duì)應(yīng)的像素值,標(biāo)記位于該像素邊界中的所有像素點(diǎn)對(duì)應(yīng)的射線,保存該三角片的ID于射線中,并將射線類中記錄其穿過(guò)包圍盒的三角形個(gè)數(shù)的變量Tri_num增加I ;
[0017]G4)遍歷虛擬平面上各像素點(diǎn)的空間射線(每個(gè)像素點(diǎn)對(duì)應(yīng)一條射線。像素點(diǎn)有大小,是圖像顯示的最小單位。射線方向在本算法中不涉及),提取出G3)獲得的三角形ID,將射線與保存其中的三角形逐個(gè)求交,并判斷該交點(diǎn)是否位于三角片中,舍棄不在三角片內(nèi)的交點(diǎn),保存位于三角片或邊界上的交點(diǎn),形成該射線與實(shí)體模型的交點(diǎn)序列zvalues ;
[0018]G5)剔除序列zvalues中的重復(fù)點(diǎn),按照Z(yǔ)坐標(biāo)由小到大排序;
[0019]H)從模型最底層開始,以層厚thickness (層厚根據(jù)成型精度要求設(shè)定,一般為50至100微米)為增量,至包圍盒最頂端,逐層判斷圖形像素點(diǎn)是否位于模型內(nèi)部:每層切片圖形的初始像素值設(shè)為黑色;在第η層上,層高為Ζη=ηX thickness,遍歷包圍盒的像素邊界中的每個(gè)像素射線,若該層高值處于射線交點(diǎn)序列的有效區(qū)段內(nèi),則該點(diǎn)處于模型內(nèi)部,應(yīng)設(shè)為白色像素點(diǎn);否則為黑色像素點(diǎn);
[0020]I)支撐的分布由用戶自行定義。最簡(jiǎn)單的分布模式是半徑為R的支撐圓柱體形成的間距為d的矩形陣列。對(duì)處于支撐圓柱體中心處的像素點(diǎn),判斷其Z坐標(biāo)所處的射線交點(diǎn)序列的區(qū)段,進(jìn)而判斷該像素點(diǎn)是否為支撐。
[0021]本發(fā)明基于模型半邊數(shù)據(jù)結(jié)構(gòu)處理任意三維實(shí)體的三角面片網(wǎng)格,在切片的同時(shí)對(duì)模型需要的支撐進(jìn)行同步運(yùn)算,提高了算法效率;本發(fā)明設(shè)計(jì)的支撐結(jié)構(gòu)占用空隙部分少,用最小的支撐體積獲得最佳支撐效果。
[0022]同時(shí),本發(fā)明的一些優(yōu)選實(shí)施方式還包括如下優(yōu)點(diǎn):采取合適的抗鋸齒措施,而不降低軟件的運(yùn)算效率;采用最優(yōu)的拓?fù)浣Y(jié)構(gòu)構(gòu)建支撐柱和支撐分支,以實(shí)現(xiàn)最小的支撐體積和最優(yōu)的支撐效果。
【專利附圖】
【附圖說(shuō)明】
[0023]圖1是本發(fā)明【具體實(shí)施方式】投影面生成的流程圖;
[0024]圖2是本發(fā)明實(shí)施例3D實(shí)體模型的點(diǎn)、邊、半邊和三角形示意圖。
[0025]圖3a、3b分別是本發(fā)明實(shí)施例人物頭像的三角網(wǎng)格模型示意圖及放大圖。
[0026]圖4是本發(fā)明實(shí)施例切片基層上所有像素射線穿過(guò)實(shí)體模型的示意圖。
[0027]圖5是本發(fā)明實(shí)施例切當(dāng)前切片層像素點(diǎn)A顏色判斷示意圖。
[0028]圖6是本發(fā)明實(shí)施例當(dāng)前切片層中的像素點(diǎn)A輸出切片圖形示意圖。
[0029]圖7是本發(fā)明實(shí)施例支撐分布圖。
[0030]圖8本發(fā)明實(shí)施例當(dāng)前切片層中的像素點(diǎn)A顏色判斷示意圖。
[0031]圖9是圖8中當(dāng)前切片層上生成的支撐投影。
[0032]圖10a、IOb、10c、10d是本發(fā)明實(shí)施例生成的支撐結(jié)構(gòu)示意圖?!揪唧w實(shí)施方式】
[0033]如圖1所示,本實(shí)施例的基于射線追蹤的切片及投影面生成方法包括以下步驟(圖中英文字母標(biāo)號(hào)代表下述步驟編號(hào)):
[0034]A)輸入三維實(shí)體模型的STL文件(STL文件是增材制造領(lǐng)域中的一種表示三維模型的標(biāo)準(zhǔn)格式),讀取3D實(shí)體模型的頂點(diǎn)、邊、三角形數(shù)量,判斷其是否符合三維實(shí)體模型的歐拉公式(頂點(diǎn)數(shù)目、三角形數(shù)目、邊數(shù)目分別記為V、T、E,則三者必須滿足網(wǎng)格模型的歐拉公式:T - E+V=2 - 2H,其中H表示通孔的數(shù)目),在滿足的情況下進(jìn)入步驟B);若不滿足,提示輸入模型錯(cuò)誤;
[0035]B)建立模型的頂點(diǎn)表格Vt、三角形表格Trt (輸入的原始模型中,包含了點(diǎn)、邊、三角形信息,但是在我們的程序中,需先建立點(diǎn)和三角形的表格,然后再在其基礎(chǔ)上,生成半邊數(shù)據(jù)表格,半邊數(shù)據(jù)結(jié)構(gòu)是本發(fā)明采用的一種用于遍歷模型的工具.模型是以STL格式讀入,STL文件中包含了頂點(diǎn)和三角形信息,本算法只需再此基礎(chǔ)上建立半邊數(shù)據(jù)表格)。在建立頂點(diǎn)數(shù)據(jù)表時(shí),按照頂點(diǎn)坐標(biāo)的X坐標(biāo)值升序排列頂點(diǎn),若X坐標(biāo)相等,則按照Y坐標(biāo)值排列。
[0036]頂點(diǎn)表格Vt中存儲(chǔ)了各頂點(diǎn)ID,頂點(diǎn)XYZ坐標(biāo)值,頂點(diǎn)ID依據(jù)頂點(diǎn)排列次序分別命名為1,2,……;三角形表格Trt中存儲(chǔ)了三角片ID,以及該三角片對(duì)應(yīng)的三個(gè)頂點(diǎn)的ID,三角片ID按照模型三角面片的導(dǎo)入順序依次命名為1,2,……;
[0037]C)遍歷頂點(diǎn)表格和三角形表格,建立半邊數(shù)據(jù)表HEt ;如圖2,對(duì)于任意三角形 tri I,包含3條按照逆時(shí)針順序排列的半邊HE,每條半邊HE在該三角形中對(duì)應(yīng)一個(gè)頂點(diǎn)O,以及2個(gè)端點(diǎn)vl和v2。按照vl和v2的坐標(biāo)值以升序排列所有半邊,找出擁有相同端點(diǎn)vl和v2的邊e4,即為el的逆半邊,表示為el.r。如表格所示為建立的半邊數(shù)據(jù)表格示例?;谠摪脒厰?shù)據(jù)結(jié)構(gòu),模型中的任意頂點(diǎn)、邊和三角形可以被快速查詢,極大地提高了算法的運(yùn)算效率。
[0038]
【權(quán)利要求】
1.一種用于面曝光增材成型的3D模型的切片及投影面生成方法,其特征在于,包括以下步驟: A)輸入三維實(shí)體模型的文件,讀取文件中包含的模型的頂點(diǎn)、邊、三角形數(shù)量信息,判斷其是否符合三維實(shí)體模型的歐拉公式,在滿足的情況下進(jìn)入步驟B);若不滿足,提示輸入模型錯(cuò)誤; B)建立模型的頂點(diǎn)表格Vt、三角形表格Trt; C)遍歷頂點(diǎn)表格和三角形表格,建立半邊數(shù)據(jù)表HEt; E)設(shè)定顯示圖片的像素值,根據(jù)加工設(shè)備平臺(tái)大小,獲取像素點(diǎn)和實(shí)體實(shí)際尺寸的轉(zhuǎn)換關(guān)系; F)完成實(shí)體模型的顯示,將模型的最低面置于空間坐標(biāo)系的χ-y平面,通過(guò)一系列的旋轉(zhuǎn)、平移,使模型位于最佳加工位置; G)沿z軸負(fù)方向一個(gè)單位的位置建立一個(gè)虛擬平面,稱之為切片基層,在切片基層上計(jì)算空間射線; H)從模型最底層開始,以層厚thickness為增量,至包圍盒最頂端,逐層判斷圖形像素點(diǎn)是否位于模型內(nèi)部:每層切片圖形的初始像素值設(shè)為黑色;在第η層上,層高為Ζη=η X thickness,遍歷包圍盒的像素邊界中的每個(gè)像素射線,若該層高值處于射線交點(diǎn)序列的有效區(qū)段內(nèi),則該點(diǎn)處于模型內(nèi)部,應(yīng)設(shè)為白色像素點(diǎn);否則為黑色像素點(diǎn); I)對(duì)處于支撐圓柱體中心處的像素點(diǎn),判斷其Z坐標(biāo)所處的射線交點(diǎn)序列的區(qū)段,進(jìn)而判斷該像素點(diǎn)是否為支撐。
2.根據(jù)權(quán)利要求1所述的用于面曝光增材成型的3D模型的切片及投影面生成方法,其特征在于:步驟A)中,所述文件是STL文件;步驟B)中,在建立頂點(diǎn)數(shù)據(jù)表時(shí),按照頂點(diǎn)坐標(biāo)的X坐標(biāo)值升序排列頂點(diǎn),若X坐標(biāo)相等,則按照Y坐標(biāo)值排列;頂點(diǎn)表格Vt中存儲(chǔ)了各頂點(diǎn)ID,頂點(diǎn)XYZ坐標(biāo)值,頂點(diǎn)ID依據(jù)頂點(diǎn)排列次序分別命名為1,2,……;三角形表格Trt中存儲(chǔ)了三角形ID,以及該三角形對(duì)應(yīng)的三個(gè)頂點(diǎn)的ID,三角形ID按照模型STL文件中的三角形的導(dǎo)入順序依次命名為1,2,......。
3.根據(jù)權(quán)利要求1所述的用于面曝光增材成型的3D模型的切片及投影面生成方法,其特征在于:G)中建立的射線的變量包含交點(diǎn)序列zvalues、穿透的三角片ID。
4.根據(jù)權(quán)利要求1所述的用于面曝光增材成型的3D模型的切片及投影面生成方法,其特征在于:H)中利用射線交點(diǎn)序列快速判斷圖形像素值;其中,根據(jù)層高z判斷其所在的區(qū)間段。
5.根據(jù)權(quán)利要求1所述的用于面曝光增材成型的3D模型的切片及投影面生成方法,其特征在于:步驟C)中,對(duì)于任意三角形triI,包含3條按照逆時(shí)針順序排列的半邊HE,每條半邊HE在該三角形中對(duì)應(yīng)一個(gè)頂點(diǎn)O,以及2個(gè)端點(diǎn)vl和v2;按照vl和v2的坐標(biāo)值以升序排列所有半邊,找出擁有相同端點(diǎn)vl和v2的邊e4,即為el的逆半邊,表示為el.r。
6.根據(jù)權(quán)利要求1所述的用于面曝光增材成型的3D模型的切片及投影面生成方法,其特征在于:還包括步驟D):模型的顯示和渲染,模型的顯示基于開源的OpenGL,渲染方法采用Phong著色法。
7.根據(jù)權(quán)利要求1所述的用于面曝光增材成型的3D模型的切片及投影面生成方法,其特征在于:步驟F)中,所述最佳加工位置位于圖形及加工平臺(tái)的中心,即:讓模型最底面的中心點(diǎn),位于加工平臺(tái)的中心。
8.根據(jù)權(quán)利要求3所述的用于面曝光增材成型的3D模型的切片及投影面生成方法,其特征在于:步驟G)中,在切片基層上計(jì)算空間射線分別有如下幾個(gè)步驟: Gl)計(jì)算實(shí)體模型的包圍盒坐標(biāo),包圍盒指能夠包圍實(shí)體模型的最小的長(zhǎng)方體,作為整個(gè)空間射線計(jì)算的邊界Xmin, Xmax, Ymin, Ymax ; G2)該虛擬平面的z坐標(biāo)值存儲(chǔ)為各像素點(diǎn)對(duì)應(yīng)的射線的初始邊界點(diǎn); G3)遍歷實(shí)體模型的所有三角片,提取其包圍盒邊界坐標(biāo),利用步驟E)中所得的像素實(shí)體尺寸轉(zhuǎn)換關(guān)系獲得三角形邊界Xmin, Xmax, Ymin, Ymax對(duì)應(yīng)的像素值,標(biāo)記位于該像素邊界中的所有像素點(diǎn)對(duì)應(yīng)的射線,保存該三角片的ID于射線中,并將射線類中記錄其穿過(guò)包圍盒的三角形個(gè)數(shù)的變量Tri_num增加I ; G4)遍歷虛擬平面上各像素點(diǎn)的空間射線,提取出G3)獲得的三角形ID,將射線與保存其中的三角形逐個(gè)求交,并判斷該交點(diǎn)是否位于三角片中,舍棄不在三角片內(nèi)的交點(diǎn),保存位于三角片或邊界上的交點(diǎn),形成該射線與實(shí)體模型的交點(diǎn)序列zvalues ; G5)剔除序列zvalues中的重復(fù)點(diǎn),按照Z(yǔ)坐標(biāo)由小到大排序。
9.根據(jù)權(quán)利要求1所述的用于面曝光增材成型的3D模型的切片及投影面生成方法,其特征在于:步驟I)中,支撐的分布由用戶自行定義,至少包括如下的分布模式:半徑為R的支撐圓柱體形成的間距為d的矩形陣列。
10.根據(jù)權(quán)利要求1所述的用于面曝光增材成型的3D模型的切片及投影面生成方法,其特征在于:還采用多通道抗鋸齒算法消除射線求解帶來(lái)的鋸齒影響,所述多通道過(guò)濾器為
{-0.52,0.38,0.128,
`0.41,0.56,0.119,
`0.27,0.08,0.294,
-0.17,-0.29,0.249,
`0.58,-0.55,0.104,
-0.31,-0.71,0.106}。
【文檔編號(hào)】G06F17/50GK103761397SQ201410037525
【公開日】2014年4月30日 申請(qǐng)日期:2014年1月26日 優(yōu)先權(quán)日:2014年1月26日
【發(fā)明者】張靖, 金良, 宋軒, 王彬, 潘亞月 申請(qǐng)人:張靖, 金良, 宋軒, 王彬, 潘亞月