Skip to main content

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:

  1. The order import API — patterns ride in the order JSON's PunchPatterns array.
  2. The Eclipse Classic table import, for plants whose orders still flow through Classic's XLComm import.
  3. 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)
}
]
}
FieldMeaning
PunchNameInterpreted per PunchType: a shape name, a macro pattern name, or a tool id. Max 30 characters.
PunchTypeTool, 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, XReferencePosition along the part. XReference is one of LeadingEdge, TrailingEdge, LeadingCenter, TrailingCenter, EvenSpacing, SpacingLimit, KerfAdjust, Independent, ProportionalMin, ProportionalMax, ProportionalLimit.
YOffset, YReferencePosition across the part. With no segment, YReference is machine-referenced: None, CenterPlus, CenterMinus, PlusEdge, MinusEdge, MacroPlus, MacroMinus.
YSegmentOptional 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.

Stale field names

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 Tool or Macro punch, 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:

ColumnTypeMeaning
SEGMENTC(20)Segment name; blank = machine-referenced
SEG_YOFFN(8,3)Segment-relative Y offset
Y_OFFSET, Y_REFN(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.