常辰玉,盧致文,2,劉 鋒,古皎霞,宋文芯
(1.太原理工大學(xué) 輕紡工程學(xué)院,山西 晉中 030600; 2.安徽省天助紡織科技集團(tuán)股份有限公司,安徽 阜陽 236000)
緯編針織物的三維仿真對降低生產(chǎn)成本、加快生產(chǎn)效率和提高生產(chǎn)質(zhì)量等均具有重要的現(xiàn)實研究意義,建立合理通用的緯編針織物三維結(jié)構(gòu)模型是進(jìn)行織物實體仿真的基礎(chǔ)[1]。緯編針織物從二維走向三維線圈建模的進(jìn)程中構(gòu)建了許多的仿真模型,主要分為基于皮爾斯(Pierce)模型、基于分段函數(shù)和基于樣條曲線3種方法[2]。
Pierce線圈模型使用最早且應(yīng)用廣泛,是較經(jīng)典和基礎(chǔ)的模型,其使用圓柱表示的圈柱連接半圓環(huán)表示的針編弧和沉降弧,結(jié)構(gòu)較理想化,為后續(xù)模型的研究與建立提供了基礎(chǔ)[3];利夫(Leaf)模型得到了線圈長度和線圈密度之間的關(guān)系[4];芒登(Munden)模型得到了線圈長度和織物尺寸之間的關(guān)系[5]?;赑ierce模型的線圈建模方法簡單有效,但其本質(zhì)還是二維線圈模型,三維立體效果較弱。
為了增強(qiáng)線圈結(jié)構(gòu)模型的三維立體效果,基于分段函數(shù)的建模方法開始被提出。Kurbak等[6]將線圈根據(jù)不同部位進(jìn)行分割,每段都有其對應(yīng)函數(shù)。為了貼近織物幾何結(jié)構(gòu)的真實形態(tài),分段函數(shù)往往比較復(fù)雜?;诜侄魏瘮?shù)建立的線圈模型在一定程度上能夠體現(xiàn)線圈的三維立體效果,但控制線圈彎曲變形部位時比較復(fù)雜困難,而且不能靈活地控制線圈走向,無法很好地適應(yīng)緯編針織物線圈變形的需求。
貝塞爾(Bezier)曲線具有數(shù)據(jù)點(diǎn)控制曲線和靈活調(diào)整曲線等很多優(yōu)點(diǎn),但是當(dāng)改變其中某一個控制點(diǎn)時,整條曲線都會發(fā)生變化,不利于對線圈結(jié)構(gòu)的控制[7];B樣條曲線是由任意數(shù)量的曲線段組成的、分段定義的整條曲線,具有多種優(yōu)良性質(zhì),并且改變一個控制點(diǎn)并不影響其他曲線段的形狀,完全有效地控制了Bezier曲線存在的弊端;非均勻有理B樣條(NURBS)曲線在保留了B樣條曲線描述自由型形狀的優(yōu)點(diǎn)上,統(tǒng)一了Bezier曲線和B樣條曲線表達(dá)曲線弧的能力,而且還引入權(quán)因子用于調(diào)整曲線形狀[8]。樣條曲線提供統(tǒng)一的表達(dá)形式且計算穩(wěn)定,模擬精確且控制靈活,更加適于針織物中線圈結(jié)構(gòu)的控制。叢洪蓮等[9]、張麗哲等[10]和沙莎等[11]都基于NURBS曲線原理采用型值點(diǎn)中間添加輔助點(diǎn)共同代替控制點(diǎn)的方法控制針織物空間路徑;蒙冉菊等[12]、汝欣等[13]和楊恩惠等[14]利用NURBS曲線、采用弦長參數(shù)化法確定節(jié)點(diǎn)矢量、使用型值點(diǎn)反算控制點(diǎn)擬合曲線建立針織物結(jié)構(gòu)形態(tài)。
本文在分析了緯平針織物幾何結(jié)構(gòu)的基礎(chǔ)上,簡化并進(jìn)行合理假設(shè),使用改進(jìn)的成圈線圈模型組成緯平針組織三維結(jié)構(gòu)模型?;贜URBS曲線原理,采用均勻參數(shù)化法、弦長參數(shù)化法和向心參數(shù)化法分別確定節(jié)點(diǎn)矢量,使用切矢邊界條件,取定合適的權(quán)因子,反算控制點(diǎn),然后擬合曲線模擬線圈中心線路徑;探究使用不同節(jié)點(diǎn)矢量計算方法時,線圈中心線結(jié)構(gòu)的模擬效果,以期當(dāng)使用線圈中心線型值點(diǎn)反算控制點(diǎn)時,采用合適的計算方法確定節(jié)點(diǎn)矢量,對線圈中心線進(jìn)行三維仿真。最后使用NURBS曲面模擬緯平針組織紗線表面,通過加入光照與材質(zhì)增強(qiáng)織物的立體感,實現(xiàn)緯平針組織的三維仿真。
線圈是針織物的基本結(jié)構(gòu)單元,要建立緯平針組織的三維結(jié)構(gòu)模型,首先需要得到緯平針組織線圈的三維立體模型,通過線圈組合與連接形成緯平針組織三維結(jié)構(gòu)模型。
成圈線圈的幾何結(jié)構(gòu)是左右對稱的,其左半部分又關(guān)于中心對稱,因此可以對成圈線圈進(jìn)行分解,成圈線圈分解如圖1中點(diǎn)段式虛線所示。
圖1 成圈線圈三維模型三視圖Fig.1 Knit loop 3D model. (a)Vertical view; (b)Left view; (c)Front View
根據(jù)成圈線圈的結(jié)構(gòu)特點(diǎn),通過緯平針織物中成圈線圈紗線走向,以及交織點(diǎn)和型值點(diǎn)表示位置,得到如圖1所示的成圈線圈三維模型三視圖。在線圈的相互嵌套處設(shè)置交織點(diǎn)[15],如圖1中圓點(diǎn)B1和B2標(biāo)識處所示,線圈的上下部分各有1個交織點(diǎn),分別表示該線圈與上下1行相應(yīng)線圈相互嵌套的位置;在線圈中心線上設(shè)置型值點(diǎn)表示線圈結(jié)構(gòu),如圖1中三角點(diǎn)標(biāo)識處所示,T0和T8分別表示該線圈與左右側(cè)線圈連接處,即沉降弧最低處,T1和T7表示沉降弧與圈柱連接處,T2和T6表示圈柱中點(diǎn),T3和T5表示針編弧和圈柱連接處,T4表示針編弧最高處。
對緯平針織物進(jìn)行實物觀察、測量與分析,簡化緯平針組織結(jié)構(gòu)并做出相應(yīng)假設(shè),通過基本單元線圈的組合與連接得到如圖2所示的緯平針組織三維模型三視圖。圖2中設(shè)置線圈半徑用r表示,線圈寬度用D表示,線圈高度用H表示。從圖2的結(jié)構(gòu)分析和數(shù)據(jù)標(biāo)識可以得出,線圈寬度D為4個線圈直徑,即8r;線圈高度H由針編弧、沉降弧和圈柱的高度構(gòu)成,針編弧和沉降弧的高度都為2個線圈直徑,即4r,圈柱的高度可以移植為2個交織點(diǎn)之間的高度,而2個交織點(diǎn)之間的水平空間包含上1行線圈的沉降弧和下1行線圈的針編弧,由于上1行線圈的沉降弧和下1行線圈的針編弧在水平空間上存在1個線圈半徑r的重疊,所以2個交織點(diǎn)之間的高度為3r+r+3r,得到線圈高度H=4r+3r+r+3r+4r=15r;線圈相互嵌套時在緯平針組織厚度上為2個線圈直徑,且存在1個線圈半徑r的彎曲弧度縫隙,則其厚度為4r+r=5r。
圖2 緯平針組織三維模型三視圖Fig.2 Weft plain stitch 3D model. (a)Vertical view; (b)Left view; (c)Front View
NURBS曲線有統(tǒng)一表達(dá)形式,且具有改變?nèi)我?個控制點(diǎn)而不影響其他曲線段形狀結(jié)構(gòu)的優(yōu)點(diǎn),且其計算更加方便穩(wěn)定、控制更加靈活明顯。
一條k次NURBS曲線可以表示為分段有理多項式矢函數(shù):
(1)
式中:
(2)
式(1)(2)中:Ni,k(u)是由節(jié)點(diǎn)矢量U=[u0,u1,…,un+k+1]計算確定的k次規(guī)范B樣條基函數(shù);wi是權(quán)因子,分別與控制點(diǎn)Pi相聯(lián)系,i=0,1,…,n,n表示數(shù)據(jù)點(diǎn)數(shù)量[16]。
NURBS曲線在實際的應(yīng)用過程中可以分為2種情況:一種是正算問題,即已知控制點(diǎn)求解曲線上的型值點(diǎn)并生成曲線;另一種情況是反算問題,即已知曲線上的型值點(diǎn)求解曲線的控制點(diǎn),擬合通過已知型值點(diǎn)的曲線[17]。
通過建立緯平針組織三維模型,設(shè)定交織點(diǎn)B1的三維坐標(biāo)為(x,y,z),則交織點(diǎn)B2的三維坐標(biāo)為(x,y+7r,z),可以給出線圈中心線上的1組型值點(diǎn)坐標(biāo)如表1所示。
表1 成圈線圈中心線型值點(diǎn)坐標(biāo)表Tab.1 Coordinate table of knit loop center line data point
構(gòu)造通過該組型值點(diǎn)的曲線,需要反算出控制點(diǎn)并擬合NURBS曲線使其完全通過線圈中心線型值點(diǎn),這個過程稱為曲線的反算,一般包括如圖3中3個步驟。
圖3 NURBS曲線反算步驟圖Fig.3 NURBS curve reverse calculation steps
2.2.1 計算節(jié)點(diǎn)矢量
NURBS曲線使用型值點(diǎn)反算控制點(diǎn)時,一般令曲線的首末端點(diǎn)分別與首末型值點(diǎn)保持一致,并且n+1個型值點(diǎn)Ti(i=0,1,…,n)依次與NURBS曲線定義域內(nèi)的節(jié)點(diǎn)ui+k(i=0,1,…,n)一一對應(yīng)。因此NURBS曲線將由n+1+2個控制點(diǎn)Pi(i=0,1,…,n+2)定義,由于首末節(jié)點(diǎn)重復(fù)度為k+1,且節(jié)點(diǎn)數(shù)量比控制點(diǎn)數(shù)量多重復(fù)度k+1個,本文使用3次NURBS曲線,k取值為3,則由n+3+4個節(jié)點(diǎn)組成的相應(yīng)節(jié)點(diǎn)矢量為U=[u0,u1,…,un+6]。
為了確定與n+1個型值點(diǎn)Ti(i=0,1,…,n)對應(yīng)的節(jié)點(diǎn)值ui+3(i=0,1,…,n),需要對型值點(diǎn)進(jìn)行參數(shù)化處理[18]。
均勻參數(shù)化法使節(jié)點(diǎn)呈現(xiàn)等距離分布,適用于給定型值點(diǎn)的多邊形各弦長基本相等的情況,具有一定的局限性,本文選取的線圈中心線型值點(diǎn)的分布已知符合該情況,其公式為:
(3)
弦長參數(shù)化法解決了均勻參數(shù)化法存在的弊端,可以真實地反映出型值點(diǎn)的多邊形各弦長的分布情況,得到順滑性較好的曲線形態(tài),其公式為:
(4)
式中:L是中間變量。
向心參數(shù)化法可以真實地反映型值點(diǎn)的多邊形相鄰弦線的折拐情況,其公式為:
(5)
式中:L是中間變量。
2.2.2 計算邊界條件
未知控制點(diǎn)Pi(i=0,1,…,n+2)個數(shù)n+3比給出的1組型值點(diǎn)Ti(i=0,1,…,n)個數(shù)n+1多2個,因此在求解方程組時需要增加2個適當(dāng)?shù)倪吔鐥l件,常用的邊界條件有切矢條件、開曲線條件和閉曲線條件。根據(jù)線圈中心線的特點(diǎn),本文邊界條件使用切矢條件。切矢條件要求首末端點(diǎn)的切線方向固定,其關(guān)系式為:
(6)
式中:T0′和Tn′是型值點(diǎn)的首末端點(diǎn)切矢;Δi是中間變量。
2.2.3 反算控制點(diǎn)
三次NURBS曲線首末兩端點(diǎn)的重復(fù)度取4,首末控制點(diǎn)就是其首末型值點(diǎn),即有P0=T0、Pn+2=Tn。邊界條件使用切矢條件,取權(quán)因子wi=1(i=0,1,…,n+2),應(yīng)用矩陣的形式得到三次NURBS曲線控制點(diǎn)反算的線性方程組表達(dá)式為:
(7)
式中:Pi(i=1,2,…,n+1)是控制點(diǎn),共同構(gòu)成了控制點(diǎn)列向量;令Δi=ui+1-ui(i=0,1,…,n+5),有
(8)
共同構(gòu)成了系數(shù)矩陣;有
(9)
共同構(gòu)成了列向量。式(8)和式(9)中i=2,3,…,n。
求解上述線性方程組,即可獲得去除首末控制點(diǎn)P0和Pn+2的其余控制點(diǎn)。
在操作系統(tǒng)為Windows10 64位、CPU為AMD Ryzen 7 5800H with Radeon Graphics 3.20GHz、內(nèi)存為16G、顯示器分辨率為2 560像素×1 600像素的實驗環(huán)境中,使用Code::Blocks集成開發(fā)環(huán)境、C++語言和OpenGL函數(shù)庫,借助計算機(jī)實現(xiàn)的程序流程圖如圖4所示。通過輸入給定任意1個交織點(diǎn)的三維坐標(biāo)以及給定線圈半徑,并給出想要繪制線圈中心線的行數(shù)與列數(shù),以及給出想要使用的節(jié)點(diǎn)矢量計算方法;根據(jù)緯平針組織三維模型計算得到線圈中心線型值點(diǎn)的坐標(biāo);分別使用均勻參數(shù)化法、弦長參數(shù)化法和向心參數(shù)化法3種方法進(jìn)行計算節(jié)點(diǎn)矢量;采用切矢條件計算邊界條件;取權(quán)因子wi=1(i=0,1,…,n+2)反算控制點(diǎn);最后輸出使用控制點(diǎn)擬合NURBS曲線模擬的線圈中心線,以及計時器記錄的從輸入結(jié)束到此刻所使用的時間。
圖4 程序流程圖Fig.4 Program flow
使用3種參數(shù)化法計算節(jié)點(diǎn)矢量,最終得到的線圈中心線模擬效果三視圖如圖5所示。圖中方塊點(diǎn)標(biāo)識處是型值點(diǎn)的位置,其中圖5(d)是圖5(a)、圖5(b)和圖5(c)的重疊效果圖,圖5(e)是使用3種節(jié)點(diǎn)矢量計算方法模擬的緯平針組織3×3線圈中心線重疊效果圖。
圖5 線圈中心線模擬效果三視圖Fig.5 Loop center line simulation. (a)Uniform parameterization method; (b)Chord parameterization method; (c)Centripetal parameterization method; (d)Single loopcenter line overlap; (e)3×3 loop center line overlap
分析圖5得知,采用均勻參數(shù)化法、弦長參數(shù)化法和向心參數(shù)化法3種方法分別計算節(jié)點(diǎn)矢量,得到的線圈中心線都通過型值點(diǎn),得到的模擬效果圖重疊時線圈中心線路徑走向高度重合,并且模擬效果與緯平針組織三維模型線圈中心線結(jié)構(gòu)一致。
分別使用3種節(jié)點(diǎn)矢量計算方法模擬繪制20次50×50的線圈中心線,得到平均每次所用時間,3組實驗的結(jié)果如表2所示。
表2 繪制時間結(jié)果表Tab.2 Drawing time result s
分析表2可知:實驗1中平均每次繪制時間最短的是使用向心參數(shù)化法,為0.306 9 s;實驗2中平均每次繪制時間最短的是使用弦長參數(shù)化法,為0.303 9 s;實驗3中平均每次繪制時間最短的是使用均勻參數(shù)化法,為0.307 3 s;采用3種方法進(jìn)行計算節(jié)點(diǎn)矢量,模擬繪制的線圈中心線速度快速且沒有明顯的時間差異。
基于以上模擬效果和實驗數(shù)據(jù)進(jìn)行相應(yīng)分析,得知使用的3種節(jié)點(diǎn)矢量計算方法,通過已知線圈中心線上的型值點(diǎn)反算控制點(diǎn),擬合NURBS曲線模擬線圈中心線具有合理通用的效果??紤]到各節(jié)點(diǎn)矢量計算方法的特性,建議當(dāng)選取型值點(diǎn)的多邊形弦長基本相等時,為簡便計算可選用均勻參數(shù)化法確定節(jié)點(diǎn)矢量;當(dāng)選取型值點(diǎn)的多邊形弦長相差較大時,為體現(xiàn)各弦長的分布情況可選用弦長參數(shù)化法確定節(jié)點(diǎn)矢量;當(dāng)選取型值點(diǎn)相鄰弦線折拐較大時,為反映其折拐情況可選用向心參數(shù)化法確定節(jié)點(diǎn)矢量。
本文設(shè)定緯平針織物紗線是具有圓形截面的均勻管狀,緯平針組織的三維實體仿真通過NURBS曲面進(jìn)行模擬。采用NURBS曲面模擬線圈的立體結(jié)構(gòu)時,NURBS曲面2個方向的參數(shù)分別由線圈截面圓和線圈中心線決定;得到線圈截面圓和線圈中心線2個方向的控制點(diǎn),2個方向相對應(yīng)的節(jié)點(diǎn)矢量都采用均勻參數(shù)化法進(jìn)行確定。通過NURBS曲面的相關(guān)函數(shù)繪制曲面模擬緯平針組織紗線表面,運(yùn)用光照與材質(zhì)相關(guān)函數(shù)增強(qiáng)緯平針組織三維實體仿真的效果。
緯平針組織三維仿真模擬圖如圖6所示,從三維線框圖中可以看出,黑色虛線的線圈中心線位于線框圖的中心位置;從三維實體圖中可以看出,其結(jié)構(gòu)形態(tài)與緯平針組織三維結(jié)構(gòu)模型一致,且具有良好的模擬效果。
圖6 緯平針組織三維仿真模擬圖Fig.6 Weft plain stitch 3D simulation. (a)3D wireframe; (b)3D entity
通過深入研究針織物成圈線圈幾何結(jié)構(gòu)模型并進(jìn)行改進(jìn),獲得了緯平針組織線圈的三維立體模型,然后通過線圈組合與連接形成了緯平針組織三維結(jié)構(gòu)模型。根據(jù)緯平針組織三維結(jié)構(gòu)模型合理設(shè)定交織點(diǎn)位置,得出線圈中心線上型值點(diǎn)坐標(biāo),基于非均勻有理B樣條(NURBS)曲線反算原理采用均勻參數(shù)化法、弦長參數(shù)化法和向心參數(shù)化法3種不同的節(jié)點(diǎn)矢量計算方法,對緯平針組織線圈中心線進(jìn)行三維建模仿真,最后得到了合理通用的仿真效果,并考慮各節(jié)點(diǎn)矢量計算方法的特性,根據(jù)型值點(diǎn)的選取情況做出了相應(yīng)方法的選取建議。基于NURBS曲面原理,增加光照與材質(zhì)效果,對緯平針組織進(jìn)行三維實體仿真,得到了結(jié)構(gòu)上貼近實際緯平針織物的模擬效果。為NURBS曲線曲面實現(xiàn)緯編針織物的仿真模擬提供了對比驗證與數(shù)據(jù)參考。