基于AutoLISP的男西服样板自动化生成
2022-04-07王成佐朱江龙余俊雅肖爱民
王成佐,朱江龙,余俊雅,肖爱民
(新疆大学 纺织与服装学院,新疆 乌鲁木齐 830046)
在消费升级背景下[1-2],人们对制式服装的个性化需求不断上升,预示着服装大批量个性化定制成为必定的趋势[3],而实现个性化定制的关键因素之一在于服装纸样智能制版。
前人在服装纸样智能制版做了相关研究[4-5],大多是基于AutoCAD参数化功能进行服装纸样的参数化智能生成,提出几何约束、参数约束和单圆弧、双圆弧以及多圆弧拟合纸样曲线等方法[6-7]。从起初简单的几何约束到多圆弧模拟纸样曲线,以及多采用参数约束的探索历程[8-9],在一定程度上实现且改进了个性化样板的自动生成。但基于AutoCAD参数化有几点不可避免的缺点:①参数变量的输入不能和外部文件进行联动;②图形基点参数无法储存;③在某些服装纸样设计部位无法做到自动化的设计;④对于模型建立大多仅限于标准尺寸规则的变化,较为单一;⑤无法较好地实现人机交互。
本文以男西服结构为例,设定尺寸变更规则[10],基于AutoLISP设计出一款X型男西服纸样的自动化生成模型;考虑西服领型驳口及领嘴的设计需求,提出“半自动化”方法设定相应的领型设计规则;并加入特体变更规则根据体型特征进行相应自动化修改[11],最大化改善服装的合体性能。该模型可帮助使用者简单快捷地完成男西服纸样的制作,优化基于AutoCAD参数化制版的缺陷,满足个性化定制的制版需求,扩展服装智能制版途径。
1 X型男西服参数化结构模型
1.1 AutoLISP编辑器功能
AutoLISP是AutoCAD内嵌的二次开发环境,所涉及的程序语言为LISP语言,通过计算机语言对AutoCAD进行二次开发[12],能够改善工程师的工作环境,在建筑、机械等其它领域得到广泛应用[13]。AutoLISP内有数学运算功能函数、几何运算函数、逻辑循环运算函数、对话框相应函数、CAD调用命令函数、列表和文件处理函数、对象和选择集处理函数等。
运用相应的数学运算功能函数和几何运算设定男西服相关尺寸的变更规则、定义各基点的位置以及储存,能解决AutoCAD参数化功能中的卡死现象,例如参数由a→0后再由0→a时出现的错乱现象,常用的有加减乘除、polar、distance、angle等函数。
逻辑函数、列表和文件处理函数以及对话框相应函数用于外部数据资料的读取,对话框的建立和纸样的绘制,能直观地实现人机良性交互,更加方便快捷地绘制服装纸样。
采用CAD的调用命令函数绘制,主要有command、setvar等命令函数,结合CAD中相应的图形绘制命令实现纸样的图形绘制。如平移、旋转、复制、修改等命令的调用结合对象处理函数,实现对纸样细微结构的自动化调整。
总之,通过各种函数的交互式运用来建立男西服制版模型,根据相应的尺寸规格可实现纸样的自动化生成,并能进行细微调整及特体修改。
1.2 X型男西服参数化模型构建
基于LISP设计语言,从男西服尺寸参数设定和结构线参数化2点构建参数化模型,生成图1所示的X型男西服结构图。
单位:cm。 图1 X型男西服结构图Fig.1 Structure diagram of X-type men′s suit
1.2.1 男西服结构尺寸参数设定
基于LISP设计语言的样板自动化生成涉及结构参数主要分为体型参数、设计参数以及联合参数。如图1为例,该图是基于AutoLISP智能生成的纸样。
①体型参数设定:即个性化样板尺寸变更规则建立,其主要尺寸为身长、衣长、背长、袖长、袖窿深、背宽、胸宽袖山高、袖窿弧长等,而通过人体数据的处理、分析与挖掘,发现上半身的其他不易获取的尺寸与易获取的身高和胸围存在一定线性关系(本文重点在于基于AutoLISP在服装自动化制版的研究,具体分析处理过程不作呈现),考虑到需要适用于工业大规模个性化制版(顾客最便于提供的是身高和胸围2个尺寸),因此以身高和胸围作为自变量来表达其他尺寸,以此作为尺寸参数设定。例如胸宽为B/6+4、背宽为B/6+4.5等。部分参数设定如表1所示。
②设计参数设定:基于人体工效学和服装设计原理,考虑到服装舒适性和观赏性而设定的参数,例如:放松量、省量的大小和分布、门襟尺寸、口袋尺寸、驳口尺寸等。这一类尺寸一部分受体型参数约束,另一部分根据设计师需求设定。
③联合参数:指样板参数化设计过程中利用体型参数和设计参数根据样板设计原理进行数学计算得来,例如:辅助点的设定、辅助线的长度,衣领倒伏量等关键局部尺寸。
表1 部分参数设定Tab.1 Part of parameter settings cm
1.2.2 男西服结构线参数化
根据男西服纸样设计原理,结合结构尺寸参数设定原理来描述男西服纸样几何图形,即对男西服纸样中关键点和线的参数化。
①关键点的参数化:在结构尺寸参数的基础上,基于AutoLISP对所涉关键点采用极坐标方式存储。
②线的参数化:分为直线和曲线,其中直线的约束实际是对2端关键点的设定过程。而曲线(袖窿弧线和摆尾线等)的参数化较为复杂,本文采用双圆弧和多圆弧的方法拟合曲线[5-7],达到曲线参数化的效果。以图2前袖窿弧线参数化示意为例,图2(a)所示为前袖窿前片袖窿弧线FAH示意图,由4段相切圆弧拟合而成,图2(b)是对应2(a)图中的袖窿底部的双圆弧FAH1,其中O点为∠BAC和∠ACB的角平分线相交点,圆弧AO与圆弧OC相切于点O,并分别相切于直线AB和BC,由此可知,双圆弧模拟法的重点在于设定A、O、C3个基点。同理,其他圆弧的模拟(如摆尾、袖山弧线等)原理相似。
图2 前袖窿弧线参数化示意Fig.2 Parameterization diagram of Armhole arc. (a) Front armhole arc FAH;(b) Partial double arc of Front armhole arc FAH1
2 基于AutoLISP的样板自动化生成
在X型男西服参数化结构模型的基础上,根据LISP设计语言进行自动生成模型的建立,其智能化生成模型实验过程如图3所示。
图3 智能化生成模型实验过程Fig.3 Experimental process of intelligent generation model
2.1 功能设定
对X型男西服的智能化样板生成模型设定以下4个功能:①根据尺寸变更规则自动生成X型男西服结构图及样板;②根据体型特征对样板进行局部调整修改;③采用半自动化方法实现领型部位的设计;④对省量、口袋、身宽增量等细微局部结构尺寸进行调节。
2.2 对话框及外部文件交互式设定
根据功能设定设计对话框和外部文件导入程序,对话框如图4所示(每个属性框对应可变参数):①尺寸规格栏:身高、胸围等基本参数的输入;②特殊体型栏:鸡胸体、挺胸体、驼背体等的选择选项;③局部尺寸修改处理栏:可根据需求对纸样中相应局部进行调整,例如省量、身宽增量、门襟等(本文没有这一部分的调整示意图)。外部文件导入支持excel或者文本数据的导入,无需手动二次输入对话框。
注:对话框尺寸规格中的袖长和袖口为默认值,可在这里根据设计需求手动更改。 图4 对话框示意图Fig.4 Schematic diagram of dialog
2.3 男西服样板自动化程序设定
从功能设定和对话框的设定可知目的在于实现标准体基本样板、特殊体型样板、领型造型设计及局部调整的自动化,因此后续将在此基础上展开,分3个步骤实验:①基点设定:以标准体为原型,在参数化结构模型的基础上进行基点设定,即尺寸变更规则建立的过程;②半自动化设定:手动进行基点选择,介于基点设定与绘制命令之间,实现领型的半自动化设计,即领型设计规则建立的过程;③绘制程序及修改设定:在基点设定基础上调用绘制命令初步实现男西服样板的自动化生成,然后加入修改规则实现基于特殊体型的自动修改,即特体修改规则建立的过程。
2.3.1 基点设定
由于男西服结构需设定的基点较多,所以本节与AutoCAD参数化功能进行对比,以男西服局部图示为例的方法,分别介绍常用的功能函数。
后片部分示意图如图5所示,以往样板参数化自动生成需利用AutoCAD参数化功能对前颈尖点FNP和肩横点HP进行约束,首先采用垂直约束功能约束直线L1FNP和直线FNPHP,然后采用参数约束FNP、HP2点的距离。该方法虽然约束了2点之间的方向和距离关系,但无法对FNP、HP2点进行有效存储,所以在程序运行过程中易出现错乱现象。
图5 后片部分示意图Fig.5 Schematic diagram of the back part
而基于AutoLISP参数化的基点设定能够使各基点得以存储,避免这种错乱现象,常用的函数有,polar、distance、angle、inters函数等,以下分别介绍其在本文设定过程中的部分运用。
Polar函数以极坐标方式定义2点之间的位置关系,使基点之间不会出现错乱现象,如图5中的FNP和HP2点,通过尺寸关系可知相距一个肩横线宽距离T,且HP在FNP逆时针3π/2方向(弧度制),这时polar函数的调用可定义2点的距离和方向角,以此定义2点。
Distance函数可以获取某2点之间的距离,例如绘制前肩斜线的时候要参考后肩斜线长BNL(见图5),这在以往的AutoCAD参数化中需要三角函数计算出后肩斜线的长度,若使用(distanceSNPBSP)函数可直接获取2点间距,不需进行复杂计算。圆弧长度的获取也可采取类似函数设定直接获取。
Angle函数可获取2点之间的角度值,与polar、distance、inters等结合可解决一些复杂基点设定。例如在进行双圆弧或者多圆弧的模拟中,如图2(b)所示,基于双圆弧特点,重点在于设定O(角平分线交点)点的坐标。其基点设定流程如下:
① Angle函数获取∠ACB和∠CAB的角度值;
②基于角平分线原理和CAD角度定义规律(弧度制)计算O点相对A、C2点的方向角;
③使用Polar函数设定直线AO、CO上的辅助点A1、C1;
④使用Inters函数(setqO(intersCC1AA1 nil)获取角平分线交点O;
⑤最后调用多段线命令绘制双圆弧AOC。
通过以上介绍的方法,基于X型男西服参数化结构模型的参数关系,使用以上常用函数能有效解决模型其它基点的设定,对结构图中的每个关键基点进行定义和存储,构建尺寸变更规则,为绘制命令和修改命令提供前提条件。
2.3.2 半自动化设定
半自动化设定实际是手动选取基点的过程,针对某些受设计因素影响而不考虑受参数约束的基点。前片领部示意图如图6所示,由于平驳领的零嘴大小、串口线和驳口止点根据设计需求可进行改变,所以涉及的基点不会在2.3.1基点设定步骤中设定。
图6 前片领部示意图Fig.6 Schematic diagram of front collar
采取“半自动化”的方法确定这类基点,即该模型在程序自动运行过程中返回到基点设定,程序提示操作者执行基点选取,然后程序继续运行。在程序执行领子绘制时提示使用者手动在搭门襟线FL上指定驳口线止点P1、串口线的基点P2和P3、决定零嘴形状的P4和P5点,手动设定基点后返回自动绘制程序,以此设定领型设计(款式)规则,半自动绘制领子流程如图7所示。
图7 半自动绘制领子流程图Fig.7 Flow chart of semi-automatic drawing of collar
基点设定和绘制程序之间反复循环手动执行相关命令就是“半自动化”方法,因为服装版型存在设计变化以及一些缝合对位点(如上袖时在袖窿弧线和袖山弧线上的关键对位点)等不完全受参数约束影响的部位,因此该方法可应用到服装版型自动化生成的其它部位,使服装版型的自动化生成更加灵活便捷。
2.3.3 绘制程序及修改设定
在完成以上步骤后执行绘制命名,该部分主要分以下2个步骤完成:①使用Command等命令调用相关的绘制命令(如Line直线命令、ARC曲线命令、Pline多段线命令)进行轮廓线的绘制,绘制完成后得到标准体X型男西服结构图和样板图;②根据体型特征加入特体修改规则执行图形的修改调整,得到相应体型的结构图和样板图。具体方法如下:
结构图轮廓线在基点设点前提下使用Command命令调用绘图工具可直接绘制出标准男西服结构图,所以不作详细介绍。较复杂的是针对特殊体型修改的实现,因此以下主要介绍基于特征体版型的修改如何实现(其中也涉及Command函数的运用)。
根据挺胸体、鸡胸体、凸肚体、溜肩体和驼背体的的体型特征,其纸样的修改如图8特体修改点示意图所示,分别在T1、T2、T3、T4、T5处进行相应变化。对应特体修改规则如表2所示。
图8 特体修改点示意图Fig.8 Schematic diagram of feature modification points
表2 特体修改规则Tab.2 Special body modification rules cm
图9为挺胸体前片处理示意图,根据挺胸体与标准体特点对比分析可知,挺胸体前衣身需加长,颈侧点向后移动,所以在修改时可在前片胸围线处向上展开0.8 cm左右,即S3、S2的垂直距离为0.8 cm,实现前衣身增加、颈侧点向后移动。具体实现步骤如下:
①捕捉胸围线与驳头外口线的交点S2,并做辅助线S1S2,如(Command “line” “S1S2”);
②以辅助线S1S2为分割线,把衣片分割为上下2部分,并加入不同的选择集ss1和ss2,其中ss1是包含部分驳头外口线、串口线、FNL和FAH在内的选择集;
③设定dd为S3、S2的垂直距离的变量参数,并通过程序获取S1、S2的距离dt;
④通过Atan(dd/dt)得到展开角∠S1的弧度值r,并转化为角度值;
⑤最后通过Rotate函数实现选择集ss1的旋转,旋转度为r,即实现挺胸体样板修改。
图9 挺胸体前片处理示意图Fig.9 Schematic diagram of pretreatment of chest protrusion
同理,基于LISP设计语言设定其他特殊体型样板的修改规则,最终实现特殊体型样板的自动生成。
3 自动化生成程序调试
3.1 自动生成结构图和样板
自动化模型建立完成后,在对话框中(见图4)输入身高、胸围以及其他局部调整参数等,CAD可自动生成相应的结构图(见图1)或样板,样板图如图10所示(图为面料样板)。
图10 样板示意图Fig.10 Schematic diagram of the model
3.2 自动修改调整示意
X型男西服自动化绘制程序一旦建立,可在对话框中设定相应的参数得到对应西服纸样。以下将以调整X型男西服参数化模型中的尺寸参数、标准体与鸡胸体生成各自对应的男西服纸样为例,对模型进行对比验证。
方案1:保持其他参数不变,改变身高、胸围等规格参数,从而自动化生成相应的模型纸样,相应对比如图11所示(衣身图)所示,参数化调整数据如表3所示。
图11 3种规格参数生成图展示Fig.11 Three kinds of specification parameter generation diagram display
表3 规格参数调整数据表
方案2:保持其他参数不变,分别在对话框中选取标准体和鸡胸体,从而自动化生成相应的模型纸样,相应对比示例如图12,鸡胸体在T1、T3、T4、T5处通过一定的旋转度修改。
图12 对比示例Fig.12 Comparative Example. (a)Standard body; (b)Chicken breast
4 结束语
本文分析X型男西服结构设计尺寸变更规则,并加入特体修改规则和“半自动化”的领型设计规则,从而建立男西服结构参数化模型,最后通过LISP设计语言成功地实现了X型男西服结构图和样板的智能化生成。
基于LISP设计语言的男西服版型智能化生成系统更加灵活、方便、高效,有助于提高大规模个性化定制的效率和质量,同时最大化满足消费者的个性化需求。该技术方法可运用到其他服装的制版中,为服装企业大批量个性化定制的实现提供一定的技术支持。
同时本实验也存在一定的不足之处。由于本文重点探究基于AutoLISP实现男西服样板的自动化生成,所以在男西服结构中各尺寸与身高和胸围的线性关系未作详细分析。若将区域性的人体数据的分析处理结果与本技术相结合,将会相得益彰。