DST/DSB 绣花机花样文件分析

一.绣花机花样文件

绣花机花样文件指的驱动透花机绣出指定图案的文件定义文件,
不同产家有不同格式,其中用得较多是
.dst 日本田岛格式 (Tajima Embroidery Forma)
.dsb 百灵达格式 (Barudan Embroidery Format)
.dsz (ZSK USA Embroidery Format)
两者大同小异,以下统一分析,花样文件包含是一系列的绣花机动作的的集合(比如位移,换色,剪线)等,最终形成一个图案.因此我们可以把花样文件看是一个特殊图像文件,可以在屏幕上进行预览.

参考文档
https://en.wikipedia.org/wiki/Embroidermodder
http://www.docin.com/p-1394310460.html
http://wiki.inkscape.org/wiki/index.php/Embroidery_file_formats

这里基于Qt有一个开源绣花机文件处理库
https://github.com/Embroidermodder/libembroidery
Qt实现
https://github.com/Embroidermodder/Embroidermodder
iOS版实现
https://github.com/Embroidermodder/iMobileViewer
Android实现
https://github.com/Embroidermodder/MobileViewer

二.文件格式

一个完整的花样分为三大块,文件头,文件内容,结尾符号(0x1a)

2.1 文件头

文件头固定为512大小,但是有可变内容,因此不一定用完这么多字节,因此以0x1a之前的字符前才是有效内容,后面为填充字符

DST/DSB 绣花机花样文件分析_第1张图片
文件头

2.2 DSB文件体

每三字节为一条命令,格式为 c x y
c为控制代码, x,y为水平和垂直方向位移量.

控制码如下定义
DSB控制码

代码 名称 含义
0x80 向右上方运动 Y+,X+ ,即第一象限
0xA0 向左上方运动 Y-,X+ ,即第二象限
0xC0 向左下方运动 Y-,X- ,即第三象限
0xE0 向右下方运动 Y+,X- ,即第四象限
0x81 向右上方跳针 Y+,X+ ,即第一象限
0xA1 向左上方跳针 Y-,X+ ,即第二象限
0xC1 向左下方跳针 Y-,X- ,即第三象限
0xE1 向右下方跳针 Y+,X- ,即第四象限
0xE9 换色 注意指定颜色在运行指定
0xEA 换色 注意指定颜色在运行指定
0xEB 换色 注意指定颜色在运行指定
0xEC 换色 注意指定颜色在运行指定
0xED 换色 注意指定颜色在运行指定
0xEE 换色 注意指定颜色在运行指定
0xEF 换色 注意指定颜色在运行指定
0xC8 停针
0xE7 剪线
0xF8 结束针 固定为 F8 00 00

注意换色的颜色并没有在dst/dsb文件中定义,而是运行时设定,因此需要额外工作才能指定颜色,在dst/dsb中,换色动作是由如下三条指令指定的.

跳针代码 00 00
换色代码 00 00
跳针代码 00 00

2.3 DST控制码

代码 名称 含义
0x1A Y向为长针
0x1B X向为长针
0x1C XY向是长针
0x1D Y向是长跳针
0x1E X向是长跳
0x1F XY向是长跳针
0x81 跳针
0x89 换色 注意指定颜色在运行指定
0x8A 换色 注意指定颜色在运行指定
0x8B 换色 注意指定颜色在运行指定
0x8C 换色 注意指定颜色在运行指定
0x8D 换色 注意指定颜色在运行指定
0x8E 换色 注意指定颜色在运行指定
0x8F 换色 注意指定颜色在运行指定
0x90 换色 注意指定颜色在运行指定
0x91 换色 注意指定颜色在运行指定
0x92 换色 注意指定颜色在运行指定
0x06 金片开始
0x07 金片结束
0x98 结束针

2.4 文件结束符

一个 0x1A 表示结束

三. 花样文件分析

这是两个花样文件打开.可以看到文件头都是ascii形式,比较好读
每个字段是以固定3-4字符开始,并且位置固定,以0x0D 为结束符,
而且看内容长度也是固定,不足补空格(字符类型补在后面,数字类型补在前面)


DST/DSB 绣花机花样文件分析_第2张图片
image.png

具体分析文件头

image.png
  • LA:花样文件名称: Sample
  • ST:总针数: 14618
  • CO:换色次数:4
  • +X:最大宽度:614
  • -X:最小宽度:575
  • +Y:最大高度:513
  • -Y:最小高度:304
  • AX:+尾针X坐标 0
  • AY: +尾针Y坐标 0
  • MX:+
  • MY:+
  • PD:******

你可能感兴趣的:(DST/DSB 绣花机花样文件分析)