本發(fā)明涉及涉及在機(jī)檢測(cè)的測(cè)量誤差補(bǔ)償領(lǐng)域,更具體的說(shuō),是涉及一種基于stl模型的在機(jī)檢測(cè)的測(cè)點(diǎn)法矢估算方法。
背景技術(shù):
隨著制造業(yè)技術(shù)和裝備的不斷進(jìn)步,在機(jī)檢測(cè)系統(tǒng)中對(duì)復(fù)雜模型的測(cè)量精度、測(cè)量質(zhì)量的要求越來(lái)越高,其中測(cè)點(diǎn)的法矢方向?qū)υ跈C(jī)測(cè)量系統(tǒng)的測(cè)點(diǎn)采樣精度、半徑誤差補(bǔ)償及預(yù)行程誤差補(bǔ)償精度均具有重要的影響。但是現(xiàn)有的測(cè)點(diǎn)法矢估算方法誤差較大,不能準(zhǔn)確測(cè)量得到測(cè)點(diǎn)的真實(shí)位置。因此,針對(duì)測(cè)點(diǎn)法矢估算的問(wèn)題,需要設(shè)計(jì)研究新方法來(lái)提高測(cè)點(diǎn)測(cè)量精度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是為了克服現(xiàn)有技術(shù)中的不足,提供一種基于stl模型的在機(jī)檢測(cè)的測(cè)點(diǎn)法矢估算方法,該方法能夠有效地提高測(cè)點(diǎn)法矢的測(cè)量精度。
本發(fā)明的目的是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
一種基于stl模型的在機(jī)檢測(cè)的測(cè)點(diǎn)法矢估算方法,包括以下步驟:
(1)拓?fù)渲亟ǎ焊鶕?jù)stl模型的stl文件中給出的頂點(diǎn)坐標(biāo)及三角面片法矢信息,以點(diǎn)、線、面為單位進(jìn)行拓?fù)渲亟?,通過(guò)編程工具,建立stl三維模型中“點(diǎn)—線—面”三者之間的關(guān)系;
(2)測(cè)點(diǎn)規(guī)劃:用一組平行截平面與stl模型進(jìn)行截交,將得到的交點(diǎn)作為型值點(diǎn),采用曲線反求的方法構(gòu)造插值曲線,再根據(jù)弦高法進(jìn)行測(cè)點(diǎn)自適應(yīng)規(guī)劃,求出所有測(cè)點(diǎn)的位置坐標(biāo);
(3)根據(jù)測(cè)點(diǎn)規(guī)劃后的測(cè)點(diǎn)分布,讀取一個(gè)測(cè)點(diǎn)信息,判斷測(cè)點(diǎn)的位置,當(dāng)測(cè)點(diǎn)位于三角網(wǎng)格頂點(diǎn)時(shí),進(jìn)行步驟(4);測(cè)點(diǎn)位于三角網(wǎng)格內(nèi)部時(shí),進(jìn)行步驟(6);
(4)通過(guò)坐標(biāo)匹配,確定測(cè)點(diǎn)所在頂點(diǎn)的編號(hào),通過(guò)頂點(diǎn)的拓?fù)潢P(guān)系,找到與其相鄰的點(diǎn),線,面的信息,以所述信息為基礎(chǔ)計(jì)算該頂點(diǎn)的法矢方向
(5)將測(cè)點(diǎn)與三角網(wǎng)格投影到x-y平面,確定測(cè)點(diǎn)所在三角面片的編號(hào);
(6)利用面的拓?fù)潢P(guān)系得到測(cè)點(diǎn)所在三角面片的三個(gè)頂點(diǎn)a、b、c,按照步驟(4)的方法計(jì)算該三個(gè)頂點(diǎn)的法矢方向;將測(cè)點(diǎn)與該三個(gè)頂點(diǎn)相連,把三角面片劃分為三個(gè)小三角形,并分別求出其面積為s1、s2、s3,通過(guò)計(jì)算得到測(cè)點(diǎn)的法矢
(7)讀取下一個(gè)測(cè)點(diǎn)信息,重復(fù)步驟(3)—(6),直至所有測(cè)點(diǎn)的法矢計(jì)算完畢。
步驟(1)中,建立stl三維模型中“點(diǎn)—線—面”三者之間的關(guān)系如下:
(1)對(duì)所有點(diǎn)進(jìn)行編號(hào),并且通過(guò)任意頂點(diǎn)能夠找到該點(diǎn)及與其相鄰的頂點(diǎn),邊,面的信息;
(2)對(duì)所有邊進(jìn)行編號(hào),并且通過(guò)任意邊能夠找到該邊及其端點(diǎn)、相鄰面的信息;
(3)對(duì)所有面進(jìn)行編號(hào),并且通過(guò)任意面能夠找到該面及其頂點(diǎn)、邊、相鄰面的信息。
步驟(1)中所述編程工具為visualstudio2010。
步驟(5)中通過(guò)判斷測(cè)點(diǎn)與投影三角形各個(gè)頂點(diǎn)的夾角是否等于360°用來(lái)確定測(cè)點(diǎn)所在三角面片的編號(hào)。
與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)方案所帶來(lái)的有益效果是:
本發(fā)明估算方法解決了測(cè)點(diǎn)位于三角網(wǎng)格內(nèi)部時(shí)的法矢估算問(wèn)題,同時(shí)改進(jìn)了測(cè)點(diǎn)位于三角網(wǎng)格頂點(diǎn)時(shí)的法矢估算精度,有效的提高了在機(jī)檢測(cè)系統(tǒng)的測(cè)量精度和測(cè)量質(zhì)量,對(duì)于工件加工質(zhì)量的評(píng)估具有重要影響。
附圖說(shuō)明
圖1是stl模型的“點(diǎn)—線—面”拓?fù)潢P(guān)系圖。
圖2是本發(fā)明測(cè)點(diǎn)規(guī)劃示意圖
圖3是本發(fā)明測(cè)點(diǎn)分布圖。
圖4是弦高法的原理示意圖。
圖5是本發(fā)明頂點(diǎn)拓?fù)潢P(guān)系圖。
圖6是本發(fā)明測(cè)點(diǎn)法矢計(jì)算方法示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的描述。
采用本發(fā)明的在機(jī)檢測(cè)系統(tǒng)測(cè)點(diǎn)法矢估算方法,它包括以下步驟:
步驟一:根據(jù)stl模型的stl文件中給出的頂點(diǎn)坐標(biāo)及三角面片法矢信息,以點(diǎn)、線、面為單位進(jìn)行拓?fù)渲亟?,利用visualstudio2010編程工具,建立stl三維模型中“點(diǎn)—線—面”三者之間的關(guān)系如下:
(1)對(duì)所有點(diǎn)進(jìn)行編號(hào),并且通過(guò)任意頂點(diǎn)能夠找到該點(diǎn)及與其相鄰的頂點(diǎn),邊,面的信息;
(2)對(duì)所有邊進(jìn)行編號(hào),并且通過(guò)任意邊能夠找到該邊及其端點(diǎn)、相鄰面的信息;
(3)對(duì)所有面進(jìn)行編號(hào),并且通過(guò)任意面能夠找到該面及其頂點(diǎn)、邊、相鄰面的信息。
stl三維模型中“點(diǎn)—線—面”三者之間的拓?fù)潢P(guān)系,參見(jiàn)圖1。
步驟二:請(qǐng)參見(jiàn)圖2,用一組平行截平面與stl模型進(jìn)行截交,將得到的交點(diǎn)作為型值點(diǎn),采用nurbs曲線進(jìn)行擬合,得到一組截面線,最后根據(jù)弦高法進(jìn)行測(cè)點(diǎn)自適應(yīng)規(guī)劃,求出所有測(cè)點(diǎn)的位置坐標(biāo),測(cè)點(diǎn)分布情況請(qǐng)參見(jiàn)圖3。
弦高法原理圖請(qǐng)參見(jiàn)圖4,其實(shí)現(xiàn)流程是:
(1)求出弦ab與弧ab之間的最大距離d;
(2)當(dāng)d>ε時(shí),說(shuō)明兩點(diǎn)間的距離較大,應(yīng)減小δu的值,令δu=δu-δ,重新計(jì)算弦高d,其中ε為允許的弦高,δ為縮小步長(zhǎng)。不斷重復(fù)步驟(2)直至d<ε,記錄當(dāng)前b點(diǎn)的位置。
(3)以b點(diǎn)作為當(dāng)前點(diǎn),重復(fù)步驟(1)(2)直至整條曲線搜索完畢,實(shí)現(xiàn)該段曲線的測(cè)點(diǎn)自適應(yīng)規(guī)劃。
步驟三:根據(jù)測(cè)點(diǎn)規(guī)劃后的測(cè)點(diǎn)分布,讀取一個(gè)測(cè)點(diǎn)信息,判斷測(cè)點(diǎn)的位置。當(dāng)測(cè)點(diǎn)位于三角網(wǎng)格頂點(diǎn)時(shí),進(jìn)行步驟(四),測(cè)點(diǎn)位于三角網(wǎng)格內(nèi)部時(shí),進(jìn)行步驟(六);
步驟四:通過(guò)坐標(biāo)匹配,確定測(cè)點(diǎn)所在頂點(diǎn)的編號(hào)。通過(guò)頂點(diǎn)的拓?fù)潢P(guān)系,見(jiàn)圖5,找到與其相鄰的點(diǎn),線,面的信息,以這些信息為基礎(chǔ)計(jì)算該點(diǎn)的法矢方向
式中,nm是三角面片的法矢信息,vi是頂點(diǎn)的位置,αm是頂點(diǎn)的一鄰域三角面片tm在頂點(diǎn)處的頂角
跳到步驟七;
步驟五:將測(cè)點(diǎn)與三角網(wǎng)格投影到x-y平面,通過(guò)判斷測(cè)點(diǎn)與投影三角形各個(gè)頂點(diǎn)的夾角是否等于360°來(lái)確定測(cè)點(diǎn)所在三角面片的編號(hào);
步驟六:請(qǐng)參見(jiàn)圖6,測(cè)點(diǎn)為o,利用面的拓?fù)潢P(guān)系得到測(cè)點(diǎn)所在三角面片的三個(gè)頂點(diǎn)a、b、c,然后按照步驟四的方法計(jì)算這三點(diǎn)的法矢方向。將測(cè)點(diǎn)o與a、b、c三點(diǎn)相連,把三角面片劃分為三個(gè)小三角形δaobδbocδaoc,并分別求得其面積為s1、s2、s3,通過(guò)計(jì)算得到測(cè)點(diǎn)o的法矢為:
式中
步驟七:讀取下一個(gè)測(cè)點(diǎn)信息,重復(fù)(三)~(六),直到所有測(cè)點(diǎn)的法矢計(jì)算完畢。
本發(fā)明并不限于上文描述的實(shí)施方式。以上對(duì)具體實(shí)施方式的描述旨在描述和說(shuō)明本發(fā)明的技術(shù)方案,上述的具體實(shí)施方式僅僅是示意性的,并不是限制性的。在不脫離本發(fā)明宗旨和權(quán)利要求所保護(hù)的范圍情況下,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下還可做出很多形式的具體變換,這些均屬于本發(fā)明的保護(hù)范圍之內(nèi)。