本發(fā)明涉及一種虛擬數(shù)控加工領域,特別是關于一種數(shù)控加工幾何仿真中基于stl模型的材料去除算法。
背景技術:
切削仿真和材料去除仿真是虛擬數(shù)控機床仿真系統(tǒng)中一個最重要、最核心的部分,也是最難實現(xiàn)的一個部分。而切削仿真的逼真性就取決于材料去除仿真,目前,在國內外有代表性的、廣泛運用于數(shù)控加工幾何仿真中的方法有以下幾種:
實體幾何造型法通過刀具沿著加工軌跡移動而生成刀具掃描體,然后利用布爾差運算直接在毛坯體上減去刀具掃描體而實現(xiàn)。它直接用數(shù)學方法如參數(shù)方程等描述幾何體,保存了全部幾何信息,因此其計算結果精確,可以進行各種幾何測量和處理。其不足之處在于刀具的每一步運動都需要進行大量的布爾求交運算,實時性差。
視向離散法利用圖像空間的消隱算法來實現(xiàn)布爾運算。這種方法計算量小,實時性好;其缺點是在顯示過程中丟棄了部分幾何深度信息,人們對加工結果無法進行旋轉、放大等操作同時也無法進行精確的誤差檢驗,因為毛坯的原始數(shù)據(jù)都已經轉化為像素值,而這些像素點是依賴與顯示屏幕的,導致它的應用受到很大限制。
離散矢量求交法,將待加工曲面或實體按照一定的精度轉變?yōu)橐恍╇x散的數(shù)據(jù)點,并用其來代替原曲面,然后再利用這些離散點沿其曲面法向矢量方向與刀具掃描體進行求交運算。這種方法是在某一方向上投影具有一定的局限性,而且在曲率大的地方加工誤差較大。
技術實現(xiàn)要素:
針對上述問題,本發(fā)明的目的是提供一種數(shù)控加工幾何仿真中基于stl模型的材料去除算法,該算法克服了實時性差、加工效力低、誤差大等問題,可以有效地提高加工仿真速度及精度。
為實現(xiàn)上述目的,本發(fā)明采取以下技術方案:一種數(shù)控加工幾何仿真中基于stl模型的材料去除算法,其特征在于,該算法包括以下步驟:1)將cad生成的被加工工件和刀具掃掠體都轉化為stl格式,stl模型表面是由三角面片組成;2)讀取刀具掃掠體和被加工工件stl模型,同時建立刀具掃掠體和被加工工件表面三角面片關系索引;3)建立被加工工件和刀具掃掠體的最小包圍盒,濾除不相交的三角面片,得到被加工工件和刀具掃掠體相交部分最小包圍盒,再運用空間解析法求出此求交范圍內一組相交的三角面片對;4)求解3)中得到的相交三角面片對交線段,利用相鄰交線段共端點的特點,依次求出余下交線,得到交線環(huán);5)對被加工工件和刀具掃掠體上參與相交的三角面片進行重構;6)對5)重構得到的被加工工件和刀具掃掠體上三角面片進行分類:根據(jù)刀具掃掠體表面三角面片法向量判斷被加工工件上以交線為邊的重構三角面片屬于保留表面還是屬于去除表面,根據(jù)被加工工件表面三角面片法向量判斷刀具掃掠體上以交線為邊的重構三角面片屬于參與加工表面還是非參與加工表面;其他面片分類情況根據(jù)已分類三角面片確定;7)由被加工工件上保留表面和刀具掃掠體上參與加工表面組成的封閉表面形成去除材料后的工件模型。
進一步,所述步驟2)具體過程如下:2.1)依次讀入所有三角面片頂點坐標p1(x1,y1,z1)、p2(x2,y2,z2)、p3(x3,y3,z3)…,以及所有三角面片法向量坐標n1(xn1,yn1,zn1)、n2(xn2,yn2,zn2)、n3(xn2,yn2,zn2)……,并建立對應頂點指針*p1、*p2、*p3…以及對應三角面片法向量指針*n1、*n2、*n3……,每個指針指向對應坐標地址,讀入的同時與已讀入的坐標進行對比,如果已經存在相同坐標則不重復錄入;2.2)以一個三角面片的數(shù)據(jù)信息為存儲單元,每個三角面片數(shù)據(jù)信息包括3個頂點一個法向量,設有若干個三角面片t1(*p1,*p2,*p3,*n1)、t2(*p4,*p5,*p6,*n2)、t3(*p7,*p8,*p9,*n3)……,建立指向每個三角面片存儲單元地址的指針*t1、*t2、*t3……。
進一步,所述步驟3)中,求出可能相交的三角面片對過程如下:3.1)建立包含被加工工件三角面片的最小包圍盒a,包含刀具掃掠體三角面片的最小包圍盒b,記包圍盒表面指向外部的法向方向為正;3.2)濾除在最小包圍盒a外的刀具掃掠體上所有完整的三角面片,保留刀具掃掠體上剩余三角面片,濾除在最小包圍盒b外部的被加工工件上所有完整的三角面片,保留工件上剩余三角面片;3.3)更新最小包圍盒a、最小包圍盒b,循環(huán)步驟3.2),直到剩余的總三角面片數(shù)不再增加為止,建立剩余總三角面片的最小包圍盒c;3.4)對最小包圍盒c進行空間網格劃分,劃分為若干個邊長為d的小正方體,并對這些正方體網格進行編號,坐標軸上以小正方體的一個邊長距離為單位進行標記;3.5)記錄并存儲每個三角面片所占據(jù)的空間網格,選取占據(jù)有相同空間網格的三角面片進行相交判斷,當檢測到相交三角面片對時,停止并且記錄此相交三角面片對;反之,則工件與刀具掃掠體不相交。
進一步,所述步驟3)中,三角面片對是否相交的判斷方法如下:3.1)提取擬進行相交判斷的兩個三角面片t1和t2,設三角面片t1的3個頂點分別為a1、b1和c1,法向量為
進一步,所述步驟3.3)中,平面三角面片相交判斷方法如下:3.3.1)分別判斷三個頂點a1、b1和c1是否在三角面片t2內、三個頂點a2、b2和c2是否在三角面片t1內,如果以上判斷結果有一個為真,則三角面片t1和t2相交;如果以上判斷結果均為否,進入下一步;3.3.2)判斷三角面片t2的三頂點是否在三角面片t1每條邊a1b1、b1c1、c1a1異側,三角面片t1的三頂點是否在三角面片t2每條邊a2b2、b2c2、c2a2異側;如果都滿足,則三角面片t1、t2相交,否則不相交。
進一步,所述步驟3.3.1)中,判斷三個頂點a1、b1和c1是否在三角面片t2內、三個頂點a2、b2和c2是否在三角面片t1內的算法如下:各頂點判斷方法相同,根據(jù)stl格式三角面片頂點沿指向實體外部法向方向逆時針排列,以三角面片t2的頂點a2為例,判斷其是否在三角面片t1內,分別計算
進一步,所述步驟3.4)中,判斷異面三角面片中邊是否與對方三角面片相交的算法如下:以三角面片t2的邊a2b2為例,判斷其是否與三角面片t1相交;計算
進一步,所述步驟4)中,交線環(huán)的具體求取過程如下:4.1)由找到的一組三角面片對t1、t2,設三角面片t1來自工件,三角面片t2來自刀具掃掠體,由所記錄的相交邊或頂點信息快速求出兩個交點,即為相交三角面片對t1、t2交線的端點,記求出的首段交線為i1i2;4.2)由已知交線i1i2,求其相鄰交線;4.3)依次求出剩余的交線,直到求得的交線端點與首段交線端點i1重合為止,最終得到交線環(huán)。
進一步,所述步驟4.2)中,相鄰交線具體求取過程為:4.2.1)以
進一步,所述步驟6)中,三角面片進行分類具體過程為:6.1)設三角面片t1、t2是分別來自工件及刀具掃掠體上的相交三角面片對,i1i2為交線,重構后三角面片t1、t2被劃分為若干新三角面片;6.2)對三角面片t1上以交線i1i2為邊的新三角面片進行判斷,在三角面片t2法向量
本發(fā)明由于采取以上技術方案,其具有以下優(yōu)點:1、本發(fā)明對被加工工件及刀具掃掠體模型同時采取stl格式,使虛擬加工的材料去除由實體去除轉換為曲面之間的求解,提高了切削效率。2、本發(fā)明在求取被加工工件與刀具掃掠體交線時,所運用的方法復雜度顯著降低,計算精準。3、本發(fā)明通過以交線環(huán)為界線,對被加工工件及刀具掃掠體模型表面三角面片進行分類劃分,使去除材料后的工件模型求取簡單,整個算法大大減小了加工誤差,具有魯棒性和時效性。
附圖說明
圖1是本發(fā)明的整體流程示意圖;
圖2是本發(fā)明中刀具形成的掃掠體加工工件的整體示意圖;
圖3是本發(fā)明中刀具掃掠體與工件相交處的局部放大圖;
圖4a是本發(fā)明中工件的線框模型示意圖;
圖4b是本發(fā)明中工件的stl模型示意圖;
圖5a是本發(fā)明中刀具掃掠體的線框模型示意圖;
圖5b是本發(fā)明中刀具掃掠體的stl模型示意圖;
圖6是本發(fā)明運用包圍盒求交的方式快速濾除不參與求交的三角面片、縮小求交范圍示意圖;
圖7是本發(fā)明中三角面片t2三頂點在三角面片t1所在平面同側情況;
圖8是本發(fā)明中三角面片t1、t2共面時,當不存在頂點在對方三角面片內部時的相交情況;
圖9是本發(fā)明中t1、t2異面相交時,此時所形成的交線情況之一;
圖10是本發(fā)明中由已知交線求下一段交線時的示意圖;
圖11是本發(fā)明當采用刀具掃掠體形狀及加工方式如圖所示時,所形成的交線環(huán)的形狀示意圖;
圖12是本發(fā)明中當三角面片t1內部交線為如圖所示,其重構劃分的情況;
圖13是本發(fā)明中交線環(huán)將工件表面分為保留表面和去除表面;
圖14是本發(fā)明中交線環(huán)將刀具掃掠體表面分為參與加工表面和不參與加工表面;
圖15是本發(fā)明中由工件保留的表面和刀具掃掠體參與加工的表面形成了最終加工后的工件模型;
圖16是本發(fā)明中材料去除后工件的stl格式模型。
具體實施方式
下面結合附圖和實施例對本發(fā)明進行詳細的描述。
如圖1所示,本發(fā)明提供一種數(shù)控加工幾何仿真中基于stl模型的材料去除算法,該去除算法涉及到的模塊包括被加工工件、刀具掃掠體、三角面片對、相交三角面片對的交線段以及交線環(huán);其中被加工工件和刀具掃掠體模型均為stl格式,在刀具掃掠體切削工件時會產生交界線,其整體構造如圖2所示,從圖3中可看出刀具掃掠體切削工件所產生的交界線為封閉環(huán);該封閉環(huán)將被加工工件和刀具掃掠體分別分為兩部分。本發(fā)明的具體步驟如下:
1)將cad生成的被加工工件和刀具掃掠體都轉化為stl格式,如附圖4a、圖4b、圖5a和圖5b所示,stl模型表面是由三角面片組成;
2)讀取刀具掃掠體和被加工工件stl模型,同時建立刀具掃掠體和被加工工件表面三角面片關系索引;
由于stl格式的工件及刀具掃掠體表面的三角面片之間本身是離散的,通過讀入三角面片信息并建立索引,能將離散的三角面片緊密聯(lián)系起來。其具體步驟如下:
2.1)依次讀入所有三角面片頂點坐標p1(x1,y1,z1)、p2(x2,y2,z2)、p3(x3,y3,z3)…,以及所有三角面片法向量坐標n1(xn1,yn1,zn1)、n2(xn2,yn2,zn2)、n3(xn2,yn2,zn2)……,并建立對應頂點指針*p1、*p2、*p3…以及對應三角面片法向量指針*n1、*n2、*n3……,每個指針指向對應坐標地址,讀入的同時與已讀入的坐標進行對比,如果已經存在相同坐標則不重復錄入;
2.2)以一個三角面片的數(shù)據(jù)信息為存儲單元,每個三角面片數(shù)據(jù)信息包括3個頂點一個法向量,設有若干個三角面片t1(*p1,*p2,*p3,*n1)、t2(*p4,*p5,*p6,*n2)、t3(*p7,*p8,*p9,*n3)……,其中不同三角面片可能具有相同頂點;建立指向每個三角面片存儲單元地址的指針*t1、*t2、*t3……。
這樣既能由給定坐標找到對應的三角面片,又能由三角面片索引到其頂點及法向量坐標,同時也能夠找到具有公共頂點和公共邊(兩頂點相同)的三角面片。例如,對于坐標為(xi,yi,zi)的點(i為正整數(shù)),由它能夠索引到對應指針*pi,再向上一級索引能夠找到以它為頂點的三角面片,若tm、tn都包含此頂點(m、n為正整數(shù)且不相等),則這兩個三角面片具有公共頂點;若tm、tn有兩個頂點相同,則這兩三角面片具有公共邊。
3)快速找到一組相交的三角面片對:建立工件和刀具掃掠體的最小包圍盒,通過濾除不可能參與相交的三角面片,得到被加工工件和刀具掃掠體相交部分最小包圍盒,再運用空間解析法求出此求交范圍內一組相交的三角面片對;具體步驟為:
3.1)建立包含工件所有三角面片的最小包圍盒a、包含刀具掃掠體所有三角面片的最小包圍盒b,記包圍盒表面指向外部的法向方向為正;
3.2)濾除在最小包圍盒a外的刀具掃掠體上所有完整的三角面片,保留刀具掃掠體上剩余三角面片,濾除在最小包圍盒b外部的工件上所有完整的三角面片,保留工件上剩余三角面片;
3.3)更新最小包圍盒a、最小包圍盒b,循環(huán)步驟3.2),直到剩余的總三角面片數(shù)不再增加為止,建立剩余總三角面片的最小包圍盒c,如圖6所示;
3.4)對最小包圍盒c進行空間網格劃分,劃分為若干個邊長為d的小正方體,并對這些正方體網格進行編號,取(i,j,k)來唯一的標識一個網格,其中i、j、k分別表示網格在x、y、z坐標軸上的編號,坐標軸上以小正方體的一個邊長距離為單位進行標記,以使每個小立方體都有唯一的坐標與之對應;
3.5)記錄并存儲每個三角面片所占據(jù)的空間網格,選取占據(jù)有相同空間網格的三角面片進行相交判斷,當檢測到相交三角面片對時,立即停止并且記錄此相交三角面片對;如果沒有檢測到相交三角面片對,則工件與刀具掃掠體不相交;其中,選取的優(yōu)先順序依據(jù)占據(jù)相同網格數(shù)的多少而定。
4)三角面片對是否相交的精確判斷:利用向量的點乘和叉乘特點,建立矢量判別模型,快速全面判斷步驟3)中選出的三角面片對是否相交;具體步驟為:
4.1)提取擬進行相交判斷的兩個三角面片t1和t2,由stl格式可知三角面片3個頂點沿指向實體外部的法矢量方向逆時針排列,設三角面片t1的3個頂點分別為a1、b1和c1,法向量為
4.2)分別計算
4.3)如果
4.3.1)分別判斷三個頂點a1、b1和c1是否在三角面片t2內、三個頂點a2、b2和c2是否在三角面片t1內,如果以上判斷結果有一個為真,則三角面片t1和t2相交,記錄相交邊,結束判斷;如果以上判斷結果均為否,進入步驟4.3.2);
根據(jù)stl格式三角面片頂點為沿法向方向逆時針順序排列,以三角面片t2的頂點a2為例(各頂點判斷方法相同),判斷其是否在三角面片t1內,分別計算
當不知道三角面片頂點排列順序時,需計算
4.3.2)如果兩三角面片相交,只有可能是圖8所示情況,只需判斷三角面片t2的三頂點是否在三角面片t1每條邊a1b1、b1c1、c1a1異側,三角面片t1的三頂點是否在三角面片t2每條邊a2b2、b2c2、c2a2異側。如果都滿足,則三角面片t1、t2相交,否則不相交。
4.4)如
其中,判斷異面三角面片中邊是否與對方三角面片相交的算法如下,以三角面片t2的邊a2b2為例,判斷其是否與三角面片t1相交:
計算
①線段a2b2與三角面片t1異面:首先計算
②線段a2b2與三角面片t1共面:利用步驟4.3.1)中點是否在三角面片內的判斷方法分別判斷點a2、b2是否在三角面片t1內,若至少存在一點在三角面片t1內,則線段a2b2與t1相交;若點a2、b2都不在三角面片t1內,只有兩種情況:線段a2b2與三角面片t1不相交、線段a2b2與三角面片t1相交。此時如果相交,只能是線段a2b2橫穿三角面片t1,這時三角面片t1中必有邊與三角面片t2異面相交,由于三角面片t1、t2的每一條邊都要作相交判斷,所以當點a2、b2都不在三角面片t1內,可認定為不相交或不作處理,此時不影響三角面片t1、t2相交判定最終結果。通過上述方法可完成三角面片t1、t2中其余邊的相交判定。
5)交線環(huán)的求?。呵蠼獠襟E4)中確定的相交三角面片對的交線,利用相鄰交線段共端點的特點,結合相交三角面片對法向量與交線的關系,依次求出余下交線,得到交線環(huán);具體步驟如下:
5.1)求相交三角面片對交線:由步驟3)、步驟4)找到的一組三角面片對t1、t2,設三角面片t1來自工件,三角面片t2來自刀具掃掠體,由所記錄的相交邊或頂點信息快速求出兩個交點,即為相交三角面片對t1、t2交線的端點,記求出的首段交線為i1i2,如圖9所示;
對于相交的三角面片對,交線的端點是由其中一個三角面片的邊與另一三角面片相交而得,所以端點與三角面片的關系有且僅有三種:①在三角面片內部;②在三角面片邊上;③在三角面片頂點上。
5.2)由已知交線i1i2,求其相鄰交線:
5.2.1)求相鄰交線所在的相交三角面片對:以
由公共端點i2與工件上的三角面片t1的關系求第一個相交三角面片,當公共端點i2與三角面片t1的關系為情況①(即在三角面片內部)時,則三角面片t1為所求三角面片;
當公共端點i2與三角面片t1的關系為情況②(即在三角面片邊上)時,則三角面片t1上公共端點i2所在邊的另一個三角面片為所求;
當公共端點i2與三角面片t1的關系為情況③(即在三角面片頂點上)時,則三角面片t1上公共端點i2所在頂點所屬若干三角面片中的一個為所求,只需對公共端點i2的若干三角面片與刀具掃掠體上求得的三角面片進行相交判定即可。
同理由端點i2與三角面片t2的關系可求出在刀具掃掠體上的第二個相交三角面片;
例如,如圖10所示,i2在t1內部,所以工件上的三角面片t1即為所求,可令其為t3;i2在三角面片t2的邊a2c2上,所以刀具掃掠體上與t2有公共邊a2c2的相鄰三角面片設為t4即為所求;
5.2.2)求交線另一端點:由步驟5.2.1)已求出相交三角面片對t3、t4,根據(jù)三角面片t3的法向量
5.3)根據(jù)步驟5.2)的方法依次求出剩余的交線,直到求得的交線端點與首段交線端點i1重合為止,最終得到交線環(huán),如圖11所示,此時只有一條交線環(huán)??紤]到刀具掃掠體與工件可能有多條交線環(huán),每求出一條交線環(huán),則剔除由求出的包圍盒c中與交線環(huán)相交的所有三角面片,在更新的包圍盒c中重新檢測是否存在相交三角面片對,如果存在,繼續(xù)后續(xù)步驟求出下一條交線環(huán),以此循環(huán)直到包圍盒c中不存在相交三角面片對為止。
6)對相交三角面片對進行重構:對被加工工件和刀具掃掠體上參與相交的三角面片進行重構;
重構是針對于被加工工件及刀具掃掠體上參與加工的三角面片,也就是對被交線貫穿的三角面片進行重構,重構的方式依據(jù)三角面片對的相交情況,重構的三角面片被劃分為若干個新的三角面片,以三角面片t1為例,交線i1i2、i2i3將其分割,則重構后形成的新三角面片如圖12所示;
7)對三角面片進行分類:重構后,以交線環(huán)為邊界將工件三角面片劃分為在刀具掃掠體模型內部和在刀具掃掠體模型外部,其中在內部的三角面片為刀具去除的部分,在外部的三角面片為要保留的部分,如圖13所示;以交線環(huán)為邊界將刀具掃掠體三角面片分為在工件模型內部和在工件模型外部,其中在內部的三角面片屬于參與加工表面,在外部的三角面片屬于不參與加工表面,如圖14所示。
根據(jù)刀具表面三角面片法向量判斷工件上以交線為邊的重構三角面片屬于保留表面還是屬于去除表面,根據(jù)工件表面三角面片法向量判斷刀具掃掠體上以交線為邊的新三角面片屬于參與加工表面還是非參與加工表面;其他面片分類情況可根據(jù)已分類三角面片快速確定。具體步驟為:
7.1)設三角面片t1、t2是分別來自工件及刀具掃掠體上的相交三角面片對,i1i2為交線,重構后三角面片t1、t2被劃分為若干新三角面片。
7.2)根據(jù)stl格式三角面片法向方向為指向實體外部,對三角面片t1上以交線i1i2為邊的新三角面片進行判斷,在三角面片t2法向量
7.3)根據(jù)以上步驟完成工件及刀具掃掠體上所有以交線為邊的新三角面片進行歸屬分類;
7.4)其余三角面片判定方法為:根據(jù)相鄰三角面片共邊的關系,且在封閉交線環(huán)內外側的三角面片已經完成分類,由已分類的三角面片開始向未分類的三角面片遍歷。在工件表面,與屬于保留面三角面片相鄰的仍然是屬于保留面,與屬于去除面三角面片相鄰的仍然是屬于去除面;在刀具掃掠體表面,與屬于參與加工表面相鄰的依然屬于參與加工表面,與非參與加工表面相鄰的依然屬于非參與加工面。最終完成了工件及刀具掃掠體上所有三角面片的分類。
8)材料去除:完成三角面片分類劃分后,由被加工工件上保留表面和刀具掃掠體上參與加工表面組成新的封閉表面形成了去除材料后的工件模型,如圖15所示,加工后模型的stl格式如圖16所示。至此,達到了數(shù)控加工幾何仿真中材料去除的目的。
上述各實施例僅用于說明本發(fā)明,各部件的結構、尺寸、設置位置及形狀都是可以有所變化的,在本發(fā)明技術方案的基礎上,凡根據(jù)本發(fā)明原理對個別部件進行的改進和等同變換,均不應排除在本發(fā)明的保護范圍之外。