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

?

防止3D打印模型特征偏移的自適應(yīng)分層方法

2020-02-24 07:31王德鵬田曉青
關(guān)鍵詞:層高頂點(diǎn)平面

韓 江, 王德鵬, 夏 鏈, 田曉青

(合肥工業(yè)大學(xué) 機(jī)械工程學(xué)院,安徽 合肥 230009)

增材制造也稱(chēng)快速成型(rapid prototyping,RP)或3D打印,是用CAD設(shè)計(jì)并將材料逐層累加制造實(shí)體零件的技術(shù)[1]。先用CAD設(shè)計(jì)或反向工程獲取三維模型,并轉(zhuǎn)為格式簡(jiǎn)單、通用性好的STL格式;然后在選定的分層方向上,用不同高度的平面與模型相交,獲得一系列的輪廓信息;再根據(jù)輪廓信息,確定打印路徑及其他工藝參數(shù),控制打印機(jī)將材料從低到高逐層堆積粘結(jié),最后形成三維實(shí)體。3D打印加工過(guò)程以每層截面形狀為底,以切片厚度為高的柱體累加形成,因此在加工傾斜表面時(shí)會(huì)產(chǎn)生階梯效應(yīng),與實(shí)際模型輪廓有一定誤差,分層處理作為3D打印的核心步驟會(huì)直接影響加工件表面質(zhì)量及加工效率[2]。

基于STL格式的分層方法主要有等厚分層和自適應(yīng)分層[3]。等厚分層層厚固定,較小層厚可獲得高表面質(zhì)量,但也會(huì)降低加工效率[4];自適應(yīng)分層層厚不固定,而由模型幾何形狀和機(jī)器能力決定[5],因此自適應(yīng)分層能提高工件精度。對(duì)簡(jiǎn)單模型自適應(yīng)分層比等厚分層得到的層數(shù)少,加工效率更高,因此在3D打印分層中被廣泛應(yīng)用[5-9]。文獻(xiàn)[5]提出了一種改進(jìn)的、魯棒的等高線結(jié)構(gòu)切片算法;文獻(xiàn)[6-7]采用一種基于自適應(yīng)層厚法向圖像的高效算法,以平衡復(fù)雜構(gòu)造實(shí)體模型切片精度和時(shí)間;文獻(xiàn)[8]將STL模型轉(zhuǎn)換為改進(jìn)邊界八叉樹(shù)數(shù)據(jù)結(jié)構(gòu),再計(jì)算分層厚度;文獻(xiàn)[9]對(duì)于具有輕微曲面形狀特征部位采用曲面分層,普通部位采用平面分層。這些算法主要研究層高和階梯誤差之間的關(guān)系,協(xié)調(diào)打印成型的精度和效率。除階梯誤差外,打印件還有模型特征偏移和丟失問(wèn)題,而關(guān)于此問(wèn)題的研究不多。在目前了解到的范圍內(nèi),僅有文獻(xiàn)[10]先用頂尖高度法對(duì)模型進(jìn)行自適應(yīng)分層,再找出可能存在特征的2個(gè)相鄰分層面,并在這2個(gè)分層面間進(jìn)行最小厚度的等厚分層。文獻(xiàn)[11]通過(guò)計(jì)算實(shí)際打印件與原模型的體積比確定每層的分層高度,并對(duì)未被切割的三角面2個(gè)相鄰分層面間進(jìn)行最小厚度的等厚分層。但兩者都只能保留模型特征,無(wú)法解決模型特征偏移問(wèn)題。因此,本文探究了已有算法無(wú)法解決模型特征偏移的原因,并給出一種有效防止模型特征偏移問(wèn)題的方法。

1 模型特征偏移分析及解決方案

1.1 模型基本特征的定義

本文討論的模型特征是指三維模型上可表征模型形狀特點(diǎn)且非平滑過(guò)渡的部分,即特征點(diǎn)、特征線和特征面[10],3種基本特征如圖1所示。

圖1 模型的3種基本特征

特征點(diǎn)在分層方向上,此點(diǎn)的高度為局部最高或最低,如圖1中7;特征線為2個(gè)夾角大于規(guī)定閾值且均不為特征面的面交線,且此交線垂直于分層方向,如圖1中1、2、5、6;特征面為垂直于分層方向的平面,如圖1中3、4。

