计算机系统应用  2018, Vol. 27 Issue (6): 171-177   PDF    
电子花样机花样缝纫点生成算法
邢毓华, 巩少峰     
西安理工大学 自动化与信息工程学院, 西安 710048
摘要:在解析出AUTOCAD、COREDRAW和AI等绘图软件所制作的花样图案数据的基础上, 设计并实现了花样图案数据的线转点算法, 非闭合图形首尾倒缝和缩缝、闭合图形加固缝等定制算法, 研究并提出了花样图案数据的拐点单侧减速的控制算法. 测试结果表明, 该算法可以高效、稳定地完成花样图案关键点数据到花样缝纫点数据的转化. 目前, 该算法已在电子花样机打版软件“智慧打版软件”中得到应用.
关键词: 电子花样机    花样缝纫点    倒缝缩缝    加固缝    拐点减速    
Pattern Sewing Point Generation Algorithm for Intelligent Pattern Sewing Machine
XING Yu-Hua, GONG Shao-Feng     
College of Automation and Information Engineering, Xi’an University of Technology, Xi’an 710048, China
Abstract: On the basis of analyzing the pattern data produced by the AutoCAD, CorelDRAW, and AI drawing software, the line turning point algorithm for pattern data, and reversing sewing and contracting sewing for non closed graph, and reinforcing sewing for the closed graph and the other customized algorithm were designed and implemented. The control algorithm of unilateral inflection point deceleration for the pattern data was studied and put forward. Test results show that the algorithm can efficiently and stably complete transformation from key point data of pattern pattern to pattern sewing point data. At present, this algorithm has been applied in pattern sewing machine software " intelligent software”.
Key words: pattern sewing machine     pattern sewing point     reverse sewing contract sewing     reinforce sewing     inflection point deceleration    

传统的缝制设备在缝制服装过程中, 要想缝制出好看的款式和花型, 操作者的熟练程度是非常重要的, 产品质量很难得到保证且生产效率低下, 已经无法适应当今市场发展的需要, 这也就为智能工业缝制设备行业的发展提供了良好的契机. 随着社会经济和科技水平的不断发展, 为提高服装、箱包、鞋帽等产品的质量和生产效率, 我国国内企业对可靠、高效地缝制设备的需求逐年递增[1].

对于企业来讲, 可靠、高效地的缝制自动化设备更具吸引力. 众所周知, 花样图案的质量是衡量电子花样机好坏最重要的因素之一, 而花样图案的好坏也将直接影响缝制产品的质量. 所以设计出一款便捷、高效的花样机打版软件对于企业提高产品竞争力非常重要[25].

该文在解析出AUTOCAD、COREDRAW和AI等绘图软件所制作的花样图案数据的基础上, 主要设计并实现了花样图案数据的线转点, 非闭合图形首尾倒缝和缩缝, 闭合图形加固缝等定制算法, 重点研究并提出了花样图案数据的拐点单侧减速的控制算法. 而且, 该算法已在电子花样机打版软件“智慧打版软件”中得到应用.

1 花样图案关键点数据提取

花样图案关键点数据提取是花样缝纫点生成的基础, 专业绘图软件AUTOCAD、COREDRAW和AI等绘制的花样图形有时会包含很多信息, 比如AUTOCAD生成的PLT文件, PLT文件是由很多的“命令”和“值”组成的“数据对”构造而成, 这里的命令指“HPGL图形语言”, 指定其后的值的类型和用途. 每个命令和值是单独一行. 这里需要提取的“值”就是构成花样图形的所有有效坐标数据.

花样图案关键点数据提取, 需要熟悉相应文件格式, 了解文件格式中每个特定字符、命令和值代表的不同含义, 找出构成图形的有效关键点数据.

1.1 数据解析说明

