張學棟,孫 寧
(桂林電子科技大學機電工程學院,廣西桂林 541004)
反求工程中的重構過程,是首先利用可靠的實驗方法測量出實體體數據場,有質量分布的坐標位置數值取1,沒有質量分布的坐標位置數值取0。其次,用體素填充數值為1的坐標位置,用這種堆積的方法,構造出實體的粗糙模型。最后,用曲面構造技術光滑實體的輪廓表面,使構造的實體最終模型最大程度地再現實體原形。目前,反求工程的難點和研究重點,就在于實體輪廓的光滑處理。本文著重闡述了利用目前國際最流行的基于非均勻有理B樣條理論的蒙皮法構造曲面的過程。
任何一個三維空間,都可以離散成有限的單元體集合,這些單元體的信息集合,稱作三維體數據場。該數據通常是三維離散數據,一般稱為體數據。對于形狀規則的、可以用數學表達式表示的實體,體數據來源可以用科學計算,借助于計算機軟件來生成。對于形狀不規則的、無法用數學表達式表示的實體,體數據的獲得就只能用測量的方法。在反求工程中,大部分的體數據都需要用測量的方法來獲得。本實驗組利用以專利《一種測量三維為體輪廓的設備和方法》為理論基礎的獨創的三維測量裝置,即基于浮力的測量系統來獲得體數據。體數據在邏輯上被組織成一個三維的數組空間(如圖1所示),每一個數組成員存儲一個單元體信息,叫做體素(Voxel),每個體素都由層號、行號和列號數據結構構成。

圖1 體元素示意圖
以立方體體素作為積木塊,用空間位置枚舉法來構造實體。用VB.NET語言編寫程序[3],調用Solidworks2007 API函數進行二次開發,來實現三維實體重構[1]。圖2所示分別為重構的球體、圓錐體和三個半球槽[5]。

圖2 球、圓錐和三個半球槽的重構示意圖
由圖2可見,由立方體體素構建的實體輪廓表面并不光滑,因此必須對實體輪廓表面進行光滑處理。
3.1.1 逆向反求工程中的曲面重構方法
曲面構造法的方法研究,一直是受到廣泛重視的內容。通過測量數據建立產品表面模型或實體模型的方法有很多,根據不同的應用對象和應用場合,有不同的處理手段。按曲面模型的表達形式分類,逆向反求工程中的曲面重構方法大致可分為:
(1)三角Bezier曲面為基礎的三邊域曲面構造方案。三角區面以其構造靈活、邊界適應性好及不受拓撲結構的限制的特點,在散亂點數據的曲面插值上起著重要作用。但絕大多數的CAD/CAM系統采用的是拓撲矩形曲面,因此用三角域的曲面重建方法與一般的曲面造型模塊難以做到方法學上的統一,從而兩者不兼容。
(2)以多面體方式來描述曲面物體。由于整個過程是自動進行的,使用較為簡單方便,但其表達形式不為大多數CAD軟件所支持,在此基礎上,生成NURBS表面,才能進行后續處理。另外,這種方法不能精確地表示二次規則曲線曲面(如球體、圓柱等)。
(3)以B樣條或NURBS曲面為基礎的四邊域曲面構造方案矩形域參數曲面擬合。矩形域參數曲面擬合方法,一直是曲面擬合方面的研究重點,應用對象主要是由復雜曲面組成的產品,如汽車、飛機、船舶等,這類產品既不是完全由簡單二次曲面組成,也不像人臉那樣毫無規律而言。矩形域曲面重構直接處理的數據是柵格數據,數據在空間拓撲形式為矩形。常用的曲面構造有Bezier、B樣條(B-Spline)、NURBS等方法。其中,許多的研究成果己在CAD軟件中廣泛應用。
在逆向工程中,型值點數據(三維數據)具有大規模的特點,其B樣條曲面的擬合有其自身特點。在B樣條曲面擬合中,需研究的首要問題,是單一矩形域內曲面的散亂數據點的曲面擬合問題。在眾多的研究中,Weiyin M和J P Kruth的工作較具代表性。他們首先根據邊界構造一個初始曲面,然后將型值點投影到這個初始曲面上,接著根據投影位置算出其參數分布,從而解決散亂數據的參數分配問題。根據這一型值點參數分配擬合出一張新的NURBS曲面,然后再對型值點參數進行優化,使所擬合曲面離給定型值點誤差最小。
3.1.2 矩形域參數曲面擬合的曲面重構方法
本研究的數據具有分層均勻規則特點,經過處理提取的邊界體數據,仍然具有這一特點。綜合分析三種曲面重構方法,結合本文處理的數據特點,選擇矩形域參數曲面擬合方法。
矩形域參數曲面擬合方法的曲面重構主要有兩種方法:
(1)先將測量點擬合成曲線,在通過曲面造型的方式,將曲線構建成曲面片;
(2)直接對測量數據擬合,生成曲面片,最終經過曲面的過渡、拼接和裁剪等曲面編輯操作,完成曲面模型的構建。
方法(1)以Solidworks軟件中放樣生成曲面為典型代表;方法(2)以UG中的點云擬合曲面為典型代表。本課題使用Solidworks三維設計軟件作為開發平臺,結合數據本身特點,選用方法(1)作為曲面構建方法。
曲線是構建曲面的基礎,在逆向工程中,一種常用的模型重構,就是先將數據點通過插值或逼近擬合成樣條曲線,再利用CAD造型工具如sweep、blend、lofting、四邊曲面boundary等,完成曲面或曲面片造型。
NURBS用作計算,可以被計算機容易地處理,浮點錯誤相對穩定,對內存的需求相對較小,并且可以表示任何曲線和曲面.它是基于有理貝齊爾曲線的非有理B樣條方法的推廣。
非均勻有理B樣條曲線定義為