1.2 特征丟失和偏移原因分析

模型特征的丟失和偏移是指打印實(shí)體與原三維模型相比,特征未被打印出或特征所在高度發(fā)生了偏移[10],如圖2所示。在圖2a中,實(shí)線表示圖1模型經(jīng)過(guò)特征7的橫截面輪廓,虛線表示分層平面;圖2b中,實(shí)線為打印實(shí)體相同位置的橫截面輪廓,虛線為原始模型的橫截面輪廓。從圖2a和圖2b的對(duì)比可以看出,由于分層平面沒(méi)有經(jīng)過(guò)模型特征所在高度,特征6在打印實(shí)體上直接丟失,其余特征均發(fā)生了不同程度的偏移。

圖2 模型特征的偏移和丟失

以往基于STL格式的分層算法中,等厚分層對(duì)模型高度均分;自適應(yīng)分層對(duì)已確定的上一層分層面結(jié)合定義的特定閾值來(lái)確定下一層分層平面的高度。這2類(lèi)方法都無(wú)法確保分層平面經(jīng)過(guò)模型特征。文獻(xiàn)[10-11]雖然考慮了模型特征,但僅在存在特征的地方進(jìn)行等厚細(xì)分,分層平面不保證經(jīng)過(guò)模型特征,導(dǎo)致偏移。因此打印件除特殊情況外(如模型特征比較少且高度正好與分層面高度重合),其特征會(huì)發(fā)生一定程度的偏移。由上述分析可知,保證分層平面經(jīng)過(guò)模型特征所在高度,才能防止特征發(fā)生偏移或丟失。因此,針對(duì)以STL格式存儲(chǔ)的三維模型,本文提出一種有效防止型特征偏移和丟失的自適應(yīng)分層方法。

1.3 特征偏移解決方案

首先識(shí)別模型特征所在的高度,得到一組有序的高度數(shù)據(jù)作為層高;對(duì)這組層高進(jìn)行調(diào)節(jié),保證每2個(gè)相鄰特征高度的間距不小于最小分層厚度;之后在每2個(gè)相鄰特征高度間采用基于頂尖高度法的自適應(yīng)分層方法確定層高;然后在所有層高處進(jìn)行切片,得到模型切片后的所有輪廓信息;最后調(diào)整所有輪廓信息所在高度。

1.3.1 模型特征高度識(shí)別方法

(1) 特征面。平行于分層平面的三角面片即特征面,當(dāng)三角面片3個(gè)頂點(diǎn)Z坐標(biāo)相同時(shí),判定此三角面為特征面,特征高度為頂點(diǎn)Z坐標(biāo)。

(2) 特征線。2個(gè)相鄰三角面片有且僅有兩者共同的2個(gè)頂點(diǎn)Z坐標(biāo)相同,并且這2個(gè)三角面片的二面角大于一定的閾值,特征高度為特征邊上某一頂點(diǎn)的Z坐標(biāo)。

(3) 特征點(diǎn)。點(diǎn)P為經(jīng)過(guò)某一頂點(diǎn)的所有三角面的公共點(diǎn),若點(diǎn)P的Z坐標(biāo)高于或低于所有過(guò)該點(diǎn)的三角面中另外2個(gè)頂點(diǎn)的Z坐標(biāo),則頂點(diǎn)P為特征點(diǎn),特征高度為頂點(diǎn)P的Z坐標(biāo)。

1.3.2 間距調(diào)節(jié)方法

3D打印機(jī)有最大和最小可打印厚度,也稱(chēng)最大和最小分層厚度。若模型在某一高度區(qū)間內(nèi)特征較為密集,則在對(duì)特征進(jìn)行識(shí)別定位后得到的一組有序的高度數(shù)據(jù)中,就可能出現(xiàn)相鄰2個(gè)高度的高度差d小于最小分層厚度hmin。由于打印是從低到高堆積而成的,較高的分層平面上的輪廓信息就無(wú)法打印,此時(shí),特征偏移無(wú)法避免,需要對(duì)這2個(gè)高度進(jìn)行調(diào)節(jié)。因此本文將在最大程度降低偏移量的原則下對(duì)高度進(jìn)行調(diào)節(jié)。

