国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

CATIA開發(fā)環(huán)境下NURBS曲線面計(jì)算模型

2015-12-23 01:09:30陳華偉吳祿慎袁小翠
關(guān)鍵詞:樣條控制點(diǎn)曲面

陳華偉,吳祿慎,袁小翠

(南昌大學(xué) 機(jī)電工程學(xué)院,江西 南昌330031)

0 引 言

非均勻有理B樣條 (non-uniform rational B-splines,NURBS)是適用于復(fù)雜曲線面造型的建模方法,在插值計(jì)算[1,2]、創(chuàng)新設(shè)計(jì)[3]和高精度曲面造型[4]中得到廣泛應(yīng)用。在CATIA 環(huán)境中進(jìn)行曲面功能二次開發(fā)[5],可以直接借助CATIA 成熟的顯示渲染功能,開發(fā)者只需關(guān)注功能實(shí)現(xiàn);且CATIA 具有完善的應(yīng)用接口 (API),支持NURBS曲面的讀取、編輯和創(chuàng)建,能夠?qū)訔l曲面擬合為NURBS 曲面,并提供了自定義曲面的生成功能。

1 NURBS曲線面的參數(shù)化定義

NURBS曲線面由控制點(diǎn)、權(quán)因子和基函數(shù)共同表達(dá)的數(shù)學(xué)解析式定義,已知型值 (采樣)點(diǎn)和邊界條件,即可計(jì)算節(jié)點(diǎn)矢量,反求控制點(diǎn)陣,從而獲得解析解。

1.1 多項(xiàng)式定義

NURBS定義中,非均勻性 (non-uniform)指控制頂點(diǎn)的影響范圍可以改變,有理性 (rational)則說明NURBS曲面可以有理多項(xiàng)式形式定義,B 樣條 (B-spline)指曲線面的構(gòu)建是通過插值實(shí)現(xiàn)的。

u向p 階 (次)、v向q 階NURBS曲面定義[6]為

Pi,j為構(gòu)成曲面控制點(diǎn)網(wǎng),u向、v向維數(shù)分別為 (m+1)、(n+1);Wi,j為權(quán)因子;Ni,p(u)、Nj,q(v)為p 階、q階B樣條基函數(shù)。

同理,k次NURBS曲線的多項(xiàng)式定義為

1.2 幾個(gè)重要參數(shù)

為了生成NURBS曲面,CAD 軟件都會(huì)對(duì)NURBS 曲面進(jìn)行對(duì)象和參數(shù)化定義,幾個(gè)重要參數(shù)如下:

(1)自由度,階 (degree)

表示多項(xiàng)式的最高次數(shù)p,通常p=1,2,3或5,用于表達(dá)一次 (Linear)、二次 (Quadratic)、三次 (Cubic)或五次 (Quintic)曲線面。

(2)控制點(diǎn) (control points)

控制點(diǎn)的數(shù)目記為c,每個(gè)控制點(diǎn)均可附權(quán)重(weight),記為w。如果w 值完全相同,則成為 “非有理”(non-rational)。

(3)節(jié)點(diǎn)矢量 (knot)

節(jié)點(diǎn)矢量由一列數(shù)值組成,節(jié)點(diǎn)數(shù)值可以重復(fù),重復(fù)次數(shù)稱為重復(fù)度 (multiplicity),記為m;一般記不重復(fù)節(jié)點(diǎn)個(gè)數(shù)為k。節(jié)點(diǎn)必須滿足以下兩個(gè)基本條件:

1)非減性,節(jié)點(diǎn)數(shù)值按非降次序排列;

2)可重復(fù)性,重復(fù)度滿足m≤p。

例:p=3,c=11,Knot數(shù)值依次為:0、0、0、1、2、2、2、3、7、7、9、9、9,符合以上兩項(xiàng)原則。但是假設(shè)Knot數(shù)值為:0、0、0、1、2、2、2、2、7、7、9、9、9,則因?yàn)橛?個(gè)節(jié)點(diǎn)值為2,不符合原則2),因而是不合法節(jié)點(diǎn)矢量。

上述參數(shù)數(shù)組大小之間存在數(shù)量關(guān)系:c=k-p-1。以三次 (p=3)NURBS曲線插值為例,設(shè)已知型值點(diǎn)數(shù)目為n+1 (i=0,1,2,…,n),并取節(jié)點(diǎn)參數(shù)前后端0,1的重復(fù)個(gè)數(shù)為p,則節(jié)點(diǎn)數(shù)為:k= (n+1)+2×p=n+7,控制點(diǎn)數(shù)為:c=k-p-1=n+3。例如,當(dāng)型值點(diǎn)數(shù)n+1=6,即n=5時(shí),節(jié)點(diǎn)數(shù)k和控制點(diǎn)數(shù)c應(yīng)分別為12和8。

