Table of Contents

Interface IMotionEventDef

Namespace
Hi.NcParsers.Keywords
Assembly
HiMech.dll

One-shot motion event — present on every block whose source programmed a motion command, regardless of whether the resulting displacement is non-zero. A redundant G01 X10 on a block already at X10 still gets a MotionEvent; the motion semantics (McLinearMotionSemantic, McArcMotionSemantic, ClLinearMcMotionSemantic) then early-return on distance <= 0 and emit no IAct. NOT carried forward across blocks.

Reason for the "programmed, not displaced" definition: Fanuc G66 modal macro fires once per programmed motion command (per Fanuc spec — no distance gate), so FanucModalMacroSyntax.Expansion uses MotionEvent presence as its trigger. Suppressing the section on zero-distance moves would silently change G66 behaviour. The modal sibling MotionState separately latches the Group-01 mode for readers that only need to know "what G-code is active".

Property names are used as JSON keys via nameof.
public interface IMotionEventDef
Extension Methods

Examples

"MotionEvent": { "Form": "McLinear", "IsRapid": false }

Remarks

Term source-precedence rule: modal motion (G00/G01/G02/G03) leaves Term unset because the source G-code is already latched in the sibling MotionState.Term. Non-modal one-shots that drive the block's motion themselves — currently G53.1 (rapid rotary positioning to align with the active tilted plane), and the same pattern is the intended fit for any future non-modal motion command — set Term to record the originating G-code. When Term is non-null, readers should treat it as the authoritative source for this block; the modal MotionState in this case is inherited context, not the block's actual motion driver.

Properties

Form

Interpolation form. See MotionForm.

string Form { get; set; }

Property Value

string

IsRapid

True for rapid traverse; false (default) for programmed feedrate.

bool IsRapid { get; set; }

Property Value

bool

Term

Source G-code term, set only when a non-modal one-shot drove this block's motion (e.g. “G53.1”). Null/absent for modal motion blocks (G00/G01/G02/G03) whose source is recorded on the sibling Term. See type-level remarks for the precedence rule.

string Term { get; set; }

Property Value

string