首先,為了保證打印出的模型高度不變,且第1層和最后一層可以打印,需要對(duì)有序的特征高度序列Hlist進(jìn)行預(yù)處理。方法如下:在Hlist的首部和尾部分別插入高度為0和模型最大高度的層高數(shù)據(jù)(稱(chēng)這2個(gè)層高為邊界層高);分別檢測(cè)這2個(gè)邊界層高與其相鄰層高的間距是否小于最小層厚,若小于,則調(diào)節(jié)相鄰層高,使間距等于最小層厚;重新升序排序Hlist,檢測(cè)調(diào)節(jié)后的層高與對(duì)應(yīng)邊界層高之間是否存在層高,若有,則刪去這些層高。需要說(shuō)明的是,最小層厚為打印機(jī)的最小打印厚度,調(diào)節(jié)帶來(lái)的誤差不會(huì)超過(guò)打印機(jī)本身的最小加工誤差,因此偏差可以忽略不計(jì)。

然后,對(duì)邊界層高之間的特征高度采用逐個(gè)遍歷的方法進(jìn)行檢查,查找是否存在間距小于最小層厚的2個(gè)相鄰高度,并對(duì)這2個(gè)高度進(jìn)行調(diào)節(jié)。調(diào)節(jié)方法如圖3所示,具體步驟如下:

圖3 特征高度調(diào)節(jié)

(1) 向內(nèi)合并。高度差d≤hmin/2時(shí),將兩切片層都向內(nèi)偏移d/2,即合并2個(gè)層面。

(2) 向外擴(kuò)張。高度差d>hmin/2時(shí),將兩切片層分別向外偏移|d-hmin|/2。

這2個(gè)被調(diào)節(jié)的高度上、下可能仍有其他相鄰的特征高度,可能對(duì)相鄰的2個(gè)特征高度產(chǎn)生影響。調(diào)節(jié)后的情況如圖4所示,具體步驟如下:

圖4 特征高度調(diào)節(jié)后存在的問(wèn)題

(1) 向內(nèi)合并。合并后的層高a與其相鄰的2個(gè)層高b、c的層高差d1、d2中至少1個(gè)仍小于最小分層厚度。

(2) 向外擴(kuò)張。偏移后的2個(gè)層高與各自相鄰層高c、d的層高差d1、d2中至少1個(gè)仍小于最小分層厚度。

(3) 特征高度過(guò)于密集。3個(gè)或4個(gè)連續(xù)相鄰的高度中,最高的層高與最低的層高的高度差d仍小于最小分層厚度。

為方便討論,本文以存在上述3個(gè)問(wèn)題的4個(gè)相鄰的層高(層高差小于最小層厚的2個(gè)層高以及這2個(gè)層高各自的另外1個(gè)相鄰層高)為例說(shuō)明,如圖5所示,再根據(jù)問(wèn)題進(jìn)行相應(yīng)調(diào)整。

圖5 調(diào)節(jié)后存在的問(wèn)題的解決方案

(1) 對(duì)于向內(nèi)合并問(wèn)題,若hmin≤dmax≤2hmin,則在合并中間2層層高b、c后,d1、d2均小于hmin,為了不影響其他特征高度,直接刪除合并后的層高e;若dmax≥2hmin,則在合并中間2層層高b、c后,d1、d2中只有1個(gè)小于hmin,假設(shè)為d1,調(diào)節(jié)合并后的層高,使得d1=hmin。

(2) 對(duì)于向外擴(kuò)張問(wèn)題,若dmax<3hmin,則在向外擴(kuò)張2層層高b、c后,d1、d2均小于hmin,為了不影響其他特征高度,需要調(diào)節(jié)的層高只能合并,此時(shí),向外擴(kuò)張問(wèn)題轉(zhuǎn)變?yōu)橄騼?nèi)合并問(wèn)題,按照向內(nèi)合并問(wèn)題處理方法進(jìn)行處理;若dmax≥3hmin,則在向外擴(kuò)張2層層高b、c后,d1、d2中只有1個(gè)小于hmin,假設(shè)為d1,調(diào)節(jié)擴(kuò)張后的層高b,在保持其間距為hmin的同時(shí),使得d1=hmin。