以下為兩個(gè)具體實(shí)例。圖1 (a)中,擬合曲線隨著其中一個(gè)控制點(diǎn)CP3位置的移動(dòng) (至CP3′)而變化,并被其“吸引”;圖1 (b)中,控制點(diǎn)CP1-CP6不變,改變權(quán)重系數(shù):原權(quán)重為 (1,1,1,1,1,1),新權(quán)重為 (1,1,10,20,5,1),可見曲線向權(quán)重較大的控制點(diǎn)CP3和CP4靠攏[7]。它們的主要參數(shù)列見表1。

圖1 兩個(gè)實(shí)例

表1 NURBS曲線參數(shù) (p=3)

2 CATIA中曲線面對(duì)象的定義和讀取

曲面是封閉的R2至R3空間的函數(shù),由雙變參U、V的3個(gè)標(biāo)量函數(shù)FX、FY、FZ 所定義,標(biāo)量函數(shù)說明了曲面參數(shù) (U,V)到笛卡爾坐標(biāo) (X,Y,Z)的變換或映射關(guān)系。多面片曲面中每個(gè)面片中的點(diǎn)坐標(biāo)可由局部參數(shù)(u,v)或全局參數(shù) (U,V)定義。曲線則由單參數(shù)定義,情況類似。如圖2所示。

圖2 曲面的參數(shù)化定義

2.1 基本對(duì)象和接口

CATIA 幾何建模器 (CATIA geometric modeler,CGM)中封裝了CATCurve和CATSurface接口分別定義曲線和曲面對(duì)象,所定義曲線和曲面必須是二階可微,即C2連續(xù)的。與之相關(guān)聯(lián)的幾個(gè)重要對(duì)象和接口有:

(1)CATCrvParam/CATSurParam 對(duì)象:定義曲線/面上點(diǎn)的全局參數(shù);

(2)CATCrvLimits/CATSurLimits對(duì)象:定義曲線/面邊界,可由包圍盒的兩個(gè)角點(diǎn)CATCrvParam/CATSur-Param 參數(shù)定義;

(3)CATKnotVector對(duì)象:定義節(jié)點(diǎn)矢量,提供了獲取節(jié)點(diǎn)值,控制點(diǎn),分段弧數(shù),自由度,重合度等全套接口函數(shù);

(4)Eval接口:CATCurve/CATSurface::Eval實(shí)現(xiàn)參數(shù)坐標(biāo)至笛卡爾坐標(biāo)的轉(zhuǎn)換和三階導(dǎo)數(shù)的求取;

(5)GetParam 接口:CATCurve/CATSurface::Get-Param 實(shí)現(xiàn)笛卡爾坐標(biāo)至參數(shù)坐標(biāo)的轉(zhuǎn)換;

(6)GetEquation 接口:獲得曲線/面方程對(duì)象CATMathFunctionX/CATMathFunctionXY;

(7)GetKnotVector/GetKnotVectorU/V 接口:獲得CATKnotVector對(duì)象。

2.2 參數(shù)讀取和計(jì)算

(1)點(diǎn)對(duì)象信息

曲線面分別利用CATCurve和CATSurface對(duì)象的接口函數(shù)求取曲線面上的點(diǎn)及其導(dǎo)數(shù)。如曲線中點(diǎn)及該點(diǎn)切向和法向的計(jì)算過程如下:

對(duì)如圖3 (a)所示的曲線進(jìn)行計(jì)算,結(jié)果為:

中點(diǎn)坐標(biāo):(262.734,114.157,209.558):

一階導(dǎo)數(shù):(0.779724,-0.558819,-0.358627);

二階導(dǎo)數(shù):(-0.00640612,-0.00114124,-0.00163766);

三階導(dǎo)數(shù): (-9.6987e-005,7.44916e-005,-2.68162e-005)。

可見,三階導(dǎo)數(shù)的取值已經(jīng)非常之小,幾何意義不大。也可以采用第二種方法,即使用接口函數(shù)CATCurve::GetEquation獲得該曲線的MathFunctionX 數(shù)學(xué)函數(shù)對(duì)象,該對(duì)象也提供了Eval類接口函數(shù),所求結(jié)果與上述結(jié)果一致。

曲面上點(diǎn)信息的讀取過程與之類似,圖3 (b)顯示了曲面中點(diǎn)及其各向切矢和法矢的計(jì)算結(jié)果。

