运用MAXScript语言的单层机织物结构三维建模
2019-01-22储长流倪庆清刘新华
王 旭, 储长流, 倪庆清, 刘新华,2
(1. 安徽工程大学 纺织服装学院, 安徽 芜湖 241000; 2. 安徽工程大学 纺织科技公共服务平台,安徽 芜湖 241000; 3. 信州大学 纤维学部, 日本 长野 3868567)
机织物结构三维建模研究对掌握纱线空间形态、织物形成规律及结构设计具有重要意义。机织物结构三维建模的任务是建立纱线及机织物结构的三维模型并借助计算机进行立体化的表现。机织物模拟分为纱线模拟和结构模拟两部分,前者从微观层面模拟纱线截面形态、捻度、纹理等效果,后者从宏观层面模拟纱线相互交织形成的机织物结构。
在纱线模拟方面,文献[1]以NURBS曲面模拟纱线的三维实体,并结合纹理映射模拟出纱线表面的纹理效果。文献[2-3]以NURBS曲线构造圆形、椭圆形、跑道形等不同形式的纱线截面,结合B样条曲面进行分段装配形成纱线的三维模型,并通过对纱线截面控制点的随机扰动实现纱线的捻度效果。文献[4-6]采用变截面方式建立了纱线三维模型,并运用VC++和Open GL软件对平纹织物进行了三维模拟。在结构模拟方面,以分段连续三次B样条曲线描述纱线的屈曲形态,建立了不同结构参数条件下的机织物三维模型。张瑞林等[7]以Peirce模型为基础,采用Beizer曲线模拟纱线路径,并运用VC++和Open GL软件建立了机织物的三维结构。顾平等[8]采用3ds Max软件的交互式操作,逐个建立纱线轴线,并以圆形截面放样建模产生纱线的三维模型。谷大鹏等[9]通过将经纬纱按照交叉情况分为8个基本组元,根据织物交织规律确定组元位置信息,并借助MatLab软件编程以组元结合的方法,建立了机织物的三维模型。传统的机织物结构三维建模,过多的依赖人机交互,建模过程复杂且效率不高。
由于机织物结构在空间变化上具有周期性,即经、纬纱线的空间屈曲状态随完全组织经纬纱数呈现周期性分布的规律,为采用计算机程序设计机织物结构三维模型提供了方便,因此,本文根据机织物结构相理论确定纱线轴线屈曲形态的型值点的数量及坐标,运用3ds Max软件内嵌的Maxscript语言实现纱线和机织物结构三维模型的快速建立。
1 机织物几何结构相理论
纱线是构成机织物的基本单元。纱线的实际结构非常复杂,以环锭纱为例,若干根纤维经加捻形成纱体,暴露在纱体外的纤维头端形成毛羽,同时纱线材质、直径、织物组织和受力变形等因素的不同,导致织物的几何结构非常复杂。机织物几何结构相理论是定量描述机织物中经、纬纱空间弯曲状态及其相互配置关系的理论。为简化描述,一般将纱线作为整体,纱线截面用圆形、椭圆形、跑道形等近似。通常定义经、纬纱屈曲波高之比或屈曲波高与经纬纱直径和之比,作为机织物几何结构相的量化标准。
机织物几何结构相理论有以下5种:1)利用经纬纱屈曲波高的比值描述。2)9个状态结构相理论,利用经、纬纱直径dj、dw和经、纬纱屈曲波高hj、hw的关系构成的9个状态,即规定hj、hw每变动(dj+dw)/8形成一个状态,其中经纱伸直(hj=0),纬纱最大屈曲(hw=dj+dw)为第1结构相,hj、hw分别递增、递减(dj+dw)/8,依次得第2,3,…,直到经纱最大屈曲(hj=dj+dw),纬纱伸直(hw=0)为第9结构相。3)11个状态结构相理论,利用hj、hw每变动(dj+dw)/10形成的11个状态。4)21个状态结构相理论,在11个状态结构相理论基础上每2个结构相之间再划分出1个结构相,即第1,1.5,2,…,10.5,11,共形成21个状态。5)运用相对屈曲波高修正的结构相理论,以纱线绝对屈曲波高与1个组织循环中纱线所占的宽度的比值,即经纱(或纬纱)的绝对屈曲波高与组织循环的纬纱(或经纱)所占宽度的比值作为经纱(或纬纱)相对屈曲波高[10]。
图1 平纹组织第5结构相示意图Fig.1 Scheme of fifth structure phase of plain weave
图2 斜纹组织第5结构相示意图Fig.2 Scheme of fifth structure phase of twill weave
2 机织物结构三维建模
2.1 建模思路和过程
机织物结构三维建模思路是运用插值由型值点坐标产生纱线轴线曲线,并按照纱线交织规律组合形成织物。型值点是描述曲线几何形状的代表性数据点。由型值点坐标通过函数插值是曲线建模的常用方法。其中分段连续B样条函数和非均匀有理B样条(non-uniform rational B-splines,NURBS)函数是自由曲线曲面设计中应用最广泛的方法[11]。分段连续三次B样条曲线是通过将纱线屈曲形态作为分段连续的三次样条曲线来对待[6],而本文选择NURBS曲线具有的非均匀性使得曲线一个控制顶点的影响力范围可变,即曲线在局部调整上具有灵活性,更加适合表达纱线复杂的屈曲形态。
机织物结构三维建模分3个步骤:
1)根据织物组织确定纱线轴线的型值点数量,并建立型值点坐标与织物结构参数的关系。
2)通过3ds Max软件内嵌的MAXScript语言,根据型值点坐标运用样条插值函数产生纱线轴线。
3)根据经、纬纱空间位置关系实现机织物结构的三维建模。
上述建模过程中,型值点的数量及其坐标的确定是建模过程的关键。
2.2 纱线轴线型值点的数量
由于织物交织规律具有周期性,故只需建立1个完全组织内纱线轴线的各型值点坐标,即可沿经纬向延拓,产生整个织物纱线轴线的型值点坐标。由图1、2可知,结构相确定后纱线的屈曲状态主要受纱线直径和织物组织影响。经浮点处,经纱屈曲波达最高点,而其下方纬纱屈曲波达最低点。同理,纬浮点处,纬纱屈曲波达最高点,而其下方经纱屈曲波达最低点。完全组织内每根纱线的型值点数量和完全组织经纬纱数有关。为实现参数化设计,型值点按以下原则布置,纱线上每个组织点的中点及相邻组织点的中点均布置1个型值点。为区别令前者为型值点I,后者为型值点II,分别如图3中“●”、“○”的位置。每根纱线型值点数量按式(1)计算:
(1)
式中:Rj、Rw分别表示完全组织经、纬纱数。Nj、Nw分别表示完全组织内各根经纱、纬纱上型值点的数量。如图3所示2上1下右斜纹,Nj、Nw均为7,即每根经纱或纬纱上均有7个型值点,其中3个型值点I,4个型值点II。
图3 纱线轴线型值点分布示意图Fig.3 Scheme of data points position of yarn axis
2.3 纱线型值点坐标与组织参数的关系
图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坐标在xoy面上按等间距网格状分布,而z坐标则可能取0.5、0或-0.5。型值点坐标和织物结构参数间满足如下规律:
5)经纱轴线型值点I的z坐标取值,经组织点处z取0.5,纬组织点处z取-0.5。型值点II的z坐标取值,根据该点前后组织点性质存在3种可能,如前后均为经组织点则z取0.5,前后均为纬组织点则z取-0.5,前后组织点性质不同则z取0;
6)纬纱轴线型值点I的z坐标取值,纬组织点处z取0.5,经组织点处z取-0.5。型值点II的z坐标取值,根据该点前后组织点关系存在3种可能,如前后均为纬组织点则z取0.5,前后均为经组织点则z取-0.5,前后组织点性质不同则z取0。
以图4所示的单起平纹为例,令第i根经纱的第j个型值点三维坐标为(xi,j,yi,j,zi,j),经纱型值点坐标与纱线直径d满足关系式(2)。
(2)
式中:i=1,2;j=1,2,3,4,5。
同理,纬纱型值点坐标满足关系式(3)。
(3)
式中:i=1,2;j=1,2,3,4,5。
根据式(2)、(3),取d=1时,单起平纹完全组织内的经、纬纱型值点坐标,分别如表1、2所示。
表1 平纹组织经纱型值点坐标Tab.1 Coordinate of data point of warp of plain weave
表2 平纹组织纬纱型值点坐标Tab.2 Coordinate of data point of weft of plain weave
采用类似上述方法,可以建立不同组织的经纬纱型值点坐标与织物组织参数的关系式。为运用MAXScript语言进行机织物结构的程序化三维建模提供可能。
2.4 基于MAXScript的机织物三维建模
MAXScript是Autodesk公司为3ds Max软件开发的脚本语言,具有语法简单、功能强大的特点,可用于开发相应的程序实现建模、动画、渲染及场景动态控制等操作。针对结构上具有规律性的机织物结构建模,运用MAXScript编程比传统的交互式操作效率更高,具体过程包括两部分:1)由型值点坐标与织物结构参数的关系,计算各型值点三维坐标。2)创建自定义样条插值函数,由型值点坐标生成纱线轴线,并调整相关参数形成机织物结构三维模型。图5为MAXScript语言开发的机织物建模程序流程图。
图5 程序流程图Fig.5 Flow diagram of program
程序执行过程如下,首先定义初始参数,包括织物组织矩阵、完全组织经、纬纱数、完全组织循环次数、纱线直径等。然后计算机织物结构所需要的型值点坐标,并构建SplineShape类对象。一个SplineShape类对象等价于机织物中每根经、纬纱。采用图5所示的二重循环,建立全部经、纬纱所需要的SplineShape类对象。以经纱为例,n1表示经纱根数,n2表示1根经纱的型值点数,j表示内循环次数变量,即逐个读入1根经纱的全部型值点坐标,构造出1根经纱的SplineShape对象,并设置其属性及更新操作,即完成1根经纱的三维模型。i表示外循环次数变量,即根据经纱根数和经纱间距产生全部经纱三维模型。同理,产生全部纬纱三维模型。
MAXScript语言可直接构造SplineShape类对象,实现由型值点生成NURBS曲线。NURBS曲线由分段有理B样条基函数定义,n+1个控制点Pi(i=0, 1,…,n)的k+1阶曲线,如式(4)。
(4)
式中:k为幂次;Wi为控制顶点Pi相对应的权值;Ni,k(u) 为k次样条基函数。需要注意的是,型值点和NUBRS曲线控制点不同,前者通过曲线,后者一般不通过曲线,而是构成控制多边形对曲线进行形态控制。
MAXScript语言构造SplineShape类对象的方法[12]包括构造新的SplineShape类对象的addNewspline方法、向SplineShape对象添加型值点的addKnot方法及更新SplineShape对象的updateShape方法。其中addNewSpline和updateShape语法均为:方法名 <对象名>。addKnot语法为addKnot <对象名> <参数1> <参数2> <参数3> <参数4>,其中,参数1为型值点序号,参数2为定义型值点类型,如光滑形smooth,角形corner等,参数3为线段在该型值点的离开类型,如线形line,曲线形curve等,参数4为型值点坐标。例如,addKnot s 1 #smooth #curve [0,20,5],向样条曲线对象s增加一个坐标为(0,20,5)的光滑形型值点,线段在该型值点的离开类型为曲线形。
SplineShape类对象的基本属性包括5个[12],其中thickness和sides属性均为数值型变量。thickness属性值越大,则样条线截面直径越粗。sides属性值越大,样条线截面越接近圆形。通过对thickness和sides属性的调整可表现不同的模型效果。图6示出不同sides属性值平纹结构单元的效果。当sides从8提高到36后,可发现模型的光滑性明显提高。wirecolor属性反映对象的颜色,采用RGB颜色模型表达不同的色彩,其中R、G、B三色分量值均为0~255范围内的整数。图中经纱的R、G、B颜色分量为80、125、220。render_renderable和render_displayRenderMesh属性分别为对象的可渲染及渲染后的可显示属性,均为布尔型变量,用True和False分别表示打开或关闭该属性。
图6 纱线不同截面边数的三维模型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],设计出机织物组织参数的输入界面,通过消息驱动(Message Driven)机制,如鼠标单击等,触发相应的三维建模代码模块的执行,从而能更加方便、快速地实现机织物结构的参数化三维建模。图7为机织物组织参数输入界面。用户可根据模型需要输入相应的参数,并生成对应的机织物结构三维模型。
图7 机织物组织参数输入界面Fig.7 Parameter input interface of woven fabric
3ds MAX的模型显示窗口,默认由4部分组成,其中左上角为顶视图,右上角为前视图,左下角为左视图,右下角为透视图。针对大多数普通机织物,由模型的透视图和顶视图可观察机织物的整体交织情况。此外,通过左视图、前视图分别可观察第一经、第一纬的交织情况。图8示出运用卷展栏功能开发的如图7所示的机织物组织参数输入界面。选择“循环次数”为5,点击“平纹”按钮,得到的具有10根经、纬纱的平纹组织三维模型。图9为分别输入“交织规律-分子”“交织规律-分母”为2、1,选择“循环次数”为1,点击“斜纹”按钮,得到的斜纹组织三维模型图。通过调整交织规律、循环次数等参数,还可得到不同的斜纹组织。
图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
除了三原组织外,还可根据需要对其他组织进行建模。只要建立型值点坐标和交织规律的关系,就能通过计算机程序生成各型值点的三维坐标,进而实现机织物结构三维模型的构建。图10为菱形斜纹三维模型。基础组织311/121,分别输入“交织规律-分子”“交织规律-分母”为311、121,选择“循环次数”为2,从斜纹变化下拉列表选择“菱形斜纹”选项,则产生由32根经纱和32根纬纱的菱形斜纹组织模型。
图10 菱形斜纹组织三维模型示意图Fig.10 Scheme of 3-D model of diamond twill weave
上述实例表明,在原理上,运用MAXScript语言构造SplineShape类对象实现机织物结构三维建模和应用Open GL在Visual C++条件下编制程序实现纱线三维模拟[4]及变截面纱线模拟机织物的方式,都是基于织物几何结构相关系建立纱线和织物的三维模型。应用Open GL以Visual C++编程方式,可通过构建的变截面的纱线三维模型[5]增加真实感,而MAXScript语言可通过对SplineShape对象属性的调整来实现这个过程。此外,MAXScript语言的卷展栏功能在参数输入界面设计及机织物结构的参数化三维建模方面更为方便。
3 结束语
1)运用机织物结构相理论,提出按组织点及相邻组织点的中点布置纱线轴线型值点的原则,并建立了型值点数量和完全组织经纬纱数的关系。
2)以第5结构相理论,建立了纱线轴线型值点坐标与纱线直径及纱线间距等机织物几何参数的关系,其中型值点的x,y坐标在xoy面上按等间距网格状分布,而z坐标则根据型值点对应纱线轴线位置取值。
3)开发了相应的MAXScript程序,实现各根经纬纱线型值点三维坐标的自动计算,并通过构造SplineShape类对象并调整其属性,实现了机织物结构的三维建模。
4)本文方法主要针对单层机织物结构的三维建模,对于多层接结、正交及角联锁等三维机织物结构三维建模方面的应用有待进一步拓展。
FZXB