Skip to content
frno7 edited this page Apr 23, 2017 · 10 revisions

Some basic forms are found within many different PES sections.

Geometry

Type Bytes Value Description
extents 16 Extents, the hitbox for the particular object
affine_transform 24 Affine transform

Extents

The distinction between these two copies of the same data is currently unknown.

Type Bytes Value Description
s16 2 Left
s16 2 Top
s16 2 Right
s16 2 Bottom
s16 2 Left position
s16 2 Top position
s16 2 Right position
s16 2 Bottom position

Affine transform

And affine transformation is 9 floating point values, usually stored as 6 (because the other three are always 0, 0, 1). It’s a matrix by which any series of affine geometric operations namely scaling, skewing, and transforming can be performed in a single calculation for any number of points. We should usually just use the identity matrix.

Type Bytes Value Description
f32 4 1.0f (identity) Row 1 column 1, scale X
f32 4 0.0f (identity) Row 2 column 1, skew Y
f32 4 0.0f (identity) Row 1 column 2, skew X
f32 4 1.0f (identity) Row 2 column 2, scale Y
f32 4 0.0f (identity) Row 1 column 3, translation X
f32 4 0.0f (identity) Row 2 column 3, translation Y

Block Description

These are the preamble for most shape forms like CEmbRect and CEmbCirc section and effectively all objects which can be filled shapes with stitches.

Type Bytes Value Description
section 40 Block Geometry, extents and affine transformation
s16 2 Is Open Path?
s16 2 UseOutline
s16 2 Outline Stitch Type, 0 = Zigzag, 1 = run Stitch
s16 2 outline_color_index
s16 2 Zigzag Width
s16 2 Zigzag Density
s16 2 Outline Run Pitch
s16 2 Run Stitch Run Times
s16 2 Triple Stitch Run Pitch
s16 2 Use OutLine Under Sewing.
s16 2 Use Sharp Corners
section ? Motif
s16 2 EStitchOrVStitch?
s16 2 EvStitchTallWidth
s16 2 EvStitchHeight
s16 2 EvStitchPointWidth
s16 2 EVStitchRunTimes
s16 2 EvStitchStrokeTimes
s16 2 EvStitchArrange
s16 2 Use Fill?
s16 2 Fill Type
s16 2 Region Density
s16 2 Use Gradation
short_array 2 × N GradationValues
s16 2 UseAdditionalColorInGradation
s16 2 Gradation Second Color
s16 2 IsStitchDirectionVariable
s16 2 StitchDirection
s16 2 fill color, index of the fill color value.
s16 2 BaseSewingStepPitch
s16 2 BaseSewingStepFrequency
s16 2 BaseSewingStitchType
s16 2 FillHalfStitch
s16 2 useFillAreaUnderSewing
s16 2 FillAreaUnderSewingType, 0 = one direction, 1 = both directions.
s16 2 RunningStitchPath, (comment "half-stitch?")
s16 2 20 ProgrammableFillPatternIndex (comment "20")
s16 2 ProgrammableFillWidth
s16 2 ProgrammableFillHeight
s16 2 ProgrammableFillRowOrColumn
s16 2 ProgrammableFillRowOffset
s16 2 ProgrammableFillColumnOffset
s16 2 ProgrammableFillDirection (comment: "WHERE IS PULL COMP")
s16 2 UseBaseSewing (comment: "Motif section")
s16 2 Pull Compensation
s16 2 0, false (default) UseMotifPattern1
section ? Motif
s16 2 0, false (default) UseMotifPattern2
section ? Motif
s16 2 MotifRowOffset
s16 2 MotifStitchDirection
s16 2 MotifRunPitch
s16 2 pipingStitchDirection
s16 2 pipingStitchDensity
s16 2 pipingStitchRunPitch
s16 2 pipingStitchRunFrequency
s16 2 CrossStitchSizeMeasure, 0 for size, 1 for ct, (comment: CrossStitch section)
s16 2 25 (default) CrossStitchSizeInMM
s16 2 2 (default) CrossStitchTimes
s16 2 20 (default) RadialDensity
s16 2 20 (default) RadialRunPitch
s16 2 RadialCenterX (comment: 961)
s16 2 RadialCenterY (comment: 847)
s16 2 20 (default) ConcentricCircleDensity
s16 2 20 (default) ConcentricCircleRunPitch
s16 2 ConcentricCircleCenterX (comment: 961)
s16 2 ConcentricCircleCenterY (comment: 847)
s16 2 20 (default) SpiralDensity
s16 2 20 (default) SpiralRunPitch
s16 2 StipplingRunPitch
s16 2 StipplingSpacing
s16 2 OutlineEntryv1
float 4 OutlineEntry
s16 2 OutlineExitv1
float 4 OutlineExit
s16 2 RegionEntryv1
float 4 RegionEntry
s16 2 RegionExit
float 4 RegionExitv1

Motif

Type Bytes Value Description
s16 2 Tile line count
section Tile Lines, tile lines

Tile line

Type Bytes Value Description
s16 2 Unknown
s16 2 Unknown
s16 2 Unknown
s16 2 Unknown
s16 2 N Tile line point count
array 2 × N Point array