Projects/Liberty/Appendix 2

From KDE Community Wiki

Appendix 2 - Open File Format for Embroidery

Standards

It is proposed that an open format be made available to allow the interchange of embroidery designs.

XML has the potential to be presented in various formats, a web-site could store one file and provide downloads in various embroidery machine formats, as well as, human usable representation of the design.

The document is designed for both embroidery pattern interchange and embroidery design.

Embroidery Pattern Interchange

Embroidery Pattern Interchange has to provide:

  • information for the user - to allow them to identify and evaluate the pattern
  • information for the machine - to allow it to stitch the pattern


The user information often includes:

  • size of the embroidery or hoop in terms of width and height in mm or inches
  • the time taken in terms of he total number of stitches
  • the number of thread changes
  • list of thread colours and lengths used
  • picture of final embroidery
  • other metadata, such as name, modification date and author


The machine information might include:

  • suitable hoop specification
  • hoop centre and start point
  • fabric and needle type
  • bobbin thread
  • thread colour list
  • thread cut and tie-off
  • stitch path

Embroidery Design

The user manipulates elements of the design, creating and editing areas of colour

Document Structure - Machine Oriented

pattern

hoop
thread
stitch-run

The pattern element is a container for the other elements. It has attributes for width and height. If no hoop elements are provided, it assumes the role of a hoop.

The hoop element helps divide the design into machine manageable portions.

The thread element can name pre-define a thread and contain no stitch-run instructions, or provide thread information for the stitch-run instructions.

Document Structure - Person Oriented

Like a stage play, there is scenery: backdrop and wings, props, backstage, actors, etc.

embroidery

character
area
stitch-run

The embroidery element is a container for the whole design, it has attributes to describe the overall size, backing material, link to the image being digitized; it contains character elements.

The character element defines a human manipulatable region, it provides attributes to give it a name, and may have a bounding rectangle or polygon and which hoop it belongs to, it contains area elements. An attribute could control in which representations this attribute appears, to allow for versions, scrap-book, printing aids, etc.

The area element defines a colour and stitch size and direction/pattern (of one thread), this allows for scaling over a large range. It may have attributes for colour, 2D transformation, and bounding polygon. There may be a stage during pattern import where the area is defined by the stitches it contains.

The stitch-run element is for easier pattern import/export, a bridge between machine pattern and human design, but it also allows the human user to manipulate stitches. It contains a (list of) polyline(s) to record the stitching path.