邢悅,李麗娟
(長(zhǎng)春理工大學(xué) 光電工程學(xué)院,長(zhǎng)春 130022)
隨著航空航天、汽車、船舶等制造業(yè)的發(fā)展,產(chǎn)品的改進(jìn)設(shè)計(jì)是縮短新產(chǎn)品開(kāi)發(fā)周期的重要手段之一[1]。首先將實(shí)物模型轉(zhuǎn)化為CAD模型,在此基礎(chǔ)上再進(jìn)行產(chǎn)品加工或產(chǎn)品升級(jí)設(shè)計(jì)。這種從實(shí)物模型獲取產(chǎn)品數(shù)學(xué)信息進(jìn)而反向開(kāi)發(fā)出同類產(chǎn)品的技術(shù)叫做“逆向工程”又稱反向工程[2]。逆向工程流程如圖1所示,具體流程為:(1)復(fù)雜異型曲面外形數(shù)據(jù)數(shù)字化;(2)點(diǎn)云數(shù)據(jù)處理;(3)曲面重構(gòu)。
圖1 逆向工程流程
用于逆向工程的產(chǎn)品的多數(shù)外形復(fù)雜,表面是由多個(gè)自由曲面拼接組合而成,所以快速、精準(zhǔn)、高效地重構(gòu)出理想的自由曲面是逆向工程的核心[3]。使用CATIA V5軟件DSE模塊重構(gòu)的曲面精度光順度均需要調(diào)整,需要結(jié)合freestyle模塊中控制點(diǎn)等命令對(duì)曲面進(jìn)行優(yōu)化。但CATIA V5版本中控制點(diǎn)命令不能定向定量調(diào)整曲面,使曲面優(yōu)化工作變得繁瑣。本文提出的快速曲面優(yōu)化方法是把自由曲面偏差分析結(jié)合到曲面優(yōu)化工作中,基于偏差檢測(cè)結(jié)果做到有針對(duì)性的曲面優(yōu)化,可以大大提高曲面優(yōu)化成功率,最終實(shí)現(xiàn)快速曲面重構(gòu)的目的。
自由曲面面型復(fù)雜,邊界不規(guī)則,所以重構(gòu)工作一直是逆向工程中的一大難點(diǎn)。自由曲面擬合包括曲面逼近法和曲面插值法兩種[4]。曲面逼近法是通過(guò)擬合出一個(gè)曲面使曲面接近數(shù)據(jù)點(diǎn)云,其精確性不高。曲面插值法擬合出的曲面嚴(yán)格經(jīng)過(guò)數(shù)據(jù)點(diǎn)云,雖然擬合曲面精度高但曲面光順度差,當(dāng)數(shù)據(jù)量大時(shí),計(jì)算工作量也明顯增加。在曲面精度要求不是很高且需要兼顧表面光順度的模型中,常采用曲面逼近法。
目前自由曲面分為Bezier三角域曲面模型和NURBS四邊域曲面模型兩種。Bezier三角域曲面模型有實(shí)用性良好和構(gòu)造靈活的優(yōu)點(diǎn)。NURBS(非均勻有理B樣條)曲面模型[5]是以四邊域?yàn)閰?shù)的曲面。NURBS曲面擬合適用于點(diǎn)云數(shù)據(jù)有規(guī)則且曲面變化較小的曲面。但NURBS曲面的優(yōu)勢(shì)在于可以與CAD/CAM系統(tǒng)數(shù)據(jù)通用,被廣泛應(yīng)用于飛機(jī)表面、汽車外形曲面的重建領(lǐng)域。
傳統(tǒng)異形曲面重構(gòu)過(guò)程中,初始擬合曲面存在偏差較大部分。通常需要局部?jī)?yōu)化調(diào)整,即使用控制點(diǎn)命令調(diào)整曲面,使曲面與數(shù)據(jù)點(diǎn)的偏差在允許偏差范圍內(nèi)。使用CATIA軟件中的控制點(diǎn)命令對(duì)自由曲面進(jìn)行調(diào)整時(shí),控制點(diǎn)命令窗口只能選擇控制點(diǎn)調(diào)整的方向??刂泣c(diǎn)移動(dòng)的距離靠操作人員人機(jī)交互完成,優(yōu)化成功率得不到保證。針對(duì)曲面優(yōu)化部分操作復(fù)雜、效率低的問(wèn)題,提出了快速曲面優(yōu)化方法??焖偾嬷貥?gòu)方法流程圖如圖2所示。根據(jù)點(diǎn)云對(duì)曲面進(jìn)行擬合,在曲面調(diào)整前加入曲面偏差檢測(cè)工作,基于偏差檢測(cè)的結(jié)果對(duì)曲面進(jìn)行定向定量調(diào)整。實(shí)驗(yàn)證明,此方法可以實(shí)現(xiàn)快速曲面重構(gòu),大大提高了曲面優(yōu)化的效率。
圖2 曲面重構(gòu)流程圖
自由曲面偏差檢測(cè)多涉及到物體表面間距離計(jì)算問(wèn)題。NURBS曲面模型在自由曲面定義形狀方面有強(qiáng)大功能優(yōu)勢(shì)[6],1991年NURBS曲面被國(guó)際標(biāo)準(zhǔn)組織定義為自由曲線及自由曲面的唯一數(shù)學(xué)表示方法,定義如下:
式中,S(u,v)表示NURBS曲面上任意一點(diǎn)的坐標(biāo);Pi,j表示控制點(diǎn)陣的坐標(biāo);Ni,u(u)表示在u向的k次B樣條基函數(shù);Nj,v(v)表示在v向的t次B樣條基函數(shù)。通過(guò)在u和v方向上定義n和m個(gè)控制點(diǎn)可以確定NURBS曲面表達(dá)式??刂泣c(diǎn)的坐標(biāo)可以預(yù)先給定或者根據(jù)曲面上的已知點(diǎn)反求得到;ωi,j表示對(duì)應(yīng)控制點(diǎn)的權(quán)因子,權(quán)因子必須大于0,且權(quán)因子數(shù)值大小表示曲面與控制點(diǎn)的相關(guān)聯(lián)程度。有以下遞推公式:
式中,ui表示節(jié)點(diǎn)i=0,1,...,n。另約定u和v方向上的端節(jié)點(diǎn)重復(fù)度為k+1和t+1,使NURBS曲面端節(jié)點(diǎn)具備角點(diǎn)性。NURBS曲面模型具備局部控制的特點(diǎn),所以移動(dòng)單個(gè)控制點(diǎn)不會(huì)造成全局變化。控制點(diǎn)與曲面的關(guān)系示意圖,如圖3所示。
圖3 控制點(diǎn)與曲面關(guān)系
曲面偏差檢測(cè)的目的是找到距離最近的一對(duì)配對(duì)點(diǎn),獲得其兩點(diǎn)間的距離。一點(diǎn)為實(shí)物測(cè)量獲得的數(shù)據(jù)點(diǎn),另一點(diǎn)為擬合曲面上與其配對(duì)的一點(diǎn)。此問(wèn)題可以轉(zhuǎn)化為曲面間最小偏差距離計(jì)算問(wèn)題,即計(jì)算兩曲面間任意兩點(diǎn)的距離,比較出最近兩點(diǎn)距離,默認(rèn)偏差距離最小的兩點(diǎn)為配對(duì)點(diǎn)。NURBS曲面是四邊域曲面模型,所以可以采用分裂算法[7],利用包圍體代替的概念計(jì)算曲面間距離,提出以包圍體代替包圍盒的方法,提高了分裂算法的速度。研究的曲面為凸包曲面,當(dāng)控制點(diǎn)的權(quán)因子大于0時(shí),NURBS曲面具備良好的凸包性,即曲面的所有數(shù)據(jù)點(diǎn)位于控制點(diǎn)網(wǎng)格所構(gòu)成的多面體中。此時(shí)可以采用控制點(diǎn)網(wǎng)格多面體作為包圍體模型。
NURBS曲面分裂算法思路:(1)將NURBS一分為四個(gè)子曲面,每張子曲面標(biāo)記min-max;(2)將包圍體間距一一進(jìn)行比對(duì),再根據(jù)包圍體間距大小,篩選出距離小的自曲面進(jìn)行二次分裂;(3)當(dāng)分裂到達(dá)一定次數(shù)時(shí),包圍體無(wú)限接近曲面,用包圍體間距代替自曲面間距。用控制點(diǎn)代替曲面點(diǎn)進(jìn)行點(diǎn)點(diǎn)距離比較;(4)得到一對(duì)距離最近的配對(duì)點(diǎn),并輸出結(jié)果。
NURBS曲面分裂是曲線分裂的推廣,需要對(duì)曲面u向和v向分別進(jìn)行分裂。即分別插入節(jié)點(diǎn),再計(jì)算控制點(diǎn),將NURBS曲面分為四個(gè)NURBS子曲面,計(jì)算出的新控制點(diǎn)將被分配到四個(gè)NURBS子曲面上。以k次B樣條曲線為例,節(jié)點(diǎn)插入算法如下:
設(shè)樣條曲線的控制點(diǎn)如下:
節(jié)點(diǎn)矢量:
在[qi,qi+1]節(jié)點(diǎn)間插入一個(gè)新節(jié)點(diǎn)q*
則新節(jié)點(diǎn)矢量如下:
根據(jù)新節(jié)點(diǎn)矢量求新的控制點(diǎn)如下:
式中,r表示插入的節(jié)點(diǎn)重復(fù)度,若節(jié)點(diǎn)序列不存在q節(jié)點(diǎn),則r=0;若q節(jié)點(diǎn)在節(jié)點(diǎn)序列中出現(xiàn)n次,則r=n。
NURBS曲線新控制點(diǎn)如下:
插入節(jié)點(diǎn)后權(quán)因子如下:
根據(jù)算法可以得到,當(dāng)插入一個(gè)新節(jié)點(diǎn),節(jié)點(diǎn)矢量將增加一個(gè)新區(qū)間;同時(shí),增加一個(gè)新控制頂點(diǎn),還要計(jì)算新控制頂點(diǎn)的權(quán)因子。同一節(jié)點(diǎn)處,節(jié)點(diǎn)重復(fù)k次,曲線在相應(yīng)節(jié)點(diǎn)處分裂。
采用遞歸算法,NURBS曲面分裂后,篩選包圍體時(shí),由于NURBS曲面具有角點(diǎn)性,即角點(diǎn)存在于曲面上,用兩曲面間角點(diǎn)距離作為曲面間距離d*的上界值。如果包圍體間距大于上界值,則淘汰。反之,把d*值賦給上界值。遞歸調(diào)用,直到分裂一定的次數(shù)。
包圍體之間距離的計(jì)算可以采用GJK算法[8],其思路為兩個(gè)凸多面體間距的差仍構(gòu)成一個(gè)凸多面體,記作M。所以,可以把包圍體間距最小值計(jì)算轉(zhuǎn)化為求解原點(diǎn)到凸多面體M的最短距離計(jì)算。求解原點(diǎn)到凸多面體的距離,GKJ算法會(huì)生成一個(gè)序列K,K是遞減的,直至不再生成新的最短距離為止。多次分裂后的曲面控制點(diǎn)已經(jīng)非常逼近NURBS曲面,所以最短距離即曲面偏差距離。
基于偏差檢測(cè)結(jié)果的快速曲面優(yōu)化方法需要曲面優(yōu)化命令具備定向定量的調(diào)整功能,但CATIA軟件中曲面優(yōu)化命令不具備定量調(diào)整的功能,故需要對(duì)命令進(jìn)行二次開(kāi)發(fā)。
具體思路為:首先獲取實(shí)物外形數(shù)據(jù)點(diǎn),用曲面逼近法進(jìn)行曲面擬合得到一個(gè)NURBS曲面。然后計(jì)算曲面與數(shù)據(jù)點(diǎn)偏差距離,獲取曲面控制點(diǎn)。最后基于偏差結(jié)果對(duì)曲面控制點(diǎn)進(jìn)行調(diào)整,使擬合曲面符合精度及光順度要求。最后用對(duì)比新舊兩種方法構(gòu)造的曲面精度,說(shuō)明新方法在構(gòu)建曲面的效率與精度上均有提高。
實(shí)驗(yàn)使用非接觸式光學(xué)測(cè)量系統(tǒng)基于三角測(cè)距原理獲得飛機(jī)表面的數(shù)字化信息,將測(cè)量點(diǎn)云數(shù)據(jù)導(dǎo)入CATIA軟件中,先對(duì)其進(jìn)行數(shù)據(jù)點(diǎn)劃分,分割后得點(diǎn)云如圖4所示。再逐一進(jìn)行曲面重構(gòu),最后把五個(gè)自曲面進(jìn)行拼接封裝成一個(gè)完成的曲面,模型的曲面重構(gòu)完成。
圖4 點(diǎn)云數(shù)據(jù)分割
以中間部分曲面重構(gòu)為例,說(shuō)明快速曲面優(yōu)化方法在曲面重構(gòu)過(guò)程中的應(yīng)用。使用CATIA軟件中Deviation Analysis工具對(duì)擬合曲面進(jìn)行精度分析,擬合曲面與點(diǎn)云偏差結(jié)果:最大正偏差為1.4mm,最大負(fù)偏差為(-0.2mm),正偏差明顯偏大,不符合重構(gòu)曲面允許最大偏差值±1mm以內(nèi),需要進(jìn)行曲面優(yōu)化調(diào)整。
CATIA V5軟件中的控制點(diǎn)命令不具備定量調(diào)整的功能,需要對(duì)其進(jìn)行二次開(kāi)發(fā)。
CAA全稱為組件應(yīng)用架構(gòu),是客戶對(duì)達(dá)索產(chǎn)品進(jìn)行擴(kuò)展的一個(gè)開(kāi)發(fā)平臺(tái)。用戶可以通過(guò)組件對(duì)CATIA V5進(jìn)行擴(kuò)展,實(shí)現(xiàn)一些個(gè)性化功能。CATIA CAA-RADE是目前CAD/CAM開(kāi)發(fā)環(huán)境中應(yīng)用最廣、功能最強(qiáng)的一個(gè)[10]。
CATIA幾何建模CGM(CATIA Geometric Modeler)是CATIA提供的開(kāi)發(fā)包,CGM提供了各種對(duì)象,允許開(kāi)發(fā)人員開(kāi)發(fā)自己的幾何應(yīng)用程序。CGM對(duì)曲面的描述主要是采用NURBS方法。
新控制命令在需要在原命令基礎(chǔ)上添加移動(dòng)距離參數(shù),使控制點(diǎn)調(diào)整的距離量化,結(jié)合偏差分析的結(jié)果,設(shè)置相應(yīng)參數(shù),具體操作流程為:
(1)曲面優(yōu)化前對(duì)曲面與點(diǎn)云進(jìn)行偏差檢測(cè),得到各局部曲面具體偏移量和方向;
(2)選取要優(yōu)化的NURBS曲面,曲面上會(huì)顯示出全部控制點(diǎn);
(3)對(duì)話框點(diǎn)列表鐘會(huì)顯示出曲面所有控制點(diǎn)坐標(biāo)及相應(yīng)編號(hào);
(4)根據(jù)曲面變形部位,在曲面上找到對(duì)應(yīng)控制點(diǎn)編號(hào);
(5)在對(duì)話框中輸入?yún)?shù)(距離和方向);
(6)點(diǎn)擊預(yù)覽,激活曲面,得到由新一組控制點(diǎn)所構(gòu)成的曲面;
(7)對(duì)優(yōu)化后曲面進(jìn)行偏差分析,若不滿足要求,只需調(diào)整控制點(diǎn)偏移量,重新調(diào)整。
圖5 新控制點(diǎn)命令操作界面
新命令的操作示意圖如圖5所示。點(diǎn)擊新控制點(diǎn)命令,共獲得36個(gè)控制點(diǎn)坐標(biāo)。以其中一控制點(diǎn)調(diào)整為例,說(shuō)明曲面優(yōu)化過(guò)程。根據(jù)偏差分析結(jié)果選取編號(hào)為6的控制點(diǎn),對(duì)話框中會(huì)顯示該控制點(diǎn)的坐標(biāo)為(402.093,426.881,16.014)偏差方向?yàn)椋?209.78,786.41,-580.99),偏差分析結(jié)果顯示偏差距離為1.4mm。激活響應(yīng),生成調(diào)整后的曲面。這里特殊說(shuō)明:擬合曲面的精確度和光順度是兩個(gè)相違背的技術(shù)指標(biāo)。擬合曲面的精確度高,光順度就差,反之亦然。一個(gè)理想的擬合曲面是需要在偏差范圍內(nèi)盡量兼顧光順度。所以調(diào)整距離不能為1.4mm。并且調(diào)整后要進(jìn)行曲面光順。
以相同的方法對(duì)擬合曲面上4個(gè)偏差較大的控制點(diǎn)進(jìn)行調(diào)整。調(diào)整前后控制點(diǎn)坐標(biāo)變化如表1所示。
表1 控制點(diǎn)調(diào)整結(jié)果示意圖(mm)
擬合曲面經(jīng)調(diào)整后,對(duì)優(yōu)化曲面進(jìn)行精度分析,如圖6精度分析結(jié)果顯示:擬合曲面與點(diǎn)云數(shù)據(jù)最大正偏差值為(1mm),最大負(fù)偏差值為(-0.007mm)。偏差值均在允許范圍內(nèi)。
圖6 優(yōu)化后曲面偏差檢測(cè)
檢查曲面光順度需用到等照度映射曲線又稱斑馬紋曲線。如圖7所示,圖中條紋均勻無(wú)不規(guī)則斑馬線,曲面光順度達(dá)標(biāo)。以相同的方法對(duì)其他部分進(jìn)行曲面重構(gòu)、拼接、封裝,得到完整的曲面模型,飛機(jī)部件表面重構(gòu)工作完成。
圖7 曲面光順度檢測(cè)
使用新命令對(duì)曲面進(jìn)行優(yōu)化,由于調(diào)整參數(shù)可控,不僅調(diào)整時(shí)間大大縮減,優(yōu)化后的曲面精度也有明顯提高。運(yùn)用Geomagic軟件對(duì)重構(gòu)模型與理論模型進(jìn)行3D偏差分析,偏差分析結(jié)果如表2所示。使用快速曲面優(yōu)化方法的偏差最大距離、平均距離、標(biāo)準(zhǔn)偏差均明顯減小。
表2 兩種優(yōu)化方法優(yōu)化后曲面精度對(duì)比(mm)
本文提供了一種以曲面偏差檢測(cè)結(jié)果為指導(dǎo)的定向定量快速曲面優(yōu)化的方法。與傳統(tǒng)曲面重構(gòu)方法相比,新方法具有調(diào)整參數(shù)可控的優(yōu)勢(shì),減少人機(jī)交互建模時(shí)產(chǎn)生的誤差。結(jié)合CAA開(kāi)發(fā)平臺(tái),對(duì)CATIA控制點(diǎn)命令進(jìn)行二次開(kāi)發(fā)。使用新控制點(diǎn)命令,對(duì)飛機(jī)部件表面重構(gòu)建模,驗(yàn)證快速曲面優(yōu)化方法重構(gòu)曲面質(zhì)量高、效率快。顯著提高了CATIA軟件在逆向工程中的實(shí)用性。
[1]張丹丹,韓燮,韓慧妍.逆向工程中復(fù)雜實(shí)物曲面重建的仿真研究[J].計(jì)算機(jī)仿真,2017,34(3):340-343.
[2]姜海英,姜繼春,青格勒,等.基于逆向工程的汽車輪胎擋泥罩溫控形變檢測(cè)技術(shù)研究[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(xué)版,2017,40(3):43-47.
[3]劉玉松,李麗娟,王志海,等.基于catia的汽車手柄逆向設(shè)計(jì)及優(yōu)化[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(xué)版,2012,35(1):56-58+62.
[4]李澤.基于重采樣的NURBS曲面重構(gòu)研究[D].南昌:南昌大學(xué),2016.
[5]霍慶立,謝勁松,李根,等.逆向工程中曲面重構(gòu)技術(shù)的介紹[J].新型工業(yè)化,2015,5(6):47-52.
[6]范宜艷.基于NURBS的自由曲面重構(gòu)技術(shù)研究及開(kāi)發(fā)[D].天津:天津大學(xué),2004.
[7]趙偉,牛蘭平,李文輝.一種新的NURBS曲面間最短距離計(jì)算的分裂算法[J].微計(jì)算機(jī)信息,2009,25(30):7-9.
[8]唐磊.凸包圍多面體生成算法及應(yīng)用[D].北京:清華大學(xué),2015.