libpes
is a portable C library for encoding, decoding and transcoding the PES and SVG based machine embroidery formats. The PES format is a machine embroidery file format for Brother Industries and Bernina International series of embroidery machines, among others. PES files contain sewing coordinates for stitches and corresponding thread colors.
pes-info
prints out internal PES data structures for a given PES file.pes-to-svg-emb
converts a PES file to a corresponding SVG embroidery file.svg-emb-to-pes
is the reverse ofpes-to-svg-emb
and as such the conversion is limited to the SVG embroidery format as a subset of SVG generated bypes-to-svg-emb
.
Check the PES format wiki.
libpes
implements a prototype SVG embroidery format with the intention of being a vendor neutral format that is more convenient to display, generate and modify than PES or other proprietary formats. The idea more specifically is to represent machine embroidery instructions in the SVG format, as opposed to general rendering of SVG. As of this particular implementation only path
elements are supported with mandatory stroke
and d
attributes, as shown in the example below.
examples/envelope.svg is an example of SVG embroidery. It contains a single path
element with seven (x,y) coordinate pairs forming a shape of an envelope:
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="8.0mm" height="5.0mm" version="1.1"
viewBox="0.0 0.0 8.0 5.0" xmlns="http://www.w3.org/2000/svg">
<path stroke="#000000" fill="none" stroke-width="0.4"
d="M 8.0 0.0 L 0.0 0.0 L 0.0 5.0 L 8.0 5.0
L 8.0 0.0 L 4.0 2.0 L 0.0 0.0" />
</svg>
See the LICENCE file.