三維模型的碰撞檢測方法及系統的制作方法
【技術領域】
[0001]本發明涉及計算機數據處理技術領域,特別是涉及三維模型的碰撞檢測方法及系統。
【背景技術】
[0002]增材制造(Additive Manufacturing,AM)技術是采用材料逐漸累加的方法制造實體零件的技術,相對于傳統的材料去除-切削加工技術,是一種“自下而上”的制造方法。現有的三維打印(3D Printing),又稱3D打印,即是表達了這一技術的特點。
[0003]增材制造是以數字模型為基礎,通過計算機控制將材料逐層堆積制造出三維物體。其中,碰撞檢測是二維物體建造前的重要環節,它的核心任務是檢測在規定的范圍內兩個或多個物體之間是否發生接觸或進入。
[0004]在一次增材制造建造過程中,為了提高打印效率,一般會同時打印多個待打印三維物體制件(以下簡稱模型),而在打印之前,需要檢測多個模型之間是否存在碰撞,而多個模型之間是否存在碰撞可通過檢測任兩個模型之間是否存在碰撞而判斷,當任兩個模型之間存在碰撞,則說明待打印三維物體制件之間存在碰撞,不宜打印。
[0005]在3D打印領域,現有的碰撞檢測都是基于三維幾何模型的三角形碰撞檢測,該檢測方法的核心是檢測三維物體的本體碰撞情況,檢測算法復雜度較高。并且,在增材制造中,為了確保制件質量,選區激光熔化(SLM)、立體光固化(SLA)等技術還需要在建造過程中構建支撐。如圖1所示,兩物體在生成支撐結構時有可能會將第二個模型覆蓋,影響打印。然而現有的基于三維幾何模型的碰撞檢測并不包含對支撐因素的考慮,不能檢測到支撐的覆蓋問題,導致檢測精確不夠理想。
【發明內容】
[0006]基于此,本發明提供的三維模型的碰撞檢測方法及系統,能夠提高三維模型的碰撞檢測精度,簡化算法復雜度,提高檢測效率。
[0007]本發明采用以下技術方案:
[0008]本發明一方面提供三維模型的碰撞檢測方法,包括:
[0009]將待檢測的兩個三維STL模型在XOY平面進行投影,得到對應的兩個二維圖形;
[0010]判斷所述兩個二維圖形是否相交或者為包含關系,若相交或者為包含關系,確定為所述兩個三維STL模型存在碰撞。
[0011]優選的,所述判斷所述兩個二維圖形是否相交或者為包含關系之后,還包括,
[0012]若不相交且不為包含關系,計算所述兩個二維圖形的最短距離;若所述最短距離小于設定限定值,確定為所述兩個三維STL模型存在碰撞。
[0013]優選的,計算所述兩個二維圖形的最短距離,包括,
[0014]識別所述兩個二維圖形是否均為凸多邊形,若是,通過旋轉卡殼算法得出所述兩個二維圖形的最短距離;
[0015]若否,將其中為凹多邊形的二維圖形分解為若干凸多邊形;
[0016]通過旋轉卡殼算法計算分別屬于所述兩個二維圖形的任意兩個凸多邊形之間的最短距離,找出其中距離最小值作為所述兩個二維圖形的最短距離。
[0017]優選的,判斷所述兩個二維圖形是否相交或者為包含關系,若是,確定為所述兩個三維STL模型存在碰撞,包括,
[0018]判斷所述兩個二維圖形是否相交,若是,確定為所述兩個三維STL模型存在碰撞;
[0019]若否,判斷所述兩個二維圖形是否為包含關系,若是,確定為所述兩個三維STL模型存在碰撞。
[0020]優選的,判斷所述兩個二維圖形是否相交,包括,
[0021]分別識別構成所述兩個二維圖形的全部邊;
[0022]判斷其中一個二維圖形的各邊是否與另一個二維圖形的任意邊均不相交;
[0023]若是,確定為所述兩個二維圖形不相交,否則,確定為所述兩個二維圖形相交。
[0024]優選的,判斷其中一個二維圖形的各邊是否與另一個二維圖形的任意邊均不相交,包括,
[0025]構建與其中一個二維圖形的第一邊對應的第一矩形,構建與另一個二維圖形的第二邊對應的第二矩形,所述第一邊為所述第一矩形的對角線,所述第二邊為所述第二矩形的對角線;
[0026]判斷所述第一矩形與所述第二矩形是否相交,若不相交,確定為所述第一邊與所述第二邊不相交;
[0027]若所述第一矩形與所述第二矩形相交,則判斷所述第一邊與所述第二邊是否相互跨立,若是,確定為所述第一邊與所述第二邊不相交。
[0028]優選的,所述判斷所述兩個二維圖形是否為包含關系,包括,
[0029]判斷其中一個二維圖形的任一頂點是否在另一個二維圖形內,若是,所述兩個二維圖形為包含關系。
[0030]本發明另一方面提供三維模型的碰撞檢測系統,包括:
[0031]投影模塊,用于將待檢測的兩個三維STL模型在XOY平面進行投影,得到對應的兩個二維圖形;
[0032]第一檢測模塊,用于判斷所述兩個二維圖形是否相交或者為包含關系,若相交或者為包含關系,確定為所述兩個三維STL模型存在碰撞。
[0033]優選的,還包括:
[0034]第二檢測模塊,用于若所述兩個二維圖形不相交且不為包含關系,計算所述兩個二維圖形的最短距離;若所述最短距離小于設定限定值,確定為所述兩個三維STL模型存在碰撞。
[0035]優選的,計算所述兩個二維圖形的最短距離,包括,
[0036]識別所述兩個二維圖形是否均為凸多邊形,若是,通過旋轉卡殼算法得出所述兩個二維圖形的最短距離;
[0037]若否,將其中為凹多邊形的二維圖形分解為若干凸多邊形;
[0038]通過旋轉卡殼算法計算分別屬于所述兩個二維圖形的任意兩個凸多邊形之間的最短距離,找出其中距離最小值作為所述兩個二維圖形的最短距離。
[0039]優選的,所述第一檢測模塊包括,
[0040]相交檢測單元,用于判斷所述兩個二維圖形是否相交,若是,確定為所述兩個三維STL模型存在碰撞;
[0041]包含檢測單元,用于若所述兩個二維圖形不相交,判斷所述兩個二維圖形是否為包含關系,若是,確定為所述兩個三維STL模型存在碰撞;
[0042]其中,判斷所述兩個二維圖形是否相交,包括,
[0043]分別識別構成所述兩個二維圖形的全部邊;
[0044]判斷其中一個二維圖形的各邊是否與另一個二維圖形的任意邊均不相交;
[0045]若是,確定為所述兩個二維圖形不相交,若否,確定為所述兩個二維圖形相交;
[0046]所述判斷所述兩個二維圖形是否為包含關系,包括,
[0047]判斷其中一個二維圖形的任一頂點是否在另一個二維圖形內,若是,所述兩個二維圖形為包含關系。
[0048]實施本發明的上述技術方案的有益效果包括:通過將待檢測的三維STL模型在XOY平面進行投影,得到對應的二維圖形;判斷得到的二維圖形之間是否相交或者為包含關系,若相交或者為包含關系,則確定為所述兩個三維STL模型存在碰撞。由此即將三維模型的碰撞檢測轉換為二維圖形的碰撞檢測,有利于提高三維模型的碰撞檢測精度,簡化算法復雜度,提高檢測效率。
【附圖說明】
[0049]圖1為增材制造過程中兩物體生成支撐結構的效果示意圖;
[0050]圖2為實施例一的三維模型的碰撞檢測方法的示意性流程圖;
[0051]圖3為二維凹包的創建效果示意圖;
[0052]圖4為實施例二的三維模型的碰撞檢測方法的示意性流程圖;
[00