阮崇浩,汝 欣,彭來湖,胡旭東
(浙江理工大學浙江省現代紡織裝備技術重點實驗室,浙江 杭州 310018)
Mr.ChonghaoRuan@gmail.com;ruxin@zstu.edu.cn;laihup@zstu.edu.cn;xdhu@zstu.edu.cn
襪品作為一年四季不可或缺的服飾品,除了滿足人們日常的穿著需求外,其在醫療、運動、塑形等領域的應用范圍不斷擴大,例如醫療壓力襪、跑步襪、瘦腿襪等。這些襪品在設計上需要符合使用者的足部特征,在生產時需要進行精細的外形控制。而傳統的襪品生產技術受商業CAD軟件的限制,并不能很好地適應這些新需求。傳統襪品開發流程包括設計、打樣、測試、批量生產。工人需要根據襪品設計稿手動計算出生產所需的編織參數,并輸入款式文件中。同時傳統的編織參數計算方法存在一定缺陷,例如各部段的橫列數是取固定的橫向密度進行計算的,其結果并不準確,往往需要通過反復打樣對參數進行調整才能達到設計要求,這個過程繁復冗雜。
近年來,隨著計算機圖形學技術的蓬勃發展,針織織造技術以數字化、智能化為發展主線,不斷對針織設備與工藝流程等進行智能化改造。WU等人提出了一種可將三維模型轉化為仿真織物模型的方法,但該織物模型的一行網格對應于實際針織物中一行沒有端點的閉合紗線橫列,不具備可編織性。IGARASHI等人設計了一個可以將三維模型轉化成編織指導圖的系統,使用者可以根據圖案的指導手工編織各個小塊,最后組裝成完整織物。MCCANN等人開發了一種編譯器,可以將經過排版的形狀基元的組合圖案轉換為V型橫機的機器指令。NARAYANAN等人首次實現了將三維網格模型通過網格重構轉換為針織機指令。但是,這些方案僅適用于可進行自由加減針的橫機。
圓襪機相比于橫機具有更高的生產效率,是生產襪品的首選機型。本文針對傳統襪品生產中存在的問題,利用圖形學技術,并結合圓襪機的工作原理,設計了一款襪品三維輔助設計系統。用戶可以使用常規建模軟件進行建?;蚶萌S掃描的方式對襪品的外形進行設計。系統會根據特定規則在模型表面進行頂點采樣,快速、準確地獲取機器生產所需的編織參數。本文的研究旨在減少襪子款式開發中復雜的工藝計算,為機織技術從工業化向大眾化轉變提供思路。
三維設計相較于平面設計更加直觀立體,同時其在復雜精細的外形設計方面具有得天獨厚的優勢。為了能夠顯示、處理三維設計模型,本系統主要分為四個模塊,分別是模型加載模塊、約束環繪制模塊、網格采樣模塊及路徑編譯模塊,如圖1所示。這四個模塊正好對應系統將設計模型轉化為編織參數的四個主要步驟。首先系統會通過模型加載模塊將設計模型的數據讀取到內存中,并對模型信息進行一些預處理。然后,用戶需要在模型表面通過繪制約束環的方式標記模型的襪口、襪頭位置。系統會從繪制的約束環出發,沿著模型表面,根據特定的規則對模型的頂點進行采樣,繪制出一條類似真實紗線軌跡的編織路徑。最后通過路徑編譯模塊,將編織路徑轉化成圓襪機的編織參數并進行輸出。

圖1 系統結構Fig.1 System structure
如圖2所示為系統技術框架。由于系統需要對三維模型進行渲染、處理,因此選用VC++進行開發。SDL2是一款跨平臺開發庫,旨在通過OpenGL和Direct3D提供對音頻、鍵盤、鼠標、操縱桿和圖形硬件的低級訪問。本系統使用SDL2庫進行基礎窗口搭建,使用OpenGL進行三維圖像渲染,使用ImGUI進行用戶交互界面開發。用戶可通過在窗口內操作UI組件或鼠標、鍵盤來調用程序執行相應動作,實現頂點采樣等操作。同時系統會實時建立程序中對象的OpenGL緩存,通過GPU將圖像渲染,輸出到窗口中,實現用戶操作的視覺反饋。

