Punch pattern import
External systems send punch patterns to Eclipse alongside the orders that use them. This page is the wire contract: the punch fields, how to reference positions, and the plant-side settings that control the import. For what patterns are and how Eclipse solves them, see Shape Punching.
Patterns arrive by one of three routes:
- The order import API — patterns ride in the order JSON's
PunchPatternsarray. - The Eclipse Classic table import, for plants whose orders still flow through Classic's XLComm import.
- A custom order feed (for example a NetSuite work-order export) — punch data arrives as a delimited string per part.
The punch object (order import API)
Each pattern in the order JSON is a PatternName (referenced by items via PunchPatternName;
max 20 characters) plus a list of punches:
{
"PatternName": "SP21",
"IsPermanent": false,
"Punches": [
{
"Sequence": 1,
"PunchName": "Round_11_16",
"PunchType": "Shape", // "Tool", "Shape", "Macro"
"XOffset": 1.0,
"XReference": "LeadingEdge",
"YOffset": -4.0,
"YReference": "None",
"YSegment": "" // blank = machine-referenced (the default)
}
]
}
| Field | Meaning |
|---|---|
PunchName | Interpreted per PunchType: a shape name, a macro pattern name, or a tool id. Max 30 characters. |
PunchType | Tool, Shape, or Macro. Shape punches are the portable kind — Eclipse maps them onto each machine's shape table — and the only kind that may carry a segment. |
XOffset, XReference | Position along the part. XReference is one of LeadingEdge, TrailingEdge, LeadingCenter, TrailingCenter, EvenSpacing, SpacingLimit, KerfAdjust, Independent, ProportionalMin, ProportionalMax, ProportionalLimit. |
YOffset, YReference | Position across the part. With no segment, YReference is machine-referenced: None, CenterPlus, CenterMinus, PlusEdge, MinusEdge, MacroPlus, MacroMinus. |
YSegment | Optional profile segment name (shape punches only). Blank or omitted = machine-referenced, exactly as before the field existed. Max 20 characters. |
Enums are sent as the strings shown; property-name casing is not significant.
Older copies of the order-import example showed XOffsetIn/YOffsetIn on punches — the
actual property names are XOffset and XReference / YOffset and YReference, as above.
Segment-referenced punches
A punch whose Y position is described on the formed profile rather than the machine sends three things:
YSegment— the segment name, in your vocabulary (Web,Flange Left, …).YOffset— the offset within that segment.YReference: "None"— meaning the segment's default anchor. This is all a sending system should ever need; do not send positional Y references on segment punches unless explicitly agreed.
Eclipse resolves the name and anchor per machine through its segment alias table, so the sender never needs machine geometry. The vocabulary — your segment names and measuring conventions — is agreed once, during commissioning, and configured plant-side.
Conventions the contract assumes:
- Flange offsets measure from the flange's web-side bend toward the flange tip, and are positive in that direction.
- Web offsets are signed across the web from its center; which direction is positive is part of the agreed vocabulary (bound plant-side in the alias table).
- Segment names are matched case-insensitively and must fit in 20 characters.
- A segment on a
ToolorMacropunch, or an unknown segment name, fails loudly at scheduling time — it is never silently ignored.
Eclipse Classic table import
Plants importing through Eclipse Classic's XLComm use the same dual-column idea on the
IMP_PART table:
| Column | Type | Meaning |
|---|---|---|
SEGMENT | C(20) | Segment name; blank = machine-referenced |
SEG_YOFF | N(8,3) | Segment-relative Y offset |
Y_OFFSET, Y_REF | N(8,3), N(1) | The legacy machine-referenced pair (unchanged) |
The transition switch in Settings > System Preferences > Eclipse Classic > Use segment references.
Per imported row: with the flag on and a non-blank SEGMENT, the segment pair is used (and the Y
reference becomes the segment's default anchor); otherwise the segment is blanked and the legacy
columns apply. Feeds should populate SEGMENT/SEG_YOFF alongside the legacy columns ahead of
the switch — the flag then controls the cutover, per plant, with no feed change.
Validation and failure behavior
Segment names cannot be fully validated at import — whether a name is known depends on the target machine's alias table, and the machine isn't known until scheduling. Import accepts the pattern; resolution problems (unknown segment, missing profile geometry) surface as solution alerts on the job, before anything is punched. See When resolution fails.