(3) 對(duì)于特征高度過(guò)于密集問(wèn)題,此時(shí)dmax

1.3.3 自適應(yīng)分層方法

為了兼顧加工件表面精度和加工效率,且在特征高度之間的模型不用考慮特征問(wèn)題,對(duì)此部分模型直接采用頂尖高度法[12]進(jìn)行自適應(yīng)分層。

頂尖高度是指實(shí)際制造零件表面與CAD模型表面的最大距離,如圖6所示。其中,BC為STL模型的三角面片;AB為打印件某一層的表面;AC為上一分層平面;h為當(dāng)前層的分層厚度;N為三角面片的法向量;Z為分層方向矢量;θ為N方向和Z方向的夾角,范圍為0~π;d為頂尖高度。對(duì)應(yīng)層高計(jì)算方法如下:

(1)

cosθ=N·Z/(|N||Z|)

(2)

圖6 頂尖高度

遍歷與分層面BC相交的所有三角面片找到最小的h,若h低于或高于可打印范圍,則將h改為最小層厚或最大層厚。再將h與分層面BC高度l相加得到當(dāng)前層分層平面高度l′=h+l。循環(huán)此步驟得到對(duì)模型自適應(yīng)分層的一系列層高。

在2個(gè)相鄰特征高度a、b間(假設(shè)b-a=d>0)自適應(yīng)分層時(shí),需注意調(diào)節(jié)間距d。當(dāng)d<2hmin時(shí),間距過(guò)小,無(wú)法進(jìn)行分層,結(jié)束對(duì)a、b間的自適應(yīng)分層。當(dāng)d≥2hmin時(shí),可以對(duì)a、b間進(jìn)行自適應(yīng)分層,但每確定一次分層平面高度時(shí),需計(jì)算當(dāng)前分層平面距b的距離d′,若小于最小分層厚度,則調(diào)節(jié)此分層平面層高,使得d′=hmin;若調(diào)節(jié)后此分層平面距上一個(gè)相鄰的分層平面的距離小于最小分層厚度,則刪除此分層平面。

2 算法整體描述

本文默認(rèn)分層方向與模型三角面片頂點(diǎn)所在的直角坐標(biāo)系Z軸正方向相同。若分層方向不同于本文默認(rèn)方向,則只需將模型所有三角面片頂點(diǎn)的三維坐標(biāo)轉(zhuǎn)換到以分層方向?yàn)閆軸正方向的直角坐標(biāo)系中,即可使用本文提出的方法。本文算法流程如圖7所示。

圖7 本文分層算法流程圖

2.1 讀取STL文件

根據(jù)STL格式讀入模型數(shù)據(jù),三角面片的頂點(diǎn)存到Point類(lèi)型中,包含了頂點(diǎn)的三維坐標(biāo);三角面片存到Face類(lèi)中,包含了頂點(diǎn)和相鄰三角面的信息。用Mesh類(lèi)表示一個(gè)STL模型,包含了所有的頂點(diǎn)信息(vector〈Point〉points)和三角面信息(vector〈Face〉faces)。

2.2 調(diào)節(jié)頂點(diǎn)Z坐標(biāo)

因?yàn)槟P蜕纤许旤c(diǎn)Z坐標(biāo)中的最小值Zmin可能不為0,而本文方法的前提是Zmin=0,所以為了保證方法的正確性,需遍歷模型的所有頂點(diǎn),若Zmin≠0,則進(jìn)行調(diào)節(jié)。調(diào)節(jié)方法如下:找到模型的Zmin,計(jì)算出偏移量Δ=0-Zmin,然后對(duì)模型所有頂點(diǎn)的Z坐標(biāo)都加上Δ。

2.3 三角面片排序

