Embroidery format SPX: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
(Created page with "Spx files are Pfaff machine binary stitch files. All files start with magic numbers 25 73 70 78 25 (%spx%). This is followed in all files analysed with 01 01 01. 08-0B Foll...")
 
No edit summary
Line 1: Line 1:
Spx files are Pfaff machine binary stitch files.
Spx files are Pfaff machine binary stitch files.
----


All files start with magic numbers 25 73 70 78 25 (%spx%).
All files start with magic numbers 25 73 70 78 25 (%spx%).


This is followed in all files analysed with 01 01 01.
01 01 01
---


Section tag 01 01 01.
08-0B Following that we have the remaining number of bytes in the file, in a 4 byte big endian number.  
08-0B Following that we have the remaining number of bytes in the file, in a 4 byte big endian number.  


We then have in the 01 01 01 block 0x50 characters that typically read:
We then have in the 01 01 01 block 0x50 characters that typically read:
00 4E 00 20 00 20 00 20 00 20 00 20 00 20 00 20
* 00 4E 00 20 00 20 00 20 00 20 00 20 00 20 00 20
00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20  
* 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20  
00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20  
* 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20  
00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20  
* 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20  
00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20
* 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20
 
07 01 01
---


We then have 07 01 01.
Section tag 07 01 01.


5F-62 Following that we have the remaining bytes in the file, in a 4 byte big endian number.
5F-62 Following that we have the remaining bytes in the file, in a 4 byte big endian number.


We then have 0x2A character of:
We then have 0x2A character of:
00 01 06 01 01 00 00 00 6D 01 03 E8 00 00 07 01  
* 00 01 06 01 01 00 00 00 6D 01 03 E8 00 00 07 01  
00 01 00 01 00 00 00 00 19 00 00 00 00 00 00 00
* 00 01 00 01 00 00 00 00 19 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
* 00 00 00 00 00 00 00 00 00 00


8C-8F Then a we have the width in micrometers. So 5000 (dec) for a 5mm, and 49900 for a 49.9mm wide design.
* 8C-8F Then a we have the width in micrometers. So 5000 (dec) for a 5mm, and 49900 for a 49.9mm wide design.


90-92 This is followed by a 4 byte big endian number which is twice the width.
* 90-92 This is followed by a 4 byte big endian number which is twice the width.


Followed by some unchanging data:
Followed by some unchanging data:
03 00 00 01 F4 00 00 0F A0 00 00 2E E0 00 00 8C
* 03 00 00 01 F4 00 00 0F A0 00 00 2E E0 00 00 8C
A0 00 00 01 F4 00 00 03 E8 00 00 07 D0 00 00 00
* A0 00 00 01 F4 00 00 03 E8 00 00 07 D0 00 00 00
00
* 00


B4-B7 This is followed by the height in a 4 byte big endian number.
* B4-B7 This is followed by the height in a 4 byte big endian number.


Then we have another bunch of unchanging characters:
Then we have another bunch of unchanging characters:
00 00 EA 60 03 00 00 00 00 00 00 0B B8 00 00 17
* 00 00 EA 60 03 00 00 00 00 00 00 0B B8 00 00 17
70 00 00 23 28 00 00 00 FA 00 00 01 F4 00 00 03
* 70 00 00 23 28 00 00 00 FA 00 00 01 F4 00 00 03
E8 01 05 01 01 00 00 00 1E 00 00 00 00 00 00 00
* E8 01 05 01 01 00 00 00 1E 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 19
* 00 00 00 00 00 00 00 00 00 19


F2-F5 Then the width again in 4 byte big endian.
* F2-F5 Then the width again in 4 byte big endian.
F6-F9 Then the height again in 4 byte big endian.
* F6-F9 Then the height again in 4 byte big endian.


And we finish out the section with:
And we finish out the section with:
00 00 00 00 00 01
* 00 00 00 00 00 01


100-102: We then have the 03 01 01 section.
03 01 01
---
Section starts exactly at 0x100


