本發(fā)明涉及3D打印制造服務(wù)領(lǐng)域,提供了一種在線3D打印定制系統(tǒng)及方法。
背景技術(shù):
3D打印技術(shù)正在改變?nèi)祟愔圃旌徒桓懂a(chǎn)品的方式。在基于3D數(shù)據(jù)的3D打印制造網(wǎng)絡(luò)系統(tǒng)中,任何節(jié)點(diǎn)可以和其他節(jié)點(diǎn)實(shí)時(shí)交互獲取各自需要的3D數(shù)字模型,發(fā)布定制需求,然后通過分布式的制造節(jié)點(diǎn)(包括3D打印中心、數(shù)控加工中心、激光雕刻中心)來生產(chǎn)實(shí)現(xiàn)。而打造分布式的3D打印制造網(wǎng)絡(luò)系統(tǒng),要解決的核心技術(shù)問題之一,就是對(duì)3D模型數(shù)據(jù)的提取和體積計(jì)算方法。傳統(tǒng)的計(jì)算方法主要是平面剖分方法和四面體剖分方法兩種。其中,平面剖分方法需要提取模型的頂點(diǎn)、邊、三角面特征構(gòu)建數(shù)據(jù)結(jié)構(gòu),運(yùn)算復(fù)雜導(dǎo)致運(yùn)行速度很慢,甚至?xí)谔幚硪话僬滓陨系哪P蛿?shù)據(jù)是導(dǎo)致云端處理器發(fā)生異常,終止運(yùn)行。同時(shí),基于平面剖分方法的體積的計(jì)算為,平面與模型相切所得截面面積與相鄰剖切平面間高度的乘積,因而所得結(jié)果為近似體積。然而在模型曲面較多的情況下,這種計(jì)算所得的近似體積往往準(zhǔn)確度較低,因而系統(tǒng)不能提供準(zhǔn)確的報(bào)價(jià)。
四面體剖分方法則是將3D模型進(jìn)行剖分,將三角面片投影到一個(gè)平面上,建立多面體單元,將該多面體剖分為一個(gè)三棱柱和兩個(gè)四面體,分別計(jì)算出這三部分的有向體積,求和得到多面體單元的有向體積。然后,求出所有多面體單元的有向體積之和就是3D模型的體積。相比平面剖分方法,四面體剖分方法計(jì)算得到的體積準(zhǔn)確度較高,能很好地滿足系統(tǒng)報(bào)價(jià)要求。然而,傳統(tǒng)的四面體剖分方法需要大量提取并存儲(chǔ)模型的三角面片法向量信息,以及,通過讀取三角面片的法向量去判斷該四面體的體積正負(fù),系統(tǒng)的計(jì)算冗雜而緩慢,仍然不能滿足在線3D打印定制實(shí)時(shí)報(bào)價(jià)的速度要求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種在線3D打印定制系統(tǒng)及方法,為企業(yè)提供一種系統(tǒng)化的處理打印業(yè)務(wù)的方法,為用戶提供一種更快、更準(zhǔn)確的方法實(shí)現(xiàn)打印需求,使得整個(gè)定制過程周期更短、更透明、更精確。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用了如下技術(shù)方案:
一種在線3D打印定制系統(tǒng),包括:
接收模塊,用于接收并讀取用戶上傳的3D模型文件;
顯示模塊,用于根據(jù)顯示窗口大小自動(dòng)對(duì)用戶上傳的3D模型進(jìn)行縮放以合適的尺寸進(jìn)行可旋轉(zhuǎn)的顯示,并通過設(shè)置視場(chǎng)內(nèi)攝像機(jī)的角度,顯示模型不同視角的截面圖;
尺寸信息提取模塊,用于建立對(duì)應(yīng)于用戶上傳的3D模型的長寬高尺寸信息的最小立方體包圍盒,并求解該立方體包圍盒的長寬高,得到3D模型的尺寸信息;
體積計(jì)算模塊,用于計(jì)算用戶上傳的3D模型的所有三角面片與原點(diǎn)構(gòu)成的四面體的有向體積,并計(jì)算所有四面體的有向體積和,得到3D模型的體積;
參數(shù)設(shè)置模塊,用于用戶進(jìn)行參數(shù)設(shè)置,選擇打印模型所用的材料、打印尺寸以及打印機(jī);
價(jià)格生成模塊,用于根據(jù)用戶設(shè)置的參數(shù)計(jì)算打印材料用量、定制價(jià)格、打印時(shí)間;
支付模塊,用于生成支付訂單;
以及,3D打印機(jī),用于在用戶支付完成后根據(jù)用戶設(shè)置的參數(shù)打印模型。
進(jìn)一步的,所述接收模塊接收并讀取的3D模型的文件格式包括但不限于STL、OBJ、STP、IGS、DAE、WRL、X3D。
進(jìn)一步的,參數(shù)設(shè)置模塊中,用戶進(jìn)行參數(shù)設(shè)置選擇打印模型所用的材料包括材料的物理參數(shù)及材料的商品屬性;打印機(jī)包括打印機(jī)的技術(shù)參數(shù)。
優(yōu)選的,材料的物理參數(shù)包括材料的密度、硬度、強(qiáng)度、韌性、工作溫度及成型溫度,材料的商品屬性包括材料的單價(jià),打印機(jī)的技術(shù)參數(shù)包括該打印機(jī)所能打印的最大尺寸和打印精度。
本發(fā)明還提供了一種在線3D打印定制方法,包括如下步驟:
S1、接收并讀取用戶上傳的3D模型文件;
S2、根據(jù)顯示窗口大小自動(dòng)對(duì)用戶上傳的3D模型進(jìn)行縮放以合適的尺寸進(jìn)行可旋轉(zhuǎn)的顯示,并通過設(shè)置視場(chǎng)內(nèi)攝像機(jī)的角度,顯示模型不同視角的截面圖;
S3、建立對(duì)應(yīng)于用戶上傳的3D模型的長寬高尺寸信息的最小立方體包圍盒,并求解該立方體包圍盒的長寬高,得到3D模型的尺寸信息;
S4、計(jì)算用戶上傳的3D模型的所有三角面片與原點(diǎn)構(gòu)成的四面體的有向體積,并計(jì)算所有四面體的有向體積和,得到3D模型的體積;
S5、用戶進(jìn)行參數(shù)設(shè)置,選擇打印模型所用的材料、打印尺寸以及打印機(jī);
S6、根據(jù)用戶設(shè)置的參數(shù)計(jì)算打印材料用量、定制價(jià)格、打印時(shí)間,生成支付訂單;
S7、用戶完成支付后,根據(jù)用戶設(shè)置的參數(shù)調(diào)用相應(yīng)的3D打印機(jī)完成打印。
進(jìn)一步的,步驟S1中,接收并讀取的用戶上傳的3D模型文件格式包括但不限于STL、OBJ、STP、IGS、DAE、WRL、X3D。
進(jìn)一步的,步驟S5中,選擇打印模型所用的材料包括材料的物理參數(shù)及材料的商品屬性,選擇打印機(jī)包括該打印機(jī)的技術(shù)參數(shù)。
優(yōu)選的,材料的物理參數(shù)包括材料的密度、硬度、強(qiáng)度、韌性、工作溫度及成型溫度,材料的商品屬性包括材料的單價(jià),打印機(jī)的技術(shù)參數(shù)包括該打印機(jī)所能打印的最大尺寸和打印精度。
本發(fā)明提供的在線3D打印定制系統(tǒng)及方法,有效的解決了3D打印產(chǎn)品定制過程復(fù)雜、報(bào)價(jià)沒有固定標(biāo)準(zhǔn)、交易流程復(fù)雜的問題。首先,用戶選擇指定類型的模型文件并進(jìn)行上傳,之后Web系統(tǒng)每次自動(dòng)讀取模型并進(jìn)行顯示。由于顯示模型的窗口大小固定,而通常用戶上傳的模型尺寸差異很大,Web系統(tǒng)自動(dòng)對(duì)模型進(jìn)行縮放,并在窗口以固定大小顯示。系統(tǒng)則按照原模型提取其尺寸特征并計(jì)算體積。本發(fā)明提出一種新的模型體積計(jì)算方法,同時(shí)克服了平面剖分方法計(jì)算準(zhǔn)確度低,以及傳統(tǒng)四面體剖分方法計(jì)算速度慢的缺點(diǎn),通過一種新的算法,在系統(tǒng)讀取模型信息之后,只存儲(chǔ)三角面片頂點(diǎn)信息而不存儲(chǔ)三角面片的法向量。通過三個(gè)頂點(diǎn)去計(jì)算法向量,節(jié)省了存儲(chǔ)空間和運(yùn)算時(shí)間,從而讓在線3D打印定制從數(shù)據(jù)提取和計(jì)算的技術(shù)層面真正變得可行和高效。
附圖說明
圖1為本發(fā)明的在線3D打印定制系統(tǒng)的各模塊關(guān)系示意圖。
圖2為在線3D打印定制方法的流程示意圖。
圖3為圖2中模型體積的計(jì)算流程示意圖。
具體實(shí)施方式
為了進(jìn)一步理解本發(fā)明,下面結(jié)合實(shí)施例對(duì)本發(fā)明優(yōu)選實(shí)施方案進(jìn)行描述,但是應(yīng)當(dāng)理解,這些描述只是為進(jìn)一步說明本發(fā)明的特征和優(yōu)點(diǎn),而不是對(duì)本發(fā)明權(quán)利要求的限制。
本發(fā)明首先提供了一種在線3D打印定制系統(tǒng),如圖1所示,其包括接收模塊、尺寸信息提取模塊、體積計(jì)算模塊、參數(shù)設(shè)置模塊、價(jià)格生成模塊、支付模塊和3D打印機(jī)。
其中,接收模塊用于接收并讀取用戶上傳的3D模型文件,其中的3D模型為用任意三維建模軟件所生成的三維模型,其模型文件格式包括STL、OBJ、DAE、WRL、X3D等。
顯示模塊用于在顯示窗口中對(duì)用戶上傳的3D模型進(jìn)行顯示。由于3D模型的大小參差不齊,所以系統(tǒng)根據(jù)顯示窗口大小自動(dòng)對(duì)模型進(jìn)行縮放并以合適的尺寸進(jìn)行顯示,用戶還可以通過鼠標(biāo)對(duì)模型進(jìn)行旋轉(zhuǎn)。并且,通過設(shè)置視場(chǎng)內(nèi)攝像機(jī)的角度,顯示模型不同視角的截面圖,如正視圖、俯視圖、側(cè)視圖等。
尺寸信息提取模塊用于建立對(duì)應(yīng)于用戶上傳的3D模型的長寬高尺寸信息的最小立方體包圍盒,并求解該立方體包圍盒的長寬高,得到3D模型的尺寸信息。
體積計(jì)算模塊用于計(jì)算用戶上傳的3D模型的所有三角面片與原點(diǎn)構(gòu)成的四面體的有向體積,并計(jì)算所有四面體的有向體積和,得到3D模型的體積。
參數(shù)設(shè)置模塊,用于用戶進(jìn)行參數(shù)設(shè)置,選擇打印模型所用的材料、打印實(shí)物尺寸以及打印機(jī)。其中,選擇打印模型所用的材料包括材料的物理參數(shù)如材料的密度、硬度、強(qiáng)度、韌性、工作溫度及成型溫度等,及材料的商品屬性如材料的單價(jià);選擇打印機(jī)包括打印機(jī)的技術(shù)參數(shù)如該打印機(jī)所能成型的最大尺寸和打印精度。
價(jià)格生成模塊用于根據(jù)用戶設(shè)置的參數(shù)計(jì)算打印材料用量、定制價(jià)格、打印時(shí)間。
支付模塊用于生成支付訂單并由用戶進(jìn)行支付,支付方式可以選擇在線支付,如支付寶、微信等,快捷方便。
3D打印機(jī)用于在用戶支付完成后,根據(jù)用戶設(shè)置的參數(shù)打印模型。
需要說明的是,本發(fā)明的在線3D打印定制系統(tǒng),可以是本地3D打印定制系統(tǒng),更優(yōu)選的則是基于分布式網(wǎng)絡(luò)的3D打印定制系統(tǒng)。其中,接收模塊、參數(shù)設(shè)置模塊和支付模塊設(shè)置在Web或者APP客戶端,而尺寸信息提取模塊、體積計(jì)算模塊和價(jià)格生成模塊設(shè)置在服務(wù)器或云端,同時(shí),3D打印機(jī)為設(shè)置于分布式網(wǎng)絡(luò)中的多個(gè)打印機(jī),可根據(jù)用戶設(shè)置的參數(shù)進(jìn)行相應(yīng)的選擇。Web/APP客戶端、服務(wù)器/云端和3D打印機(jī)之間通過網(wǎng)絡(luò)連接,以滿足最佳的資源配置。
如圖2所示,本發(fā)明提供的在線3D打印定制方法包括如下幾個(gè)步驟:讀取數(shù)據(jù)并顯示模型,提取模型尺寸特征,計(jì)算模型體積,用戶設(shè)置打印參數(shù),生成打印材料用量、定制價(jià)格及時(shí)間,用戶進(jìn)行支付后完成打印。
下面進(jìn)行具體的說明:
1)用戶選擇指定類型的模型文件并進(jìn)行上傳,之后Web系統(tǒng)每次自動(dòng)讀取模型并進(jìn)行顯示。用戶可上傳的3D模型文件格式包括但不限于STL、OBJ、STP、IGS、DAE、WRL、X3D。
2)在自動(dòng)讀取模型并進(jìn)行WEBGL顯示階段,對(duì)于不同尺寸大小的模型,本發(fā)明按照顯示窗口大小等比例的縮放模型,將模型顯示在固定的窗口,并生成模型的正視圖、側(cè)視圖和俯視圖。
3)提取模型的尺寸特征,等價(jià)于:將模型剛好放在一個(gè)立方體盒子內(nèi),計(jì)算該立方體的長寬高。假設(shè)將模型放在一個(gè)三維坐標(biāo)系內(nèi),根據(jù)讀取的頂點(diǎn)信息,按特定的算法分別計(jì)算模型在X、Y、Z三個(gè)軸上的最大值(xmax,ymax,zmax)和最小值(xmin,ymin,zmin)。以點(diǎn)(xmin,ymin,zmin)和(xmax,ymax,zmax)為對(duì)角頂點(diǎn),構(gòu)建一個(gè)包圍整個(gè)模型的立方體包圍盒,該包圍盒的長寬高就是模型的尺寸,也即:X軸的尺寸為xmax-xmin,Y軸的尺寸為ymax-ymin,Z軸的尺寸為zmax-zmin。
4)計(jì)算模型的體積。由于讀取的模型頂點(diǎn),都是以三角面片的形式進(jìn)行存儲(chǔ)的。所以,在本發(fā)明的方法中通過將三角面片與原點(diǎn)構(gòu)建四面體,計(jì)算四面體的有向體積來計(jì)算模型的總體積。假設(shè)模型中,任意一個(gè)三角面片的三個(gè)頂點(diǎn)分別為A(x1,y1,z1),B(x2,y2,z2),C(x3,y3,z3)。將該三角面片與原點(diǎn)組成一個(gè)四面體,該四面體的體積為:
設(shè)OA的連線為向量,根據(jù)三角面片的頂點(diǎn)信息,可以計(jì)算出三角面片的法向量:
四面體體積的符號(hào)是由與三角面片的法向量N的內(nèi)積所決定的。如果內(nèi)積大于0,則四面體體積為正,反之四面體體積為負(fù)。
假設(shè)模型包含M個(gè)三角面片,則將這M個(gè)三角面片與原點(diǎn)構(gòu)成的四面體的體積均計(jì)算出來,并判斷其體積的正負(fù)號(hào),然后將所有的有向體積進(jìn)行求和,即為模型的體積。所以,模型的總體積為:
5)用戶進(jìn)行參數(shù)設(shè)置,選擇打印模型所用的材料、打印尺寸以及打印機(jī)。具體包括選擇打印模型所用材料的物理參數(shù)如材料的密度、硬度、強(qiáng)度、韌性、工作溫度及成型溫度等,商品屬性如材料的單價(jià),以及打印機(jī)的技術(shù)參數(shù)如所能打印的最大尺寸和打印精度等。
6)根據(jù)用戶設(shè)置的參數(shù)計(jì)算打印材料用量、定制價(jià)格、打印時(shí)間,生成支付訂單。
7)用戶確認(rèn)并完成在線支付后,根據(jù)用戶設(shè)置的參數(shù)調(diào)用相應(yīng)的3D打印機(jī)完成打印。
以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。