AUTOCAD、COREDRAW和AI等绘图软件所制作的图形, 包括PLT、DXF和AI等常用格式的文件, PLT和DXF文件结构类似, 都是由很多的“命令”和“值”组成的“数据对”构造而成, 只需解析出相应的包含构成花样图形坐标数据“数据对”, 从而提取出构成图形的所有关键点数据. AI文件整体结构类似于PDF结构, 其中AI的文件内容保存在AIPrivateData所对应的Obj中, 其中Obj是AI文件结构中的父对象, AIPrivateData是子对象, 只需解析出AIPrivateData所对应的Obj中的数据, 从而提取出构成图形的所有关键点数据[6]. 文件解析流程如图1所示.

图 1 文件解析流程

1.2 保存数据

为了缝纫出整个花样图案的轨迹, 首先需要根据相应的数据结构存储构成花样图案的所有关键点. 为了逻辑清晰、方便理解, 应用中采用点构成线, 线构成图形, 图形构成图层, 所有图层构成完整图案的数据结构; 由于花样图案关键点数量不确定且需要随机访问花样关键点的情况, 因此, 本文主要采用C++标准模板库中的vector容器存储图形数据[7]. 由于vector作用相当于一个数据队列, 因此把这个关键点数据结构称为关键点队列.

实现上, 关键点用这样一个结构表示: _Key_Point <X, Y>, 其中_Key_Point代表关键点, X, Y为关键点坐标值.

线, 即每个单一图形. 用这样一个结构表示: _Line <vector<_Key_Point>, _KeyLeftTop, _KeyRightBottom >, 其中_Line代表线, vector<_Key_Point>是构成线的关键点队列, KeyLeftTop是线的左顶点, KeyRightBottom是线的右底点.

图层, 即一个或者多个图形构成一个图层. 用这样一个结构体表示: _Layer < vector<_Line>, _KeyLeftTop, _KeyRightBottom>, 其中_Layer代表图层, vector<_Line>是构成图层的线型队列, KeyLeftTop是图层的左顶点, KeyRightBottom是图层的右底点.

整图, 即一个或者多个图层构成一个整图. 用这样一个结构体表示: _Image < vector<_Layer >, _KeyLeftTop, _KeyRightBottom>, 其中_Image代表整图, vector<_Layer>是构成整图的图层队列, KeyLeftTop是整图的左顶点, KeyRightBottom是整图的右底点.

如上数据结构所述, 最终解析出的所有关键点数据保存在_Image结构变量中, 其中的队列vector<_Layer>存储着所有图层信息.

2 花样缝纫点生成算法及实现

花样图案关键点数据生成花样缝纫点数据[813], 需经过线转点、非闭合图形首尾倒缝和缩缝, 闭合图形加固缝以及拐点单侧减速控制等算法处理. 具体流程如下:

步骤1. 线转点, 实现花样图案关键点数据生成缝纫点数据. 线转点是实现花样缝纫点数据生成的关键;

步骤2. 判断线型是闭合图形还是非闭合图形;

步骤3. 若是闭合图形, 实现加固缝; 若是非闭合图形, 实现倒缝、缩缝;

步骤4. 拐点减速控制;

步骤5. 回到步骤2, 循环判断所有线型.

整个过程算法流程图如图2所示.

图 2 花样缝纫点生成流程

2.1 线转点算法

关键点是一段线型生成所必须的点, 是用户解析出的专业绘图软件所绘图案的有效数据点, 例如直线的起点和终点, 折线的起点、终点和中间点, 构成圆的若干关键点等等. 缝纫点是实际缝纫时的坐标点, 是根据用户设置的针距来生成的, 每一段中两个相邻的缝纫点距离必须满足针距.

线转点, 就是用关键点数据生成缝纫点数据. 该算法根据Bresenham直线生成算法[1416], 对于给定起止点的直线遍历每个生成点. 首先, 根据起止点坐标相对位置, 确定直线与X方向角度和计算误差量, 然后再以直线的起点作为第一条针迹的起点开始遍历, 当生成点与针迹起点距离等于设置的针距时, 记录该点生成一个实际的缝纫点, 并将当前点作为下一针迹的起点继续遍历. 最后, 将直线的终点作为最后一个实际缝纫点完成直线数字化.

