王 旭, 儲長流, 倪慶清, 劉新華,2
(1. 安徽工程大學(xué) 紡織服裝學(xué)院, 安徽 蕪湖 241000; 2. 安徽工程大學(xué) 紡織科技公共服務(wù)平臺,安徽 蕪湖 241000; 3. 信州大學(xué) 纖維學(xué)部, 日本 長野 3868567)
機織物結(jié)構(gòu)三維建模研究對掌握紗線空間形態(tài)、織物形成規(guī)律及結(jié)構(gòu)設(shè)計具有重要意義。機織物結(jié)構(gòu)三維建模的任務(wù)是建立紗線及機織物結(jié)構(gòu)的三維模型并借助計算機進(jìn)行立體化的表現(xiàn)。機織物模擬分為紗線模擬和結(jié)構(gòu)模擬兩部分,前者從微觀層面模擬紗線截面形態(tài)、捻度、紋理等效果,后者從宏觀層面模擬紗線相互交織形成的機織物結(jié)構(gòu)。
在紗線模擬方面,文獻(xiàn)[1]以NURBS曲面模擬紗線的三維實體,并結(jié)合紋理映射模擬出紗線表面的紋理效果。文獻(xiàn)[2-3]以NURBS曲線構(gòu)造圓形、橢圓形、跑道形等不同形式的紗線截面,結(jié)合B樣條曲面進(jìn)行分段裝配形成紗線的三維模型,并通過對紗線截面控制點的隨機擾動實現(xiàn)紗線的捻度效果。文獻(xiàn)[4-6]采用變截面方式建立了紗線三維模型,并運用VC++和Open GL軟件對平紋織物進(jìn)行了三維模擬。在結(jié)構(gòu)模擬方面,以分段連續(xù)三次B樣條曲線描述紗線的屈曲形態(tài),建立了不同結(jié)構(gòu)參數(shù)條件下的機織物三維模型。張瑞林等[7]以Peirce模型為基礎(chǔ),采用Beizer曲線模擬紗線路徑,并運用VC++和Open GL軟件建立了機織物的三維結(jié)構(gòu)。顧平等[8]采用3ds Max軟件的交互式操作,逐個建立紗線軸線,并以圓形截面放樣建模產(chǎn)生紗線的三維模型。谷大鵬等[9]通過將經(jīng)緯紗按照交叉情況分為8個基本組元,根據(jù)織物交織規(guī)律確定組元位置信息,并借助MatLab軟件編程以組元結(jié)合的方法,建立了機織物的三維模型。傳統(tǒng)的機織物結(jié)構(gòu)三維建模,過多的依賴人機交互,建模過程復(fù)雜且效率不高。
由于機織物結(jié)構(gòu)在空間變化上具有周期性,即經(jīng)、緯紗線的空間屈曲狀態(tài)隨完全組織經(jīng)緯紗數(shù)呈現(xiàn)周期性分布的規(guī)律,為采用計算機程序設(shè)計機織物結(jié)構(gòu)三維模型提供了方便,因此,本文根據(jù)機織物結(jié)構(gòu)相理論確定紗線軸線屈曲形態(tài)的型值點的數(shù)量及坐標(biāo),運用3ds Max軟件內(nèi)嵌的Maxscript語言實現(xiàn)紗線和機織物結(jié)構(gòu)三維模型的快速建立。
紗線是構(gòu)成機織物的基本單元。紗線的實際結(jié)構(gòu)非常復(fù)雜,以環(huán)錠紗為例,若干根纖維經(jīng)加捻形成紗體,暴露在紗體外的纖維頭端形成毛羽,同時紗線材質(zhì)、直徑、織物組織和受力變形等因素的不同,導(dǎo)致織物的幾何結(jié)構(gòu)非常復(fù)雜。機織物幾何結(jié)構(gòu)相理論是定量描述機織物中經(jīng)、緯紗空間彎曲狀態(tài)及其相互配置關(guān)系的理論。為簡化描述,一般將紗線作為整體,紗線截面用圓形、橢圓形、跑道形等近似。通常定義經(jīng)、緯紗屈曲波高之比或屈曲波高與經(jīng)緯紗直徑和之比,作為機織物幾何結(jié)構(gòu)相的量化標(biāo)準(zhǔn)。
機織物幾何結(jié)構(gòu)相理論有以下5種:1)利用經(jīng)緯紗屈曲波高的比值描述。2)9個狀態(tài)結(jié)構(gòu)相理論,利用經(jīng)、緯紗直徑dj、dw和經(jīng)、緯紗屈曲波高h(yuǎn)j、hw的關(guān)系構(gòu)成的9個狀態(tài),即規(guī)定hj、hw每變動(dj+dw)/8形成一個狀態(tài),其中經(jīng)紗伸直(hj=0),緯紗最大屈曲(hw=dj+dw)為第1結(jié)構(gòu)相,hj、hw分別遞增、遞減(dj+dw)/8,依次得第2,3,…,直到經(jīng)紗最大屈曲(hj=dj+dw),緯紗伸直(hw=0)為第9結(jié)構(gòu)相。3)11個狀態(tài)結(jié)構(gòu)相理論,利用hj、hw每變動(dj+dw)/10形成的11個狀態(tài)。4)21個狀態(tài)結(jié)構(gòu)相理論,在11個狀態(tài)結(jié)構(gòu)相理論基礎(chǔ)上每2個結(jié)構(gòu)相之間再劃分出1個結(jié)構(gòu)相,即第1,1.5,2,…,10.5,11,共形成21個狀態(tài)。5)運用相對屈曲波高修正的結(jié)構(gòu)相理論,以紗線絕對屈曲波高與1個組織循環(huán)中紗線所占的寬度的比值,即經(jīng)紗(或緯紗)的絕對屈曲波高與組織循環(huán)的緯紗(或經(jīng)紗)所占寬度的比值作為經(jīng)紗(或緯紗)相對屈曲波高[10]。
圖1 平紋組織第5結(jié)構(gòu)相示意圖Fig.1 Scheme of fifth structure phase of plain weave
圖2 斜紋組織第5結(jié)構(gòu)相示意圖Fig.2 Scheme of fifth structure phase of twill weave
機織物結(jié)構(gòu)三維建模思路是運用插值由型值點坐標(biāo)產(chǎn)生紗線軸線曲線,并按照紗線交織規(guī)律組合形成織物。型值點是描述曲線幾何形狀的代表性數(shù)據(jù)點。由型值點坐標(biāo)通過函數(shù)插值是曲線建模的常用方法。其中分段連續(xù)B樣條函數(shù)和非均勻有理B樣條(non-uniform rational B-splines,NURBS)函數(shù)是自由曲線曲面設(shè)計中應(yīng)用最廣泛的方法[11]。分段連續(xù)三次B樣條曲線是通過將紗線屈曲形態(tài)作為分段連續(xù)的三次樣條曲線來對待[6],而本文選擇NURBS曲線具有的非均勻性使得曲線一個控制頂點的影響力范圍可變,即曲線在局部調(diào)整上具有靈活性,更加適合表達(dá)紗線復(fù)雜的屈曲形態(tài)。
機織物結(jié)構(gòu)三維建模分3個步驟:
1)根據(jù)織物組織確定紗線軸線的型值點數(shù)量,并建立型值點坐標(biāo)與織物結(jié)構(gòu)參數(shù)的關(guān)系。
2)通過3ds Max軟件內(nèi)嵌的MAXScript語言,根據(jù)型值點坐標(biāo)運用樣條插值函數(shù)產(chǎn)生紗線軸線。
3)根據(jù)經(jīng)、緯紗空間位置關(guān)系實現(xiàn)機織物結(jié)構(gòu)的三維建模。
上述建模過程中,型值點的數(shù)量及其坐標(biāo)的確定是建模過程的關(guān)鍵。
由于織物交織規(guī)律具有周期性,故只需建立1個完全組織內(nèi)紗線軸線的各型值點坐標(biāo),即可沿經(jīng)緯向延拓,產(chǎn)生整個織物紗線軸線的型值點坐標(biāo)。由圖1、2可知,結(jié)構(gòu)相確定后紗線的屈曲狀態(tài)主要受紗線直徑和織物組織影響。經(jīng)浮點處,經(jīng)紗屈曲波達(dá)最高點,而其下方緯紗屈曲波達(dá)最低點。同理,緯浮點處,緯紗屈曲波達(dá)最高點,而其下方經(jīng)紗屈曲波達(dá)最低點。完全組織內(nèi)每根紗線的型值點數(shù)量和完全組織經(jīng)緯紗數(shù)有關(guān)。為實現(xiàn)參數(shù)化設(shè)計,型值點按以下原則布置,紗線上每個組織點的中點及相鄰組織點的中點均布置1個型值點。為區(qū)別令前者為型值點I,后者為型值點II,分別如圖3中“●”、“○”的位置。每根紗線型值點數(shù)量按式(1)計算:
(1)
式中:Rj、Rw分別表示完全組織經(jīng)、緯紗數(shù)。Nj、Nw分別表示完全組織內(nèi)各根經(jīng)紗、緯紗上型值點的數(shù)量。如圖3所示2上1下右斜紋,Nj、Nw均為7,即每根經(jīng)紗或緯紗上均有7個型值點,其中3個型值點I,4個型值點II。
圖3 紗線軸線型值點分布示意圖Fig.3 Scheme of data points position of yarn axis
圖4 平紋組織紗線軸線型值點示意圖Fig.4 Scheme of data points of yarn axis of plain weave.(a)Perspective; (b)Top view; (c)Left view
由圖4(b)頂視圖,各根紗線型值點的x,y坐標(biāo)在xoy面上按等間距網(wǎng)格狀分布,而z坐標(biāo)則可能取0.5、0或-0.5。型值點坐標(biāo)和織物結(jié)構(gòu)參數(shù)間滿足如下規(guī)律:
5)經(jīng)紗軸線型值點I的z坐標(biāo)取值,經(jīng)組織點處z取0.5,緯組織點處z取-0.5。型值點II的z坐標(biāo)取值,根據(jù)該點前后組織點性質(zhì)存在3種可能,如前后均為經(jīng)組織點則z取0.5,前后均為緯組織點則z取-0.5,前后組織點性質(zhì)不同則z取0;
6)緯紗軸線型值點I的z坐標(biāo)取值,緯組織點處z取0.5,經(jīng)組織點處z取-0.5。型值點II的z坐標(biāo)取值,根據(jù)該點前后組織點關(guān)系存在3種可能,如前后均為緯組織點則z取0.5,前后均為經(jīng)組織點則z取-0.5,前后組織點性質(zhì)不同則z取0。
以圖4所示的單起平紋為例,令第i根經(jīng)紗的第j個型值點三維坐標(biāo)為(xi,j,yi,j,zi,j),經(jīng)紗型值點坐標(biāo)與紗線直徑d滿足關(guān)系式(2)。
(2)
式中:i=1,2;j=1,2,3,4,5。
同理,緯紗型值點坐標(biāo)滿足關(guān)系式(3)。
(3)
式中:i=1,2;j=1,2,3,4,5。
根據(jù)式(2)、(3),取d=1時,單起平紋完全組織內(nèi)的經(jīng)、緯紗型值點坐標(biāo),分別如表1、2所示。
表1 平紋組織經(jīng)紗型值點坐標(biāo)Tab.1 Coordinate of data point of warp of plain weave
表2 平紋組織緯紗型值點坐標(biāo)Tab.2 Coordinate of data point of weft of plain weave
采用類似上述方法,可以建立不同組織的經(jīng)緯紗型值點坐標(biāo)與織物組織參數(shù)的關(guān)系式。為運用MAXScript語言進(jìn)行機織物結(jié)構(gòu)的程序化三維建模提供可能。
MAXScript是Autodesk公司為3ds Max軟件開發(fā)的腳本語言,具有語法簡單、功能強大的特點,可用于開發(fā)相應(yīng)的程序?qū)崿F(xiàn)建模、動畫、渲染及場景動態(tài)控制等操作。針對結(jié)構(gòu)上具有規(guī)律性的機織物結(jié)構(gòu)建模,運用MAXScript編程比傳統(tǒng)的交互式操作效率更高,具體過程包括兩部分:1)由型值點坐標(biāo)與織物結(jié)構(gòu)參數(shù)的關(guān)系,計算各型值點三維坐標(biāo)。2)創(chuàng)建自定義樣條插值函數(shù),由型值點坐標(biāo)生成紗線軸線,并調(diào)整相關(guān)參數(shù)形成機織物結(jié)構(gòu)三維模型。圖5為MAXScript語言開發(fā)的機織物建模程序流程圖。
圖5 程序流程圖Fig.5 Flow diagram of program
程序執(zhí)行過程如下,首先定義初始參數(shù),包括織物組織矩陣、完全組織經(jīng)、緯紗數(shù)、完全組織循環(huán)次數(shù)、紗線直徑等。然后計算機織物結(jié)構(gòu)所需要的型值點坐標(biāo),并構(gòu)建SplineShape類對象。一個SplineShape類對象等價于機織物中每根經(jīng)、緯紗。采用圖5所示的二重循環(huán),建立全部經(jīng)、緯紗所需要的SplineShape類對象。以經(jīng)紗為例,n1表示經(jīng)紗根數(shù),n2表示1根經(jīng)紗的型值點數(shù),j表示內(nèi)循環(huán)次數(shù)變量,即逐個讀入1根經(jīng)紗的全部型值點坐標(biāo),構(gòu)造出1根經(jīng)紗的SplineShape對象,并設(shè)置其屬性及更新操作,即完成1根經(jīng)紗的三維模型。i表示外循環(huán)次數(shù)變量,即根據(jù)經(jīng)紗根數(shù)和經(jīng)紗間距產(chǎn)生全部經(jīng)紗三維模型。同理,產(chǎn)生全部緯紗三維模型。
MAXScript語言可直接構(gòu)造SplineShape類對象,實現(xiàn)由型值點生成NURBS曲線。NURBS曲線由分段有理B樣條基函數(shù)定義,n+1個控制點Pi(i=0, 1,…,n)的k+1階曲線,如式(4)。
(4)
式中:k為冪次;Wi為控制頂點Pi相對應(yīng)的權(quán)值;Ni,k(u) 為k次樣條基函數(shù)。需要注意的是,型值點和NUBRS曲線控制點不同,前者通過曲線,后者一般不通過曲線,而是構(gòu)成控制多邊形對曲線進(jìn)行形態(tài)控制。
MAXScript語言構(gòu)造SplineShape類對象的方法[12]包括構(gòu)造新的SplineShape類對象的addNewspline方法、向SplineShape對象添加型值點的addKnot方法及更新SplineShape對象的updateShape方法。其中addNewSpline和updateShape語法均為:方法名 <對象名>。addKnot語法為addKnot <對象名> <參數(shù)1> <參數(shù)2> <參數(shù)3> <參數(shù)4>,其中,參數(shù)1為型值點序號,參數(shù)2為定義型值點類型,如光滑形smooth,角形corner等,參數(shù)3為線段在該型值點的離開類型,如線形line,曲線形curve等,參數(shù)4為型值點坐標(biāo)。例如,addKnot s 1 #smooth #curve [0,20,5],向樣條曲線對象s增加一個坐標(biāo)為(0,20,5)的光滑形型值點,線段在該型值點的離開類型為曲線形。
SplineShape類對象的基本屬性包括5個[12],其中thickness和sides屬性均為數(shù)值型變量。thickness屬性值越大,則樣條線截面直徑越粗。sides屬性值越大,樣條線截面越接近圓形。通過對thickness和sides屬性的調(diào)整可表現(xiàn)不同的模型效果。圖6示出不同sides屬性值平紋結(jié)構(gòu)單元的效果。當(dāng)sides從8提高到36后,可發(fā)現(xiàn)模型的光滑性明顯提高。wirecolor屬性反映對象的顏色,采用RGB顏色模型表達(dá)不同的色彩,其中R、G、B三色分量值均為0~255范圍內(nèi)的整數(shù)。圖中經(jīng)紗的R、G、B顏色分量為80、125、220。render_renderable和render_displayRenderMesh屬性分別為對象的可渲染及渲染后的可顯示屬性,均為布爾型變量,用True和False分別表示打開或關(guān)閉該屬性。
圖6 紗線不同截面邊數(shù)的三維模型Fig.6 3-D model with different section sides. (a) Polygon with 8 sides; (b) Polygon with 36 sides
此外,運用MAXScript語言提供的卷展欄(Rollout)功能,通過用戶界面控件如按鈕(Button)、文本框(Edittext)、下拉列表(Dropdownlist)等[12],設(shè)計出機織物組織參數(shù)的輸入界面,通過消息驅(qū)動(Message Driven)機制,如鼠標(biāo)單擊等,觸發(fā)相應(yīng)的三維建模代碼模塊的執(zhí)行,從而能更加方便、快速地實現(xiàn)機織物結(jié)構(gòu)的參數(shù)化三維建模。圖7為機織物組織參數(shù)輸入界面。用戶可根據(jù)模型需要輸入相應(yīng)的參數(shù),并生成對應(yīng)的機織物結(jié)構(gòu)三維模型。
圖7 機織物組織參數(shù)輸入界面Fig.7 Parameter input interface of woven fabric
3ds MAX的模型顯示窗口,默認(rèn)由4部分組成,其中左上角為頂視圖,右上角為前視圖,左下角為左視圖,右下角為透視圖。針對大多數(shù)普通機織物,由模型的透視圖和頂視圖可觀察機織物的整體交織情況。此外,通過左視圖、前視圖分別可觀察第一經(jīng)、第一緯的交織情況。圖8示出運用卷展欄功能開發(fā)的如圖7所示的機織物組織參數(shù)輸入界面。選擇“循環(huán)次數(shù)”為5,點擊“平紋”按鈕,得到的具有10根經(jīng)、緯紗的平紋組織三維模型。圖9為分別輸入“交織規(guī)律-分子”“交織規(guī)律-分母”為2、1,選擇“循環(huán)次數(shù)”為1,點擊“斜紋”按鈕,得到的斜紋組織三維模型圖。通過調(diào)整交織規(guī)律、循環(huán)次數(shù)等參數(shù),還可得到不同的斜紋組織。
圖8 平紋組織三維模型示意圖Fig.8 Scheme of 3-D model of plain weave. (a) Top view; (b) Front view; (c) Left view; (d) Perspective
圖9 斜紋組織三維模型示意圖Fig.9 Scheme of 3-D model of twill weave. (a) Top view; (b) Front view; (c) Left view; (d) Perspective
除了三原組織外,還可根據(jù)需要對其他組織進(jìn)行建模。只要建立型值點坐標(biāo)和交織規(guī)律的關(guān)系,就能通過計算機程序生成各型值點的三維坐標(biāo),進(jìn)而實現(xiàn)機織物結(jié)構(gòu)三維模型的構(gòu)建。圖10為菱形斜紋三維模型?;A(chǔ)組織311/121,分別輸入“交織規(guī)律-分子”“交織規(guī)律-分母”為311、121,選擇“循環(huán)次數(shù)”為2,從斜紋變化下拉列表選擇“菱形斜紋”選項,則產(chǎn)生由32根經(jīng)紗和32根緯紗的菱形斜紋組織模型。
圖10 菱形斜紋組織三維模型示意圖Fig.10 Scheme of 3-D model of diamond twill weave
上述實例表明,在原理上,運用MAXScript語言構(gòu)造SplineShape類對象實現(xiàn)機織物結(jié)構(gòu)三維建模和應(yīng)用Open GL在Visual C++條件下編制程序?qū)崿F(xiàn)紗線三維模擬[4]及變截面紗線模擬機織物的方式,都是基于織物幾何結(jié)構(gòu)相關(guān)系建立紗線和織物的三維模型。應(yīng)用Open GL以Visual C++編程方式,可通過構(gòu)建的變截面的紗線三維模型[5]增加真實感,而MAXScript語言可通過對SplineShape對象屬性的調(diào)整來實現(xiàn)這個過程。此外,MAXScript語言的卷展欄功能在參數(shù)輸入界面設(shè)計及機織物結(jié)構(gòu)的參數(shù)化三維建模方面更為方便。
1)運用機織物結(jié)構(gòu)相理論,提出按組織點及相鄰組織點的中點布置紗線軸線型值點的原則,并建立了型值點數(shù)量和完全組織經(jīng)緯紗數(shù)的關(guān)系。
2)以第5結(jié)構(gòu)相理論,建立了紗線軸線型值點坐標(biāo)與紗線直徑及紗線間距等機織物幾何參數(shù)的關(guān)系,其中型值點的x,y坐標(biāo)在xoy面上按等間距網(wǎng)格狀分布,而z坐標(biāo)則根據(jù)型值點對應(yīng)紗線軸線位置取值。
3)開發(fā)了相應(yīng)的MAXScript程序,實現(xiàn)各根經(jīng)緯紗線型值點三維坐標(biāo)的自動計算,并通過構(gòu)造SplineShape類對象并調(diào)整其屬性,實現(xiàn)了機織物結(jié)構(gòu)的三維建模。
4)本文方法主要針對單層機織物結(jié)構(gòu)的三維建模,對于多層接結(jié)、正交及角聯(lián)鎖等三維機織物結(jié)構(gòu)三維建模方面的應(yīng)用有待進(jìn)一步拓展。
FZXB