代振興,陳廣鋒,陳 革
(東華大學(xué) 機(jī)械工程學(xué)院,上海 201620)
織物外觀模擬對于織物的設(shè)計(jì)生產(chǎn)意義重大,近年來已成為計(jì)算機(jī)圖形學(xué)領(lǐng)域的研究熱點(diǎn)。簇絨地毯在生活中可用于懸掛、墊坐或地面覆蓋物等生活裝飾用品,應(yīng)用廣闊,占據(jù)了地毯行業(yè)的主要市場份額[1]。但多圈高簇絨地毯絨圈空間結(jié)構(gòu)復(fù)雜,高度不一,而且考慮到地毯美觀方面的要求,其花型組合方式多變,大大增加了多圈高簇絨地毯外觀仿真的難度。
國內(nèi)有關(guān)地毯外觀仿真的研究主要集中在地毯輔助設(shè)計(jì)工具的開發(fā)上,如浙大經(jīng)緯CAD、藍(lán)藝地毯集團(tuán)的地毯CAD、China Dream等[2]。上述工具只能平面地模擬地毯花型設(shè)計(jì)圖案,不具備簇絨地毯的外觀結(jié)構(gòu)模擬功能。另外,國內(nèi)已對簇絨地毯外觀模擬開展了一系列研究,但一定程度上忽略了簇絨地毯空間結(jié)構(gòu)上的細(xì)節(jié)問題,仿真效果較差;國外學(xué)者對織物仿真方面的研究主要集中在多股加捻紗線模型構(gòu)建以及服裝面料真實(shí)感模擬等方面,如Zhao等提供了一種自適應(yīng)構(gòu)建多股纖維加捻及帶有毛羽效果的紗線模型的方法;Cirio等在建立編織物三維模型時(shí)將經(jīng)緯紗抽象為彈性桿模型來處理接觸摩擦,但由于編織物與簇絨織物結(jié)構(gòu)上的差異,該方法并不適合簇絨類織物的仿真[3-4]。國外有關(guān)簇絨地毯外觀整體三維仿真方面的研究少見發(fā)布。
基于上述問題,針對簇絨地毯絨圈位置分布不規(guī)律、結(jié)構(gòu)復(fù)雜等特點(diǎn),本文通過設(shè)計(jì)算法基本實(shí)現(xiàn)了簇絨地毯的外觀仿真。其中利用B樣條曲線擬合原理建立了絨圈幾何模型并真實(shí)地模擬了絨圈空間位置的偏轉(zhuǎn)變形,增強(qiáng)了簇絨地毯外觀仿真的真實(shí)感。
簇絨地毯是通過簇絨針的往復(fù)機(jī)械運(yùn)動(dòng)將紗線穿過底布從而形成具有絨頭的特殊織物;同時(shí)在簇絨過程中,通過改變喂紗量的大小來生成不同高度的絨圈,最終形成表面具有浮雕效果的多圈高簇絨地毯[5]。簇絨地毯基本結(jié)構(gòu)如圖1所示。
圖1 簇絨地毯基本結(jié)構(gòu)示意圖Fig.1 Schematic diagram of basic structure of tufted carpet
可以看出,簇絨地毯的絨圈栽植和依附在地毯底布之上,并非整齊規(guī)則排列,而是經(jīng)過栽絨定型、后整理等工藝階段后受到相鄰絨圈的擠壓發(fā)生偏轉(zhuǎn)變形[6]。并且絨圈空間結(jié)構(gòu)上的受力變形極其復(fù)雜,具有一定的隨機(jī)性。進(jìn)一步發(fā)現(xiàn),絨圈的變形主要有2種:絨圈自身在成圈過程中受到紗線張力的影響所產(chǎn)生的形變;絨圈整體受到其他絨圈的擠壓后在原有針腳位置基礎(chǔ)上發(fā)生了隨機(jī)偏轉(zhuǎn)??紤]到絨圈受力情況復(fù)雜,而且柔性紗線織物的受力研究起來比較困難,本文主要針對第2種偏轉(zhuǎn)變形對簇絨地毯外觀進(jìn)行仿真模擬。
另外,簇絨地毯實(shí)際生產(chǎn)時(shí)絨圈是由多股單紗加捻后送入簇絨地毯織機(jī)織造而成的,為提高仿真效率,本文將絨圈看作由單股無加捻紗線織造而成。同時(shí)簇絨地毯結(jié)構(gòu)只考慮底布的模擬,而膠黏層及背襯起到保護(hù)和固定絨圈的作用,文中簇絨地毯的外觀仿真不再考慮二者的模擬。目前簇絨地毯底布多數(shù)為聚丙烯編織底布和非織造布底布,文中將底布簡化為具有一定厚度的長方體模型,模擬時(shí)先生成底布,然后在底布上完成簇絨過程。
考慮到簇絨地毯空間結(jié)構(gòu)的復(fù)雜性,本文利用Rhino軟件所支持的PythonScript模塊通過程序算法實(shí)現(xiàn)了簇絨地毯整體外觀的三維仿真。Rhino是一款適用于建立高精度的復(fù)雜三維非均勻有理B樣條(NURBUS)模型的建模軟件,結(jié)合PythonScript能夠?qū)崿F(xiàn)通過算法生成幾何模型,并且可以自動(dòng)執(zhí)行大量重復(fù)的計(jì)算任務(wù),提高了仿真效率。圖2示出基于Rhino-Python的簇絨地毯三維仿真流程圖。
圖2 簇絨地毯三維仿真流程圖Fig.2 3-D simulation flow chart of tufted carpet
文中PythonScript開發(fā)環(huán)境下編寫的簇絨地毯三維模擬程序采用模塊化設(shè)計(jì),主要包括地毯工藝參數(shù)讀取、模型繪制、紋理添加等部分。其中,模型繪制程序?qū)Φ靥航q圈受到擠壓后所產(chǎn)生空間位置角度上的隨機(jī)變化進(jìn)行了描述,反映出地毯織造完成后絨圈分布的不規(guī)則性。絨圈表面紋理及光照的添加使地毯外觀模擬獲得更加真實(shí)的效果。本文最終初步實(shí)現(xiàn)了簇絨地毯的整體外觀仿真,提供了一種可行的簇絨類織物三維仿真方案。
對簇絨地毯的外觀進(jìn)行仿真,首先需要準(zhǔn)確地建立絨圈的幾何模型。單個(gè)絨圈幾何模型的建立包括絨圈中心線的擬合以及絨圈截面形狀的確定,本文均采用B樣條曲線對二者進(jìn)行擬合。文獻(xiàn)[7]中提出將服裝面料離散化成若干曲面后,在每個(gè)曲面上局部進(jìn)行模擬計(jì)算[7]。同樣地,本文將絨圈中心線及截面形狀曲線離散分割成多段B樣條曲線,分別局部計(jì)算各段樣條曲線控制點(diǎn)值后再根據(jù)控制點(diǎn)坐標(biāo)擬合出完整的絨圈中心線和截面形狀。
B樣條曲線是一種分段多項(xiàng)式曲線,能夠通過改變控制點(diǎn)坐標(biāo)來改變曲線形狀,而且計(jì)算速度快,效率高,常用于各類織物的三維仿真[8]。B樣條曲線有均勻B樣條曲線、準(zhǔn)均勻B樣條曲線和非均勻有理B樣條曲線(NURBS)幾種。理論上,NURBS可以表示任何曲線曲面,其他2種B樣條都是其特殊形式。目前,通用的B樣條曲線數(shù)學(xué)表達(dá)式為:
(1)
式中:P(t)代表B樣條曲線;Pi代表控制點(diǎn);Ni,k(t)為均勻B樣條基函數(shù);k用于控制曲線連續(xù)性的階次;n等于控制點(diǎn)數(shù)目減1[9]。
工程界常用二次和三次B樣條曲線(曲面),本文將絨圈中心線看成是由多段二次B樣條曲線段銜接而成,來準(zhǔn)確地描述絨圈中心線的屈曲形態(tài)。根據(jù)式(1)經(jīng)過變換,可以得到由P0、P1、P2這3點(diǎn)定義的二次B樣條曲線P(t)的表達(dá)式為:
(2)
再進(jìn)一步,二次B樣條曲線各段數(shù)學(xué)表達(dá)式均可寫為關(guān)于t的拋物線式:
(3)
圖3 二次B樣條曲線擬合原理Fig.3 Principle of quadratic B-spline curve fitting
二次B樣條曲線總是與特征多邊形相切,根據(jù)二次B樣條曲線端點(diǎn)位置向量以及端點(diǎn)切向量的性質(zhì)[10],可以得到如下方程組:
(4)
利用高斯消元法結(jié)合MatLab求解方程組(4),可以求出控制點(diǎn)P0、P1和P2;然后將控制點(diǎn)代入式(2) 中求得表示絨圈中心線的二次B樣條曲線;最后,利用坐標(biāo)變換,結(jié)合絨圈中心線控制點(diǎn)值及切向量方程擬合出絨圈中心線。
本文將簇絨地毯絨圈中心線看成由多段二次B樣條曲線拼接而成,利用上述方法分段進(jìn)行求解,然后擬合出絨圈中心線。圖4示出絨圈中心線的二次B樣條曲線擬合,將絨圈中心線分割成5段二次B樣條曲線(L1~L5),計(jì)算11個(gè)控制點(diǎn)值(P0~P10)來完成整個(gè)中心線的擬合。需要注意的是,每相鄰2段B樣條曲線銜接處會(huì)共用1個(gè)控制點(diǎn)(P2、P4、P6、P8),在計(jì)算過程中共用的控制點(diǎn)方程將作為隱含的條件輔助求解。
完成絨圈中心線的二次B樣條曲線分割擬合設(shè)計(jì)后,按照上述求解方法計(jì)算出各控制點(diǎn)值,如表1 所示。但多圈高簇絨地毯各絨圈高度不同導(dǎo)致各個(gè)絨圈中心線控制點(diǎn)坐標(biāo)也不相同,因此表1列出的是圈高為9 mm時(shí)未經(jīng)扭轉(zhuǎn)變形下的中心線控制點(diǎn)坐標(biāo),其他高度下控制點(diǎn)值計(jì)算方法相同。
圖4 絨圈中心線的二次B樣條擬合Fig.4 Quadratic B-spline fitting of center-line of the loop
表1 圈高為9 mm時(shí)絨圈中心線控制點(diǎn)坐標(biāo)Tab.1 Coordinates of center-line control point of loop at loop height of 9 mm mm
將控制點(diǎn)值導(dǎo)入Rhino中,使用繪制控制點(diǎn)曲線命令便可以得到擬合出的二次B樣條絨圈中心線,如圖5所示。至此,完成了絨圈中心線的二次B樣條擬合,后續(xù)整塊地毯大量絨圈中心線的繪制遵循相同的擬合原理和求解方法,而且通過算法實(shí)現(xiàn)。
圖5 Rhino中絨圈中心線繪制Fig.5 Establishing center line model of loop in Rhino
實(shí)際絨圈是由多股紗線經(jīng)過加捻后形成的,其截面形狀沿中心線方向并非處處相同,整體看來,地毯絨圈屬于變截面實(shí)體[11]。本文為提高計(jì)算效率,將絨圈適當(dāng)簡化為等截面實(shí)體,且截面形狀為圓形截面。將絨圈截面看作由4段90°圓弧連接而成,每段圓弧由3個(gè)控制點(diǎn)完成二次B樣條曲線擬合,整個(gè)圓形截面曲線共由8個(gè)控制點(diǎn)擬合。
按照同樣的計(jì)算方法,將求得的8個(gè)控制點(diǎn)坐標(biāo)導(dǎo)入Rhino中,通過添加控制點(diǎn)曲線繪制出絨圈截面,如圖6所示。
圖6 Rhino中絨圈圓形截面表示Fig.6 Loop′s cross section in Rhino
完成絨圈中心線和截面形狀的擬合后,在Rhino中通過繪制實(shí)體命令的調(diào)用,將絨圈截面沿中心線進(jìn)行掃掠后得到絨圈的幾何模型,圖7示出2種不同圈高的絨圈幾何模型。
圖7 圈高為8 mm(左)和10 mm(右)的絨圈幾何模型Fig.7 Geometric model with loop′height of 8 mm(left) and 10 mm(right)
通過分析利用B樣條曲線構(gòu)建絨圈幾何模型的原理,同時(shí)研究如何求解出用于B樣條曲線的控制點(diǎn)值,然后結(jié)合Rhino環(huán)境初步建立了單個(gè)絨圈實(shí)體模型,為整塊地毯的仿真模擬作以鋪墊。
簇絨地毯在織造過程中經(jīng)過簇絨、定型、覆膠及平整等工藝處理后,導(dǎo)致絨圈之間由于相互擠壓發(fā)生了偏轉(zhuǎn)變形[12],由前文簇絨地毯的外觀展示也可以看出該特點(diǎn)。如何準(zhǔn)確地模擬絨圈位置的偏轉(zhuǎn)變形成為簇絨地毯外觀仿真需要解決的關(guān)鍵問題。
絨圈整體空間位置的偏轉(zhuǎn)變形是受到絨圈擠壓后隨機(jī)產(chǎn)生的,主要表現(xiàn)為絨圈以毯面法線方向?yàn)樾D(zhuǎn)軸偏轉(zhuǎn)了一定的角度[13],圖8示出絨圈產(chǎn)生空間位置偏轉(zhuǎn)變形示意圖,未偏轉(zhuǎn)絨圈與偏轉(zhuǎn)絨圈之間形成了偏轉(zhuǎn)角β。經(jīng)過觀察地毯實(shí)物測量統(tǒng)計(jì)得出,絨圈受到擠壓后在空間位置上的偏轉(zhuǎn)角度不超過±45°。因此,簇絨地毯外觀仿真的關(guān)鍵在于準(zhǔn)確地表征偏轉(zhuǎn)角(允許范圍為±45°)。
圖8 絨圈空間位置偏轉(zhuǎn)變形示意Fig.8 Deflecting and deforming about spatial position of loop
圖9 絨圈偏轉(zhuǎn)變形模擬效果Fig.9 Effect of loops deflecting simulation
圖10 簇絨地毯外觀整體仿真程序框架Fig.10 Tufted carpet appearance overall simulation program framework
由于絨圈受力情況復(fù)雜,各個(gè)絨圈受力均不相同導(dǎo)致其發(fā)生偏轉(zhuǎn)變形并且呈現(xiàn)隨機(jī)性,因此本文對偏轉(zhuǎn)角β的隨機(jī)模擬借助Python中隨機(jī)數(shù)生成函數(shù)random()來完成。通過設(shè)計(jì)程序算法在每次完成絨圈幾何模型繪制后,調(diào)用以隨機(jī)數(shù)為主要參數(shù)的位置偏轉(zhuǎn)函數(shù)對絨圈空間位置進(jìn)行偏轉(zhuǎn),偏轉(zhuǎn)角度在允許范圍(±45°)的計(jì)算公式為:
β=(random(t)-0.5)×90
(5)
式中,random(t)為隨機(jī)數(shù)生成函數(shù),在Python中該函數(shù)可以生成(0,1)內(nèi)的任意實(shí)數(shù),為保證偏轉(zhuǎn)角在±45°范圍內(nèi),添加權(quán)重為90。
那么對應(yīng)到Python中偏轉(zhuǎn)角的計(jì)算和偏轉(zhuǎn)實(shí)體相應(yīng)的程序代碼為:
xform=rs.XformRotation2((random.random()-0.5)×90, [0,0,1],center_point)
其中,xform在Python中表示絨圈偏轉(zhuǎn)后的實(shí)體對象。XformRotation2()為偏轉(zhuǎn)實(shí)體函數(shù),該函數(shù)所需的3個(gè)參數(shù)分別為偏轉(zhuǎn)角度,偏轉(zhuǎn)中心軸向量以及偏轉(zhuǎn)軸起始點(diǎn)。
例如,在絨圈高度分別為3,4,5,…,9,10 mm時(shí),根據(jù)程序運(yùn)行結(jié)果,各絨圈高度下對應(yīng)的絨圈偏轉(zhuǎn)角度為-5.181°,-24.466°,3.501°,…,-12.098°,-28.921°,每個(gè)絨圈所偏轉(zhuǎn)的角度均保證在允許范圍內(nèi)。當(dāng)然,每次程序運(yùn)行后所生成偏轉(zhuǎn)角的值都是不一樣的,確保絨圈偏轉(zhuǎn)的隨機(jī)性。實(shí)際絨圈隨機(jī)偏轉(zhuǎn)的模擬效果(從左至右絨圈高度遞增)如圖9所示,完成了對絨圈空間位置偏轉(zhuǎn)的隨機(jī)模擬。
在完成單個(gè)絨圈幾何模型繪制及其隨機(jī)偏轉(zhuǎn)模擬的研究后,本文基于Rhino中的PythonScript開發(fā)環(huán)境設(shè)計(jì)了簇絨地毯整體外觀仿真算法,實(shí)現(xiàn)了對簇絨地毯外觀的整體仿真。程序主要由3大模塊組成,包括參數(shù)讀取保存模塊、幾何模型繪制模塊以及紋理材質(zhì)設(shè)置模塊,程序整體框架組成如圖10所示。
其中,對于簇絨地毯工藝參數(shù)的設(shè)置包括絨圈高度、絨圈數(shù)量、地毯尺寸規(guī)模以及多種地毯花型、材質(zhì)的設(shè)置,以獲得不同風(fēng)格外觀的地毯。繪制絨圈幾何模型時(shí)按所設(shè)置的絨圈行、列數(shù)共2層循環(huán)完成所有絨圈的繪制,可以滿足任意大小的地毯尺寸要求。紋理貼圖及材質(zhì)的設(shè)置通過將紗線的材料紋理映射到絨圈表面來增強(qiáng)仿真效果。
區(qū)別于前人有關(guān)簇絨地毯仿真模擬的研究,文中將簇絨地毯外觀仿真程序按照功能劃分為多個(gè)模塊,通過模塊間的相互協(xié)作實(shí)現(xiàn)簇絨地毯的外觀仿真。例如運(yùn)行參數(shù)讀取子程序獲得當(dāng)前仿真地毯工藝參數(shù),包括紗線信息、排紗規(guī)律以及花型數(shù)據(jù),將其傳遞給幾何模型繪制模塊完成地毯整體仿真模型構(gòu)建,提高了程序的易讀性和可維護(hù)性,使得簇絨地毯的外觀仿真實(shí)現(xiàn)起來更加便捷。
將仿真結(jié)果與地毯實(shí)物樣品進(jìn)行對比,如圖11所示。通過運(yùn)行程序可以發(fā)現(xiàn),絨圈偏轉(zhuǎn)變形的模擬達(dá)到了較為真實(shí)的效果,同時(shí)對比結(jié)果充分表明上述簇絨地毯三維仿真方案的可行性。
圖11 簇絨地毯外觀仿真效果與實(shí)物對比Fig.11 Comparison between tufted carpet appearance simulation and product. (a)Simulation; (b)Finished product
圖12 不同花型簇絨地毯整體外觀仿真效果Fig.12 Overall appearance simulation of tufted carpets with different patterns. (a) Pattern of "DHU"; (b) Pattern of wave; (c) Pattern of hound′s-tooth; (d) Pattern of Twill
另外,不同的花型設(shè)置可通過改變絨圈高度及絨圈排列方式任意組合獲得,以下列舉出了多種花型圖案的多圈高簇絨地毯仿真結(jié)果,如圖12所示。相比于傳統(tǒng)的二維模擬,三維仿真技術(shù)使得地毯外觀看起來更加真實(shí)。其中,圖12(a)模擬的是帶有字體花型圖案的簇絨地毯,通過控制字體突出位置的絨圈高度高于其他位置的絨圈,使字體圖案凸顯出來,形成高低絨圈遮擋效果。實(shí)際簇絨地毯織造過程中是通過控制簇絨針排中的某根單針系統(tǒng)的傳動(dòng)比改變其喂紗量以及將多個(gè)針排模塊并聯(lián)組合后再進(jìn)行織造,從而在相應(yīng)字體位置形成高絨圈而其他位置仍保持同一高度。圖12(b)~(d)中通過相同的方法模擬出高低絨圈組合出的不同花型的簇絨地毯。
另外,與之前國內(nèi)有關(guān)學(xué)者開展的簇絨地毯外觀仿真方面的研究相比,本文模擬了簇絨地毯絨圈在經(jīng)歷復(fù)雜的工藝過程(栽絨、定型、后整理等)后發(fā)生不規(guī)則形變的狀態(tài),設(shè)定絨圈高度相同的條件下,每個(gè)絨圈由于受到擠壓產(chǎn)生變形導(dǎo)致其高度、大小、偏轉(zhuǎn)角度及方向各不相同。如圖12所示,達(dá)到的整體仿真效果相較于已有的研究更加真實(shí)。從圖中還可以看出,文中提出的簇絨地毯外觀仿真方法對結(jié)構(gòu)復(fù)雜的簇絨地毯取得了較好的仿真效果。理論上,該方法適用于多種圈高組合的任意花型簇絨地毯外觀三維仿真,但對于由多股單紗加捻后編織的簇絨地毯以及割絨地毯的仿真仍需進(jìn)一步研究。
本文基于二次B樣條曲線建模理論,利用Rhino軟件中的PythonScript對簇絨地毯進(jìn)行三維仿真,達(dá)到了更加真實(shí)的效果。在絨圈幾何模型建立過程中,分析了利用B樣條曲線控制點(diǎn)擬合絨圈中心線及截面輪廓的方法,完成了絨圈幾何模型的繪制。考慮到實(shí)際絨圈之間因相互擠壓作用會(huì)產(chǎn)生形變,對絨圈的隨機(jī)偏轉(zhuǎn)變形進(jìn)行了模擬。最終,將控制點(diǎn)求解過程及絨圈空間位置偏轉(zhuǎn)算法寫入到簇絨地毯外觀仿真算法程序中,實(shí)現(xiàn)了簇絨地毯整體外觀的基本仿真,并且模擬出了多種花型圖案、絨圈高度變化的簇絨地毯。通過比較模擬圖與實(shí)際地毯樣品,仿真結(jié)果具有一定的可靠性。