沙智華,陳翠翠,張生芳
(大連交通大學(xué) 機(jī)械工程學(xué)院,遼寧 大連 116028)
為了滿足空氣動(dòng)力學(xué)、光學(xué)失真、汽車整體造型美觀、白車身型面限制等要求[1-2],汽車前、后擋風(fēng)玻璃一般都設(shè)計(jì)為雙曲A級(jí)曲面,且整個(gè)曲面常由幾個(gè)分曲面復(fù)合而成.從加工工藝的角度出發(fā),必須以曲面的設(shè)計(jì)模型為依據(jù)利用復(fù)雜曲面展開技術(shù)求取展開毛坯模型.一般CAD軟件,例如CATIA,都具有簡(jiǎn)單的復(fù)雜曲面展開功能,但對(duì)于設(shè)計(jì)復(fù)雜且曲面質(zhì)量要求嚴(yán)格的不可展曲面常出現(xiàn)展開運(yùn)算無(wú)法進(jìn)行的問題,而不能實(shí)現(xiàn)復(fù)雜曲面的展開.因此,汽車玻璃曲面展開技術(shù)是其制造中的一個(gè)難點(diǎn).基于汽車玻璃曲面幾何特點(diǎn),本文提出曲線映射復(fù)雜曲面展開法,并開發(fā)了汽車玻璃曲面展開系統(tǒng),實(shí)現(xiàn)了曲面高精度展開和汽車玻璃毛坯模型的自動(dòng)生成.
本文以某車型汽車前擋風(fēng)玻璃曲面為例,對(duì)其進(jìn)行曲率分析如圖1所示:曲面曲率分析1是整個(gè)曲面曲率的色標(biāo)顯示結(jié)果,箭狀曲率分析1是橫向主截面A-A和縱向中心截面B-B箭狀曲率分布,箭狀曲率分析3是曲面邊界的曲率分析圖.可以看出:汽車玻璃曲面是一種雙曲分布、曲率均勻變化、沿縱向中心截面對(duì)稱分布、拐角處曲率較大的A級(jí)復(fù)合式曲面.
圖1 汽車玻璃曲面模型及其曲率分析
目前存在的復(fù)雜曲面展開方法主要有幾何展開法、力學(xué)/能量展開法[3-7]兩類,這些方法的核心思想都是圍繞解決一個(gè)或多個(gè)幾何變量組合的變形最小化或變形能平衡問題展開的[4],研究思路可總結(jié)為:首先對(duì)曲面進(jìn)行三角網(wǎng)格劃分,基于一定的展開原則和策略對(duì)曲面進(jìn)行幾何法初始展開,再針對(duì)展開中出現(xiàn)的疊片、裂紋、翻轉(zhuǎn)和變形等進(jìn)行力學(xué)/能量法調(diào)整、優(yōu)化.但這些方法存在計(jì)算量大、算法效率低、處理過(guò)程復(fù)雜等問題,且在展開過(guò)程中會(huì)產(chǎn)生二次誤差[8].
針對(duì)這些方法的不足和汽車玻璃曲面的特點(diǎn),本文提出了曲線映射復(fù)雜曲面展開法.其基本思想是離散化,即將無(wú)法精確求解的連續(xù)物體離散為有限單元體,用離散單元體的解近似代替連續(xù)物體求解來(lái)解決實(shí)際問題.基于這種思想,曲線映射法的原理為:假設(shè)曲面材料為各向同性,首先將復(fù)雜曲面離散成有限的曲線單元體,這樣復(fù)雜曲面展開問題就轉(zhuǎn)化為曲面上的曲線展開成直線的問題;然后為保持曲面展開前后面積不變,將曲面上的曲線按照弧長(zhǎng)不變的原則和角度對(duì)應(yīng)關(guān)系映射到平面上,得到曲線在平面上展開的映射點(diǎn);最后用光滑的曲線連接這些映射點(diǎn)就得到了曲面展開輪廓.
這種曲線映射展開法采用曲線代替曲面,減少了傳統(tǒng)的用三角網(wǎng)格代替曲面而造成的曲面展開累積誤差,提高了展開精度;同時(shí),展開對(duì)象從曲面轉(zhuǎn)化為曲線,簡(jiǎn)化了處理過(guò)程,避免了傳統(tǒng)展開方法出現(xiàn)的裂紋、翻轉(zhuǎn)、變形等情況,使系統(tǒng)易于實(shí)現(xiàn).
基于上述曲線映射展開法原理,本文以Visual C++為平臺(tái),采用OpenGL圖形處理接口開發(fā)了汽車玻璃曲面展開系統(tǒng),該系統(tǒng)開發(fā)流程如圖2所示.
首先,讀取曲面點(diǎn)集坐標(biāo)值信息,用雙三次準(zhǔn)均勻有理B樣條曲面對(duì)汽車玻璃進(jìn)行建模及曲面重構(gòu);然后,設(shè)置曲面展開精度參數(shù),繪制與曲面相交的平面族,利用曲面求交獲得曲面上的曲線并計(jì)算曲線弧長(zhǎng);接著,以弧長(zhǎng)不變的原則將曲面上的曲線按照角度對(duì)應(yīng)關(guān)系映射到平面上,得到曲線在平面上展開的映射點(diǎn),用B樣條曲線插值法連接這些映射點(diǎn)就得到曲面展開輪廓;最后,檢驗(yàn)展開結(jié)果是否滿足系統(tǒng)的精度要求,如果是則輸出曲面展開結(jié)果,否則返回到設(shè)置曲面展開精度參數(shù)步驟,重新進(jìn)行曲面展開.
由曲面展開流程可以看出,曲面展開系統(tǒng)主要由讀取點(diǎn)集信息、曲面建模與重構(gòu)、獲取曲面上的曲線、曲線映射展開等四部分組成,下面分別對(duì)其關(guān)鍵技術(shù)做進(jìn)一步介紹.
圖2 汽車玻璃曲面展開系統(tǒng)流程圖
通常,汽車玻璃曲面模型是利用軟件通過(guò)復(fù)雜的調(diào)面過(guò)程得到的,沒有具體的數(shù)學(xué)描述模型,而建立曲面數(shù)學(xué)模型與曲面幾何模型重構(gòu)是汽車玻璃曲面展開系統(tǒng)的基礎(chǔ).因此,本文首先獲取汽車玻璃曲面點(diǎn)集(型值點(diǎn))信息,然后對(duì)曲面進(jìn)行建模與重構(gòu),建立曲面展開系統(tǒng)研究對(duì)象.
為保證曲面模型不失真,要求采集的曲面點(diǎn)集盡量均勻、密集、有序且必須包含邊界點(diǎn).
本文采集曲面點(diǎn)集的方法為:首先,將曲面劃分為上側(cè)邊界、曲面主體、下側(cè)邊界三個(gè)區(qū)域;接著,過(guò)曲面縱向中心截面的中間控制點(diǎn)作曲面的切面,有順序地建立與此切面互相垂直、保持等距間隔的交叉平面族;然后,將這些平面族分別與曲面上側(cè)邊界、曲面主體、曲面下側(cè)邊界求交,即可得到具有一定規(guī)律的有序交點(diǎn)集;最后,分區(qū)選擇曲面交點(diǎn)集,測(cè)量這些交點(diǎn)的三維坐標(biāo)值,并按順序保存在文本文檔中.
利用這種方法,本文應(yīng)用 Visual Basic對(duì)CATIA進(jìn)行自動(dòng)化對(duì)象編程實(shí)現(xiàn)曲面模型點(diǎn)集信息的采集.基于汽車玻璃曲面的對(duì)稱性,取曲面一半作為系統(tǒng)研究對(duì)象,當(dāng)平面族間隔距離為40mm時(shí),取得19×16型值點(diǎn),如圖3所示.
圖3 采集的曲面點(diǎn)集
汽車玻璃曲面是由自由型曲線、曲面構(gòu)成的復(fù)雜空間曲面,而B樣條方法能夠精確表示和設(shè)計(jì)自由型曲線、曲面.基于這一點(diǎn),根據(jù)汽車玻璃曲面幾何特點(diǎn)及采集的曲面點(diǎn)集信息,本文確定采用雙三次準(zhǔn)均勻有理B樣條曲面對(duì)汽車玻璃曲面進(jìn)行描述.其數(shù)學(xué)模型為:
式中,p(u,v)為張量積B樣條曲面;Di,j(i=0,1,…,mm -1;j=0,1,…,nn-1)為曲面控制頂點(diǎn);Ni,k(u)和Nj,l(v)分別為沿u向的k次和沿v向的l次 B樣條基函數(shù)并由節(jié)點(diǎn)矢量 U(u0,u1,…,um+k+1)和 V(v0,v1,…,vn+l+1)按德布爾-考克斯公式?jīng)Q定.
由式(1)可以看出:B樣條曲面模型是由曲面控制頂點(diǎn)和節(jié)點(diǎn)矢量決定的,而不是曲面型值點(diǎn).本文通過(guò)采集曲面點(diǎn)集獲得曲面型值點(diǎn),利用這些型值點(diǎn)來(lái)計(jì)算控制頂點(diǎn)及節(jié)點(diǎn)矢量,從而得到B樣條曲面模型,這個(gè)過(guò)程稱為B樣條曲面反算,其中型值點(diǎn)個(gè)數(shù)m×n與控制頂點(diǎn)個(gè)數(shù)mm×nn的關(guān)系為mm=m+k-1,nn=n+l-1;B樣條曲面節(jié)點(diǎn)矢量采用規(guī)范累積弦長(zhǎng)參數(shù)化方法計(jì)算可得.
對(duì)于本文汽車玻璃B樣條曲面模型:m=19,n=16,k=l=3 ,曲面控制頂點(diǎn)可由19×16型值點(diǎn)反算求得,節(jié)點(diǎn)矢量計(jì)算可得
將控制頂點(diǎn)及節(jié)點(diǎn)矢量代入式(1)即可得到曲面數(shù)學(xué)模型.
基于汽車玻璃B樣條曲面數(shù)學(xué)模型及Open-GL二維求值器機(jī)理,利用B樣條曲面繪制函數(shù)實(shí)現(xiàn)汽車玻璃重構(gòu)曲面在系統(tǒng)窗口的顯示.同時(shí),為方便系統(tǒng)實(shí)現(xiàn),過(guò)曲面縱向中心截面的中間控制點(diǎn)(Ox,Oy,Oz)建立用戶坐標(biāo)系,其中XOY面是曲面的切面.如圖4所示曲面重構(gòu)結(jié)果及用戶坐標(biāo)系.
圖4 B樣條重構(gòu)曲面、控制頂點(diǎn)及控制網(wǎng)格
獲取曲面上的曲線是曲線映射展開法及汽車玻璃曲面展開系統(tǒng)實(shí)現(xiàn)的關(guān)鍵.本文中曲面上的曲線通過(guò)曲面與平面求交的方法獲得,其步驟為:首先構(gòu)建與曲面相交的平面族;然后曲面與平面求交,獲得曲面上的曲線;最后計(jì)算曲線弧長(zhǎng).
本文以曲面縱向中心截面的中間控制點(diǎn)為展開基點(diǎn),這樣可以有效的抵消曲面對(duì)稱方向的累積誤差,提高了展開精度.過(guò)展開基點(diǎn)建立與XOY面垂直、呈等角α輻射狀分布的平面族,平面的數(shù)量為t,則有(t-1)·α =180°.通過(guò)這些平面與曲面求交獲得的曲線也是過(guò)展開基點(diǎn)呈等角輻射分布狀,從而避免了網(wǎng)狀曲線雙向延展的問題,使系統(tǒng)處理過(guò)程更加簡(jiǎn)潔.
在系統(tǒng)實(shí)現(xiàn)過(guò)程中,這些呈輻射分布的平面族是利用過(guò)空間任一旋轉(zhuǎn)軸的旋轉(zhuǎn)矩陣T實(shí)現(xiàn)的.
曲面參數(shù)方程為式(1),平面族代數(shù)方程采用點(diǎn)法式表示為:
將式(1)、式(2)聯(lián)立得曲面與平面的交線方程為:
式(3)是一個(gè)以u(píng)和v為變量的二元非線性方程.理論上,可令其中一個(gè)變量u以定步長(zhǎng)變化,而后求解一元高次非線性方程組,進(jìn)而得到交點(diǎn)(px(u,v),py(u,v),pz(u,v)),但實(shí)際上交線方程次數(shù)非常高、難以計(jì)算.本文采用改進(jìn)的數(shù)值搜索法進(jìn)行曲面求交,避免一元高次方程的求解,其方法為:令變量u和分別以定步長(zhǎng)δ1、δ2進(jìn)行搜索,(px(u,v),py(u,v),pz(u,v))為曲面上的精確點(diǎn),若此點(diǎn)到曲面的距離小于或等于ε即滿足式(4)則此點(diǎn)即為交線上的點(diǎn),ε為交點(diǎn)逼近曲面的誤差準(zhǔn)則,根據(jù)交點(diǎn)間的關(guān)系將多個(gè)交點(diǎn)連接起來(lái)就得到了交線即曲面上的曲線.曲線弧長(zhǎng)利用交點(diǎn)線段距離累加得到.曲面求交及弧長(zhǎng)計(jì)算的精度是由誤差準(zhǔn)則ε和參數(shù)u、v的搜索步長(zhǎng)δ1、δ2來(lái)保障的.
在系統(tǒng)實(shí)現(xiàn)過(guò)程中,主要采用兩種方法來(lái)優(yōu)化程序:其一是對(duì)不同轉(zhuǎn)角范圍內(nèi)的交線采用分別處理法,假設(shè)轉(zhuǎn)角為 β,當(dāng) β =0°時(shí),v=0,u從0遞增到0.5;當(dāng)0°< β<90°時(shí),u從0遞增到0.5,v從1遞減到0;β =90°時(shí),u=0,v從1遞減到0;90°< β< 180°時(shí),u從1遞減到0.5,v從1遞減到0;β =180°時(shí),v=0,u從1遞減到0.5.其二是利用平面斜率的特點(diǎn),以0°<β<90°為例進(jìn)行說(shuō)明,若u=ui、v=vj時(shí)獲得一個(gè)交點(diǎn),那么下個(gè)交點(diǎn)的搜索起始位置為u=ui+δ1、v=vj,而不是v=1.這兩種處理方法大大減少了程序中不必要的循環(huán)和計(jì)算,同時(shí)又能避免在相同v、不同的u下取得重復(fù)交點(diǎn)的問題,提高了交線計(jì)算的準(zhǔn)確性.
當(dāng) α =6°,ε =0.02mm,δ1= δ2=0.05mm時(shí),得到曲面上的曲線結(jié)果如圖5所示.
圖5 曲面上的曲線
獲得曲線弧長(zhǎng)之后,曲線就要按照弧長(zhǎng)不變的原則和角度對(duì)應(yīng)關(guān)系映射到平面上.映射平面為XOY面.由于求交平面是呈等角a輻射分布的,根據(jù)角度對(duì)應(yīng)關(guān)系,曲線在平面上的展開直線也是等角分布.因此第i條曲線映射到平面的過(guò)稱為:
輸入:展開直線斜率ki=tan(i·α),展開直線起點(diǎn)都為展開基點(diǎn)(Ox,Oy,Oz),直線長(zhǎng)度 l=L弧長(zhǎng).
映射關(guān)系:求解方程組
輸出:展開直線端點(diǎn)(xi,yi,Oz)即為曲線在平面上的映射點(diǎn).
最后,將展開曲線的端點(diǎn)利用三次B樣條曲線進(jìn)行插值,即可得到汽車玻璃曲面展開平面的輪廓,如圖6所示.
圖6 汽車玻璃曲面展開輪廓圖
本文提出了曲線映射展開法,此方法展開精度高且易于實(shí)現(xiàn),可適用于非封閉、小曲率、不可分割曲面的展開.汽車玻璃曲面正符合這種曲面幾何特點(diǎn),基于曲線映射展開法,本文開發(fā)了汽車玻璃曲面展開系統(tǒng),并對(duì)該系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)進(jìn)行了研究.展開實(shí)例表明,該系統(tǒng)可實(shí)現(xiàn)汽車玻璃毛坯的自動(dòng)生成,對(duì)縮短新型汽車玻璃制造周期、降低生產(chǎn)成本能起到積極的推動(dòng)作用.
[1]劉志國(guó),張永祥 ,簡(jiǎn)中強(qiáng).汽車擋風(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]陳動(dòng)之,王國(guó)謹(jǐn).基于偽直母線的復(fù)雜曲面自適應(yīng)分片與展開[J].軟件學(xué)報(bào),2003,14(3):660-665.
[4]李基拓.三角化曲面展開技術(shù)研究及其應(yīng)用[D].浙江:浙江大學(xué),2005.
[5]席平.三維曲面的幾何展開[J].計(jì)算機(jī)學(xué)報(bào),1997,20(4):315-322.
[6]詹雯.復(fù)雜曲面展開技術(shù)研究[D].南京:南京航空航天大學(xué),2007.
[7]毛國(guó)棟,孫炳楠,徐浩祥.基于彈簧-質(zhì)點(diǎn)系統(tǒng)的薄膜結(jié)構(gòu)曲面展開算法[J].浙江大學(xué)學(xué)報(bào)(工版),2005,39(8):1238-1242.
[8]毛昕,毛普元,孫靜.自由曲面近似展開及誤差分析系統(tǒng)[J].機(jī)械設(shè)計(jì)與制造,2007,12:201-203.