Pango的支撐算法我會(huì)在以后專文介紹。順帶一說(shuō),CuraEngine在下半年做了很大的改動(dòng),其中之一就是拋棄了之前的支撐算法,而新的算法也和我上面所講的思想異曲同工。我要聲明的是Pango的支撐算法和CuraEngine誰(shuí)也沒(méi)有抄誰(shuí),我的算法是自己拍腦袋想出來(lái)的。算是英雄所見略同吧。
支撐范圍確定之后,也和組件一樣,可以有外墻、內(nèi)墻、填充、表面。依樣畫葫蘆即可。CuraEngine對(duì)于支撐,只會(huì)生成外墻和填充,Pango更多。
組件和支撐就是CuraEngine在這一步所生成的結(jié)果,這一步可以說(shuō)是整個(gè)切片過(guò)程的核心,更詳細(xì)的過(guò)程會(huì)另文分析,敬請(qǐng)期待。
地圈好了,就該在里面種菜了。這一步路徑生成就要開始規(guī)劃噴頭在不同的組件中怎么運(yùn)動(dòng)。路徑按大類來(lái)分,有輪廓和填充兩種。
輪廓很簡(jiǎn)單,沿著2D圖形的邊線走一圈即可。前一步所生成的外墻、內(nèi)墻都屬于輪廓,可以直接把它們的圖形以設(shè)置里的線寬轉(zhuǎn)換為輪廓路徑。
填充稍微要復(fù)雜一些,2D圖形指定的只是填充的邊界,而生成的路徑則是在邊界的范圍內(nèi)的條紋或網(wǎng)格結(jié)構(gòu),就像窗簾或者漁網(wǎng),如左圖。這兩種就最基本的結(jié)構(gòu),當(dāng)然也許你還可以想出其它花式的填充,比如蜂窩狀或者S型,這些在新的Cura或者別的什么切片軟件里可能會(huì)實(shí)現(xiàn),但我打印下來(lái)還是這兩種基本結(jié)構(gòu)更讓人放心。
CuraEngine在專家設(shè)置里可以對(duì)填充類型進(jìn)行選擇,里面除了條紋和網(wǎng)格外還有一個(gè)自動(dòng)選項(xiàng),默認(rèn)就是自動(dòng)。自動(dòng)模式會(huì)根據(jù)當(dāng)前的填充率進(jìn)行切換,當(dāng)填充率小于20%就用條紋填充,否則使用網(wǎng)格填充。因?yàn)榫W(wǎng)格結(jié)構(gòu)雖然更為合理,但它有一個(gè)問(wèn)題,就是交點(diǎn)的地方會(huì)打兩次。填充率越高,交點(diǎn)越密,對(duì)打印質(zhì)量的影響會(huì)越大。我們知道,表面就是100%的填充,如果表面用網(wǎng)格打,不但無(wú)法打密實(shí),表面還會(huì)坑坑洼洼,所以100%填充只能用條紋打,這就是CuraEngine推薦自動(dòng)模式的原因。
至于填充率,就反映在線與線的間距上。100%填充率間距為0;0%填充率間距無(wú)限大,一根線條也不會(huì)有。
每個(gè)組件獨(dú)立的路徑生成好了,還要確定打印的先后順序。順序先好了可以少走彎路,打印速度和質(zhì)量都會(huì)有提升。路徑的順序以先近后遠(yuǎn)為基本原則:每打印完一條路徑,當(dāng)前位置是上一條路徑的終點(diǎn);在當(dāng)前層里剩下還沒(méi)打印的路徑中挑選一條起點(diǎn)離當(dāng)前位置最近的一條路徑開打。路徑的起點(diǎn)可以是路徑中的任意一個(gè)點(diǎn),程序會(huì)自行判斷。而路徑的終點(diǎn)有兩種可能:對(duì)于直線,圖形只有兩個(gè)點(diǎn),終點(diǎn)就是除起點(diǎn)之外的那個(gè)點(diǎn);對(duì)于輪廓,終點(diǎn)就是起點(diǎn),因?yàn)檩喞且粋€(gè)封閉圖形,從它的起點(diǎn)開始沿任意方向走一圈,最后還會(huì)回到起點(diǎn)。CuraEngine對(duì)路徑選擇做了一個(gè)估值,除了考慮到先近后遠(yuǎn)外,還順便參考了下一個(gè)點(diǎn)相對(duì)于當(dāng)前點(diǎn)的方向,它的物理意義就是減少噴頭轉(zhuǎn)彎。賽車在直道上開得一定比彎道快,不是么。
路徑的順序也確定了,還有一個(gè)問(wèn)題需要考慮:如果前后兩條路徑首尾相連,那直接走就是了,但大多數(shù)情況并非如此,前一條路徑的終點(diǎn)往往和后一條路徑起點(diǎn)之間有一段距離。這時(shí)候去往下一點(diǎn)的路上要小心了,肯定不能繼續(xù)擠出材料,否則輕則拉絲,重則模型面目全非。這段路噴頭就需要空走,即噴頭只移動(dòng),不吐絲,那只要把擠出機(jī)停下來(lái)不轉(zhuǎn)就行了嗎?也不行,因?yàn)榍懊娣治鲞^(guò),擠出機(jī)的速度要傳導(dǎo)到噴嘴,有一個(gè)延遲,不是你說(shuō)停它就立即停下來(lái)的。這是FDM打印的通病,解決辦法就是回抽。所謂回抽,就是在空走之前先讓擠出機(jī)高速反轉(zhuǎn)一段材料,這樣就可以瞬間把加熱腔里的材料抽光,再移動(dòng)過(guò)去,中間就不會(huì)擠出材料,到了下一個(gè)點(diǎn),在打印之前,先把剛才抽回去的絲再按一樣的長(zhǎng)度放回來(lái),繼續(xù)打印?;爻榭梢院芎玫亟鉀Q空走拉絲的問(wèn)題,但是它很慢,以抽一次0.5秒來(lái)算的話,如果打印一個(gè)表面,0.4線寬,10厘米的距離至少回抽25下,10幾秒鐘的時(shí)間一層,幾百上千層打下來(lái),光回抽所用的時(shí)間就是幾個(gè)小時(shí),是可忍孰不可忍!
CuraEngine給我們提供了解決方案就是Comb,也就是繞路。我們先來(lái)看,是不是所有的回抽都是必需的呢?不回抽會(huì)拉絲是肯定的,但如果需要空走的路徑本來(lái)就要打印的,那拉絲又有何妨。按這個(gè)思路,就可以給每個(gè)組件設(shè)定一個(gè)邊界,只要路徑的起點(diǎn)和終點(diǎn)都在這個(gè)邊界之內(nèi)的,空走都不回抽。這樣可以解決80%的問(wèn)題,但如果是左圖這樣的情況就行不通。
紅色是起點(diǎn),綠色是終點(diǎn),直接走過(guò)去會(huì)走出邊界的范圍。這時(shí)我們就要繞一點(diǎn)路,走一條曲線到達(dá)我們的目的地。這就是Comb所做的事情,在Cura專家設(shè)置里面可以對(duì)Comb進(jìn)行設(shè)置,選擇開啟、關(guān)閉還有表面不Comb。Comb可以大幅節(jié)省打印時(shí)間,但是同一個(gè)地方打印多次對(duì)模型質(zhì)量還是會(huì)有細(xì)微的影響,個(gè)中利弊,交給用戶自己判斷。
Comb的調(diào)整是個(gè)細(xì)致活,Pango花了相當(dāng)多的時(shí)間來(lái)微調(diào)Comb功能以求達(dá)到更好的效果,過(guò)程繁瑣,不再贅述。
至此路徑生成完成,更詳細(xì)的過(guò)程另文分析,敬請(qǐng)期待。
步驟五:gcode生成
路徑都生成好了,還需要翻譯對(duì)打印機(jī)可以實(shí)別的gcode代碼才行。這一步花樣不多,按部就班即可。
先讓打印機(jī)做一些準(zhǔn)備工作:歸零、加熱噴頭和平臺(tái)、抬高噴頭、擠一小段絲、風(fēng)扇設(shè)置。
從下到上一層一層打印,每層打印之前先用G0抬高Z坐標(biāo)到相應(yīng)位置。
按照路徑,每個(gè)點(diǎn)生成一條gcode。其中空走G0;邊擠邊走用G1,Cura的設(shè)置里有絲材的直徑、線寬,可以算出走這些距離需要擠出多少材料;G0和G1的速度也都在設(shè)置里可以調(diào)整。
若需回抽,用G1生成一條E軸倒退的代碼。在下一條G1執(zhí)行之前,再用G1生成一條相應(yīng)的E軸前進(jìn)的代碼。
所有層都打完后讓打印機(jī)做一些收尾工作:關(guān)閉加熱、XY歸零、電機(jī)釋放。
生成gcode的過(guò)程中,CuraEngine也會(huì)模擬一遍打印過(guò)程,用來(lái)計(jì)算出打印所需要的時(shí)間和材料長(zhǎng)度,這些也會(huì)寫在gcode的注釋里供用戶參考。
gcode生成不用另文詳細(xì)分析,但是gcode的說(shuō)明還是可以專文分析一下,敬請(qǐng)期待。
待續(xù)
寫了這么多,Cura的切片流程也只能講個(gè)大概,也算是個(gè)提綱,希望對(duì)大家有所幫助。我計(jì)劃對(duì)于上面的第一個(gè)步驟再專文分析。除此之外,還有Cura界面部分以及Cura與CuraEngine的通訊也可以講講。之后就是我半年創(chuàng)作,自我感覺良好到覺得可以超越Cura的Pango,也是不說(shuō)不快的。
全部評(píng)論1
你可能喜歡
開源3D建模軟件FreeCAD 1.0正式發(fā)布,支持W
人工智能與3D打印技術(shù)結(jié)合,實(shí)現(xiàn)小型核反應(yīng)
最新《Nature》:動(dòng)態(tài)界面3D打印
石墨烯增強(qiáng)混凝土能否推動(dòng)可持續(xù)建筑? UVA
推薦課程
神奇的3D打印
SLA3D打印工藝全套培訓(xùn)課程 - 軟件篇
3D打印月球燈視頻教程 包括完整貼圖建模流
【原創(chuàng)發(fā)布】Cura軟件修改二次開發(fā)定制視頻