圖3 CATIA 中曲線的底層操作

(2)點(diǎn)的解析解

此外,還能讀取通過CATKnotVector::GetPolynomialBasisForOneArc接口函數(shù)讀取NURBS多項(xiàng)式,并對(duì)曲線面上的點(diǎn)求解析解。以曲線為例:

解析解計(jì)算結(jié)果與對(duì)象法讀取的結(jié)果一致。

(3)NURBS參數(shù)

為了讀取NURBS參數(shù),應(yīng)使用CATCreateCrvFitting-ToNurbsCrv全局函數(shù) (可設(shè)置擬合誤差)將一般曲線轉(zhuǎn)化為NURBS 曲線對(duì)象CATNurbsCurve,該對(duì)象由CATCurve繼承而來,增加了GetOneControlPoint函數(shù)用于讀取控制點(diǎn)信息。

下面給出NURBS節(jié)點(diǎn)和控制點(diǎn)參數(shù)的讀取過程:

對(duì)如圖3 (a)所示的曲線進(jìn)行計(jì)算,結(jié)果為:

自由度:5

分段弧數(shù):3

節(jié)點(diǎn)數(shù):4

節(jié)點(diǎn)值:0,106.771,254.757,459.452

重復(fù)度:6,3,3,6,

控制點(diǎn)數(shù):12

控制點(diǎn): (100,70,300) (102.004,99.0517,287.637)(108.124,121.486,276.488)

(118.362,137.304,266.554) (152.613,159.256,245.748)(203.535,148.733,229.986)

(235.575,134.094,221.656) (299.801,92.7058,198.798)(310.217,54.9492,161.893)

(286.537,43.1674,132.534) (233.131,41.5177,95.2366)(150,50,50)

將這些控制點(diǎn)用直線連接,結(jié)果顯示于圖3 (a);圖3(b)中也展示了NURBS曲面參數(shù)求解后獲得的部分控制點(diǎn)和兩條控制線。

3 NURBS曲線面的反求

工程應(yīng)用中,一般已知型值點(diǎn)陣Qi,j(Qi,j∈S),要求NURBS的解析表達(dá)式,因此,需要反求控制點(diǎn)陣P,設(shè)Q為型值點(diǎn)陣列,R 為基函數(shù)系數(shù)矩陣,P 為控制點(diǎn)網(wǎng)矩陣,則NURBS曲面方程定義式可表示為矩陣形式

基函數(shù)系數(shù)矩陣R 由多項(xiàng)式函數(shù)Ni,k(k 為階次)構(gòu)成,Ni,k的基函數(shù)又由節(jié)點(diǎn)矢量u= [u0,…,um+2p],v=[v0,…,vn+2q]采用Cox-De Boor公式[2,8]遞推

其中

對(duì)矩陣方程進(jìn)行求解,可反求出控制點(diǎn):

P=R-1Q,R 為方陣;

P= (RTR)-1RTQ,R 不為方陣。

NURBS曲面反求以曲線反求為基礎(chǔ),而曲線反求的核心是控制點(diǎn)的反求,其基本步驟是:

(1)讀入型值點(diǎn)Q,計(jì)算節(jié)點(diǎn)矢量u、v;

(2)使用De-Boor公式,計(jì)算多項(xiàng)式基函數(shù)Ni,k,構(gòu)造系數(shù)矩陣R;

(3)帶入曲線方程,構(gòu)造方程組RP=Q;

(4)附加合適的邊界條件,得到未知數(shù)個(gè)數(shù)與方程個(gè)數(shù)一致的可解方程組;

(5)采用合適的方法求解方程組,得到控制點(diǎn)P。

3.1 NURBS曲線的控制點(diǎn)反求

NURBS曲線反求可描述為:已知n個(gè)型值點(diǎn)Qi(i=1,…,n),曲線自由度為k,求控制點(diǎn)Pi。

為滿足曲線端點(diǎn)就是型值點(diǎn)的要求,節(jié)點(diǎn)矢量的兩端應(yīng)取k+1重復(fù)度,即u0=u1=…=uk,un+k=un+k+1=…=un+2k。

對(duì)三次樣條曲線 (k=3),取規(guī)范化節(jié)點(diǎn)矢量,則兩端重復(fù)節(jié)點(diǎn)矢量為:u0=u1=u2=u3=0,un+3=un+4=un+5=un+6=1。

首末短短重復(fù)度為m=k+1=4。

其它節(jié)點(diǎn)值可采用累積弦長(zhǎng)法進(jìn)行參數(shù)化

附加以下條件:

