趙福英, 倪俊芳
(蘇州大學(xué) 機(jī)電工程學(xué)院, 江蘇 蘇州 215021)
花樣打板系統(tǒng)設(shè)計(jì)的花型輪廓通常由直線、圓弧、曲線等元素組成,這些曲線大都采用Bezier曲線、NURBS曲線表示[1]。國(guó)內(nèi)研究者[2-4]在B樣條應(yīng)用領(lǐng)域有廣泛研究,并取得一定進(jìn)展,而基于絎縫、提花、針織等自動(dòng)化設(shè)備的復(fù)雜花型樣條曲線的逼近研究甚少。因?yàn)槟壳按蟛糠謹(jǐn)?shù)控加工系統(tǒng)只識(shí)別直線插補(bǔ)和圓弧插補(bǔ),所以需要將復(fù)雜曲線轉(zhuǎn)換成直線段、圓弧段或者二者混合。
三次樣條曲線能夠滿足曲率半徑連續(xù)且具有一定的幾何意義。當(dāng)曲線次數(shù)越高時(shí),曲線越復(fù)雜,應(yīng)用該曲線加工越困難。三次準(zhǔn)均勻B樣條曲線具有三次樣條曲線的基本特點(diǎn),且能夠支持局部修改,其首末端點(diǎn)與特征多邊形相切,方便控制曲線形狀;因此,設(shè)計(jì)花型輪廓時(shí),首先采用三次準(zhǔn)均勻B樣條曲線進(jìn)行設(shè)計(jì),然后采用插補(bǔ)算法分割曲線。雙圓弧逼近三次準(zhǔn)均勻B樣條的算法,與直線逼近算法比較而言,優(yōu)點(diǎn)主要包括:保持了原曲線的凹凸性,保證雙圓弧位于擬合曲線控制的多邊形內(nèi)部,精度高,可改善加工織物表面品質(zhì);與二者混合逼近比較而言,刪除了大量的中間點(diǎn),在給定誤差范圍內(nèi),圓弧段數(shù)最少,便于轉(zhuǎn)換成簡(jiǎn)單的G代碼,減少CAD與CAM系統(tǒng)的數(shù)據(jù)傳輸,計(jì)算效率高。本文提出一種基于誤差控制自動(dòng)分段的雙圓弧算法,分析擬合誤差ε,利用MatLab計(jì)算仿真,最后再將直線、圓弧等花樣輪廓離散成均勻的針跡點(diǎn),生成加工代碼,從而加工出復(fù)雜的花樣圖案。
B樣條曲線方程[5-7]定義為
(1)
式中:Pi為B樣條的控制點(diǎn)坐標(biāo);Ni,k(t)為基函數(shù)0≤t≤1;i為節(jié)點(diǎn)序號(hào),i=0,1,…,n;k為基函數(shù)次數(shù)。基函數(shù)用Cox-deBoor公式表示為
(2)
圖1示出雙圓弧曲線逼近B樣條曲線示意圖。B樣條需滿足以下要求[8-9]:
1)起始圓弧過曲線P0點(diǎn),終止圓弧過P1點(diǎn);
3)分段圓弧在連接處達(dá)一階導(dǎo)數(shù)連續(xù);
4)整體逼近的精度在閾值S范圍內(nèi);
5)所用的圓弧數(shù)目應(yīng)盡可能少。
圖1 雙圓弧逼近B樣條Fig.1 Double circular arc approximating B spline
根據(jù)圖1通過計(jì)算可知:
(3)
用雙圓弧逼近某B樣條曲線段{P(t),t∈(0,t′)}或{P(t),t∈(t′,1)}。由圖1可知,雙圓弧C1和C2均過連接點(diǎn)P,并在與B樣條曲線始、末端連線相垂直的直線上。設(shè)樣條與圓弧的最大逼近誤差為ε,則:
(4)
(5)
圖2 雙圓弧逼近三次準(zhǔn)均勻B樣條算法流程圖Fig.2 Flow chart of double arc approximation three quasi uniform B spline algorithm
假設(shè)輸入樣條控制點(diǎn)(1,1)、(2,4)、(3,5)、(4,1)、(6,2)、(5,6)、(2,2),基于上述算法,利用MatLab編程進(jìn)行模擬仿真,結(jié)果如圖3~6所示。
圖3 ε=0.1的雙圓弧逼近Fig.3 Double arc approximation of ε=0.1
圖4 ε=0.1的雙圓弧逼近誤差分析Fig.4 Double arc approximation error of ε=0.1
圖5 ε=0.01的雙圓弧逼近Fig.5 Double arc approximation of ε=0.01
圖6 ε=0.01的雙圓弧逼近誤差分布Fig.6 Double arc approximation error of ε=0.01
基于多數(shù)控制器只能加工直線和圓弧[11],為了獲取高質(zhì)量的花樣數(shù)據(jù),解決花樣圖案針跡點(diǎn)不均勻問題,設(shè)計(jì)相應(yīng)的直線和整圓插補(bǔ)算法。
對(duì)于加工代碼數(shù)據(jù)而言,針跡點(diǎn)需分布均勻,且盡可能分布在同一條直線上。設(shè)直線起點(diǎn)為A(xa,yb),終點(diǎn)為B(xb,yb),長(zhǎng)為l,根據(jù)步距step,生成其他控制針跡點(diǎn)的算法如下。
1)根據(jù)step算出直線花樣的針數(shù)n。
令m=l/step,r=l%step。其中m,r均為整數(shù)。當(dāng)r≤step/2時(shí),針數(shù)n=m;當(dāng)r>step/2時(shí),針數(shù)n=m+1;當(dāng)m=1且r≤step/2且l>stepmax時(shí),針數(shù)n=m+1。
2)根據(jù)針數(shù)n,將直線等分,計(jì)算等分點(diǎn)。
直線起點(diǎn)、終點(diǎn)分別為(xa,ya)、(xb,yb),令
式中:step_x和step_y取整數(shù);dx和dy取小數(shù)。取第1個(gè)等分點(diǎn)為(xa+step_x,ya+step_y),依此類推,第n-1個(gè)等分點(diǎn)為(xa+(n-1)×step_x,ya+n-1×step_y)
3)對(duì)等分點(diǎn)進(jìn)行插補(bǔ)。
從第1個(gè)等分點(diǎn)到第n個(gè)點(diǎn)依次進(jìn)行插補(bǔ),當(dāng)dx=0,dy=0時(shí),算法結(jié)束,流程如圖7所示。
圖7 直線插補(bǔ)流程圖Fig.7 Flow chart of linear interpolation
已知圓心及半徑R,計(jì)算出圓上均勻分布的點(diǎn),步驟如下。
F(Pi)=[(xi+1)2+yi2]-R2
F(Qi)=[(xi+1)2+(yi-1)2]-R2
引入判別式Di=F(Pi)-F(Qi),判別表達(dá)式如下所示:
當(dāng)i=0,x0=0,y0=R,d0=3-2R;
當(dāng)Di≥0,選擇Pi,xi+1=xi+1,yi+1=yi,di+1=di+4xi+6;
當(dāng)Di<0,選擇Qi,xi+1=xi+1,yi+1=yi-1,di+1=di+4xi-yixi+10。
其算法流程如圖8所示。
圖8 Bresenham算法流程圖Fig.8 Bresenham algorithm flow chart
2)根據(jù)步距step計(jì)算步數(shù)n和實(shí)際針距l(xiāng)s。
以step為弦長(zhǎng),計(jì)算其對(duì)應(yīng)的圓心角α=2arcsinstep/2R,步數(shù)n=2π/α,針距l(xiāng)s=2Rsinπ/n。
3)計(jì)算圓花樣的均勻分布針跡點(diǎn)。
式中:如果dis<0,則第n個(gè)針跡點(diǎn)與A點(diǎn)合并。圓弧花樣與圓花樣生成針跡點(diǎn)算法類似,只要篩選出Bresenham整圓上對(duì)應(yīng)的圓弧區(qū)域即可。
輸入A(3.7,-11.9)、B(-5.2,10.6)為直線的起點(diǎn)和終點(diǎn),步距為3.0 mm,根據(jù)直線算法,利用MatLab定義函數(shù)straight_line([3.7,-11.9],[-5.2,10.6], 3)計(jì)算出各個(gè)插補(bǔ)點(diǎn)生成加工路徑,如圖9所示。
圖9 直線花樣Fig.9 Straight line pattern
從圖9可知,針跡點(diǎn)分布均勻,幾乎在同一條直線上,實(shí)際針距在3.0 mm左右浮動(dòng),加工質(zhì)量高。
輸入起點(diǎn)A(x0,y0),半徑R,步距step,方向(a,逆時(shí)針;b,順時(shí)針),根據(jù)圓插補(bǔ)算法利用MatLab編程模擬,定義函數(shù)circle_bresenham([12.0,16.0],20,3,1)計(jì)算出相應(yīng)的針跡點(diǎn),生成的花樣作業(yè)圖案如圖10所示。由arc_bresenham([12.0,16.0],[-20,0],20,3,0)生成的均勻針跡點(diǎn)如圖11所示。
圖10 圓花樣Fig.10 Round pattern
圖11 圓弧花樣Fig.11 Arc pattern
以C#語(yǔ)言的WinForm為開發(fā)工具,采用面向?qū)ο蟮乃枷朐O(shè)計(jì)了花型準(zhǔn)備系統(tǒng)。利用雙圓弧逼近算法先將含有直線、圓弧、樣條曲線的數(shù)據(jù)文件(如主流格式DST、DXF等)轉(zhuǎn)換成只含有直線和圓弧數(shù)據(jù)的DAT文件,然后通過GDI+可視化編程將花型矢量圖案繪制出來(lái),最后將該文件編譯成數(shù)控機(jī)床可識(shí)別的CNC加工程式。DAT文件的分量格式:花樣文件有8列數(shù)據(jù),每行定義了某一幾何線型。其中第1列數(shù)據(jù)為0、1、2,分別代表直線、圓弧、虛線,-1代表終止程序。第2、3列分別代表該線型的起點(diǎn)橫、縱坐標(biāo);第4、5列分別代表該線型的終點(diǎn)橫、縱坐標(biāo);如果該線型為圓弧,則還需要定義圓心的橫縱坐標(biāo)及圓弧走向,分別在第6、7、8列定義。繪制出的花樣矢量圖如圖12所示,數(shù)控機(jī)床仿真模擬如圖13所示。
圖12 DAT文件的花樣矢量圖Fig.12 Pattern vectorgraph of DAT file
圖13 數(shù)控機(jī)床的模擬仿真圖Fig.13 Simulation diagram of CNC machine
圖13表明,通過雙圓弧逼近算法處理得到的花型圖案輪廓光滑、加工質(zhì)量高,可實(shí)現(xiàn)復(fù)雜花型的加工。
花型復(fù)雜輪廓的逼近是獲取高質(zhì)量的加工數(shù)據(jù),解決花樣作業(yè)圖案針跡點(diǎn)不均勻等問題的關(guān)鍵技術(shù)。本文基于雙圓弧擬合三次準(zhǔn)均勻B樣條曲線的算法,保證較高的逼近精度,圓弧之間光滑連接保證一階導(dǎo)數(shù)連續(xù)。該算法可根據(jù)給定閾值,合理規(guī)劃分段點(diǎn)、雙圓弧段數(shù),利用MatLab進(jìn)行數(shù)值模擬,實(shí)現(xiàn)了花型針跡點(diǎn)均勻分布。該算法為復(fù)雜曲線的數(shù)控編程、CAD/CAM系統(tǒng)和自由曲線的等差微段逼近提供參考,并在單針電腦絎縫機(jī)、電子花樣機(jī)等縫制設(shè)備上進(jìn)行了相關(guān)實(shí)驗(yàn),結(jié)果達(dá)到了技術(shù)要求。
FZXB