亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種檢測STL格式模型文件重復(fù)性的方法及系統(tǒng)與流程

文檔序號:12722747閱讀:630來源:國知局
一種檢測STL格式模型文件重復(fù)性的方法及系統(tǒng)與流程

本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體地說,涉及一種檢測STL格式模型文件重復(fù)性的方法及系統(tǒng)。



背景技術(shù):

隨著云制造和3D打印概念的普及,越來越多的網(wǎng)站開始提供面向用戶免費(fèi)下載的模型文件。比如制造云、魔猴3D云平臺(tái)、打印虎等網(wǎng)站都提供了各類格式的免費(fèi)或付費(fèi)模型文件,用戶可通過上傳自己的模型文件以賺取一定的積分。

由于STL格式文件的特殊性,即對同一模型進(jìn)行簡單的縮放、旋轉(zhuǎn)等操作后,各三角面片的頂點(diǎn)坐標(biāo)值會(huì)隨之變化。這樣簡單操作后的STL格式文件編碼也就發(fā)生變化,部分用戶利用這種特性上傳相同的模型以賺取積分。

在論文《基于機(jī)械資源庫的零部件相似性的研究和實(shí)現(xiàn)》(《中國機(jī)械工程》2006,17(12):1257-1260.)中所公開的方法是通過比較零件表信息的特征或?qū)傩灾祦泶_定相似性,并不涉及零件的形狀,然而對于非標(biāo)準(zhǔn)化的模型文件或是沒有表信息的文件則無法檢測。

在碩士論文《三維CAD模型匹配與檢索方法的研究》中提出了一種基于投影面積的三維模型匹配方法,首先求得網(wǎng)格頂點(diǎn)處的法向矢量,然后對所有頂點(diǎn)鄰域內(nèi)的三角形法向平面上進(jìn)行投影,得到一個(gè)投影面積的分布序列,然后通過歸一化和傅里葉變換進(jìn)行規(guī)范化處理,求出三維模型的特征向量,利用特征向量對不同模型進(jìn)行相似度計(jì)算。該方法需要經(jīng)過大量的計(jì)算處理,效率不高,此外,其準(zhǔn)確率不高。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的主要目的為提供一種便于檢測STL格式模型文件重復(fù)性的方法;

本發(fā)明的另一目的為提供一種便于檢測STL格式模型文件重復(fù)性的系統(tǒng)。

為了實(shí)現(xiàn)上述主要目的,本發(fā)明提供的檢測STL格式文件重復(fù)性的方法包括:獲取STL格式模型文件;判斷模型庫中是否存在與STL格式模型文件具有相等的邊界尺寸比例的等邊界比例模型,邊界尺寸比例為模型的包絡(luò)六面體的邊界尺寸之比;若等邊界比例模型與STL格式模型文件的體積占比相等,則STL格式模型文件為重復(fù)模型,體積占比為模型的體積與其包絡(luò)六面體的體積之比。

由以上方案可見,只需計(jì)算模型的包絡(luò)六面體的邊界尺寸之比及模型在其包絡(luò)六面體中的體積占比,并與模型庫中的模型進(jìn)行比較,就能對大部分模型的重復(fù)性進(jìn)行檢測,有效地提高STL格式模型文件檢測的準(zhǔn)確性與可靠性。

具體的方案還包括:若STL格式模型文件為重復(fù)模型,則顯示STL格式模型文件為重復(fù)模型的提示信息。

另一具體的方案還包括:若不存在等邊界比例模型或不存在等體積占比的等邊界比例模型,則顯示存儲(chǔ)STL格式模型文件的提醒信息;接收針對提醒信息的響應(yīng)指令;若響應(yīng)指令為存儲(chǔ)指令,則將STL格式模型文件與其邊界尺寸比例、體積占比存入模型庫中。對于被評價(jià)為非重復(fù)STL格式模型文件,可以根據(jù)對提醒信息的確認(rèn)進(jìn)行存儲(chǔ),從而結(jié)合人為判斷以避免部分重復(fù)模型被評價(jià)為非重復(fù)模型。此外,將邊界尺寸比例、體積占比與模型一起存入模型庫中,有效提高后續(xù)檢測的速度。

再一具體的方案為,邊界尺寸之比與體積占比的計(jì)算步驟包括:若STL格式文件為ASCII格式文件,則遍歷“vertex”字符串后的三個(gè)數(shù)據(jù),分別存入X={xi}、Y={yi}、Z={zi}三個(gè)數(shù)組中;若STL格式文件為二進(jìn)制格式文件,直接讀取表示坐標(biāo)值的連續(xù)的三個(gè)4字節(jié)浮點(diǎn)數(shù),分別存入X、Y、Z三個(gè)數(shù)組中;對數(shù)組X、Y、Z分別排序得到每個(gè)數(shù)組中的最大值和最小值,分別以下標(biāo)max和min表示;根據(jù)以下公式求得模型的包絡(luò)六面體的長l、寬w、高h(yuǎn)及體積V:l=xmax-xmin,w=y(tǒng)max-ymin,h=zmax-zmin,V=l×w×h;利用不規(guī)則多面體體積計(jì)算公式計(jì)算模型的體積。有效簡化了計(jì)算方法,提高檢測效率。

