沙智華,陳翠翠,張生芳
(大連交通大學(xué) 機械工程學(xué)院,遼寧 大連 116028)
為了滿足空氣動力學(xué)、光學(xué)失真、汽車整體造型美觀、白車身型面限制等要求[1-2],汽車前、后擋風(fēng)玻璃一般都設(shè)計為雙曲A級曲面,且整個曲面常由幾個分曲面復(fù)合而成.從加工工藝的角度出發(fā),必須以曲面的設(shè)計模型為依據(jù)利用復(fù)雜曲面展開技術(shù)求取展開毛坯模型.一般CAD軟件,例如CATIA,都具有簡單的復(fù)雜曲面展開功能,但對于設(shè)計復(fù)雜且曲面質(zhì)量要求嚴格的不可展曲面常出現(xiàn)展開運算無法進行的問題,而不能實現(xiàn)復(fù)雜曲面的展開.因此,汽車玻璃曲面展開技術(shù)是其制造中的一個難點.基于汽車玻璃曲面幾何特點,本文提出曲線映射復(fù)雜曲面展開法,并開發(fā)了汽車玻璃曲面展開系統(tǒng),實現(xiàn)了曲面高精度展開和汽車玻璃毛坯模型的自動生成.
本文以某車型汽車前擋風(fēng)玻璃曲面為例,對其進行曲率分析如圖1所示:曲面曲率分析1是整個曲面曲率的色標(biāo)顯示結(jié)果,箭狀曲率分析1是橫向主截面A-A和縱向中心截面B-B箭狀曲率分布,箭狀曲率分析3是曲面邊界的曲率分析圖.可以看出:汽車玻璃曲面是一種雙曲分布、曲率均勻變化、沿縱向中心截面對稱分布、拐角處曲率較大的A級復(fù)合式曲面.

圖1 汽車玻璃曲面模型及其曲率分析
目前存在的復(fù)雜曲面展開方法主要有幾何展開法、力學(xué)/能量展開法[3-7]兩類,這些方法的核心思想都是圍繞解決一個或多個幾何變量組合的變形最小化或變形能平衡問題展開的[4],研究思路可總結(jié)為:首先對曲面進行三角網(wǎng)格劃分,基于一定的展開原則和策略對曲面進行幾何法初始展開,再針對展開中出現(xiàn)的疊片、裂紋、翻轉(zhuǎn)和變形等進行力學(xué)/能量法調(diào)整、優(yōu)化.但這些方法存在計算量大、算法效率低、處理過程復(fù)雜等問題,且在展開過程中會產(chǎn)生二次誤差[8].
針對這些方法的不足和汽車玻璃曲面的特點,本文提出了曲線映射復(fù)雜曲面展開法.其基本思想是離散化,即將無法精確求解的連續(xù)物體離散為有限單元體,用離散單元體的解近似代替連續(xù)物體求解來解決實際問題.基于這種思想,曲線映射法的原理為:假設(shè)曲面材料為各向同性,首先將復(fù)雜曲面離散成有限的曲線單元體,這樣復(fù)雜曲面展開問題就轉(zhuǎn)化為曲面上的曲線展開成直線的問題;然后為保持曲面展開前后面積不變,將曲面上的曲線按照弧長不變的原則和角度對應(yīng)關(guān)系映射到平面上,得到曲線在平面上展開的映射點;最后用光滑的曲線連接這些映射點就得到了曲面展開輪廓.
這種曲線映射展開法采用曲線代替曲面,減少了傳統(tǒng)的用三角網(wǎng)格代替曲面而造成的曲面展開累積誤差,提高了展開精度;同時,展開對象從曲面轉(zhuǎn)化為曲線,簡化了處理過程,避免了傳統(tǒng)展開方法出現(xiàn)的裂紋、翻轉(zhuǎn)、變形等情況,使系統(tǒng)易于實現(xiàn).
基于上述曲線映射展開法原理,本文以Visual C++為平臺,采用OpenGL圖形處理接口開發(fā)了汽車玻璃曲面展開系統(tǒng),該系統(tǒng)開發(fā)流程如圖2所示.
首先,讀取曲面點集坐標(biāo)值信息,用雙三次準(zhǔn)均勻有理B樣條曲面對汽車玻璃進行建模及曲面重構(gòu);然后,設(shè)置曲面展開精度參數(shù),繪制與曲面相交的平面族,利用曲面求交獲得曲面上的曲線并計算曲線弧長;接著,以弧長不變的原則將曲面上的曲線按照角度對應(yīng)關(guān)系映射到平面上,得到曲線在平面上展開的映射點,用B樣條曲線插值法連接這些映射點就得到曲面展開輪廓;最后,檢驗展開結(jié)果是否滿足系統(tǒng)的精度要求,如果是則輸出曲面展開結(jié)果,否則返回到設(shè)置曲面展開精度參數(shù)步驟,重新進行曲面展開.
由曲面展開流程可以看出,曲面展開系統(tǒng)主要由讀取點集信息、曲面建模與重構(gòu)、獲取曲面上的曲線、曲線映射展開等四部分組成,下面分別對其關(guān)鍵技術(shù)做進一步介紹.