线转点算法步骤如下:

步骤1. 根据起点和终点计算水平和垂直距离Δx和Δy;

步骤2. 根据Δx和Δy差值, 判断直线斜率. 若Δxy, 则直线与X轴的夹角大于45度; 若Δx≤Δy, 则直线与X轴的夹角小于等于45度;

步骤3. 根据Bresenham直线生成算法, 计算误差量相关参数, $c = 2*\left( {dy - dx} \right)$ $v = 2*dy$ $e = 2*dy - dx$ . 其中dxdy分别为水平和垂直方向步进量;

步骤4. 计算X和Y方向步进量. 终点与起点横坐标之差大于0, X方向步进量为1; 否则, X方向步进量为–1, 同理, 终点与起点纵坐标之差大于0, Y方向步进量为1; 否则, Y方向步进量为–1;

步骤5. 根据直线与X轴的夹角分情况计算当前点坐标. 当直线与X轴的夹角大于45度, 当前点xy值分别为: x=y, $y = x + dx$ ; 当直线与X轴的夹角小于等于45度, 当前点xy值分别为: $x = x + dx$ , y不变;

步骤6. 计算当前点与针迹起点距离. 若等于针迹, 记录当前点并作为下一针迹起点, 回到步骤5; 若不等于针迹, 直接回到步骤5.

算法流程图如图3所示.

2.2 定制算法

定制算法功能是花样缝纫点生成过程中, 根据用户实际需求, 可选择性设置的.

定制算法中包括了非闭合图形首尾倒缝和缩缝、闭合图形加固缝算法. 非闭合图形首尾倒缝和缩缝、闭合图形加固缝其功能都是重复缝制以牢固缝制线型. 非闭合图形首尾倒缝和缩缝用于加固不封闭的线型的两端, 如直线, 自由曲线等; 闭合图形加固缝用于加固封闭线型的尾端, 如圆和折线. 非闭合图形首尾倒缝的参数包括首端加固针数和次数, 尾端加固针数和次数; 非闭合图形缩缝参数是缩缝针数; 闭合图形加固缝参数是加固缝针数. 非闭合图形首尾倒缝和缩缝、闭合图形加固缝实际缝制样式如图4所示, 其中加粗段是重复缝制.

定制算法步骤如下:

步骤1. 判断线型是闭合图形还是非闭合图形;

步骤2. 如若是非闭合图形, 判断是否缩缝;

步骤3. 如若缩缝, 根据设定倒缝针数, 分别计算首尾倒缝累计距离. 重新计算首尾倒缝针迹处针距, 首尾倒缝针距计算公式如下:

首倒缝针距(d) = 首倒缝累计距离(l)/(设定首倒缝针数 + 缩缝针数)(n)

尾倒缝针距(d) = 尾倒缝累计距离(l)/(设定尾倒缝针数 + 缩缝针数)(n)

根据首尾倒缝针距和首尾倒缝起止点生成新的首尾缝纫点. 根据首尾倒缝次数, 复制新的缝纫点加入线型; 若不缩缝, 根据首尾倒缝针数和次数, 复制缝纫点加入线型;

步骤4. 回到步骤2, 如若是闭合图形, 根据设定加固缝针数, 复制缝纫点加入线型;

步骤5. 回到步骤1, 循环判断所有线型.

图 3 线转点流程

图 4 定制算法实际缝制样式

定制算法流程图如图5所示.

图 5 定制算法流程

2.3 拐点单侧减速的控制算法

在工业缝纫领域中, 单一拐点(花样中有1个直角、锐角或钝角)或者多拐点(花样中有多个直角、锐角和钝角)花样在缝制过程中经常会出现失真、缝纫效率低的问题. 目前多采用拐点两侧缝纫点减速的方法, 即对缝纫花样进入拐点前和拐点后的若干点根据实际情况设置点数进行减速设置.