圖2 系統技術框架Fig.2 Technical framework of the system
模型加載模塊主要有讀取模型基本數據、讀取約束文件、計算頂點法向量、計算邊信息四項功能。
(1)讀取模型基本數據:系統按行讀取obj文件中的數據,然后根據行首的標識符將數據存放到相應的數組中。讀取的模型數據包括頂點坐標、頂點法向量及三角面索引。
(2)讀取約束文件:若輸入模型所在目錄下存在同名的約束文件,系統會在加載模型時自動讀取約束文件中的信息,即已保存的約束環的約束點在頂點坐標數組中的索引(數組下標)。
(3)計算頂點法向量:兩點構成一條直線,系統會根據讀取的頂點法向量、頂點坐標及設置的法向量長度計算出法線另一端點的坐標,并將法線的兩端點坐標兩兩一組存儲到一個pair容器數組中以用于頂點法向量渲染。
(4)計算邊信息:系統遍歷三角面索引數組,整理出所有的邊,即找出每個頂點的所有相鄰頂點,并計算出頂點到相鄰頂點的距離(即邊長)。邊信息會被用于約束環繪制、網格采樣等操作中。
載入模型后,用戶可以使用鼠標、鍵盤在模型表面放置多個約束點,系統會將這些約束點按順序連接成約束環,如圖3所示。其實現原理在于本系統使用了Dijkstra最短路徑算法,該算法主要用于求解帶權圖中一點到其他點的最短路徑,是求解網格頂點最短路徑問題所使用的最廣泛的、經典的算法。

圖3 繪制約束環Fig.3 Drawing constraint rings
(1)算法思想
算法從起始頂點出發向外擴展,從相鄰頂點中選取最合適的頂點加入路徑,確定路徑下一個“當前點”的唯一考慮因素是相鄰的頂點與起點間的距離,直到擴展到達目的頂點。
(2)算法步驟
如圖4所示,查找頂點→的最短路徑的完整步驟如下:
①剛開始={},={、、、、},其中為源點,對應的路徑長度為0。集合中與源點直接相鄰的頂點存在正常的路徑長度,為兩點間的距離;中與源點不相鄰的頂點對應的路徑長度為∞。
②將中與源點間距離最短的頂點轉移到中,并作為中間點,重新計算中各頂點的路徑長度。如果源點經過中間點到頂點的路徑長度比之前計算的路徑長度短,則更新中頂點的路徑長度。以圖4步驟2為例,上一步中→的路徑最短,因此將頂點轉移到集合中,并作為中間點。以為中間點重新計算中各頂點的路徑長度,點和點E的當前路徑比之前計算的∞小,更新從源點到點和點的路徑長度。

圖4 Dijkstra算法步驟Fig.4 Steps of Dijkstra algorithm
③重復步驟②直到集合變為空。
為了避免多次讀取同一模型時需要重新繪制約束環,系統會將用戶繪制的約束點以頂點坐標索引形式存儲到二維數組中(約束環可存在多個,每個環由多個約束點構成),并輸出到cons格式文件中,下次讀取該模型時加載模塊會自動加載對應的cons文件繪制出約束環。
為了模擬真實襪品紗線軌跡的形態特點,我們將網格采樣過程細分為四個階段:襪筒階段→襪跟階段→襪腳階段→襪頭階段,如圖5所示,步驟如下:

圖5 網格采樣算法流程圖Fig.5 Flow chart of mesh sampling algorithm
(1)執行水平采樣,將襪頭環上的所有頂點添加到目標頂點集中。系統沿著紗線的實際編織方向以均勻的寬度對目標頂點集進行采樣,并將采樣節點水平相連。當采樣過程再次回到起始節點時就完成了水平采樣,生成一條初始采樣點橫列。
(2)執行縱向采樣生成一組新的采樣節點。系統遍歷當前橫列中的所有采樣節點,根據相鄰節點頂點法向量的叉積得到當前橫列所在面的法向量。然后從當前橫列的節點出發,沿著與面法向量相反的方向找到一個采樣高度處的頂點,作為一組新的采樣節點。采樣高度并不是固定不變的,縱向采樣會根據所處部位的襪品線圈圈高特征去動態地調整采樣的高度。例如在襪筒階段,系統會根據采樣點的頂點法向量和其所在面的面法向量間的夾角對采樣高度動態地進行調整,以此模擬真實紗線因受力所產生的形變,如圖6所示。同時采樣點的數量也會變化,在襪跟、襪頭階段,我們在采樣算法中加入了加減針規則,使得采樣點個數變化符合加減針規律。