頂尖高度法需要遍歷所有與上一分層平面相交的三角平面,為了減少搜索三角面片的時(shí)間,將Mesh中的faces進(jìn)行排序,按照三角面頂點(diǎn)中最小的Z坐標(biāo)值對(duì)faces進(jìn)行升序排列,當(dāng)最小Z坐標(biāo)相同時(shí),則按照最大Z坐標(biāo)降序排列。此時(shí)只需找到faces中第1個(gè)頂點(diǎn)最小Z坐標(biāo)值小于等于給定高度,且最大Z坐標(biāo)值大于給定高度的三角面的下標(biāo)a,另外,第1個(gè)頂點(diǎn)最小Z坐標(biāo)值大于給定高度的三角面的下標(biāo)b,則faces中角標(biāo)在范圍[a,b)內(nèi)的三角面即為要找的三角面。

2.4 確定特征高度

通過(guò)遍歷一次Mesh中的faces完成對(duì)模型中所有三角面、邊、頂點(diǎn)的判定。當(dāng)遍歷到某個(gè)三角面時(shí),用1.3.1節(jié)給出的特征判定方法,對(duì)三角面、邊和頂點(diǎn)依次進(jìn)行特征面、特征線、特征點(diǎn)的判定,若其中一個(gè)判定為真,則不進(jìn)行后續(xù)的判定;若得到的特征高度不在特征高度序列Hlist中,則將其存入Hlist中。循環(huán)此過(guò)程,直到遍歷結(jié)束。最后,對(duì)序列Hlist進(jìn)行升序排序。

2.5 特征高度間距調(diào)節(jié)

首先按1.3.2節(jié)的方法對(duì)有序特征高度序列Hlist進(jìn)行預(yù)處理;然后開(kāi)始遍歷Hlist,依次找出間距小于最小分層厚度的2個(gè)相鄰高度及其各自另外相鄰的2個(gè)高度,計(jì)算出dmax,并判定是需要進(jìn)行向內(nèi)合并還是向外擴(kuò)張操作;根據(jù)判定結(jié)果和dmax,判斷這2個(gè)相鄰的特征高度再進(jìn)行向內(nèi)合并或向外擴(kuò)張后,是否會(huì)對(duì)各自相鄰高度產(chǎn)生影響,若有影響,則按照1.3.2節(jié)方法進(jìn)行調(diào)節(jié)。

2.6 自適應(yīng)分層

在調(diào)節(jié)后的序列Hlist中依次取出2個(gè)相鄰高度,并對(duì)這2個(gè)高度間的模型采用1.3.3節(jié)方法進(jìn)行自適應(yīng)分層。將所有自適應(yīng)分層得到的高度和序列Hlist存入新的序列H并對(duì)其升序排序。

2.7 切片

按順序從高度序列H中取出一個(gè)高度值,在Mesh中的faces里找出與此高度分層平面相交的所有三角面,計(jì)算每個(gè)三角面與此分層面的交線段,將這些線段首尾相連,即得到此層的輪廓信息。重復(fù)此過(guò)程,直到高度序列H中的高度全部被取出,則獲得此模型切片后的所有輪廓信息。

2.8 調(diào)整輪廓信息高度

在實(shí)際打印時(shí),打印出的實(shí)際層高會(huì)存在高度誤差,因此需對(duì)每層輪廓的高度增加偏移量以降低誤差。每層的偏移量為Δh=Δhc+ΔhZ,其中,Δhc為3D打印工藝和材料特性造成的高度偏差;ΔhZ為3D打印機(jī)Z軸精度造成的高度偏差。

3 實(shí)驗(yàn)與分析

使用C++語(yǔ)言在Visual Studio 2017開(kāi)發(fā)環(huán)境下實(shí)現(xiàn)本文所述方法的仿真實(shí)驗(yàn),因?yàn)槭欠抡鎸?shí)驗(yàn),所以未進(jìn)行算法的最后一步。最大和最小分層厚度根據(jù)實(shí)際機(jī)器的精度給定,頂尖高度和特征線的閾值根據(jù)用戶需求給定。選取5個(gè)模型,分別用等厚分層、頂尖高度法的自適應(yīng)分層和本文改進(jìn)的自適應(yīng)分層方法進(jìn)行分層,最大和最小分層厚度分別為0.1、0.5 mm,頂尖高度設(shè)定為0.1 mm,特征線閾值取30°。為了使等厚分層產(chǎn)生的模型特征偏移量達(dá)到最小,等厚分層的厚度為0.1 mm。仿真分層結(jié)果見(jiàn)表1所列。

