專利名稱:常規(guī)曲面轉(zhuǎn)換到自由曲面的計算機系統(tǒng)及方法
技術領域:
本發(fā)明涉及一種常規(guī)曲面轉(zhuǎn)換到自由曲面的系統(tǒng)及方法。
背景技術:
在產(chǎn)品的開發(fā)及制造過程中,幾何造型技術已使用得相當廣泛,但是,由于種種 原因,仍有許多產(chǎn)品并非由CAD模型描述,設計和制造者面對的是實物樣件。為了適應 先進制造技術的發(fā)展,需要通過一定途徑,將這些實物轉(zhuǎn)化為CAD模型,使之能利用CAD、 CAM、RPM、PDM及CMIS先進技術進行處理或管理。目前,與這種從實物樣件獲取產(chǎn)品數(shù) 學模型技術相關的技術,已發(fā)展成為CAD/CAM中的一個相對獨立的范疇,稱為“反求工 程”(ReverseEngineering)。通過反求工程復現(xiàn)實物的CAD模型,簡稱模型重建。目前較為成熟的模型重建技術是通過構建曲面來實現(xiàn)的,在構建曲面的過程中經(jīng) 常需要對構建的曲面進行修改,在構建的曲面中包括常規(guī)曲面,如旋轉(zhuǎn)面、直紋面、柱面等。 然而,常規(guī)曲面中的旋轉(zhuǎn)面、直紋面、柱面等都有各自固定的數(shù)學模型,對其進行修改、編 輯、分析等操作都要針對不同的情況進行處理,比較繁瑣,不適合通用圖形軟件開發(fā),同時 常規(guī)曲面方程式階數(shù)不高,不利于表達比較復雜的形狀。
發(fā)明內(nèi)容
鑒于以上內(nèi)容,有必要提供一種常規(guī)曲面轉(zhuǎn)換到自由曲面的計算機系統(tǒng),其可以 將常規(guī)曲面轉(zhuǎn)換成非均勻有理B樣條(Non-uniform Rational Basis Spline, NURBS)曲面。此外,還有必要提供一種常規(guī)曲面轉(zhuǎn)換到自由曲面的方法,其可以將常規(guī)曲面轉(zhuǎn) 換成NURBS曲面。一種常規(guī)曲面轉(zhuǎn)換到自由曲面的計算機系統(tǒng),所述計算機系統(tǒng)包括讀取模塊,用 于從計算機存儲器中讀取直紋面的參數(shù),所述直紋面的參數(shù)包括兩條邊界曲線,及兩條邊 界曲線的取值范圍;生成模塊,用于根據(jù)讀取的兩條邊界曲線生成與邊界曲線垂直的線段; 轉(zhuǎn)換模塊,用于當邊界曲線不是B樣條曲線時,將其中的一條邊界曲線轉(zhuǎn)換成一條B樣條曲 線,及將生成的線段轉(zhuǎn)換成另外一條B樣條曲線;構造模塊,用于根據(jù)上述兩條B樣條曲線 構造一個自由曲面?!N常規(guī)曲面轉(zhuǎn)換到自由曲面的方法,該方法包括生成步驟讀取直紋面的參 數(shù),所述直紋面的參數(shù)包括兩條邊界曲線,及兩條邊界曲線的取值范圍,根據(jù)讀取的兩條邊 界曲線生成與該兩條邊界曲線垂直的線段;判斷步驟判斷邊界曲線是否為B樣條曲線 ’轉(zhuǎn) 換步驟當邊界曲線不是B樣條曲線時,將其中的一條邊界曲線轉(zhuǎn)換成一條B樣條曲線,及 將生成的線段轉(zhuǎn)換成另外一條B樣條曲線;構造步驟根據(jù)上述兩條B樣條曲線構造一個 自由曲面。相較于現(xiàn)有技術,本發(fā)明可以將常規(guī)曲面轉(zhuǎn)換成NURBS曲面,解決常規(guī)曲面修改、 編輯、分析等操作不方便及不利于表達比較復雜的形狀的問題,滿足了客戶的需求。
圖1是本發(fā)明常規(guī)曲面轉(zhuǎn)換到自由曲面的計算機系統(tǒng)的較佳實施例的硬件框架 圖。圖2是本發(fā)明圖1中主機的較佳實施例的功能模塊圖。圖3是本發(fā)明直紋面轉(zhuǎn)換到自由曲面方法較佳實施例的流程圖。圖4是本發(fā)明柱面轉(zhuǎn)換到自由曲面的方法較佳實施例的流程圖。圖5是本發(fā)明旋轉(zhuǎn)面轉(zhuǎn)換到自由曲面的方法較佳實施例的流程圖。圖6是本發(fā)明直紋面的示意圖。圖7是本發(fā)明柱面的示意圖。圖8是本發(fā)明旋轉(zhuǎn)面的示意圖。
具體實施例方式如圖1所示,是本發(fā)明常規(guī)曲面轉(zhuǎn)換自由曲面的計算機系統(tǒng)較佳實施例的硬件架 構圖。該計算機系統(tǒng)主要包括主機1、顯示器2、鍵盤3及鼠標4。所述的自由曲面通過采用 一種非均勻有理B樣條(Non-uniform Rational Basis Spline, NURBS)描述方法來描述。 NURBS曲面方程為 其中,{Pijk}為坐標控制點集,Iwi,k}為控制點的權重集,隊, 及Nk,n(v)是構成 自由曲面u方向及ν方向的兩條B樣條曲線的基函數(shù)。在本較佳實施例中,自由曲面由兩條 不同方向的B樣條曲線構成,兩條不同方向的B樣條曲線通過各自控制點、控制點的權重及 基函數(shù)組合構造一個自由曲面,以u方向的B樣條曲線為例,所述的B樣條曲線的方程為 該B樣條曲線主要參數(shù){PJ為坐標控制點集,{WJ為控制點的權重集,{U為 基函數(shù)集 其中,、為基函數(shù)J的結點。所述主機1包括存儲器,該存儲器保存常規(guī)曲面的參數(shù)。在本較佳實施例 中,所述的常規(guī)曲面按照初始化圖形交換規(guī)范(IGES Initial Graphics Exchange Specification)進行定義,包括直紋面、柱面及旋轉(zhuǎn)面等。所述直紋面是指通過曲面上的每 個點都至少有一條直線完全在該曲面上,如圖6所示。所述柱面是指動直線沿著一條曲線 平行移動所產(chǎn)生的曲面,具體而言,如圖7所示,動直線G-E沿著曲線E-F平行移動得到一 個柱面。所述旋轉(zhuǎn)面是指一條曲線繞另一條線段旋轉(zhuǎn)一定角度所產(chǎn)生的曲面叫做旋轉(zhuǎn)面, 所述旋轉(zhuǎn)的曲線為母線,所述線段為轉(zhuǎn)軸,具體而言,如圖8所示,母線H-J繞轉(zhuǎn)軸O-P旋轉(zhuǎn) 一定角度所得到的一個旋轉(zhuǎn)面。所述主機1連接有顯示器2、鍵盤3及鼠標4,所述的顯示 器2、鍵盤3及鼠標4用作將常規(guī)曲面轉(zhuǎn)換成自由曲面時的輸入、輸出設備。如圖2所示,是本發(fā)明圖1中主機的較佳實施例的功能模塊圖。所述主機1包括讀 取模塊110、生成模塊120、判斷模塊130、轉(zhuǎn)換模塊140及構造模塊150。本發(fā)明所稱的模 塊是完成一特定功能的計算機程序段,比程序更適合于描述軟件在計算機中的執(zhí)行過程, 因此在本發(fā)明以下對軟件描述中都以模塊描述。所述讀取模塊110,用于從存儲器中讀取常規(guī)曲面的參數(shù)。所述常規(guī)曲面的參數(shù)包 括直紋面的參數(shù)、柱面的參數(shù)及旋轉(zhuǎn)面的參數(shù)等。對直紋面而言所述讀取模塊110讀取直紋面的參數(shù),所述直紋面的參數(shù)包括兩條邊界曲線,及 兩條邊界曲線的取值范圍。在本較佳實施例中,所述直紋面通過兩條邊界曲線表示,則直紋 面的參數(shù)為所述兩條邊界曲線,及每條邊界曲線取值范圍,具體而言,如圖6所示,該直紋 面的參數(shù)為該直紋面的邊界曲線A-B、C-D,及曲線A-B的取值范圍、曲線C-D的取值范圍。對柱面而言所述讀取模塊110讀取柱面的參數(shù),所述柱面的參數(shù)包括一條邊界曲線,該邊界 曲線的取值范圍,及該邊界曲線外的一點。在本較佳實施例中,所述柱面通過一條曲線及該 邊界曲線外的一點表示,則柱面的參數(shù)為所述曲線,該曲線取值范圍及該點的坐標,具體而 言,如圖7所示,該柱面的參數(shù)為邊界曲線E-F,點G的坐標及邊界曲線E-F的取值范圍,讀 取模塊110讀取邊界曲線E-F,該邊界曲線E-F的取值范圍及點G的坐標。對旋轉(zhuǎn)面而言所述讀取模塊110讀取旋轉(zhuǎn)面的參數(shù),所述旋轉(zhuǎn)面的參數(shù)包括母線、轉(zhuǎn)軸及旋轉(zhuǎn) 角度。所述母線也是一條邊界曲線。在本較佳實施例中,所述旋轉(zhuǎn)面通過一條線段及繞該 線段旋轉(zhuǎn)的母線表示,則旋轉(zhuǎn)面的參數(shù)為線段及繞該線段旋轉(zhuǎn)的母線,該線段及該母線的 取值范圍,具體而言,如圖8所示,讀取模塊110讀取母線H-J,轉(zhuǎn)軸O-P及角度Z H0L·所述生成模塊120用于根據(jù)讀取的常規(guī)曲面的參數(shù)生成用于構成自由曲面的兩 條曲線。對直紋面而言所述生成模塊120根據(jù)讀取的兩條邊界曲線生成一條與邊界曲線垂直的線段。如 圖6所示,所述生成模塊120根據(jù)邊界曲線A-B及C-D的取值范圍生成一條垂直兩條邊界曲線的線段A-D,并取其中的一條邊界曲線A-B,則線段A-D及邊界曲線A-B為生成的用于 構成自由曲面的兩條曲線,假設兩條邊界曲線的起點分別為AciUtl, y0)和D1 (xi; Y1),則線段 A-D 的表達式為 對柱面而言所述生成模塊120根據(jù)讀取的邊界曲線及點生成一條通過該點并與該邊界曲線 垂直的線段。如圖7所示,從點G做垂直于曲線E-F得到線段G-E,則線段G-E及曲線E-F 為生成的用于構成自由曲面的兩條曲線,假設點G的坐標為G1U1, yi),邊界曲線的起點坐 標為E0 (x0, y0),則線段G-E的表達式為=L = {E0, Gj, 對旋轉(zhuǎn)面而言所述生成模塊120根據(jù)讀取的母線、轉(zhuǎn)軸及旋轉(zhuǎn)角度生成一條垂直于轉(zhuǎn)軸的圓 弧。如圖8所示,母線H-J上的起點H繞轉(zhuǎn)軸O-P旋轉(zhuǎn)一定的角度得到一條圓弧H-I,則圓弧 H-I及母線H-J為用于構成自由曲面的兩條曲線,假設母線H-J的起點H的坐標為H(xstart,
Ystart),轉(zhuǎn)軸起點 0 的坐標為 O1 (Xeenter' Ycenter),則圓心 O1 (Xcenter' Ycenter),弧的起點 H(Xst t,
Ystart),終點I (Xend,Yend)。則圓弧的半徑為
圓弧表達
式為Arc (θ) = (xcenter+R*cos θ,ycenter+R*sin θ), θ e [θ start, θ end]。所述判斷模塊130用于判斷所述構成自由曲面的兩條曲線是否為B樣條曲線。判 斷的方式是判斷曲線是否是以B樣條曲線公式來描述的,即該曲線是否包含B樣條曲線的 控制點集、控制點的權重集及基函數(shù)集。在本較佳實施例中,曲線包括三種,B樣條曲線、線 段及圓弧。對直紋面而言,如圖6所示,由于線段A-D不是B樣條曲線,判斷模塊130只需 判斷其中的一條邊界曲線A-B是否是B樣條曲線。對柱面而言,如圖7所示,由于線段G-E 不是B樣條曲線,判斷模塊130只須判斷邊界曲線E-F是否是B樣條曲線。對旋轉(zhuǎn)面而言, 如圖8所示,由于圓弧H-I不是B樣條曲線,判斷模塊130只須判斷母線H-J是否是B樣條 曲線。所述轉(zhuǎn)換模塊140用于當所述構成自由曲面的兩條曲線不是B樣條曲線時,轉(zhuǎn)換 模塊140將上述兩條曲線轉(zhuǎn)換成兩條B樣條曲線。若曲線是B樣條曲線,則不需要轉(zhuǎn)換,若 曲線是線段或者圓弧,則將線段或者圓弧轉(zhuǎn)換成以B樣條曲線方程的方法來描述的B樣條 曲線。線段轉(zhuǎn)換的方法如下假設已知線段1上有兩點PoUwyo)和P1(XM1),而Ptl為1的 啟點,P1 為 1 的終點。則 1 為
將線段1轉(zhuǎn)換成B樣條曲線的方法如下定義一條曲線c,階乘m = 2,控制點Pi,控制 點的權重Wi,結點Ki+m的區(qū)域為[Kstot,Kend]。 假設u = K,那么[Kstart, Kend] =
ο上述線段1的參數(shù)中的控制點P (i),控制點的權重W (i)及結點Ki+m分別與B 樣條曲線方程中的控制點,控制點的權重及結點對應,則完成了線段到B樣條曲線的轉(zhuǎn)
換。若以圓弧為例,已知圓心Pcenter (xcenter,Ycenter),弧的起點P (xstart,ystart),終點P (xend,yend)。則圓弧的半徑為尺=扣—-O2 + -y^f圓弧表達式為Arc(e)=
,
(xcenter+R*cos θ ,ycenter+R*sin θ), θ e [ θ start, θ end]。則將圓弧轉(zhuǎn)換成 B 樣條曲線的方法 如下 定義一條曲線c,階乘m = 3,控制點Pi,權重Wi,結點Ki+m的區(qū)域為[Kstot,Kend]。
弧的參數(shù)為圓心 Pcenter (Xcenter' Ycenter),起點 P (xstart' Ystart),終點 P (xend' Yend)
d _ D *5
θ·- =-:-:- i e η ;
(π-1)將求圓上任意兩點(Pi,Pj)切線的交點(Pij)的函數(shù)記為fintdrse。t(Pi,Pj); 設 ·Ακ__(Ρ ,pi+1,pi+2)函數(shù)是求Z Pi+1Pi+2Pi 角度的 Cos 值; 其中m< δ < i,而(<5/2)6 Z,則 ν = δ -I0上述圓弧的控制點P(i),控制點的權重W(i)及結點Κ(δ)分別與B樣條曲線方程 中的控制點,控制點的權重及結點對應,則完成了圓弧到B樣條曲線的轉(zhuǎn)換。所述構造模塊150用于根據(jù)上述轉(zhuǎn)換的兩條B樣條曲線構造一個自由曲面。自由 曲面由兩條不同方向的B樣條曲線構成,兩條不同方向的B樣條曲線通過各自控制點、控制 點的權重及基函數(shù)構造一個自由曲面。構造方法如下首先,構造自由曲面的控制點,將兩 條B樣條曲線的控制點進行排列組合,具體而言,假設兩條曲線的控制點分別為{U”^}和 IVpV2I,則自由曲面的控制點為KU1J1), (u1;v2),(U2J1), (u2,V2M。其次,構造自由曲面的 控制點的權重,將兩條B樣條曲線的控制點的權重相乘,具體而言,假設兩條曲線的控制點 的權重分別為(W1, W2I和ILpL2I,則自由曲面的控制點的權重為{(W1^L1), (W1^L2), (W2^L1), (W2*L2)}。之后,構造自由曲面的基函數(shù),將兩條B樣條曲線的基函數(shù)進行排列組合,具體 而言,假設兩條曲線的控制點分別為IM1, MJ和{N” N2},則自由曲面的基函數(shù)為((MijN1), (M1, N2), (M2, N1), (M2,N2)}。構造自由曲面的控制點、控制點的權重及基函數(shù)之后,根據(jù)已 知的NURBS曲面方程表示自由曲面,則完成了常規(guī)曲面轉(zhuǎn)換成自由曲面。如圖3所示,是本發(fā)明一種直紋面轉(zhuǎn)換到自由曲面的方法的較佳實施例的流程 圖。首先,步驟S210,讀取模塊110讀取直紋面的參數(shù),所述直紋面的參數(shù)包括兩條邊 界曲線,及兩條邊界曲線的取值范圍。
步驟S211,生成模塊120根據(jù)讀取的兩條邊界曲線生成與其垂直的線段。具體而 言,如圖6所示,兩條邊界曲線為A-B、C-D,兩條邊界曲線的起點分別為AciUtl, y0)和D1 (X1, Y1),則線段A-D的表達式為=L = {A0, DJ,l(u) = {x0+ (X1-X0) y0+ (yry0) | u e
}。步驟S212,判斷模塊130判斷邊界曲線是否為B樣條曲線。判斷的方式是判斷邊 界曲線是否是以B樣條曲線公式來描述的,即該邊界曲線是否包含B樣條曲線的控制點集、 控制點的權重集及基函數(shù)集。步驟S213,當邊界曲線不是B樣條曲線時,轉(zhuǎn)換模塊140將其中的一條邊界曲線 轉(zhuǎn)換成一條B樣條曲線。轉(zhuǎn)換的方式是將邊界曲線轉(zhuǎn)換成以B樣條曲線方程的方法來描述 的B樣條曲線。若邊界曲線是B樣條曲線,則不需要轉(zhuǎn)換,若邊界曲線是線段或者圓弧,則 按照線段或者圓弧的轉(zhuǎn)換方式進行轉(zhuǎn)換。步驟S214,轉(zhuǎn)換模塊140將生成的線段轉(zhuǎn)換成另外一條B樣條曲線。步驟S215,構造模塊150根據(jù)上述兩條B樣條曲線構造一個自由曲面。自由曲面 由上述兩條B樣條曲線構成,兩條不同方向的B樣條曲線通過各自控制點、控制點的權重及 基函數(shù)構造一個自由曲面。首先,構造自由曲面的控制點,將兩條B樣條曲線的控制點進行 排列組合,具體而言,假設曲線A-B的兩個控制點為譏,隊},曲線A-D的兩個控制點為{V” V2},則自由曲面的控制點有四個,分別為((UijV1), (UijV2), (U2jV1), (U2,V2)}。其次,構造 自由曲面的控制點的權重,將兩條B樣條曲線的控制點的權重相乘,具體而言,假設假設曲 線A-B的兩個控制點的權重(W1^,曲線A-D的兩個控制點的權重O^L2L則自由曲面的 控制點的權重有四個,分別為{(W1^L1),(W1^L2),(W2^L1),(W2*L2) }。之后,構造自由曲面的基 函數(shù),將兩條B樣條曲線的基函數(shù)進行排列組合,具體而言,假設曲線A-B的基函數(shù)為{M1; M2I,曲線A-D的基函數(shù)為(N1, NJ,則自由曲面的基函數(shù)為{(M1, N1),(M1, N2),(M2, N1),(M2, N2)}。構造自由曲面的控制點、控制點的權重及基函數(shù)之后,根據(jù)已知的NURBS曲面方程表 示自由曲面,則完成了直紋面到自由曲面的轉(zhuǎn)換。如圖4所示,是本發(fā)明一種柱面轉(zhuǎn)換自由曲面方法的較佳實施例的流程圖。首先,步驟S310,讀取模塊110讀取柱面的參數(shù),所述柱面的參數(shù)包括一條邊界曲 線,該邊界曲線的取值范圍,及該邊界曲線外的一點。如圖7所示,讀取邊界曲線E-F,該邊 界曲線E-F的取值范圍及點G的坐標。步驟S311,生成模塊120根據(jù)讀取的邊界曲線及該邊界曲線外的一點生成一條通 過該點并與該邊界曲線垂直的線段。具體而言,如圖7所示,邊界曲線為E-F,點G的坐標為 G1 (xi; Y1),邊界曲線的起點坐標為E0 (x0, y0),則線段G-E的表達式為=L = {E0, Gj,1 (u)= {x0+ (X1-X0) *u, y0+ (Y1-Y0) *u I u e
}。步驟S312,判斷模塊130判斷該邊界曲線是否為B樣條曲線。判斷的方式是判斷 曲線是否是以B樣條曲線公式來描述的,即該曲線是否包含B樣條曲線的控制點集、控制點 的權重集及基函數(shù)集。步驟S313,當該邊界曲線不是B樣條曲線時,轉(zhuǎn)換模塊140將該邊界曲線轉(zhuǎn)換成一 條B樣條曲線。轉(zhuǎn)換的方式是將邊界曲線轉(zhuǎn)換成以B樣條曲線方程的方法來描述的B樣條 曲線。若邊界曲線是B樣條曲線,則不需要轉(zhuǎn)換,若邊界曲線是線段或者圓弧,則按照線段 或者圓弧的轉(zhuǎn)換方式進行轉(zhuǎn)換。
步驟S314,轉(zhuǎn)換模塊140將生成的線段轉(zhuǎn)換成另外一條B樣條曲線。步驟S315,構造模塊150根據(jù)上述兩條B樣條曲線構造一個自由曲面。自由曲面 由上述兩條B樣條曲線構成,兩條不同方向的B樣條曲線通過各自控制點、控制點的權重及 基函數(shù)構造一個自由曲面。首先,構造自由曲面的控制點,將兩條B樣條曲線的控制點進行 排列組合,具體而言,假設曲線E-F的兩個控制點為譏,隊},曲線G-E的兩個控制點為{V” V2},則自由曲面的控制點有四個,分別為((UijV1), (UijV2), (U2jV1), (U2,V2)}。其次,構造 自由曲面的控制點的權重,將兩條B樣條曲線的控制點的權重相乘,具體而言,假設假設曲 線E-F的兩個控制點的權重(W1^,曲線G-E的兩個控制點的權重O^L2L則自由曲面的 控制點的權重有四個,分別為{(W1^L1),(W1^L2),(W2^L1),(W2*L2) }。之后,構造自由曲面的基 函數(shù),將兩條B樣條曲線的基函數(shù)進行排列組合,具體而言,假設曲線E F的基函數(shù)為{M1; M2I,曲線G-E的基函數(shù)為(N1, NJ,則自由曲面的基函數(shù)為{(M1, N1),(M1, N2),(M2, N1),(M2, N2)}。構造自由曲面的控制點、控制點的權重及基函數(shù)之后,根據(jù)已知的NURBS曲面方程表 示自由曲面,則完成了柱面到自由曲面的轉(zhuǎn)換。如圖5所示,是本發(fā)明一種旋轉(zhuǎn)面轉(zhuǎn)換自由曲面方法的較佳實施例的流程圖。首先,步驟S410,讀取模塊110讀取旋轉(zhuǎn)面的母線、轉(zhuǎn)軸及旋轉(zhuǎn)角度,具體而言,如 圖8所示,讀取母線H-J,轉(zhuǎn)軸O-P及角度Z HOI。步驟S411,生成模塊120根據(jù)讀取的母線、轉(zhuǎn)軸及旋轉(zhuǎn)角度生成一條垂直于轉(zhuǎn)軸 的圓弧。具體而言,如圖8所示,母線為H-J的起點H的坐標為H(xstart,ystaJ,轉(zhuǎn)軸起點0 的坐標為 O1 (xcenter, ycenter),貝"J圓心 O1 (xcenter, ycenter),弧的起點 H(xstart,ystart),終點 I (xend,
yend)。則圓弧的半徑為尺=扣_-X-J2 + _y—J2圓弧表達式為Arc(e)=
,
(xcenter+R*cos θ,ycenter+R*sin θ ),θ G [ θ start, θ end]。步驟S412,判斷模塊130判斷母線是否是B樣條曲線。步驟S413,當母線不是B樣條曲線時,轉(zhuǎn)換模塊140將該母線轉(zhuǎn)換成一條B樣條 曲線。轉(zhuǎn)換的方式是將母線轉(zhuǎn)換成以B樣條曲線方程的方法來描述的B樣條曲線。若母線 是B樣條曲線,則不需要轉(zhuǎn)換,若母線是線段或者圓弧,則按照線段或者圓弧的轉(zhuǎn)換方式進 行轉(zhuǎn)換。步驟S414,轉(zhuǎn)換模塊140將生成的圓弧轉(zhuǎn)換成另外一條B樣條曲線。按照上述圓 弧的轉(zhuǎn)換方法將生成的圓弧轉(zhuǎn)成B樣條曲線。步驟S415,構造模塊150根據(jù)上述兩條B樣條曲線構造一個自由曲面。自由曲面 由上述兩條B樣條曲線構成,兩條不同方向的B樣條曲線通過各自控制點、控制點的權重及 基函數(shù)構造一個自由曲面。首先,構造自由曲面的控制點,將兩條B樣條曲線的控制點進行 排列組合,具體而言,假設曲線H-J的兩個控制點為譏,隊},曲線H-I的兩個控制點為{V” V2},則自由曲面的控制點有四個,分別為((UijV1), (UijV2), (U2jV1), (U2,V2)}。其次,構造 自由曲面的控制點的權重,將兩條B樣條曲線的控制點的權重相乘,具體而言,假設假設曲 線H-J的兩個控制點的權重Iff1, W2},曲線H-I的兩個控制點的權重O^L2L則自由曲面的 控制點的權重有四個,分別為{(W1^L1),(W1^L2),(W2^L1),(W2*L2) }。之后,構造自由曲面的基 函數(shù),將兩條B樣條曲線的基函數(shù)進行排列組合,具體而言,假設曲線H-J的基函數(shù)為{M1; M2I,曲線H-I的基函數(shù)為(N1, NJ,則自由曲面的基函數(shù)為{(M1, N1),(M1, N2),(M2, N1),(M2,N2)}。構造自由曲面的控制點、控制點的權重及基函數(shù)之后,根據(jù)已知的NURBS曲面方程表 示自由曲面,則完成了旋轉(zhuǎn)面到自由曲面的轉(zhuǎn)換。 最后所應說明的是,以上實施例僅用以說明本發(fā)明的技術方案而非限制,盡管參 照以上較佳實施例對本發(fā)明進行了詳細說明,本領域的普通技術人員應當理解,可以對本 發(fā)明的技術方案進行修改或等同替換,而不脫離本發(fā)明技術方案的精神和范圍。
權利要求
一種常規(guī)曲面轉(zhuǎn)換到自由曲面的計算機系統(tǒng),其特征在于,所述計算機系統(tǒng)包括讀取模塊,用于從計算機存儲器中讀取直紋面的參數(shù),所述直紋面的參數(shù)包括兩條邊界曲線,及兩條邊界曲線的取值范圍;生成模塊,用于根據(jù)讀取的兩條邊界曲線生成與邊界曲線垂直的線段;轉(zhuǎn)換模塊,用于當邊界曲線不是B樣條曲線時,將其中的一條邊界曲線轉(zhuǎn)換成一條B樣條曲線,及將生成的線段轉(zhuǎn)換成另外一條B樣條曲線;及構造模塊,用于根據(jù)上述兩條B樣條曲線構造一個自由曲面。
2.如權利要求1所述的常規(guī)曲面轉(zhuǎn)換到自由曲面的計算機系統(tǒng),其特征在于所述讀取模塊,還用于讀取柱面的參數(shù),所述柱面的參數(shù)包括一條邊界曲線,該邊界曲 線的取值范圍,及該邊界曲線外的一點;所述生成模塊,還用于根據(jù)讀取的邊界曲線及點生成一條通過該點并與該邊界曲線垂 直的線段。
3.如權利要求1所述的常規(guī)曲面轉(zhuǎn)換到自由曲面的計算機系統(tǒng),其特征在于所述讀取模塊,還用于讀取旋轉(zhuǎn)面的參數(shù),所述旋轉(zhuǎn)面的參數(shù)包括母線、轉(zhuǎn)軸及旋轉(zhuǎn)角度;所述生成模塊,還用于根據(jù)讀取的母線、轉(zhuǎn)軸及旋轉(zhuǎn)角度生成一條垂直于轉(zhuǎn)軸的圓弧;所述轉(zhuǎn)換模塊,還用于當母線不是B樣條曲線時,將該母線轉(zhuǎn)換成一條B樣條曲線,及 將生成的圓弧轉(zhuǎn)換成另外一條B樣條曲線。
4.如權利要求1或2或3所述的常規(guī)曲面轉(zhuǎn)換到自由曲面的計算機系統(tǒng),其特征在于, 所述判斷曲線是B樣條曲線的方式是判斷該曲線是否包含B樣條曲線的控制點集、控制點 的權重集及基函數(shù)集。
5.一種常規(guī)曲面轉(zhuǎn)換到自由曲面的方法,其特征在于,該方法包括生成步驟讀取直紋面的參數(shù),所述直紋面的參數(shù)包括兩條邊界曲線,及兩條邊界曲線 的取值范圍,根據(jù)讀取的兩條邊界曲線生成與該兩條邊界曲線垂直的線段; 判斷步驟判斷邊界曲線是否為B樣條曲線;轉(zhuǎn)換步驟當邊界曲線不是B樣條曲線時,將其中的一條邊界曲線轉(zhuǎn)換成一條B樣條曲 線,及將生成的線段轉(zhuǎn)換成另外一條B樣條曲線;及構造步驟根據(jù)上述兩條B樣條曲線構造一個自由曲面。
6.如權利要求5所述的常規(guī)曲面轉(zhuǎn)換到自由曲面的方法,其特征在于,所述生成步驟 還能用下列步驟代替讀取柱面的參數(shù),所述柱面的參數(shù)包括一條邊界曲線,該邊界曲線的取值范圍,及該邊 界曲線外的一點;根據(jù)讀取的邊界曲線及該邊界曲線外的一點生成一條通過該點并與該邊界曲線垂直 的線段。
7.如權利要求5所述的常規(guī)曲面轉(zhuǎn)換到自由曲面的方法,其特征在于,所述生成步驟 還能夠用如下步驟代替讀取旋轉(zhuǎn)面的參數(shù),所述旋轉(zhuǎn)面的參數(shù)包括母線、轉(zhuǎn)軸及旋轉(zhuǎn)角度; 根據(jù)讀取的母線、轉(zhuǎn)軸及旋轉(zhuǎn)角度生成一條垂直于轉(zhuǎn)軸的圓?。凰鲛D(zhuǎn)換步驟用下列步驟代替當母線不是B樣條曲線時,將該母線轉(zhuǎn)換成一條B樣條曲線,及將生成的圓弧轉(zhuǎn)換成另 外一條B樣條曲線。
8.如權利要求5所述的常規(guī)曲面轉(zhuǎn)換到自由曲面的方法,所述判斷邊界曲線是B樣條 曲線的方式是判斷該邊界曲線是否包含B樣條曲線的控制點集、控制點的權重集及基函數(shù)集。
9.如權利要求5所述的常規(guī)曲面轉(zhuǎn)換到自由曲面的方法,所述自由曲面是一個非均勻 有理B樣條曲面。
10.如權利要求9所述的常規(guī)曲面轉(zhuǎn)換到自由曲面的方法,所述非均勻有理B樣條曲面 通過非均勻有理B樣條曲面方程描述,所述非均勻有理B樣條曲面方程定義如下 ,其中,(Pi, J為坐標控制點集,Iwi, J為控制點的權重集,Im(U)及Nk,n(v)是構成自由 曲面u方向及ν方向的兩條B樣條曲線的基函數(shù)。
全文摘要
一種常規(guī)曲面轉(zhuǎn)換到自由曲面的方法,該方法包括生成步驟讀取直紋面的參數(shù),所述直紋面的參數(shù)包括兩條邊界曲線,及兩條邊界曲線的取值范圍,根據(jù)讀取的兩條邊界曲線生成與該兩條邊界曲線垂直的線段;判斷步驟判斷邊界曲線是否為B樣條曲線;轉(zhuǎn)換步驟當邊界曲線不是B樣條曲線時,將其中的一條邊界曲線轉(zhuǎn)換成一條B樣條曲線,及將生成的線段轉(zhuǎn)換成另外一條B樣條曲線;構造步驟根據(jù)上述兩條B樣條曲線構造一個自由曲面。運用本系統(tǒng)可以解決常規(guī)曲面修改、編輯、分析的問題。
文檔編號G06F17/50GK101887470SQ20091030236
公開日2010年11月17日 申請日期2009年5月15日 優(yōu)先權日2009年5月15日
發(fā)明者張旨光, 胡金波, 謝少勤 申請人:鴻富錦精密工業(yè)(深圳)有限公司;鴻海精密工業(yè)股份有限公司