張學(xué)棟,孫 寧
(桂林電子科技大學(xué)機電工程學(xué)院,廣西桂林 541004)
反求工程中的重構(gòu)過程,是首先利用可靠的實驗方法測量出實體體數(shù)據(jù)場,有質(zhì)量分布的坐標位置數(shù)值取1,沒有質(zhì)量分布的坐標位置數(shù)值取0。其次,用體素填充數(shù)值為1的坐標位置,用這種堆積的方法,構(gòu)造出實體的粗糙模型。最后,用曲面構(gòu)造技術(shù)光滑實體的輪廓表面,使構(gòu)造的實體最終模型最大程度地再現(xiàn)實體原形。目前,反求工程的難點和研究重點,就在于實體輪廓的光滑處理。本文著重闡述了利用目前國際最流行的基于非均勻有理B樣條理論的蒙皮法構(gòu)造曲面的過程。
任何一個三維空間,都可以離散成有限的單元體集合,這些單元體的信息集合,稱作三維體數(shù)據(jù)場。該數(shù)據(jù)通常是三維離散數(shù)據(jù),一般稱為體數(shù)據(jù)。對于形狀規(guī)則的、可以用數(shù)學(xué)表達式表示的實體,體數(shù)據(jù)來源可以用科學(xué)計算,借助于計算機軟件來生成。對于形狀不規(guī)則的、無法用數(shù)學(xué)表達式表示的實體,體數(shù)據(jù)的獲得就只能用測量的方法。在反求工程中,大部分的體數(shù)據(jù)都需要用測量的方法來獲得。本實驗組利用以專利《一種測量三維為體輪廓的設(shè)備和方法》為理論基礎(chǔ)的獨創(chuàng)的三維測量裝置,即基于浮力的測量系統(tǒng)來獲得體數(shù)據(jù)。體數(shù)據(jù)在邏輯上被組織成一個三維的數(shù)組空間(如圖1所示),每一個數(shù)組成員存儲一個單元體信息,叫做體素(Voxel),每個體素都由層號、行號和列號數(shù)據(jù)結(jié)構(gòu)構(gòu)成。
圖1 體元素示意圖
以立方體體素作為積木塊,用空間位置枚舉法來構(gòu)造實體。用VB.NET語言編寫程序[3],調(diào)用Solidworks2007 API函數(shù)進行二次開發(fā),來實現(xiàn)三維實體重構(gòu)[1]。圖2所示分別為重構(gòu)的球體、圓錐體和三個半球槽[5]。
圖2 球、圓錐和三個半球槽的重構(gòu)示意圖
由圖2可見,由立方體體素構(gòu)建的實體輪廓表面并不光滑,因此必須對實體輪廓表面進行光滑處理。
3.1.1 逆向反求工程中的曲面重構(gòu)方法
曲面構(gòu)造法的方法研究,一直是受到廣泛重視的內(nèi)容。通過測量數(shù)據(jù)建立產(chǎn)品表面模型或?qū)嶓w模型的方法有很多,根據(jù)不同的應(yīng)用對象和應(yīng)用場合,有不同的處理手段。按曲面模型的表達形式分類,逆向反求工程中的曲面重構(gòu)方法大致可分為:
(1)三角Bezier曲面為基礎(chǔ)的三邊域曲面構(gòu)造方案。三角區(qū)面以其構(gòu)造靈活、邊界適應(yīng)性好及不受拓撲結(jié)構(gòu)的限制的特點,在散亂點數(shù)據(jù)的曲面插值上起著重要作用。但絕大多數(shù)的CAD/CAM系統(tǒng)采用的是拓撲矩形曲面,因此用三角域的曲面重建方法與一般的曲面造型模塊難以做到方法學(xué)上的統(tǒng)一,從而兩者不兼容。
(2)以多面體方式來描述曲面物體。由于整個過程是自動進行的,使用較為簡單方便,但其表達形式不為大多數(shù)CAD軟件所支持,在此基礎(chǔ)上,生成NURBS表面,才能進行后續(xù)處理。另外,這種方法不能精確地表示二次規(guī)則曲線曲面(如球體、圓柱等)。
(3)以B樣條或NURBS曲面為基礎(chǔ)的四邊域曲面構(gòu)造方案矩形域參數(shù)曲面擬合。矩形域參數(shù)曲面擬合方法,一直是曲面擬合方面的研究重點,應(yīng)用對象主要是由復(fù)雜曲面組成的產(chǎn)品,如汽車、飛機、船舶等,這類產(chǎn)品既不是完全由簡單二次曲面組成,也不像人臉那樣毫無規(guī)律而言。矩形域曲面重構(gòu)直接處理的數(shù)據(jù)是柵格數(shù)據(jù),數(shù)據(jù)在空間拓撲形式為矩形。常用的曲面構(gòu)造有Bezier、B樣條(B-Spline)、NURBS等方法。其中,許多的研究成果己在CAD軟件中廣泛應(yīng)用。
在逆向工程中,型值點數(shù)據(jù)(三維數(shù)據(jù))具有大規(guī)模的特點,其B樣條曲面的擬合有其自身特點。在B樣條曲面擬合中,需研究的首要問題,是單一矩形域內(nèi)曲面的散亂數(shù)據(jù)點的曲面擬合問題。在眾多的研究中,Weiyin M和J P Kruth的工作較具代表性。他們首先根據(jù)邊界構(gòu)造一個初始曲面,然后將型值點投影到這個初始曲面上,接著根據(jù)投影位置算出其參數(shù)分布,從而解決散亂數(shù)據(jù)的參數(shù)分配問題。根據(jù)這一型值點參數(shù)分配擬合出一張新的NURBS曲面,然后再對型值點參數(shù)進行優(yōu)化,使所擬合曲面離給定型值點誤差最小。
3.1.2 矩形域參數(shù)曲面擬合的曲面重構(gòu)方法
本研究的數(shù)據(jù)具有分層均勻規(guī)則特點,經(jīng)過處理提取的邊界體數(shù)據(jù),仍然具有這一特點。綜合分析三種曲面重構(gòu)方法,結(jié)合本文處理的數(shù)據(jù)特點,選擇矩形域參數(shù)曲面擬合方法。
矩形域參數(shù)曲面擬合方法的曲面重構(gòu)主要有兩種方法:
(1)先將測量點擬合成曲線,在通過曲面造型的方式,將曲線構(gòu)建成曲面片;
(2)直接對測量數(shù)據(jù)擬合,生成曲面片,最終經(jīng)過曲面的過渡、拼接和裁剪等曲面編輯操作,完成曲面模型的構(gòu)建。
方法(1)以Solidworks軟件中放樣生成曲面為典型代表;方法(2)以UG中的點云擬合曲面為典型代表。本課題使用Solidworks三維設(shè)計軟件作為開發(fā)平臺,結(jié)合數(shù)據(jù)本身特點,選用方法(1)作為曲面構(gòu)建方法。
曲線是構(gòu)建曲面的基礎(chǔ),在逆向工程中,一種常用的模型重構(gòu),就是先將數(shù)據(jù)點通過插值或逼近擬合成樣條曲線,再利用CAD造型工具如sweep、blend、lofting、四邊曲面boundary等,完成曲面或曲面片造型。
NURBS用作計算,可以被計算機容易地處理,浮點錯誤相對穩(wěn)定,對內(nèi)存的需求相對較小,并且可以表示任何曲線和曲面.它是基于有理貝齊爾曲線的非有理B樣條方法的推廣。
非均勻有理B樣條曲線定義為
式中,di為控制點;wi為權(quán)因子;Bi,k(u)(i=0,1,2…n)為K階K-1次非均勻B樣條。
該樣條的基函數(shù)由下列遞推公式給出
式中,節(jié)點矢量U=[u0+u1,…um](m=n+k);對于非周期的B樣條,節(jié)點矢量兩端去k重節(jié)點,即u0=u1=…=uk-1;um-k+1=um-k+2=…=um,以便曲線保持NURBS曲線的端點。
由于NURBS(Non-Uniform Rational B-spline即非均勻有理B樣條)具有的各種優(yōu)越性,它成為了STEP標準中制定的自由曲線曲面的唯一表示標準,為CAGD(Computer Aided Geometric Design計算機輔助設(shè)計)提供了統(tǒng)一的數(shù)學(xué)描述方法,并且在曲面造型中得到廣泛的應(yīng)用,成為目前CAD軟件中描述產(chǎn)品幾何形狀的通用方法。
NURBS的曲面表達式如下:
其中,沿u向和v向的節(jié)點矢量的節(jié)點數(shù),分別為(r+1)和(s+1)(r=n+k,s=m+l)。
曲線的構(gòu)建十分重要,它是曲面構(gòu)造的前提。構(gòu)造曲線需要型值點,因此首先必須進行輪廓數(shù)據(jù)點提取。
對于單獨一層薄片來說,每個體素就是一個正方體,從圖3可以發(fā)現(xiàn),薄層邊緣輪廓點最多只有3個實孔單元體素與其相鄰,內(nèi)部點必然有4個實孔單元體素與其相鄰,所以可以通過檢測該層所有體素頂點的重合度,提取出截面輪廓點。
圖3 邊緣輪廓數(shù)據(jù)點的提取
利用插值法對提取的輪廓數(shù)據(jù)點進行曲線擬合。曲線插值法擬合曲線,就是令曲線通過所有測量點。這種方法的優(yōu)點,是插值點的擬合誤差為0,且不需要構(gòu)造新的數(shù)據(jù)點來進行擬和,減小了數(shù)據(jù)量處理和因引入和刪減數(shù)據(jù)帶來的誤差。一般在插值之前,要先去掉測量壞點,這也就是在數(shù)據(jù)處理時數(shù)據(jù)簡化的目的所在[4]。插值法擬合曲線的流程圖如圖4。
圖4 插值法擬合流程
蒙皮是傳統(tǒng)的曲面生成領(lǐng)域中的常用方法,曲面的插值不再是通過給定的數(shù)據(jù)點陣,而是直接通過一簇曲線。其主要任務(wù),是通過一組有序的稱為截面曲線的空間曲線擬合的一張曲面,可形象地看成給一簇截面曲線構(gòu)成的骨架蒙上一張光滑的皮。
用常規(guī)的NURBS插值方法進行曲面重構(gòu),需要求解大型的線性方程組,且重構(gòu)曲面只能過插值點,計算復(fù)雜且存在不穩(wěn)定現(xiàn)象。采用NURBS蒙皮技術(shù),則可以通過所有的截面曲線(截形線),且將曲面擬合問題轉(zhuǎn)化為兩步曲線的擬合或插值問題,比較穩(wěn)定,適合于截面數(shù)據(jù)構(gòu)造曲面。
本課題研究中,根據(jù)Solid works曲線、曲面造型的特點,提出了利用角度對應(yīng)引導(dǎo)線消除截面線對應(yīng)型值點不對應(yīng)產(chǎn)生的扭曲現(xiàn)象,角度對應(yīng)引導(dǎo)線用3D樣條曲線繪制,構(gòu)建方法如下:
(1)先根據(jù)式(5),算出每一層的重心坐標;
(2)建立過以重心坐標橫坐標為X軸、縱坐標為Y坐標的新坐標系。對于NURBS曲線同樣進行坐標變換。對于每一層形成的NURBS曲線在新坐標系內(nèi),構(gòu)造通過新原點(重心)的角度射線,必然會與之相交,這樣可以求得交點。其中可以根據(jù)情況,選定射線每次轉(zhuǎn)動角度。
(3)將每一層得到的對應(yīng)角度的交點統(tǒng)一起來,這樣可以避免出現(xiàn)扭曲現(xiàn)象。
(4)將求得的交點進行坐標轉(zhuǎn)換,轉(zhuǎn)換為初始坐標系內(nèi)的交點坐標。
(5)求得的有序型值點方陣,為要求曲面的型值點,求出對應(yīng)控制頂點方陣,即可滿足型值點一一對應(yīng)如圖5(a)所示。
圖5 角度引導(dǎo)線
利用Solidworks中3D草圖繪制功能構(gòu)造的對應(yīng)的型值點連線,作為構(gòu)造曲面的角度對應(yīng)引導(dǎo)線。利用角度引導(dǎo)線,控制調(diào)整截面線起點(如圖5a),生成圓柱體曲面(如圖5b)可以消除曲面扭曲失真現(xiàn)象。
圖6為圖1重構(gòu)實體經(jīng)過蒙皮后的結(jié)果。
圖6 光滑處理后的實體圖形
首先對圓錐斑馬條紋,選取球形影射,對原始理想曲面、無引導(dǎo)線曲面、采用角度引導(dǎo)線的曲面分別進行條紋演示(如圖7所示)。圖7 a為理想模型斑馬條文圖,圖7 b為未采用引導(dǎo)線重構(gòu)模型斑馬條文圖,圖7 c為采用4條引導(dǎo)線重構(gòu)模型斑馬條文圖。從圖中可以看出,采用引導(dǎo)線后,曲面斑馬條文紊亂有所改善,說明采用引導(dǎo)線重構(gòu)曲面光順程度提高。
圖7 斑馬條紋圖
剖切理想實體和構(gòu)造實體,對得到的截面輪廓進行誤差分析。本節(jié)以實心圓錐體為例,通過三種剖切面即過中心線斑馬條文紊亂區(qū)域主剖、過中心線斑馬條文規(guī)則區(qū)域主剖、平行于底平面的底剖進行誤差分析。
平行于底面剖切誤差分析方法:作平行于底面的平面剖切模型,在模型剖切截面上,以理論中心為直線端點,每10°繪制一條直線與截面輪廓線相交求取交點,利用測量模塊測量每一個交點與理論中心點之間的距離并記錄。通過與對理想模型進行同樣剖切獲得的理想標準數(shù)據(jù)相減,得出平行于底面剖切截面誤差(如圖8)。圖中繪制了第20層和第30層兩個截面誤差圖,從圖中可以看出,截面最大誤差約0.6 mm。
圖8 平行于底面剖切誤差圖
過中心軸線剖切的誤差分析方法:作過中心軸線的平面剖切模型,在剖切截面上,平行于底面繪制平行線,間距1 mm,求取平行線與截面輪廓的交點,測量每個點并記錄,與理想模型值進行誤差分析。
由圖8可見,圓錐表面粗在斑馬條文紊亂區(qū)域和相對規(guī)則區(qū)域,所以分別沿斑馬條紊亂區(qū)域和相對規(guī)則區(qū)域,進行剖切誤差分析(如圖9)。從圖9可以看出,斑馬條文相對規(guī)則區(qū)域誤差明顯小于紊亂區(qū)域。
圖9 過軸線剖切誤差圖
本文首先給出了由立方體體素重構(gòu)的實體示例,接著介紹了目前流行的曲面構(gòu)造方法和構(gòu)造技術(shù),采取適合本文的四邊域NURBS法。在構(gòu)造曲線之前,對于數(shù)據(jù)層進行輪廓數(shù)據(jù)點提取。接著詳細介紹了NURBS曲線插值方法,采用均勻參數(shù)法構(gòu)造曲線。傳統(tǒng)蒙皮法可能出現(xiàn)層間數(shù)據(jù)點不對應(yīng)、甚至曲面扭曲的現(xiàn)象,提出了角度對應(yīng)引導(dǎo)線生成,來消除這方面對實體構(gòu)造的影響。通過描述曲面編輯各種功能,選取了合適的功能來實現(xiàn)實體表面用曲面來代替,使得實體更加接近理想實體模型,最后給出了曲面蒙皮后的實體示例和誤差分析。
[1][美]SolidWorks公司.SolidWorks高級教程二次開發(fā)與API[M].杭州新迪數(shù)字工程系統(tǒng)有限公司編譯.北京:機械工業(yè)出版社,2009.
[2]施法中.計算機輔助幾何設(shè)計與非均勻有理B樣條[M].北京:高等教育出版社,2001.
[3]陳語林.Visual basic.NET程序設(shè)計教程[M].北京:中國水利水電出版社,2005.
[4]歐陽黎健.反求工程中預(yù)數(shù)據(jù)處理與模型修正[D].大連:大連交通大學(xué),2006.
[5]任志偉.一種基于Solidworks三維規(guī)則點云數(shù)據(jù)場的重構(gòu)方法[J].機械工程與自動化,2008,(4):7-9.