圖2 汽車玻璃曲面展開系統(tǒng)流程圖
通常,汽車玻璃曲面模型是利用軟件通過復(fù)雜的調(diào)面過程得到的,沒有具體的數(shù)學(xué)描述模型,而建立曲面數(shù)學(xué)模型與曲面幾何模型重構(gòu)是汽車玻璃曲面展開系統(tǒng)的基礎(chǔ).因此,本文首先獲取汽車玻璃曲面點集(型值點)信息,然后對曲面進行建模與重構(gòu),建立曲面展開系統(tǒng)研究對象.
為保證曲面模型不失真,要求采集的曲面點集盡量均勻、密集、有序且必須包含邊界點.
本文采集曲面點集的方法為:首先,將曲面劃分為上側(cè)邊界、曲面主體、下側(cè)邊界三個區(qū)域;接著,過曲面縱向中心截面的中間控制點作曲面的切面,有順序地建立與此切面互相垂直、保持等距間隔的交叉平面族;然后,將這些平面族分別與曲面上側(cè)邊界、曲面主體、曲面下側(cè)邊界求交,即可得到具有一定規(guī)律的有序交點集;最后,分區(qū)選擇曲面交點集,測量這些交點的三維坐標(biāo)值,并按順序保存在文本文檔中.
利用這種方法,本文應(yīng)用 Visual Basic對CATIA進行自動化對象編程實現(xiàn)曲面模型點集信息的采集.基于汽車玻璃曲面的對稱性,取曲面一半作為系統(tǒng)研究對象,當(dāng)平面族間隔距離為40mm時,取得19×16型值點,如圖3所示.

圖3 采集的曲面點集
汽車玻璃曲面是由自由型曲線、曲面構(gòu)成的復(fù)雜空間曲面,而B樣條方法能夠精確表示和設(shè)計自由型曲線、曲面.基于這一點,根據(jù)汽車玻璃曲面幾何特點及采集的曲面點集信息,本文確定采用雙三次準(zhǔn)均勻有理B樣條曲面對汽車玻璃曲面進行描述.其數(shù)學(xué)模型為:

式中,p(u,v)為張量積B樣條曲面;Di,j(i=0,1,…,mm -1;j=0,1,…,nn-1)為曲面控制頂點;Ni,k(u)和Nj,l(v)分別為沿u向的k次和沿v向的l次 B樣條基函數(shù)并由節(jié)點矢量 U(u0,u1,…,um+k+1)和 V(v0,v1,…,vn+l+1)按德布爾-考克斯公式?jīng)Q定.
由式(1)可以看出:B樣條曲面模型是由曲面控制頂點和節(jié)點矢量決定的,而不是曲面型值點.本文通過采集曲面點集獲得曲面型值點,利用這些型值點來計算控制頂點及節(jié)點矢量,從而得到B樣條曲面模型,這個過程稱為B樣條曲面反算,其中型值點個數(shù)m×n與控制頂點個數(shù)mm×nn的關(guān)系為mm=m+k-1,nn=n+l-1;B樣條曲面節(jié)點矢量采用規(guī)范累積弦長參數(shù)化方法計算可得.
對于本文汽車玻璃B樣條曲面模型:m=19,n=16,k=l=3 ,曲面控制頂點可由19×16型值點反算求得,節(jié)點矢量計算可得

將控制頂點及節(jié)點矢量代入式(1)即可得到曲面數(shù)學(xué)模型.
基于汽車玻璃B樣條曲面數(shù)學(xué)模型及Open-GL二維求值器機理,利用B樣條曲面繪制函數(shù)實現(xiàn)汽車玻璃重構(gòu)曲面在系統(tǒng)窗口的顯示.同時,為方便系統(tǒng)實現(xiàn),過曲面縱向中心截面的中間控制點(Ox,Oy,Oz)建立用戶坐標(biāo)系,其中XOY面是曲面的切面.如圖4所示曲面重構(gòu)結(jié)果及用戶坐標(biāo)系.

圖4 B樣條重構(gòu)曲面、控制頂點及控制網(wǎng)格
獲取曲面上的曲線是曲線映射展開法及汽車玻璃曲面展開系統(tǒng)實現(xiàn)的關(guān)鍵.本文中曲面上的曲線通過曲面與平面求交的方法獲得,其步驟為:首先構(gòu)建與曲面相交的平面族;然后曲面與平面求交,獲得曲面上的曲線;最后計算曲線弧長.
本文以曲面縱向中心截面的中間控制點為展開基點,這樣可以有效的抵消曲面對稱方向的累積誤差,提高了展開精度.過展開基點建立與XOY面垂直、呈等角α輻射狀分布的平面族,平面的數(shù)量為t,則有(t-1)·α =180°.通過這些平面與曲面求交獲得的曲線也是過展開基點呈等角輻射分布狀,從而避免了網(wǎng)狀曲線雙向延展的問題,使系統(tǒng)處理過程更加簡潔.
在系統(tǒng)實現(xiàn)過程中,這些呈輻射分布的平面族是利用過空間任一旋轉(zhuǎn)軸的旋轉(zhuǎn)矩陣T實現(xiàn)的.
曲面參數(shù)方程為式(1),平面族代數(shù)方程采用點法式表示為:

將式(1)、式(2)聯(lián)立得曲面與平面的交線方程為:

式(3)是一個以u和v為變量的二元非線性方程.理論上,可令其中一個變量u以定步長變化,而后求解一元高次非線性方程組,進而得到交點(px(u,v),py(u,v),pz(u,v)),但實際上交線方程次數(shù)非常高、難以計算.本文采用改進的數(shù)值搜索法進行曲面求交,避免一元高次方程的求解,其方法為:令變量u和分別以定步長δ1、δ2進行搜索,(px(u,v),py(u,v),pz(u,v))為曲面上的精確點,若此點到曲面的距離小于或等于ε即滿足式(4)則此點即為交線上的點,ε為交點逼近曲面的誤差準(zhǔn)則,根據(jù)交點間的關(guān)系將多個交點連接起來就得到了交線即曲面上的曲線.曲線弧長利用交點線段距離累加得到.曲面求交及弧長計算的精度是由誤差準(zhǔn)則ε和參數(shù)u、v的搜索步長δ1、δ2來保障的.

在系統(tǒng)實現(xiàn)過程中,主要采用兩種方法來優(yōu)化程序:其一是對不同轉(zhuǎn)角范圍內(nèi)的交線采用分別處理法,假設(shè)轉(zhuǎn)角為 β,當(dāng) β =0°時,v=0,u從0遞增到0.5;當(dāng)0°< β<90°時,u從0遞增到0.5,v從1遞減到0;β =90°時,u=0,v從1遞減到0;90°< β< 180°時,u從1遞減到0.5,v從1遞減到0;β =180°時,v=0,u從1遞減到0.5.其二是利用平面斜率的特點,以0°<β<90°為例進行說明,若u=ui、v=vj時獲得一個交點,那么下個交點的搜索起始位置為u=ui+δ1、v=vj,而不是v=1.這兩種處理方法大大減少了程序中不必要的循環(huán)和計算,同時又能避免在相同v、不同的u下取得重復(fù)交點的問題,提高了交線計算的準(zhǔn)確性.
當(dāng) α =6°,ε =0.02mm,δ1= δ2=0.05mm時,得到曲面上的曲線結(jié)果如圖5所示.

圖5 曲面上的曲線
獲得曲線弧長之后,曲線就要按照弧長不變的原則和角度對應(yīng)關(guān)系映射到平面上.映射平面為XOY面.由于求交平面是呈等角a輻射分布的,根據(jù)角度對應(yīng)關(guān)系,曲線在平面上的展開直線也是等角分布.因此第i條曲線映射到平面的過稱為:
輸入:展開直線斜率ki=tan(i·α),展開直線起點都為展開基點(Ox,Oy,Oz),直線長度 l=L弧長.
映射關(guān)系:求解方程組

輸出:展開直線端點(xi,yi,Oz)即為曲線在平面上的映射點.
最后,將展開曲線的端點利用三次B樣條曲線進行插值,即可得到汽車玻璃曲面展開平面的輪廓,如圖6所示.

圖6 汽車玻璃曲面展開輪廓圖
本文提出了曲線映射展開法,此方法展開精度高且易于實現(xiàn),可適用于非封閉、小曲率、不可分割曲面的展開.汽車玻璃曲面正符合這種曲面幾何特點,基于曲線映射展開法,本文開發(fā)了汽車玻璃曲面展開系統(tǒng),并對該系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)進行了研究.展開實例表明,該系統(tǒng)可實現(xiàn)汽車玻璃毛坯的自動生成,對縮短新型汽車玻璃制造周期、降低生產(chǎn)成本能起到積極的推動作用.
[1]劉志國,張永祥 ,簡中強.汽車擋風(fēng)玻璃光學(xué)模擬和幾何型面優(yōu)化[J].汽車零部件,2009(3):32-34.
[2]MANNING JR.Computerized pattern cutting[J].Computer-Aided Design,1980,12(1):43-47.
[3]陳動之,王國謹.基于偽直母線的復(fù)雜曲面自適應(yīng)分片與展開[J].軟件學(xué)報,2003,14(3):660-665.
[4]李基拓.三角化曲面展開技術(shù)研究及其應(yīng)用[D].浙江:浙江大學(xué),2005.
[5]席平.三維曲面的幾何展開[J].計算機學(xué)報,1997,20(4):315-322.
[6]詹雯.復(fù)雜曲面展開技術(shù)研究[D].南京:南京航空航天大學(xué),2007.
[7]毛國棟,孫炳楠,徐浩祥.基于彈簧-質(zhì)點系統(tǒng)的薄膜結(jié)構(gòu)曲面展開算法[J].浙江大學(xué)學(xué)報(工版),2005,39(8):1238-1242.
[8]毛昕,毛普元,孫靜.自由曲面近似展開及誤差分析系統(tǒng)[J].機械設(shè)計與制造,2007,12:201-203.