圖6 襪筒階段采樣高度調整Fig.6 Sampling height adjustment of sock leg
(3)執行鏈接,將相鄰的節點水平鏈接以獲得新橫列。同時將當前橫列的最后一個節點與新橫列的第一個節點鏈接,使得新橫列與當前橫列相連。最后,將新橫列設置為當前橫列。
(4)執行平滑處理。如果模型的頂點數較小,則隨著采樣的迭代進行,生成的橫列可能會變得不平整。因此,系統采用了加權移動平均法對生成的采樣點橫列進行平滑處理,即平滑處理后的節點坐標是該節點處理前坐標與其相鄰節點的坐標的加權平均值。
(5)重復步驟(2)—步驟(4),若循環中滿足了階段切換條件,就切換采樣階段與規則,直至滿足襪頭階段結束條件。每個采樣循環中都加入了階段切換判斷:例如襪品模型在襪筒與襪跟交界處的頂點具有曲率局部最大的特征。因此在襪筒階段的每個采樣循環內,系統都會計算生成的采樣點的曲率,一旦其滿足曲率局部最大特征就切換采樣的階段。
編織路徑就像網格模型與編織參數之間的橋梁。一方面,編織路徑是在模型表面上采樣生成的,因此其捕獲了設計模型的外形特征;另一方面,系統可以從編織路徑中獲取各部段的橫列數及橫列寬度等編織參數。其中,橫列的寬度并不能直接在襪機中進行設置,系統會將橫列的寬度進一步轉換成用于控制織物寬度的上機參數——線圈長度。最后,系統會將這些編織參數輸入襪品的鏈條文件,襪機就能夠對設計的襪品進行織造。
系統界面和生產硬件如圖7所示。在實驗中,我們使用了WLT-6F全電腦襪機進行織造,針筒的針數設置為108 針,紗線材料選用棉紗。如圖8所示,系統輸入的網格模型具有1,090,000 個頂點,采樣過程耗時35 分38 秒,生成編織路徑,然后通過編譯得到各個部段的橫列數及橫列的線圈長度。各個部段的橫列數如表1所示。襪機根據輸出的編織參數織造的襪品如圖8所示。為了更好地呈現襪品的形狀,我們使用了軟泡沫模型進行填充,可以看出襪品與模型表面較為貼合。在無任何熱定形處理的情況下,經系統指導編織的襪品能夠較好地還原輸入模型的外形。

圖7 實驗環境Fig.7 Experiment environment

圖8 實驗過程Fig.8 Experiment process

表1 各部段橫列數Tab.1 Number of rows in different part
本文設計和實現了基于三維網格采樣的襪品輔助設計系統,該系統初步實現了使用網格采樣算法指導襪品的織造,將與圖形學技術相結合的新型針織織造技術拓展到圓襪機領域。實驗結果表明,由該系統指導編織的襪品在外形上與設計模型基本一致。我們的方案可以有效減少襪品款式開發中復雜的工藝計算,縮減打樣工序。同時該系統結合了三維設計的優勢,可以讓襪品的款式設計變得更直觀立體,尤其適用于復雜精細外形的設計。然而,該系統的實現方案和計算效率還可以從以下幾方面進行優化:
(1)方法改進:目前,系統通過用戶繪制約束環的方法來標記采樣算法的關鍵位置。未來我們考慮使用模型各點的SDF(形狀直徑函數)提取模型的骨架,并結合區域分割的方法自動獲取這些關鍵位置,以減少人工干預。
(2)系統擴展:我們計劃添加織物仿真功能,以呈現帶有線圈細節的“紗線模型”,而不是簡單的編織路徑,并計劃添加一個編輯工具,允許用戶編輯和修改“紗線模型”,如YUKSEL等人開發的工具。此外,系統目前只支持平針組織,為系統添加其他組織結構與花型(如羅紋組織、集圈組織)的支持也在我們的計劃列表中。同時,系統的代碼仍處于開發級別,采樣過程的計算時間還可以進行顯著優化。