(1)首末端點(diǎn)應(yīng)分別與控制點(diǎn)重合,即:p0=q0,pn+k-1=qn。

(2)邊界條件。一般要求邊界點(diǎn) (首末端點(diǎn))切矢q0′和qn′連續(xù),即有

使用基函數(shù)遞推式 (2),求系數(shù)矩陣R,帶入式 (1),整理得以下矩陣方程

其中

3.2 矩陣方程的求解

方程組 (1)為典型的三對(duì)角矩陣方程,易采用高斯消去法求解。

給定形的矩陣方程如下

經(jīng)過n-1次消元,可化為同解上三角矩陣方程

其中

回代求出未知數(shù):xn=gn,xi=qi-uixi+1(i=n-1,n-2,…,1)。

該過程亦稱為追趕法,是三對(duì)角方程組的典型求解方法。

3.3 m×n維點(diǎn)陣擬合NURBS曲面

以均勻雙三次B樣條(k=3)為例,典型的反求問題可描述為:已知m×n維型值點(diǎn)陣Qi,j(i=1,2,…,n;j=1,2,…,m),求控制點(diǎn)陣Pi,j(i=1,2,…,n+1;j=1,2,…,m+1)。

采用兩次反求法,即分別對(duì)u 向和v 向控制點(diǎn)進(jìn)行反求,即可求取控制點(diǎn)陣:

(1)計(jì)算u向控制點(diǎn)。對(duì)u 向的m 組型值點(diǎn),按照反算公式,并添加邊界條件,即可求解矩陣方程,獲得m 組B樣條曲線的控制頂點(diǎn)Vi,j(i=1,2,…,n,n+1;j=1,2,…,m)。因?yàn)槊織l曲線都要添加兩個(gè)邊界條件才能求解,因而每條曲線上的控制點(diǎn)數(shù)為 (n+1);

(2)計(jì)算v向控制點(diǎn)。將Vi,j視為v 向的m 組型值點(diǎn),再作 (n+1)次B樣條曲線反算,所求v向控制點(diǎn)Pi,j即為整個(gè)曲面的控制點(diǎn)。

CATIA 提供了幾何對(duì)象包CATGeoFactory,開放有NURBS曲線面生成的接口函數(shù)CATCreateNurbsCurve和CATCreateNurbsSurface,它們均以節(jié)點(diǎn)向量和控制點(diǎn)陣為主要輸入?yún)?shù),調(diào)用結(jié)果是生成CATNurbsCurve或CATNurbsSurface對(duì)象,該對(duì)象可直接在CATIA 界面中顯示。

使用CATIA 開發(fā)環(huán)境,導(dǎo)入型值點(diǎn)陣,自定義函數(shù)封裝節(jié)點(diǎn)計(jì)算、控制點(diǎn)反求及其求解算法,然后調(diào)用CATGeoFactory:: CATCreateNurbsCurve/CATCreateNurbs-Surface接口生成NURBS 曲線面對(duì)象,轉(zhuǎn)化為特征后在CATIA 界面中顯示。圖4是在CATIA 中對(duì)30×20維點(diǎn)陣進(jìn)行NURBS曲面重構(gòu)的結(jié)果。

圖4 由點(diǎn)陣生成NURBS曲面

4 結(jié)束語

特征在界面上以對(duì)象形式存在,在底層則是通過幾何拓?fù)浠蚪馕鲇?jì)算生成。文中NURBS曲線面信息的讀取以及曲線面的反向生成,均借助CATIA 的NURBS對(duì)象接口實(shí)現(xiàn),并交由顯示渲染接口生成,因而具有流程簡(jiǎn)單,代碼清晰,可維護(hù)性和封裝性強(qiáng)等特點(diǎn)。作為曲線面建模和逆向建模的核心算法,該模塊可在復(fù)雜曲線和型面[9,10]建模分析中直接應(yīng)用或修改后應(yīng)用。

[1]WANG Yunsen,GAI Rongli,SUN Yilan,et al.NURBS interpolation algorithm for high-quanlity machining [J].Journal of Computer-Aided Design & Computer Graphics,2013,25(10):1549-1556 (in Chinese). [王允森,蓋榮麗,孫一蘭,等.面向高質(zhì)量加工的NURBS曲線插補(bǔ)算法 [J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)報(bào),2013,25 (10):1549-1556.]

[2]WANG Guoxun,SHU Qilin,WANG Jun,et al.Algorithm of fast evaluation and derivation for the technique of NURBS direct interpolation [J].Journal of Northeastern University(Natural Science),2012,33 (7):1021-1024 (in Chinese).[王國(guó)勛,舒啟林,王軍,等.NURBS直接插補(bǔ)技術(shù)中快速求值求導(dǎo)算法 [J].東北大學(xué)學(xué)報(bào) (自然科學(xué)版),2012,33(7):1021-1024.]