图6是实际生成的折线45个缝纫点, 在实际缝纫中从序号为1的缝纫点开始缝纫到序号45的缝纫点结束. 在生成所要缝制折线花型的缝纫点时, 我们需要进行拐点减速设置, 若采用拐点两侧缝纫点减速的方法, 设置减速点数量为6点, 设置角度为100, 则其中序号12到17和28到33的缝纫点为设置的减速点. 该算法的特点是对拐点前后的若干缝纫点都需要减速设置, 虽然解决了拐角处图形失真问题, 但这样对拐点前后的缝纫点进行减速设置, 既不高效, 又相对较繁琐, 所以研究高效、简单的拐点减速方法具有实际意义.

图 6 拐点单侧减速控制说明

拐点单侧减速的控制方法, 只对缝纫花样进入拐点前的若干点根据实际情况设置点数进行减速设置, 而拐点后的若干点根据实际情况已无需进行减速设置, 正常缝纫即可. 如上图6, 在生成所要缝制折线花型的缝纫点时, 我们使用拐点单侧减速的控制方法, 这里只需要设置减速点数量为3点(若使用拐点两侧缝纫点减速的方法设置减速点数量为6点), 设置角度为100, 则其中序号13到15和29到31的缝纫点为设置的减速点.

该算法与现有拐点两侧缝纫点减速相比, 同样实现了减少拐点处花样失真; 拐点前单侧缝纫点减速设置的减速缝纫点数量只需之前的一半, 效率成倍增加; 在软件实现上代码量减半, 提高软件运行效率.

拐点单侧减速设置算法步骤如下:

步骤1. 生成所要缝制花型的缝纫点后, 判断是否拐点减速, 若判断结果为否, 则结束无需进行减速设置, 若判断结果为是则进行步骤2;

步骤2. 若判断结果为是则遍历缝纫点, 依次拿出三个点, 判断线型段是否结束, 若判断结果为是, 则结束无需进行减速设置, 若判断结果为否则进行步骤3;

步骤3. 根据3个点计算拐角的角度;

步骤4. 判断拐角度是否小于设置角度, 若判断结果为否则返回步骤2, 若判断结果为是, 则进行步骤5;

步骤5. 根据设置减速点数量, 设置拐点前若干点控制帧为减速.

拐点单侧减速设置算法流程图如图7.

图 7 拐点单侧减速控制流程

3 算法结果分析

文中所设计的花样缝纫点生成算法已经应用于电子花样机打版软件“智慧打版软件”中. 以下通过算法实现效果和模拟缝纫效果对比展开分析.

3.1 算法实现效果

解析打开花样图形如图8所示. 图形关键点数据转化为花样缝纫点数据, 设置如下: 线转点, 针距3 mm; 非闭合图形倒缝、缩缝各3针, 闭合图形加固缝3针; 设置拐点减速角度90, 减速针数3针. 结果如图9. 其中, 直线为非闭合图形, 需进行首尾倒缝和缩缝, 可以看出直线首尾缝纫点比较密集, 中间缝纫点间距正常; 其它图形为闭合图形, 需加固缝3针; 五角星和箭头花样需拐点减速, 其中红色点为设置的拐点减速点, 各拐点处有3个红色减速点.

3.2 模拟缝纫效果对比

同上, 解析打开花样图形如图8所示. 解析图形关键点数据转化为花样缝纫点数据, 设置(1)同4.1节(但取消拐点减速设置, 即取消拐点减速角度90, 减速针数3针设置), 生成缝纫点, 然后模拟缝纫. 模拟缝纫效果如图10; 设置(2)同4.1节, 但拐点减速算法使用拐点两侧缝纫点减速控制算法, 生成缝纫点后模拟缝纫效果如图11; 设置(3)同4.1节, 生成缝纫点后模拟缝制效果如图12.

图 8 解析显示花样图形

图 9 花样缝纫点生成效果图

图 10 拐点未减速设置模拟缝纫效果图

