張 燎
ZHANG Liao
(甘肅工業(yè)職業(yè)技術(shù)學(xué)院,天水 741025)
在RP制造技術(shù)中,三維 CAD 模型分層所得到的截面輪廓是由直線段、圓弧、橢圓弧及非均勻有理B樣條曲線段等基本圖形組成的折線多邊形理論輪廓,在離散提取截面輪廓邊界數(shù)據(jù)時,現(xiàn)在的RP成型設(shè)備常用直線插補(bǔ)的方式進(jìn)行輪廓掃描,即按照一定規(guī)則將離散點直接選定在邊界曲線段上,取出一系列離散點,然后將各離散點用直線段連接起來,形成物理層片加工的實際折線掃描路徑,這樣處理的結(jié)果會導(dǎo)致實際掃描輪廓和理論掃描輪廓之間存在較大的形狀和尺寸偏差,而且會丟失輪廓的一些細(xì)節(jié)信息(如圖1所示),特別在離散曲率較大的截面理論輪廓時,丟失的信息會更多,產(chǎn)生的偏差更大,使打印出的三維實體“失真”。
圖1 直線插補(bǔ)離散形成的實際掃描輪廓
為解決直線插補(bǔ)離散產(chǎn)生的形狀和尺寸偏差問題,可用雙圓弧和直線插補(bǔ)混合的方法離散理論掃描輪廓。當(dāng)輪廓曲率大于預(yù)定值時,用雙圓弧逼近法局部離散掃描輪廓,反之,則用直線插補(bǔ)法離散,以提高離散速度。
雙圓弧成立必須具備6個條件,其定義見文獻(xiàn)[1,2];雙圓弧是根據(jù)雙圓弧圓心角的符號來劃分類型的:若兩弧度角符號相同,即同為正或負(fù)則此雙圓弧為C型,如圖2(a)所示;若兩弧度角符號不同,即一個為正一個為負(fù),則此雙圓弧為S型,如圖2(b)所示。
圖2 雙圓弧的基本分類
為了建立雙圓弧逼近算法模型,在圖3中建立以P1點為原點、矢量為X軸和垂直于x軸的一矢量構(gòu)成y軸的直角坐標(biāo)系,規(guī)定各角度逆時針為正,順時針為負(fù),這樣α1和β1為正,而α2和β2為負(fù),其中α1和α2分別為P1點和P2的切線角,P點將圓弧P1P2(局部輪廓)分割為兩段簡單圓弧P1P和P2,P點被稱為兩段圓弧的連接點。
雙圓弧逼近就是不斷尋找兩段弧的連接點 Pi,并將它取出,這是雙圓弧逼近算法實現(xiàn)的一個關(guān)鍵問題。為使兩個圓弧連接盡可能的光順[2],采用“使兩段圓弧曲率之差最小”的原則來確定點P的位置[3]。
圖3 兩節(jié)點P1和P2之間的雙圓弧
1)雙圓弧的相對曲率半徑
利用圖3中的的幾何關(guān)系和正弦定理,可導(dǎo)出雙圓弧相對曲率半徑R1、R2的計算公式。
曲率之差絕對值的最小值為:
通過求解(4)式的極小值,可求得使雙圓弧局部光滑的1β和2β:
將式(5)帶入式(1)和式(2)可得:
由圖3可看出,雙圓弧的半徑已求得,只要求得兩段圓弧的圓心O1和O2的坐標(biāo)和連接點P的坐標(biāo),就能確定任意兩個離散點之間的雙圓弧。
2)雙圓弧的圓心坐標(biāo)
圓弧O1的坐標(biāo)為:
圓弧O2的坐標(biāo)為:
3)連接點P的坐標(biāo)
4)求出各點的切矢
由式(6)~式(9)可看出,圓心、連接點和圓弧的半徑的確定是以層片理論輪廓起始的兩個點推導(dǎo)出來的,對于后續(xù)擬合的點同樣適用。要確定相對曲率半徑、雙圓弧的圓心坐標(biāo)和連接點的坐標(biāo)(需要確定α1和α2),還要確定各點的切矢。
由雙圓弧的定義可知,每條雙圓弧必須要有4個已知條件及一個判據(jù)才能確定[2],而判據(jù)和兩端點坐標(biāo)、各離散點的坐標(biāo)都已知,這樣連接點處的切線矢量從層片數(shù)據(jù)中插補(bǔ)獲得。已知三個連續(xù)的邊界點Pi?1、 Pi和Pi+1,如圖4所示,則 Pi點處的切線矢量為:
圖4 層片數(shù)據(jù)的切矢
求得各點的切矢后,就可以求出αi了,由矢量的運(yùn)算可得其公式為:
其符號由以下行列式判斷:
式中,Tx,Ty分別為矢量的x,y分量,Kx,Ky分別為矢量的x,y的分量。在圖3建立的坐標(biāo)系中,若該行列式值大于0,則矢量元在X軸的上方,αi>0;相反,則αi<0。
通過每段圓弧圓心到連接點Pi的距離減去該段的半徑來計算逼近的誤差。
其中i代表 P1和Pn之間的等分點Pi的下標(biāo),k代表連接點Pik(xik,yik)對應(yīng)的第一段圓弧還是第二段圓弧的下標(biāo)。P(xok,yok)和Rk分別對應(yīng)圓弧的圓心、半徑,(xik,yik)為連接點 Pi的坐標(biāo)。
圓心坐標(biāo)、連接點坐標(biāo)都是在局部坐標(biāo)系(oxy)中求得的,還要轉(zhuǎn)換到整體坐標(biāo)(oμv)中,其轉(zhuǎn)換關(guān)系為:
其中(xi?1,yi?1)為起始點坐標(biāo),φi為雙圓弧的兩端點連線 Pi?1Pi+1與總體坐標(biāo)系μ軸正向的夾角。(xi,yi)為局部坐標(biāo)系中的任意一點坐標(biāo)。
Step1:將層片的掃描輪廓邊界分解為基本圖形元素組成的曲線組,結(jié)果存放在一動態(tài)曲線段數(shù)組中。按曲線段成員首尾相接的拓?fù)潢P(guān)系,將其在數(shù)組中的存放次序重新排列。
Step2:定義一點對象動態(tài)數(shù)組存放掃描輪廓曲線離散結(jié)果。首先取曲線段數(shù)組中第一個成員作為當(dāng)前處理對象。
Step3:按照等步長對理論輪廓數(shù)分割,找出極值點和奇點。
Step4:計算兩端點的曲率,如果大于零則調(diào)用雙圓弧逼近處理程序,轉(zhuǎn)入Step5,如果曲率接近于零,用直線插補(bǔ)法離散,轉(zhuǎn)入Step8。
Step5:求出相鄰兩個節(jié)點處的切矢,這樣每2個節(jié)點間可以用前述的雙圓弧方法逼近。
Step6:計算出兩個圓弧的相對曲率半徑和圓心坐標(biāo)后,可求得兩圓弧連接點的坐標(biāo),這樣就構(gòu)造出逼近層片理論局部輪廓的雙圓弧。
Step7:進(jìn)行誤差檢驗。如果逼近誤差小于給定誤差限δ,逼近就結(jié)束,可進(jìn)入下一輪相鄰邊界點的雙圓弧逼近,轉(zhuǎn)入Step4,如果大于給定誤差,則將兩個理論輪廓的端點再等分(實際上是變步長),轉(zhuǎn)入Step4過程,直到精度滿足為止。
Step8:將離散的節(jié)點數(shù)據(jù)存入數(shù)組。
理論掃描路徑如圖5中細(xì)實線部分,它由三條直線段和一條NURBS曲線段組成,輪廓邊界框大小為 203.756×129.869,為了清楚地看出直線插補(bǔ)和雙圓弧局部逼近兩種算法離散曲率較大輪廓產(chǎn)生的效果,將離散的步長取大一些,取d=10、15、20三個步長,分別計算三組數(shù)據(jù)。在采用C#編程實現(xiàn)[4]算法時,直線插補(bǔ)離散差生的誤差,用兩段圓弧連接點 Pi到被雙圓弧分割的局部輪廓兩端點連線之間的距離δline表示,雙圓弧離散產(chǎn)生的誤差用文章提出的雙圓弧局部逼近算法中的誤差δarc表示,兩種輪廓離散方法的效果對比列于表1中。
由表1看出,隨著步長的增大,兩種算法的誤差也隨之增大。在同一步長下,雙圓弧算法產(chǎn)生的誤差要比直線插補(bǔ)算法產(chǎn)生的誤差要小一半,說明雙圓弧離散曲率較大的輪廓時,逼近程度要高,效果明顯(見圖5中1和2放大部分)。但對于曲率較小的輪廓,雙圓弧的效果不是明顯。
表1 直線插補(bǔ)和雙圓弧局部逼近算法所差生的誤差比較
直線插補(bǔ)和雙圓弧局部逼近離散的實際掃描輪廓對比見圖5粗實線部分。
圖5 直線插補(bǔ)離散和雙圓弧局部逼近離散對比(d=20)
文章還將雙圓弧局部離散算法的離散效果與中國礦業(yè)大學(xué)王衛(wèi)辰關(guān)于“面向快速成形的三維CAD模型直接分層方法研究”[5]論文研究成果也進(jìn)行了對比。王衛(wèi)辰等人對曲率較大的輪廓離散時,采用的是變步長離散方法,即小步長離散。對于同樣的輪廓,雙圓弧局部離散效果要比變步長離散逼近效果要好。
經(jīng)過驗證,雙圓弧局部逼近離散算法是可行的,能明顯減小現(xiàn)有成型設(shè)備采用直線插補(bǔ)法離散曲率較大的理論掃描輪廓產(chǎn)生的偏差,與直線插補(bǔ)離散法相比,雙圓弧離散誤差減小了約50%。在算法實施的過程中,使用了雙圓弧局部逼近和直線插補(bǔ)混合算法,曲率比較大的輪廓用雙圓弧逼近,曲率接近于零的輪廓用直線插補(bǔ)法離散,既提高了精度,也避免了單純采用雙圓弧逼近算法導(dǎo)致的運(yùn)算速度下降問題,具有較好的工程使用價值。
[1] 蘇步青,劉鼎元.計算幾何[M].上海:上??萍汲霭嫔?1982 .
[2] 施雯.代數(shù)曲線的雙圓弧逼近與等距線構(gòu)造[D].杭州:浙江工業(yè)大學(xué),2012:7-25.
[3] 上官建林.快速原型制造中反求工程關(guān)鍵技術(shù)的研究[D].鄭州:鄭州大學(xué),2007:33-40.
[4] 王小科.C#開發(fā)實戰(zhàn)寶典[M].北京:清華大學(xué)出版社,2010.
[5] 王衛(wèi)辰.面向快速成形的三維CAD模型直接分層方法研究[D].徐州:中國礦業(yè)大學(xué),2010,3: 90-93.