更具體的方案為利用不規(guī)則多面體體積計(jì)算公式計(jì)算模型的體積的步驟包括:建立三個(gè)三維數(shù)組P1,P2,P3分別儲(chǔ)存某一三角面片的三個(gè)頂點(diǎn)的坐標(biāo)值;獲取模型中所有三角面片所對應(yīng)行列式|P1TP2TP3T|的和的累加;模型的體積為該和的累加的六分之一。有效地簡化了計(jì)算方法,提高檢測效率。

優(yōu)選的方案為邊界尺寸之比為包絡(luò)六面體的長寬之比及長高之比。使用兩個(gè)比值作為邊界尺寸之比,有效簡化計(jì)算方法。

為實(shí)現(xiàn)上述另一目的,本發(fā)明提供的檢測STL格式文件重復(fù)性的系統(tǒng),包括獲取單元、判斷單元及評價(jià)單元。其中,獲取單元用于獲取STL格式模型文件;判斷單元用于判斷模型庫中是否存在與STL格式模型文件具有相等的邊界尺寸比例的等邊界比例模型,邊界尺寸比例為模型的包絡(luò)六面體的邊界尺寸之比;評價(jià)單元用于在等邊界比例模型與STL格式模型文件的體積占相等時(shí),評價(jià)STL格式模型文件為重復(fù)模型,體積占比為模型的體積與其包絡(luò)六面體的體積之比。

一個(gè)具體的方案還包括提示單元,用于在STL格式模型文件為重復(fù)模型時(shí),顯示STL格式模型文件為重復(fù)模型的提示信息。

另一個(gè)具體的方案還包括提醒單元、接收單元及存儲(chǔ)單元。提醒單元用于顯示存儲(chǔ)STL格式模型文件的提醒信息;接收單元用于接收針對提醒信息的響應(yīng)指令;存儲(chǔ)單元用于當(dāng)響應(yīng)指令為存儲(chǔ)指令,將STL格式模型文件與其邊界尺寸比例、體積占比存入模型庫中。

附圖說明

圖1為本發(fā)明檢測STL格式模型文件重復(fù)性的方法實(shí)施例的流程圖;

圖2為本發(fā)明檢測STL格式模型文件重復(fù)性的方法實(shí)施例中所檢測的旋鈕STL格式模型文件的三角網(wǎng)格的分布示意圖;

圖3為本發(fā)明檢測STL格式模型文件重復(fù)性的方法實(shí)施例中所檢測的旋鈕STL格式模型文件的包絡(luò)六面體的示意圖;

圖4為本發(fā)明檢測STL格式模型文件重復(fù)性的系統(tǒng)實(shí)施例的結(jié)構(gòu)框圖。

具體實(shí)施方式

以下結(jié)合實(shí)施例及其附圖對本發(fā)明作進(jìn)一步說明。

實(shí)施例

參見圖1,檢測STL格式模型文件重復(fù)性的方法包括獲取步驟S1、判斷步驟S2、評價(jià)步驟S3及處理步驟S4。

獲取步驟S1,獲取STL格式模型文件:

以如圖2所示的旋鈕STL格式模型文件為例,該旋鈕模型01由若干三角面片02構(gòu)成,在其代碼文件中儲(chǔ)存了每個(gè)三角面片的頂點(diǎn)坐標(biāo)值。

獲取三角面片的頂點(diǎn)坐標(biāo)值的步驟包括:(1)確定STL格式文件的編碼格式,編碼格式依據(jù)文件編碼是否含有“facet”字符串判定其為ASCII格式或二進(jìn)制格式;(2)以C#語言為例,若STL格式文件為二進(jìn)制則使用BinaryReader類讀取文件,若STL格式文件為ASCII類型則使用StreamReader類讀取文件。

判斷步驟S2,判斷模型庫中是否存在與STL格式模型文件具有相等的邊界尺寸比例的等邊界比例模型,邊界尺寸比例為模型的包絡(luò)六面體的邊界尺寸之比。

如圖3所示,為旋鈕模型01的包絡(luò)六面體03,計(jì)算旋鈕模型的包絡(luò)六面體的長l、寬w、高h(yuǎn)的過程為:

(1)若STL格式文件為ASCII格式文件,則遍歷“vertex”字符串后的三個(gè)數(shù)據(jù),分別存入X={xi}、Y={yi}、Z={zi}三個(gè)數(shù)組中;若STL格式文件為二進(jìn)制格式文件,直接讀取表示坐標(biāo)值的連續(xù)的三個(gè)4字節(jié)浮點(diǎn)數(shù),分別存入X、Y、Z三個(gè)數(shù)組中;