表1 3種分層方法的分層數(shù)結(jié)果

模型1分別用3種分層方法得到了切片仿真結(jié)果。分別將3種分層方法得到的輪廓信息存入SLC格式文件中;再分別將這3個(gè)文件與原始模型的STL文件一同導(dǎo)入Materialise Magics軟件中,并使模型的坐標(biāo)系與輪廓的坐標(biāo)系完全重合;最后,測(cè)量得到模型特征的偏移量。選取模型1左下角處的特征進(jìn)行比較,特征偏移量見(jiàn)表2所列。模型1的3種分層法切片結(jié)果如圖8所示,左下角處特征偏移比較如圖9所示。

表2 3種分層方法的偏移量 mm

從圖8和表1可以看出,自適應(yīng)分層和本文方法得到的層數(shù)相近,且均少于等厚分層層數(shù);而特征高度數(shù)較多時(shí),本文方法得到的層數(shù)比自適應(yīng)分層少。這時(shí)由于本文方法為保證打印特征處的輪廓而使用1.3.3節(jié)中的自適應(yīng)分層算法及高度調(diào)節(jié)法,可能會(huì)刪除低于特征高度的相鄰分層面,但只會(huì)刪除1個(gè),且刪除后特征高度與較低的相鄰分層面的高度差不會(huì)超過(guò)2倍的最小分層厚度,誤差可以忽略不計(jì)。

圖8 模型1的3種分層方法比較

從圖9和表2可以看出,等厚分層和自適應(yīng)分層在這5個(gè)特征處均產(chǎn)生一定偏移,而本文方法只在特征4處發(fā)生了細(xì)微偏移。這是由于特征4為特征線,其相鄰三角面的夾角小于給定的閾值30°而沒(méi)有被識(shí)別出,因而可以根據(jù)精度需求,減小閾值,提高識(shí)別率。因此,本文方法能有效防止模型偏移和丟失,保證加工精度的同時(shí)減少分層層數(shù),提高加工效率。

圖9 模型1的3種分層方法特征偏移比較

4 結(jié) 論

本文提出了一種改進(jìn)的自適應(yīng)分層算法,在保證工件表面質(zhì)量和減少分層層數(shù)的同時(shí),能有效防止模型特征偏移和丟失。以5個(gè)STL模型為例,對(duì)比了3種分層方法的結(jié)果,包括等厚分層、自適應(yīng)分層和本文改進(jìn)方法,結(jié)果表明了本文方法的有效性。本文方法簡(jiǎn)單、處理高效,可處理加工精度要求較高的工件,具有實(shí)用性。

猜你喜歡
層高頂點(diǎn)平面
房屋買(mǎi)賣(mài)合同中層高糾紛涉及的法律問(wèn)題
過(guò)非等腰銳角三角形頂點(diǎn)和垂心的圓的性質(zhì)及應(yīng)用(下)
過(guò)非等腰銳角三角形頂點(diǎn)和垂心的圓的性質(zhì)及應(yīng)用(上)
玩轉(zhuǎn)高考真題——平面解析幾何篇
立體幾何基礎(chǔ)訓(xùn)練A卷參考答案
大火災(zāi)
參考答案
土地增值稅清算過(guò)程中房產(chǎn)開(kāi)發(fā)成本分?jǐn)偡椒ū容^
數(shù)學(xué)問(wèn)答
平面和立體等
新河县| 米林县| 西乡县| 连城县| 尉犁县| 乌恰县| 同仁县| 腾冲县| 潼南县| 扎兰屯市| 云龙县| 永康市| 兴安盟| 定边县| 石狮市| 毕节市| 利辛县| 邻水| 岳池县| 澜沧| 铜山县| 炎陵县| 开远市| 阿勒泰市| 颍上县| 海盐县| 瑞安市| 怀宁县| 旌德县| 博客| 佛山市| 克东县| 平罗县| 汶上县| 静海县| 揭阳市| 大安市| 雷波县| 介休市| 九江市| 山东省|