对比可知, 图10中五角星和箭头花样拐角处出现失真, 其中虚线为模拟缝纫时针头的空移; 图11中整个花样图形未出现失真; 图12整个花样图形同样未出现失真.

综上所述, 该文所述算法较好的应用在了实际软件中. 特别是文中研究及设计的拐点单侧减速控制算法, 与现有拐点两侧缝纫点减速控制算法相比, 同样实现了减少拐点处花样失真; 而且设置的减速缝纫点数量只需之前的一半, 效率显著增加; 在软件实现上代码量减半, 提高软件运行效率.

图 11 拐点两侧减速设置模拟缝纫效果图

图 12 拐点单侧减速设置模拟缝纫效果图

4 结束语

随着嵌入式技术的不断发展, 电子花样机已经成为新一代智能缝制设备的典型代表, 应用越来越广泛. 生成花样缝纫点是电子花样机打版软件的一个最重要的功能, 是实现生成缝纫加工文件的基础. 根据实际应用表明, 文中提出的花样图案关键点数据转化为花样缝纫点数据算法对花样打版软件有一定应用价值.

参考文献
[1]
赵重庆, 张凯龙, 周兴社, 等. 新型保真花样格式优化与多样式缝制控制. 计算机技术与发展, 2010, 20(2): 137-140.
[2]
章浩. 电子花样机软件系统的研究与开发[硕士学位论文]. 南京: 南京理工大学, 2013.
[3]
陆洲, 张凯龙, 姚远, 等. 电子花样机花型样式生成算法设计与实现. 计算机技术与发展, 2011, 21(8): 18-21.
[4]
Jawed MK, Reis PM. Pattern morphology in the elastic sewing machine. Extreme Mechanics Letters, 2014(1): 76-82.
[5]
侯金良. 电子花样机嵌入式平台搭建与花样处理技术的研究及实现[硕士学位论文]. 南京: 南京理工大学, 2012.
[6]
廖璇. 花样图案路径提取及优化方法研究[硕士学位论文]. 绵阳: 西南科技大学, 2015.
[7]
但永平, 张蕾, 张国涛, 等. 基于VC++的DXF数据文件接口程序设计. 电子设计工程, 2012, 20(23): 70-74. DOI:10.3969/j.issn.1674-6236.2012.23.022
[8]
曹辉. 电子花样机花样生成算法的研究及控制软件设计[硕士学位论文]. 南京: 南京理工大学, 2012.
[9]
梁克, 张凯龙, 周兴社. 智能花样缝制设备的主流花样格式分析与仿真. 计算机工程, 2006, 32(3): 259-260, 263.
[10]
Gholmy SHE, Hawary IAE. The application of the secant’s equation to the sewing machine needle. Alexandria Engineering Journal, 2015, 54(2): 141-145. DOI:10.1016/j.aej.2015.03.005
[11]
Korycki R, Krasowska R. Soft computing applications for sewing machines. Majumdar A. Soft Computing in Textile Engineering. Cambridge: Woodhead Publishing Limited, 2011. 294–328.
[12]
席晓东. 新型电子花样机嵌入式软件系统的研究与开发[硕士学位论文]. 西安: 西北工业大学, 2005.
[13]
虞洋, 杨玉龙, 李海洲, 等. 基于嵌入式系统的电脑花样机控制系统的研究和开发. 机电工程技术, 2013, 42(10): 25-28. DOI:10.3969/j.issn.1009-9492.2013.10.008
[14]
张秀国, 刘博, 周丽平. 基于MFC的直线绘制算法分析与实现. 电子技术与软件工程, 2015(19): 94.
[15]
卫洪春. 直线的Bresenham并行绘制算法. 计算机系统应用, 2017, 26(8): 180-183. DOI:10.15888/j.cnki.csa.005958
[16]
李竹林, 邓石冬. 一种改进的等分迭代Bresenham直线生成算法. 电子设计工程, 2015, 23(7): 61-63.