式中,di為控制點;wi為權因子;Bi,k(u)(i=0,1,2…n)為K階K-1次非均勻B樣條。
該樣條的基函數由下列遞推公式給出

式中,節點矢量U=[u0+u1,…um](m=n+k);對于非周期的B樣條,節點矢量兩端去k重節點,即u0=u1=…=uk-1;um-k+1=um-k+2=…=um,以便曲線保持NURBS曲線的端點。
由于NURBS(Non-Uniform Rational B-spline即非均勻有理B樣條)具有的各種優越性,它成為了STEP標準中制定的自由曲線曲面的唯一表示標準,為CAGD(Computer Aided Geometric Design計算機輔助設計)提供了統一的數學描述方法,并且在曲面造型中得到廣泛的應用,成為目前CAD軟件中描述產品幾何形狀的通用方法。
NURBS的曲面表達式如下:


其中,沿u向和v向的節點矢量的節點數,分別為(r+1)和(s+1)(r=n+k,s=m+l)。
曲線的構建十分重要,它是曲面構造的前提。構造曲線需要型值點,因此首先必須進行輪廓數據點提取。
對于單獨一層薄片來說,每個體素就是一個正方體,從圖3可以發現,薄層邊緣輪廓點最多只有3個實孔單元體素與其相鄰,內部點必然有4個實孔單元體素與其相鄰,所以可以通過檢測該層所有體素頂點的重合度,提取出截面輪廓點。

圖3 邊緣輪廓數據點的提取
利用插值法對提取的輪廓數據點進行曲線擬合。曲線插值法擬合曲線,就是令曲線通過所有測量點。這種方法的優點,是插值點的擬合誤差為0,且不需要構造新的數據點來進行擬和,減小了數據量處理和因引入和刪減數據帶來的誤差。一般在插值之前,要先去掉測量壞點,這也就是在數據處理時數據簡化的目的所在[4]。插值法擬合曲線的流程圖如圖4。

圖4 插值法擬合流程
蒙皮是傳統的曲面生成領域中的常用方法,曲面的插值不再是通過給定的數據點陣,而是直接通過一簇曲線。其主要任務,是通過一組有序的稱為截面曲線的空間曲線擬合的一張曲面,可形象地看成給一簇截面曲線構成的骨架蒙上一張光滑的皮。
用常規的NURBS插值方法進行曲面重構,需要求解大型的線性方程組,且重構曲面只能過插值點,計算復雜且存在不穩定現象。采用NURBS蒙皮技術,則可以通過所有的截面曲線(截形線),且將曲面擬合問題轉化為兩步曲線的擬合或插值問題,比較穩定,適合于截面數據構造曲面。
本課題研究中,根據Solid works曲線、曲面造型的特點,提出了利用角度對應引導線消除截面線對應型值點不對應產生的扭曲現象,角度對應引導線用3D樣條曲線繪制,構建方法如下:
(1)先根據式(5),算出每一層的重心坐標;
(2)建立過以重心坐標橫坐標為X軸、縱坐標為Y坐標的新坐標系。對于NURBS曲線同樣進行坐標變換。對于每一層形成的NURBS曲線在新坐標系內,構造通過新原點(重心)的角度射線,必然會與之相交,這樣可以求得交點。其中可以根據情況,選定射線每次轉動角度。
(3)將每一層得到的對應角度的交點統一起來,這樣可以避免出現扭曲現象。
(4)將求得的交點進行坐標轉換,轉換為初始坐標系內的交點坐標。
(5)求得的有序型值點方陣,為要求曲面的型值點,求出對應控制頂點方陣,即可滿足型值點一一對應如圖5(a)所示。

