Cura-3D3D 打印機(jī)的切片引擎
Cura 是一款開源3D打印機(jī)的切片引擎。
切片程序的主要過程如下:
i. 導(dǎo)入3D模型(STL,OBJ等等)。
ii. 分析并修復(fù)3D模型(源碼里面貌似木有這一步…)。
iii. 將3D模型切割成2D層。
iv. 用上一步得到的2D圖層形成LayerParts(他們自己的叫法),因?yàn)橐粚永锩?,很有可能有很多個(gè)不同的多邊形,比如桌子,他的四個(gè)角,切出來后是四個(gè)圓形,上一步中只是得到了四個(gè)圓形,而沒有確定這四個(gè)圓形是屬于同一層的。
v. 進(jìn)一步確定LayerParts中,各個(gè)part間的關(guān)系,比如得到了兩個(gè)圓,大圓套小圓,我們就需要確認(rèn),小圓是空心的,而大圓和小圓形成的圓環(huán)是實(shí)心的。
vi. 將需要實(shí)心打印的部分標(biāo)記出來(100%填充)。
vii. 將需要空心打印的地方打印出來(部分填充)。
viii. 根據(jù)生成的LayerParts生成每一層的G-code。
上述的每一步都有更多的邏輯關(guān)系在里面,但這只是一個(gè)工作的大概流程。切割引擎所有的數(shù)據(jù)都存放在一個(gè)叫SliceDataStorage的類里面。記住,上述的每一步都是基于前一步的數(shù)據(jù)來進(jìn)行的。這里嚴(yán)格按照上述的流程來處理3D模型生成G-code。另外,在代碼里面,坐標(biāo)是用64位整數(shù)的形式存在的,比如,你在代碼中看到的1000,他實(shí)際代表了1mm。這樣做是因?yàn)镃lipper使用了64為整數(shù)來表示距離。