103-106: Following that we have the remaining bytes in the file, in a 4 byte big endian number.
103-106: Following that we have the remaining bytes in the file, in a 4 byte big endian number.
Line 56: Line 65:
00 00 00 64
00 00 00 64
00 00 00 00
00 00 00 00
02 01 01
---


We then enter section 02 01 01:
We then enter section 02 01 01:
Following that we have the remaining bytes in the file, in a 4 byte big endian number.
* Following that we have the remaining bytes in the file, in a 4 byte big endian number.


This is the stitches section:
This is the stitches section:
All stitches are grouped into 9 bytes. The first two bytes is always 80 2F and the last two are always 80 0F.
* All stitches are grouped into 9 bytes. The first two bytes is always 80 2F and the last two are always 80 0F.
 
80 2F XX XX YY YY CC 80 0F
Where XX XX is 2 bytes of little-endian signed relative coordinate.


CC is usually 00 for stitch. F6 and 0A are also frequently seen values.
* 80 2F XX XX YY YY CC 80 0F
* XX XX is 2 bytes of little-endian signed relative coordinate.
* YY YY is 2 bytes of little-endian signed relative coordinate.
* CC is usually 00, F6 and 0A are also frequently seen values.

Revision as of 16:18, 14 May 2020

Spx files are Pfaff machine binary stitch files.


All files start with magic numbers 25 73 70 78 25 (%spx%).

01 01 01 ---

Section tag 01 01 01. 08-0B Following that we have the remaining number of bytes in the file, in a 4 byte big endian number.

We then have in the 01 01 01 block 0x50 characters that typically read:

  • 00 4E 00 20 00 20 00 20 00 20 00 20 00 20 00 20
  • 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20
  • 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20
  • 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20
  • 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20

07 01 01 ---

Section tag 07 01 01.

5F-62 Following that we have the remaining bytes in the file, in a 4 byte big endian number.

We then have 0x2A character of:

  • 00 01 06 01 01 00 00 00 6D 01 03 E8 00 00 07 01
  • 00 01 00 01 00 00 00 00 19 00 00 00 00 00 00 00
  • 00 00 00 00 00 00 00 00 00 00
  • 8C-8F Then a we have the width in micrometers. So 5000 (dec) for a 5mm, and 49900 for a 49.9mm wide design.
  • 90-92 This is followed by a 4 byte big endian number which is twice the width.

Followed by some unchanging data:

  • 03 00 00 01 F4 00 00 0F A0 00 00 2E E0 00 00 8C
  • A0 00 00 01 F4 00 00 03 E8 00 00 07 D0 00 00 00
  • 00
  • B4-B7 This is followed by the height in a 4 byte big endian number.

Then we have another bunch of unchanging characters:

  • 00 00 EA 60 03 00 00 00 00 00 00 0B B8 00 00 17
  • 70 00 00 23 28 00 00 00 FA 00 00 01 F4 00 00 03
  • E8 01 05 01 01 00 00 00 1E 00 00 00 00 00 00 00
  • 00 00 00 00 00 00 00 00 00 19
  • F2-F5 Then the width again in 4 byte big endian.
  • F6-F9 Then the height again in 4 byte big endian.

And we finish out the section with:

  • 00 00 00 00 00 01

03 01 01 --- Section starts exactly at 0x100

103-106: Following that we have the remaining bytes in the file, in a 4 byte big endian number.

We 4 4-byte big endian numbers conveying some information about size.

00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 00

02 01 01 ---

We then enter section 02 01 01:

  • Following that we have the remaining bytes in the file, in a 4 byte big endian number.

This is the stitches section:

  • All stitches are grouped into 9 bytes. The first two bytes is always 80 2F and the last two are always 80 0F.
  • 80 2F XX XX YY YY CC 80 0F
  • XX XX is 2 bytes of little-endian signed relative coordinate.
  • YY YY is 2 bytes of little-endian signed relative coordinate.
  • CC is usually 00, F6 and 0A are also frequently seen values.