3D列印技術之切片引擎(5)

2022-07-08 07:57:06 字數 1895 閱讀 5452

【此系列文章基於熔融沉積( fused depostion modeling, fdm )成形工藝】

從這一篇文章開始,就開始說填充。在3d列印切片技術中,填充演算法是最核心的部分。3d列印技術的經常使用的指標包含:列印速度,穩固性,柔韌性,逼真度,密度(關係著使用列印材料的多少)。都與填充演算法有著直接的關係。能夠說衡量乙個切片引擎的優劣主要看它的填充演算法是否優越。

事實上我開始研發切片引擎的時候,因為不是全部的模型列印都須要支撐,並且針對邊界的分層技術又比較easy實現,所曾經面的演算法開發時間非常短,大部分時間耗在了填充演算法的研究上。也就是填充演算法的不斷優化使得我的引擎的列印質量不斷的接近於skeinforge。

填充演算法是乙個世界難題。眼下世界上最先進的填充演算法也還是問題多多。怎樣最優化的填充使得模型兼顧穩固逼真,並且密度小,列印速度快。這不是簡單的二維幾何填充所能做的到的。我大學的專業是臨床醫學。記得人體解剖學中提到過的骨小梁結構,事實上才是最合理的填充方式,可是怎樣用數學實現骨小梁。任重而道遠啊。

行,立即進入正題。在這一篇文章裡,我就先說一下填充演算法中最簡單的一種——線填充。

首先。須要引用計算機圖形學二維圖形的掃瞄線填充演算法。例如以下圖:

簡單的描寫敘述:射線與多邊形相交,與邊界交點個數為奇數。為內點。偶數為外點或者邊界點。可是。還有幾種特殊情況須要特殊處理:每當一條掃瞄線經過多邊形的乙個頂點時,掃瞄線在該頂點處與多邊形的兩條邊相交,這種情況可能導致在這條掃瞄線的交點列表上要新增兩個點。

當掃瞄線與奇數邊相交時,這時候須要把掃瞄線與兩側的有公共交點的線的交點算作乙個交點。

例如以下圖b線:

另外。還有邊界線與掃瞄線重合的情況,須要全然規避掉。

對於最簡單的線填充,掌握這個原理基本就沒有問題了。所須要注意的就是上下兩層不能同一方向的填充,避免列印的模型不穩定,能夠考慮採用依次採用x軸平行的方向和y軸平行的方向。這樣用一組等間距的平行線掃瞄,採用上述的演算法。最簡單的線填充就完畢了。

但這種線填充會引出乙個問題,回想一下在第一講中說到的——乙個成功的切片引擎應該滿足的幾點,這種填充儘管看似基本滿足要求。但絕大多數情況在這幾點上做的非常不夠,尤其是某一層是個狹長的結構。每一行的掃瞄線就非常的短,印表機就走走停停,不斷的更換列印方向。列印速度受到極大的影響,更重要的是掃瞄線對邊界衝擊次數太多。肯定要影響到表面的效果,影響美觀。並且頻繁的走走停停,更換方向,對機器的壽命也是極大的消耗。

能夠考慮這種解決方式,第一步:把某一層的二維圖形切割成若干個凸集或者近似凸集。第二步,對每個凸集進行主元分析。

第三步,利用得到的主元方向。先把

x軸或者

y軸變換到與主元平行的方向,這裡如果該線性變換為

m,利用上述的演算法進行填充,然後再利用m−

1變換回原來的位置。

主元分析是利用協方差矩陣確定邊界向量的主元向量。這裡的點是二維,可簡單表示: μx

=12n

∑i=1

n(be

ginp

oint

xi+e

ndpo

intx

i)當中be

ginp

oint

xi為第i

個邊界向量的起始向量的

x分量,en

dpoi

ntxi

為第i個邊界向量的結束向量的

x分量;

y分量以此類推。

以下就開始構造協方差矩陣c,

c的第j行第

k列元素例如以下(1⩽

j,k⩽

2): ck

j=12

n

3D列印技術之切片引擎(5)

此系列文章基於熔融沉積 fused depostion modeling,fdm 成形工藝 從這一篇文章開始,就開始說填充。在3d列印切片技術中,填充演算法是最核心的部分。3d列印技術的經常使用的指標包含 列印速度,穩固性,柔韌性,逼真度,密度 關係著使用列印材料的多少 都與填充演算法有著直接的關係...

3D列印技術之切片引擎(4)

此系列文章基於熔融沉積 fused depostion modeling,fdm 成形工藝 這一篇文章我講一下多邊列印的問題,多邊列印是切片引擎的一項關鍵的技術。圖1 雙邊列印 首先,它可以保證列印實體表面免受內部填充的衝擊,保證外觀的真實度 其次,在上層在相對於下層傾斜較大時,多邊列印可以很好的起...

3D列印技術之切片引擎(4)

此系列文章基於熔融沉積 fused depostion modeling,fdm 成形工藝 這一篇文章我講一下多邊列印的問題,多邊列印是切片引擎的一項關鍵的技術。圖1 雙邊列印 首先。它能夠保證列印實體表面免受內部填充的衝擊,保證外觀的真實度 其次,在上層在相對於下層傾斜較大時。多邊列印能夠非常好的...