(2)對數(shù)組X、Y、Z分別排序得到每個(gè)數(shù)組中的最大值與最小值,分別以下標(biāo)max與min標(biāo)識;根據(jù)以下公式求得模型的包絡(luò)六面體的長l、寬w、高h(yuǎn):

l=xmax-xmin;

w=y(tǒng)max-ymin;

h=zmax-zmin

為了便于比較,在本實(shí)施例中,包絡(luò)六面體的邊界尺寸之比選為包絡(luò)六面體的長寬之比l:w與長高之比l:h。

判斷是否存在等邊界比例模型的過程為,逐一比較該旋鈕模型與模型庫中的模型的長寬之比l:w,若長寬之比l:w相同則再比較長高之比l:h,若長寬之比與長高之比均相等,則對比庫內(nèi)存在與旋轉(zhuǎn)模型相同的等邊界比例模型。

評價(jià)步驟S3,若等邊界比例模型與STL格式模型文件的體積占比相等,則評價(jià)STL格式模型文件為重復(fù)模型,體積占比為模型的體積與其包絡(luò)六面體的體積之比。

利用判斷步驟S2所獲取的包絡(luò)六面體的長l、寬w及高h(yuǎn)使用以下公式計(jì)算模型包絡(luò)六面體的體積:

V=l×w×h

旋鈕模型的體積利用不規(guī)則多面體體積計(jì)算公式進(jìn)行計(jì)算,假設(shè)凸多面體第i個(gè)頂點(diǎn)是Ai,則該多面體的體積計(jì)算公式如下:

其中,∑d(A0A1…An)指的是將多面體表面劃分為若干三角網(wǎng)格后,每個(gè)三角面片的三個(gè)頂點(diǎn)坐標(biāo)值構(gòu)成的三階行列式的和。

即,該計(jì)算過程為(1)建立三個(gè)三維數(shù)組P1,P2,P3分別儲(chǔ)存某一三角面片的三個(gè)頂點(diǎn)的坐標(biāo)值;(2)獲取模型中所有三角面片所對應(yīng)行列式|P1TP2TP3T|的和的累加;(3)旋鈕模型的體積為該和的累加的六分之一。

將上述判斷步驟中識別出的等邊界尺寸比例模型的體積占比與本旋鈕模型的體積占比進(jìn)行比較,如果體積占比相等,則認(rèn)為該旋鈕模型為重復(fù)模型,其中,體積占比為模型的體積與其包絡(luò)六面體的體積之比。

處理步驟S4,包括提示步驟、提醒步驟、接收步驟、存儲(chǔ)步驟及刪除步驟。

提示步驟,若STL格式模型文件為重復(fù)模型,則顯示STL格式模型文件為重復(fù)模型的提示信息。

通過向模型上傳者顯示該提示信息,提示用戶上傳了重復(fù)的模型,并不存儲(chǔ)該模型。

提醒步驟,若不存在等邊界比例模型或不存在等體積占比的等邊界比例模型,則顯示存儲(chǔ)旋鈕STL格式模型文件的提醒信息。

向管理員顯示該提醒信息,以等待管理員審核。

接收步驟,接收針對提醒信息的響應(yīng)指令。

如果管理員審核通過,則接收到的響應(yīng)指令為存儲(chǔ)指令,若未審核通過,則接收到的響應(yīng)指令為刪除指令。

存儲(chǔ)步驟,若響應(yīng)指令為存儲(chǔ)指令,則將旋鈕STL格式模型文件與其邊界尺寸比例、體積占比存入模型庫中。

刪除步驟,若響應(yīng)指令為刪除指令,則刪除上傳的模型并通知上傳者。

參見圖4,檢測STL格式文件重復(fù)性的系統(tǒng)10包括獲取單元11、判斷單元12、評價(jià)單元13、提示單元14、提醒單元15、接收單元16和存儲(chǔ)單元17。

獲取單元11用于獲取待檢測模型的STL格式模型文件;

判斷單元12用于判斷模型庫中是否存在與STL格式模型文件具有相等的邊界尺寸比例的等邊界比例模型;邊界尺寸比例為模型的包絡(luò)六面體的邊界尺寸之比;

評價(jià)單元13用于在等邊界比例模型與STL格式模型文件的體積占比相等時(shí),評價(jià)STL格式模型文件為重復(fù)模型,體積占比為模型的體積與其包絡(luò)六面體的體積之比;

提示單元14用于在STL格式模型文件為重復(fù)模型時(shí),顯示STL格式模型文件為重復(fù)模型的提示信息;

提醒單元15用于顯示存儲(chǔ)STL格式模型文件的提醒信息;

接收單元16用于接收針對提醒信息的響應(yīng)指令;

存儲(chǔ)單元17用于當(dāng)響應(yīng)指令為存儲(chǔ)指令,將STL格式模型文件與其邊界尺寸比例、體積占比存入模型庫中。

這些單元的具體操作過程與方法相同,在此不再贅述。

此外,在本申請中,STL格式模型文件、STL文件、模型文件、模型是對同一對象的不同稱謂。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1