[3]ZHOU Wei,CHENG Dewen,XU Chen,et al.Application of NURBS free-form surface in optomechanical design [J].Infrared and Laser Engineering,2014,43 (10):3313-3320 (in Chinese).[周偉,程德文,許晨,等.NURBS自由曲面在光機(jī)設(shè)計(jì)和分析中的應(yīng)用 [J].紅外與激光工程,2014,43(10):3313-3320.]

[4]LI Weiguo,HUANG Fengling.Application of NURBS surface reconstruction algorithm in form modification of sheets die faces[J].Computer Applications and Software,2014,31 (10):281-284 (in Chinese). [李衛(wèi)國(guó),黃風(fēng)玲.NURBS曲面重構(gòu)方法在板料模面修型中的應(yīng)用 [J].計(jì)算機(jī)應(yīng)用與軟件,2014,31 (10):281-284.]

[5]WANG Liming.Three-dimensional reconstruction and parametric design of aircraft configuration based on CATIA CAA[D].Nanjing:Nanjing University of Aeronautics and Astronautics,2014 (in Chinese). [王黎明.基于CATIA CAA 的飛行器參數(shù)化三維外形設(shè)計(jì)及三維重建 [D].南京:南京航空航天大學(xué),2014.]

[6]Piegl L,Tiller W.Curve and surface constructions using rational B-splines[J].Computer-Aided Design,1987,19 (9):485-498.

[7]CHEN Jun,CUI Hanguo.Shape modification of NURBS curves based on weight[J].Journal of Naval University of Engineering,2012,24 (4):108-112 (in Chinese). [陳軍,崔漢國(guó).基于權(quán)值的NURBS曲線形狀修改 [J].海軍工程大學(xué)學(xué)報(bào),2012,24 (4):108-112.]

[8]Carl de Boor.On calculation with B-spline[J].Journal of Approximation Theory,1972,6 (1):50-62.

[9]CHEN Yueping,GAO Jian,DENG Haixiang,et al.On-line inspection and machining error cmpensation for complex surfaces[J].Journal of Mechanical Engineering,2012,48 (23):143-151 (in Chinese).[陳岳坪,高健,鄧海祥,等.復(fù)雜曲面零件在線檢測(cè)與誤差補(bǔ)償方法 [J].機(jī)械工程學(xué)報(bào),2012,48(23):143-151.]

[10]LI Yuan,WANG Yiwen,LIU Xianli,et al.Intelligent modeling of semi-open integral wheel based on nurbs[J].Journal of Harbin University of Science and Technology,2014,19 (1):12-15 (in Chinese).[李媛,王義文,劉獻(xiàn)禮,等.基于NURBS的半開式整體葉輪智能建模 [J].哈爾濱理工大學(xué)學(xué)報(bào),2014,19(1):12-15.]

猜你喜歡
樣條控制點(diǎn)曲面
一元五次B樣條擬插值研究
相交移動(dòng)超曲面的亞純映射的唯一性
圓環(huán)上的覆蓋曲面不等式及其應(yīng)用
三次參數(shù)樣條在機(jī)床高速高精加工中的應(yīng)用
NFFD控制點(diǎn)分布對(duì)氣動(dòng)外形優(yōu)化的影響
三次樣條和二次刪除相輔助的WASD神經(jīng)網(wǎng)絡(luò)與日本人口預(yù)測(cè)
軟件(2017年6期)2017-09-23 20:56:27
基于樣條函數(shù)的高精度電子秤設(shè)計(jì)
基于風(fēng)險(xiǎn)管理下的項(xiàng)目建設(shè)內(nèi)部控制點(diǎn)思考
基于曲面展開的自由曲面網(wǎng)格劃分
相似材料模型中控制點(diǎn)像點(diǎn)坐標(biāo)定位研究
钟山县| 永吉县| 沂南县| 石台县| 桃园县| 钦州市| 邢台县| 远安县| 山阳县| 正阳县| 禄劝| 获嘉县| 江口县| 延安市| 宽甸| 紫云| 奎屯市| 乌什县| 锡林郭勒盟| 江门市| 闽侯县| 阳曲县| 兴海县| 重庆市| 项城市| 繁昌县| 元氏县| 屏山县| 三门县| 神农架林区| 锦州市| 永川市| 长治县| 石渠县| 三河市| 临沭县| 鹤山市| 抚州市| 瑞金市| 调兵山市| 科技|