圖5 角度引導線
利用Solidworks中3D草圖繪制功能構造的對應的型值點連線,作為構造曲面的角度對應引導線。利用角度引導線,控制調整截面線起點(如圖5a),生成圓柱體曲面(如圖5b)可以消除曲面扭曲失真現象。
圖6為圖1重構實體經過蒙皮后的結果。

圖6 光滑處理后的實體圖形
首先對圓錐斑馬條紋,選取球形影射,對原始理想曲面、無引導線曲面、采用角度引導線的曲面分別進行條紋演示(如圖7所示)。圖7 a為理想模型斑馬條文圖,圖7 b為未采用引導線重構模型斑馬條文圖,圖7 c為采用4條引導線重構模型斑馬條文圖。從圖中可以看出,采用引導線后,曲面斑馬條文紊亂有所改善,說明采用引導線重構曲面光順程度提高。

圖7 斑馬條紋圖
剖切理想實體和構造實體,對得到的截面輪廓進行誤差分析。本節以實心圓錐體為例,通過三種剖切面即過中心線斑馬條文紊亂區域主剖、過中心線斑馬條文規則區域主剖、平行于底平面的底剖進行誤差分析。
平行于底面剖切誤差分析方法:作平行于底面的平面剖切模型,在模型剖切截面上,以理論中心為直線端點,每10°繪制一條直線與截面輪廓線相交求取交點,利用測量模塊測量每一個交點與理論中心點之間的距離并記錄。通過與對理想模型進行同樣剖切獲得的理想標準數據相減,得出平行于底面剖切截面誤差(如圖8)。圖中繪制了第20層和第30層兩個截面誤差圖,從圖中可以看出,截面最大誤差約0.6 mm。

圖8 平行于底面剖切誤差圖
過中心軸線剖切的誤差分析方法:作過中心軸線的平面剖切模型,在剖切截面上,平行于底面繪制平行線,間距1 mm,求取平行線與截面輪廓的交點,測量每個點并記錄,與理想模型值進行誤差分析。
由圖8可見,圓錐表面粗在斑馬條文紊亂區域和相對規則區域,所以分別沿斑馬條紊亂區域和相對規則區域,進行剖切誤差分析(如圖9)。從圖9可以看出,斑馬條文相對規則區域誤差明顯小于紊亂區域。

圖9 過軸線剖切誤差圖
本文首先給出了由立方體體素重構的實體示例,接著介紹了目前流行的曲面構造方法和構造技術,采取適合本文的四邊域NURBS法。在構造曲線之前,對于數據層進行輪廓數據點提取。接著詳細介紹了NURBS曲線插值方法,采用均勻參數法構造曲線。傳統蒙皮法可能出現層間數據點不對應、甚至曲面扭曲的現象,提出了角度對應引導線生成,來消除這方面對實體構造的影響。通過描述曲面編輯各種功能,選取了合適的功能來實現實體表面用曲面來代替,使得實體更加接近理想實體模型,最后給出了曲面蒙皮后的實體示例和誤差分析。
[1][美]SolidWorks公司.SolidWorks高級教程二次開發與API[M].杭州新迪數字工程系統有限公司編譯.北京:機械工業出版社,2009.
[2]施法中.計算機輔助幾何設計與非均勻有理B樣條[M].北京:高等教育出版社,2001.
[3]陳語林.Visual basic.NET程序設計教程[M].北京:中國水利水電出版社,2005.
[4]歐陽黎健.反求工程中預數據處理與模型修正[D].大連:大連交通大學,2006.
[5]任志偉.一種基于Solidworks三維規則點云數據場的重構方法[J].機械工程與自動化,2008,(4):7-9.