熊林杰,石志良,汪國強(qiáng),蔡旺月
(武漢理工大學(xué) 機(jī)電工程學(xué)院,湖北 武漢 430070)
在現(xiàn)代工業(yè)設(shè)計(jì)中,復(fù)雜網(wǎng)格曲面上的特征重用在傳統(tǒng)的設(shè)計(jì)模式中存在許多問題,如大多數(shù)情況下,特征重用工作中,由于特征模型與應(yīng)用模型的不匹配問題,需要針對(duì)特征模型進(jìn)行二次設(shè)計(jì)工作,這其中涉及到模型的空間形態(tài)的調(diào)整,如彎曲,扭轉(zhuǎn)等變形操作,使得重用特征與重用模型相匹配[1-2]。而這些問題往往涉及到理論化、參數(shù)化的數(shù)學(xué)計(jì)算和特征模型空間數(shù)據(jù)的大規(guī)模參數(shù)調(diào)整。對(duì)于設(shè)計(jì)者模型來說,并不能簡單依靠手動(dòng)編輯和參數(shù)調(diào)整就能實(shí)現(xiàn)模型的精確空間形態(tài)的調(diào)整。而且用戶交互操作模式中,關(guān)于特征在空間中的定位點(diǎn)存在人為不可控制的精度誤差。在人機(jī)交互過程中,對(duì)于特征的空間姿態(tài)的調(diào)整,模型融合等方面會(huì)耗費(fèi)大量的界面交互時(shí)間,這給CAD設(shè)計(jì)人員帶來繁重且瑣碎的設(shè)計(jì)工作。
由于現(xiàn)代設(shè)計(jì)中大多數(shù)應(yīng)用模型都是復(fù)雜且非規(guī)則曲面,針對(duì)這類設(shè)計(jì)在高復(fù)雜度與非規(guī)則曲面上進(jìn)行大規(guī)模的特征重用工作,對(duì)于設(shè)計(jì)人員來說,如果僅僅只是依賴于傳統(tǒng)的簡單直線型或者環(huán)形的簡單規(guī)則陣列方式是遠(yuǎn)遠(yuǎn)不能滿足設(shè)計(jì)工作內(nèi)容與設(shè)計(jì)人員的要求。而完全依靠設(shè)計(jì)者手動(dòng)進(jìn)行人工交互來完成特征重用的設(shè)計(jì)工作,很明顯是會(huì)花費(fèi)巨大時(shí)間成本與物力成本,這對(duì)于設(shè)計(jì)工作效率與工作效益都產(chǎn)生了巨大的阻礙。為了將工作者從繁重的、重復(fù)性的基礎(chǔ)設(shè)計(jì)工作中解放出來,將時(shí)間和精力投入到創(chuàng)造性和研究性的工作內(nèi)容當(dāng)中,因此特征模型重用算法研究有著實(shí)際的研究價(jià)值與應(yīng)用意義。
基于特征重用布局規(guī)劃的算法主要分為兩大類:一類是特征模型信息轉(zhuǎn)換為曲面張量信息,然后基于輸入邊界信息和填充方法,最后得到網(wǎng)格曲面上離散的特征重用位置點(diǎn)[3-6]。另一類是基于用戶輸入的布局基線將特征的外輪廓線沿著布局基線按照一定的方式進(jìn)行排列布局,然后通過特征的外輪廓線與網(wǎng)格曲面求交,得到特征網(wǎng)格區(qū)域,最后進(jìn)行特征擠出變形,實(shí)現(xiàn)特征重用[7-11]。
筆者針對(duì)于機(jī)械設(shè)計(jì)領(lǐng)域的參數(shù)化、數(shù)值化的設(shè)計(jì)特點(diǎn),提取一種以網(wǎng)格測(cè)地距離為度量的特征重用布局規(guī)劃設(shè)計(jì)方法。
網(wǎng)格測(cè)地距離在歐式空間中,表示為在網(wǎng)格模型上沿網(wǎng)格曲面表面行進(jìn),兩點(diǎn)之間距離最短的距離。為了提高特征在網(wǎng)格曲面上重用布局規(guī)劃的效果,可以在網(wǎng)格曲面上建立網(wǎng)格測(cè)地線,然后基于網(wǎng)格測(cè)地線沿網(wǎng)格曲面行進(jìn)的特性,以測(cè)地距離值為度量工具,進(jìn)行特征布局規(guī)劃,最后將重用的特征模型與網(wǎng)格模型進(jìn)行網(wǎng)格融合,完成特征重用,其流程如圖1所示。
圖1 特征重用布局規(guī)劃流程圖
在理想狀態(tài)下,熱能傳播過程中,能量在傳播介質(zhì)中存在傳播速度為各向同性的特性。而從微觀角度來看,在能量傳播過程中,特定時(shí)刻t下的空間曲面上,曲面上的每個(gè)點(diǎn)都對(duì)應(yīng)著特定的確定物理值,這就說明在這個(gè)空間中確定了該物理量的一個(gè)場(chǎng)。如果這個(gè)物理量是數(shù)量,則這個(gè)場(chǎng)就為數(shù)量場(chǎng);若是矢量,就稱為矢量場(chǎng)。
在空間曲面的熱量場(chǎng)中,設(shè)能量在空間曲面中的傳播函數(shù)為u,在傳播場(chǎng)中相同數(shù)值的點(diǎn)所組成的曲線為等值線。等值線的參數(shù)方程為:
u(x,y,z)=c,(c為常數(shù))
(1)
式中,常量c在函數(shù)u中取不同c值就能得到不同的等值線。由熱量場(chǎng)的特性可知,在特定時(shí)刻t,在熱量場(chǎng)中的每一點(diǎn)有且具有唯一的值。故而,同一曲面上的等值線具有唯一性,且不同值的等值線之間,互不相交。
由Varadhan熱核傳播理論[12]可知,在黎曼流形上任意一對(duì)點(diǎn)之間測(cè)地線的距離φ可表示為:
(2)
式中:φ(x,y)表示為在特定時(shí)刻t,在熱傳播方程為kt,x(y)的條件下,兩個(gè)點(diǎn)之間的測(cè)地距離方程。
因此在離散網(wǎng)格曲面上,可以通過求解線性方程組來求取網(wǎng)格上所有點(diǎn)對(duì)于網(wǎng)格上某一點(diǎn)的測(cè)地距離。然后依據(jù)各個(gè)網(wǎng)格點(diǎn)的測(cè)地距離值,建立網(wǎng)格等值測(cè)地曲線。
給定具有n個(gè)頂點(diǎn)的流型三角網(wǎng)格模型M=(V,E,F),V為網(wǎng)格離散點(diǎn)集合,設(shè)有:V={vi|vi=(xi,yi,zi),xi,yi,zi∈R},vi為網(wǎng)格模型M上的離散頂點(diǎn)坐標(biāo),對(duì)于每個(gè)頂點(diǎn)vi,i(1≤i≤n)對(duì)應(yīng)為頂點(diǎn)在集合V中的索引值;E為網(wǎng)格模型上三角面片上的有向邊集,設(shè)有:E={eij|eij=(vi,vj),vi,vj∈V},eij為三角網(wǎng)格M上的一條有向邊,方向?yàn)槟鏁r(shí)針方向;F為有向三角面片集合,F(xiàn)={ftri|ftri=(vi,vj,vk),vi,vj,vk∈V},對(duì)于網(wǎng)格模型上的每個(gè)有向三角面片ftri,vi,vj,vk分別為沿三角面片上外法向向量Ni的視角方向,按照逆時(shí)針方向依次連接的離散頂點(diǎn)坐標(biāo)。定義vi處的拉普拉斯坐標(biāo)值為Lc(vi),采用余弦權(quán)重φi表示為:
(3)
式中:ui,ut分別為傳播函數(shù)u(t)在t時(shí)刻時(shí),vi,vj處所對(duì)應(yīng)的值;cotαij,cotβij分別為三角網(wǎng)格上一條有向邊eij的兩個(gè)鄰接三角面片的對(duì)角余切值。具體網(wǎng)格信息如圖2所示。
圖2 網(wǎng)格模型參數(shù)信息圖
依據(jù)離散拉普拉斯坐標(biāo),建立n階三角網(wǎng)格模型的拉普拉斯網(wǎng)格矩陣Lc,則拉普拉斯網(wǎng)格矩陣上的值Lc(vi)為:
(4)
對(duì)于三角網(wǎng)格M上的面積對(duì)角矩陣A,則頂點(diǎn)vi在三角網(wǎng)格M上所占有的面積Ai為:
(5)
式中:j為頂點(diǎn)vi共有j個(gè)鄰片面積;Aij為vi對(duì)應(yīng)的某一鄰接面片fij的面積。
1.3.1 初始條件
在空間傳播過程中,熱能總和保持不變,但隨著時(shí)間t的變化,空間中各個(gè)點(diǎn)所包含的熱能密度值隨時(shí)間的變化而變化,而空間中所包含的能量總值保持不變。由熱能傳播學(xué)理論可知,欲求取離散三角網(wǎng)格上的等距線時(shí),首先,需要輸入傳播狀態(tài)的初始條件作為約束條件。在求取等值線的過程中,存在在時(shí)間參數(shù)t=0時(shí),熱能在空間曲面上還處于未曾傳播的狀態(tài),則空間中除了熱源源點(diǎn)vsource以外,空間中所有點(diǎn)的狀態(tài)都處于能量密度值為0狀態(tài)。假設(shè),在熱能傳播過程中,熱能總和為1。故熱能函數(shù)的初始狀態(tài)由狄拉克函數(shù)表示為:
(6)
假設(shè)M上的一點(diǎn)vi作為熱能傳播函數(shù)的源點(diǎn),可建立初始條件下各網(wǎng)格頂點(diǎn)的初始熱能密度列矩陣L(u0),則有:
(7)
(8)
1.3.2 網(wǎng)格梯度算子
依據(jù)熱傳播學(xué)理論可知,熱能的傳播方向總是沿著傳播距離最短,傳播速度最快的方向傳播。因此,在空間曲面上,熱能的傳播方向?yàn)榍氏陆底羁斓姆较?。而在空間直角坐標(biāo)系中,曲率變化可以用該點(diǎn)處方向?qū)?shù)的大小來表示,即在曲面上的點(diǎn)vi處的方向?qū)?shù)的數(shù)學(xué)表達(dá)式。通俗來說,梯度就是表示某一函數(shù)在該點(diǎn)處的方向?qū)?shù)沿著該方向取得最大值,即函數(shù)在當(dāng)前位置的導(dǎo)數(shù)。因此,局部下降最快的方向就是梯度的負(fù)方向。對(duì)于網(wǎng)格上的離散頂點(diǎn)vi,在時(shí)間為t時(shí),該點(diǎn)的梯度為vi點(diǎn)處的鄰接邊的有向邊ei的單位矢量叉乘該面片的單位法矢量Ni,除以該鄰接邊ei所處的有向三角面Af的面積的2倍。則有:
(9)
1.3.3 網(wǎng)格散度場(chǎng)的求取
依據(jù)散度的求解理論,對(duì)于給定網(wǎng)格上的一個(gè)梯度場(chǎng),求解網(wǎng)格M上在定點(diǎn)vi處的散度值,最后依據(jù)網(wǎng)格的拓?fù)潢P(guān)系來建立散度標(biāo)量場(chǎng)。而在網(wǎng)格上vi處的散度算子為:
(10)
式中:θ1,θ2為vi對(duì)邊的夾角;e1,e2分別為三角面片上vi的鄰接邊;Xj對(duì)應(yīng)于傳播函數(shù)在vi處的值,其示意圖如圖3所示。
圖3 散度算子參數(shù)示意圖
1.3.4 網(wǎng)格測(cè)地線的求取
通過求解泊松方程,得到的解φ代表網(wǎng)格模型M上各個(gè)頂點(diǎn)距離源點(diǎn)的測(cè)地距離值。
Lcφ=div_M
(11)
式中:Lc為網(wǎng)格M上的離散拉普拉斯算子矩陣;div_M為n×1階的網(wǎng)格散度矩陣。
最后在計(jì)算網(wǎng)格等值測(cè)地線時(shí),以求解所得到的各個(gè)網(wǎng)格頂點(diǎn)的測(cè)地距離值為參考數(shù)據(jù),通過輸入的網(wǎng)格等距線的等距距離值d,計(jì)算得到等距測(cè)地線上的離散點(diǎn)集,最后以網(wǎng)格M上的三角面片的拓?fù)潢P(guān)系,將點(diǎn)集連接成線段,得到網(wǎng)格M上的等值線。
測(cè)地線算法流程如圖4所示,實(shí)現(xiàn)的算法效果圖如圖5所示。
圖4 測(cè)地線算法流程圖
圖5 測(cè)地線算法效果圖
通過網(wǎng)格曲面上的等距測(cè)地線,對(duì)在網(wǎng)格曲面上的求解得到一組等值測(cè)地線。然后對(duì)等距測(cè)地線進(jìn)行測(cè)地距離均分,從而在各獨(dú)立的等距測(cè)地線上以測(cè)地距離為度量進(jìn)行規(guī)則的等距均分,以均分所得到的等距點(diǎn)作為重用位置點(diǎn)Si,i≤ns,ns為重用點(diǎn)的個(gè)數(shù)。為了避免造成特征發(fā)生干涉,均分距離需要以特征幾何尺寸為參考條件,進(jìn)行適當(dāng)選取。均分測(cè)地線示意圖如圖6所示。
圖6 重用點(diǎn)規(guī)劃示意圖
獲得特征重用位置點(diǎn)Si的空間坐標(biāo)位置信息,以及該點(diǎn)所在的網(wǎng)格信息,計(jì)算重用點(diǎn)Si對(duì)應(yīng)于網(wǎng)格M上的法向矢量Nsi。這里需要將對(duì)重用點(diǎn)的方向矢量進(jìn)行分類討論。而重用位置點(diǎn)對(duì)應(yīng)的網(wǎng)格面片的法向矢量,也有3種情況:
(1)如圖7(a)所示,重用位置點(diǎn)位于三角面片的共用頂點(diǎn)上,則該點(diǎn)的法向矢量Nsi為該共用頂點(diǎn)的所有鄰接三角面片的法向矢量Ni的加權(quán)平均值。
(2)如圖7(b)所示,重用位置點(diǎn)位于三角面片的某一條共用邊上,則該點(diǎn)的法向矢量Nsi為共用邊所鄰接的兩個(gè)面片的法向矢量Ni的加權(quán)平均值。
(3)如圖7(c)所示,重用位置點(diǎn)位于面片上,則該點(diǎn)的法向矢量Nsi為所處面片的法向矢量Ni。
圖7 重用點(diǎn)法矢分類示意圖
在得到了重用位置點(diǎn)確定的位置坐標(biāo)以及初始化該點(diǎn)的空間法向量之后,將重用特征添加到重用位置點(diǎn)。該過程中重用特征的坐標(biāo)變換為平移變換,需要將重用特征的初始位置(文中的特征初始位置設(shè)為坐標(biāo)原點(diǎn)O)進(jìn)行空間平移變換。該過程在數(shù)學(xué)上可表示為:所有重用特征網(wǎng)格點(diǎn)建立的空間坐標(biāo)矩陣乘以重用點(diǎn)坐標(biāo)Mi=(x,y,z)建立的平移矩陣T,進(jìn)行平移變換。
(12)
然后,按照該點(diǎn)所在的重用位置點(diǎn)處確定的法向量為空間姿態(tài)調(diào)整的約束條件,計(jì)算出特征初始姿態(tài)下的空間朝向的法向量與該重用位置點(diǎn)的法向量之間的空間夾角θ,其中,α,β,γ分別為重用點(diǎn)法向矢量繞x,y,z軸的旋轉(zhuǎn)角。建立特征的空間旋轉(zhuǎn)矩陣,最后進(jìn)行空間姿態(tài)旋轉(zhuǎn)變換。該過程在數(shù)學(xué)上的表達(dá)為:所有重用特征網(wǎng)格坐標(biāo)矩陣乘以旋轉(zhuǎn)矩陣R,進(jìn)行旋轉(zhuǎn)變換。
(13)
當(dāng)特征模型完成空間坐標(biāo)平移旋轉(zhuǎn)變換之后,特征就添加到網(wǎng)格模型上的重用位置點(diǎn)。接下來就重復(fù)按照特征添加流程,最后完成特征重用規(guī)劃布局,特征重用布局規(guī)劃流程如圖8所示。
圖8 特征重用布局規(guī)劃流程圖
依據(jù)前面所述的操作步驟,已經(jīng)成功將重用的網(wǎng)格特征模型添加到目標(biāo)網(wǎng)格模型之上,但是,此時(shí)重用特征和目標(biāo)網(wǎng)格模型二者是兩個(gè)獨(dú)立的網(wǎng)格模型,并不能形成連續(xù)的流行網(wǎng)格曲面。因此需要進(jìn)行重用特征模型與目標(biāo)網(wǎng)格模型的網(wǎng)格融合。采用網(wǎng)格布爾運(yùn)算工具對(duì)兩模型進(jìn)行融合,用戶可以依據(jù)設(shè)計(jì)工作要求,選擇合適的網(wǎng)格融合算法,特征重用之后的網(wǎng)格融合效果如圖9所示。
圖9 特征網(wǎng)格融合效果圖
基于開源軟件Blender平臺(tái),采用Python語言,以及numpy、math等數(shù)學(xué)運(yùn)算模塊,進(jìn)行功能插件開發(fā)。在算法驗(yàn)證過程中,重用特征選用具有復(fù)雜特征的模型,網(wǎng)格曲面模型選擇Blender模型庫中的UVspere曲面模型,按照上述重用特征的規(guī)劃設(shè)計(jì)方法,將特征與網(wǎng)格融合,得到最后的重用模型,效果圖如圖10所示。
圖10 特征重用效果圖
對(duì)目前特征重用的方法進(jìn)行了總結(jié),結(jié)合測(cè)地曲線在復(fù)雜網(wǎng)格模型曲面上的特性,提出了一種基于測(cè)地曲線自動(dòng)進(jìn)行特征重用的布局規(guī)劃設(shè)計(jì)算法。實(shí)驗(yàn)結(jié)果證明了該算法的有效性。