• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于VS2008的3D打印切片算法研究

    2013-12-05 08:13:32柴微等
    關(guān)鍵詞:面片字節(jié)交點(diǎn)

    柴微等

    【摘 要】針對3D打印機(jī)工作時(shí)所需的STL文件,設(shè)計(jì)了一種無需三角形面片法向量信息的切片算法,采用垂直軸與切平面的空間平面信息進(jìn)行切片運(yùn)算,并對切片過程中產(chǎn)生的錯(cuò)誤數(shù)據(jù)進(jìn)行了分析,在VS2008環(huán)境中實(shí)現(xiàn)了對STL文件的切片。研究結(jié)果表明,此種切片算法,經(jīng)過對錯(cuò)誤信息的處理可以得到片層的完整閉合輪廓信息,切片效率高。

    【關(guān)鍵詞】3D打?。籗TL;切片算法;VS2008

    0.引言

    3D打印是將Solidworks或CAD等其它三維設(shè)計(jì)軟件設(shè)計(jì)的三維模型直接打印成真實(shí)物體。3D打印源于快速成型理念,它將所要打印的物體從底層開始,按照一定的層厚,一層一層堆疊起來,最終形成完整的物體。首先,由三維設(shè)計(jì)軟件設(shè)計(jì)物體結(jié)構(gòu),然后將所設(shè)計(jì)的物體存儲(chǔ)為STL格式,其次,計(jì)算機(jī)讀入STL文件,將得到的文件數(shù)據(jù)運(yùn)用一定的切片算法進(jìn)行切片運(yùn)算,得到每一層的完整輪廓,再次,根據(jù)得到的輪廓信息,對輪廓進(jìn)行填充與路徑規(guī)劃,最后,將得到的路徑信息轉(zhuǎn)化為實(shí)際的電機(jī)控制量,通過電機(jī)驅(qū)動(dòng)執(zhí)行機(jī)構(gòu)實(shí)現(xiàn)3D打印。從3D打印的過程中可以看出,對STL文件進(jìn)行切片是實(shí)現(xiàn)3D打印功能的關(guān)鍵,完整正確的切片輪廓是后續(xù)計(jì)算的前提,它的精度直接決定了打印真實(shí)物體的精度。針對STL文件的切片技術(shù)國內(nèi)外有很多算法[1-5]。每種算法都有自己的優(yōu)缺點(diǎn),本文采用的算法所需的數(shù)據(jù)量小,效率高,針對不同的物體能得到任何高度的完整輪廓信息。

    1.STL文件概述

    應(yīng)用于3D打印的文件有多種文件格式,由于STL文件結(jié)構(gòu)簡單,多數(shù)三維設(shè)計(jì)軟件都可以將設(shè)計(jì)的三維實(shí)物直接存儲(chǔ)成STL文件,使得STL格式文件被廣泛應(yīng)用。

    STL文件有兩種格式:二進(jìn)制格式與ASCII碼格式。無論是哪種格式,存儲(chǔ)的信息都是三角形的三個(gè)頂點(diǎn)與法向量。無數(shù)個(gè)這樣的三角形面片構(gòu)成了一個(gè)完整的STL文件。即三維實(shí)體。

    二進(jìn)制格式的STL文件格式如下:

    零件名 三角形個(gè)數(shù) 三角形面片信息

    其中零件名占80字節(jié),三角形個(gè)數(shù)占4字節(jié),每個(gè)三角形面片信息占50字節(jié)。三角形面片信息包含12字節(jié)的法向量、36字節(jié)的坐標(biāo)、2字節(jié)的屬性項(xiàng)。

    ASCII碼格式的STL文件格式如下:

    solid 文件名

    facet normal nx,ny,nz

    outer loop

    vertex V1x,V1y,V1z

    vertex V2x,V2y,V2z

    vertex V3x,V3y,V3z

    endloop

    endfacet

    ..............................

    endsolid

    ASCII碼格式的文件第一行是文件名,第二行是三角形法向量,第四行到第六行是三角形的三個(gè)頂點(diǎn)。二進(jìn)制格式的STL文件所占用的內(nèi)存小,ASCII碼格式的STL文件可讀性強(qiáng)。本文是對ASCII碼格式的STL文件操作。

    2.基于VS2008切片算法實(shí)現(xiàn)

    2.1切片算法基本思想

    本文設(shè)計(jì)的算法無需三角形面片法向量計(jì)算,只需根據(jù)設(shè)定的層厚,逐層計(jì)算與切平面的交點(diǎn),求得兩個(gè)交點(diǎn)坐標(biāo),將切平面與所有三角形面片計(jì)算得到的交點(diǎn)存儲(chǔ)到數(shù)組中,將得到的交點(diǎn)坐標(biāo)按照一定的順序重新存儲(chǔ),形成有序的實(shí)數(shù)對以供后續(xù)處理。

    2.2切片算法實(shí)現(xiàn)步驟

    以VS2008為開發(fā)環(huán)境,實(shí)現(xiàn)步驟如下:

    STEP1:解析STL文件,獲取各個(gè)三角形頂點(diǎn)坐標(biāo)信息。

    STEP2:指定層厚為LYAYETHICK,第一層高度為k*LYAYETHICK.k=1.遍歷所有三角形,將與平面z=k*LYAYETHICK相交的三角形存儲(chǔ)在一個(gè)數(shù)組中。

    STEP3:找到第一個(gè)與平面z相交的三角形,求出交點(diǎn)坐標(biāo),并標(biāo)記此三角形flag=1,表示此三角形已經(jīng)被處理過,本層不在處理。

    STEP4:相鄰兩個(gè)三角形只能共有一條邊和兩個(gè)頂點(diǎn),利用三角形鄰邊關(guān)系找到與此三角形相鄰的三角形,并求與平面z的交點(diǎn)坐標(biāo),并標(biāo)記此三角形flag=1。

    求交點(diǎn)公式:

    x=(x-x)+x (1)

    y=(y-y)+y (2)

    ZP=z (3)

    其中:三角形一個(gè)頂點(diǎn)為(x,y,z),另一個(gè)頂點(diǎn)為(x,y,z)。

    STEP5:以此類推直到遍歷完本層所有三角形。

    STEP6:若回到第一個(gè)三角形后,本層還有剩余的三角形沒有被標(biāo)記1,說明本層不止一個(gè)輪廓,還有其他輪廓,需要找到另一個(gè)輪廓的第一個(gè)三角形,然后重復(fù)STEP3到STEP5。

    STEP7:k=k+1,求新的平面z,重復(fù)STEP3到STEP6,直到z大于STL文件中零件的高度。

    STEP8:處理各層得到的交點(diǎn),消除間距過小、間距過大及非法數(shù)據(jù)等,得到完整的切片輪廓。

    3.切片輪廓錯(cuò)誤數(shù)據(jù)分析

    完整正確的輪廓數(shù)據(jù)是后續(xù)進(jìn)行路徑規(guī)劃及運(yùn)動(dòng)控制的關(guān)鍵因素。然而在三維繪圖或?qū)⑷S繪圖軟件所繪制的物體存儲(chǔ)成STL文件過程中會(huì)產(chǎn)生錯(cuò)誤的三角形鄰接關(guān)系。最終導(dǎo)致計(jì)算出的輪廓不閉合、偏差大等現(xiàn)象。常見的錯(cuò)誤如下:

    (1)一個(gè)三角形的一條邊被另外兩個(gè)三角形所共有。

    (2)切平面z經(jīng)過三角形的一個(gè)頂點(diǎn)或一條邊。

    (3)幾個(gè)三角形面片圍成的區(qū)域形成一個(gè)缺陷區(qū)域。

    以上幾點(diǎn)都將導(dǎo)致找不到下一個(gè)鄰接的三角形,從而產(chǎn)生錯(cuò)誤隨機(jī)數(shù)據(jù),需要將切平面z適當(dāng)?shù)姆糯蠡蚩s小。

    (4)在切片計(jì)算過程中會(huì)產(chǎn)生INF0和IND0的數(shù)據(jù)點(diǎn)。在VS2008中用_finite()與_isnan()函數(shù)來消除非法的INF0與IND0數(shù)據(jù)

    (5)對于曲率變換較大的零件,經(jīng)常會(huì)出現(xiàn)曲率過度時(shí)導(dǎo)致輪廓丟點(diǎn)不閉合,需要人為附加點(diǎn),使輪廓形成完整的閉合輪廓,以便后續(xù)進(jìn)行輪廓填充。

    4.數(shù)據(jù)分析

    跟據(jù)本文所設(shè)計(jì)的算法,在VS2008中進(jìn)行試驗(yàn)分析。對一個(gè)直徑為50mm壁厚2mm的空心球體進(jìn)行切片分層,層厚為0.3mm,共有166層,三角形個(gè)數(shù)為19842個(gè),切片耗時(shí)2s。切片效率很高。從仿真過程中可以看到,經(jīng)過一系列錯(cuò)誤數(shù)據(jù)處理后能得到完整的輪廓。

    5.結(jié)論

    本文設(shè)計(jì)的切片算法切片速度快,能夠處理多種原因產(chǎn)生的錯(cuò)誤數(shù)據(jù),處理錯(cuò)誤數(shù)據(jù)能力強(qiáng),經(jīng)過輪廓閉合處理后,消除大量冗余數(shù)據(jù),補(bǔ)償丟失數(shù)據(jù),能得到完成的片層輪廓。

    【參考文獻(xiàn)】

    [1]黃新華,孫琨,方亮等.STL模型的分層輪廓數(shù)據(jù)優(yōu)化算法[J].機(jī)械科學(xué)與技術(shù),2004,23(5):605~607.

    [2]胡德洲,李占利,李滌塵等.基于STL模型幾何特征分類的快熟分層處理算法研究[J].西安交通大學(xué)學(xué)報(bào),2000,34(1):37~41.

    [3]牟小云,鄭建明,田靜云.基于坐標(biāo)分層的STL模型切片算法的研究[J].機(jī)床與液壓,2008(36):52~54.

    [4]趙吉賓,劉偉軍.快速成型技術(shù)中基于STL模型的分層算法研究[J].應(yīng)用基礎(chǔ)與工程科學(xué)學(xué)報(bào),2008(16):224~233.

    [5]趙吉賓,劉偉軍,王超越.STL文件的錯(cuò)誤檢測與修復(fù)算法研究[J].計(jì)算機(jī)應(yīng)用,2003,23(2):32~34.

    猜你喜歡
    面片字節(jié)交點(diǎn)
    No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
    初次來壓期間不同頂板對工作面片幫影響研究
    No.10 “字節(jié)跳動(dòng)手機(jī)”要來了?
    閱讀理解
    簡談MC7字節(jié)碼
    借助函數(shù)圖像討論含參數(shù)方程解的情況
    試析高中數(shù)學(xué)中橢圓與雙曲線交點(diǎn)的問題
    甜面片里的人生
    幸福家庭(2016年3期)2016-04-05 03:47:08
    青海尕面片
    老伴逼我搟面片
    扎兰屯市| 安多县| 宝丰县| 兴山县| 平顶山市| 阿鲁科尔沁旗| 淳化县| 平顶山市| 万安县| 荥经县| 逊克县| 区。| 防城港市| 邢台市| 犍为县| 蚌埠市| 邢台市| 贵州省| 昌黎县| 南陵县| 濮阳县| 郎溪县| 松溪县| 旅游| 库尔勒市| 六盘水市| 吉安县| 云安县| 庆云县| 柘荣县| 会理县| 仁寿县| 庆城县| 铜梁县| 莲花县| 香港| 嫩江县| 米林县| 龙泉市| 河东区| 新余市|