Table of Contents

Class NcOptSplitionFragmentPlan

Namespace
Hi.NcOpt
Assembly
HiMech.dll

Planned text rewrite of one re-interpolation fragment of a splition piece: everything the writeback converter needs to turn a copy of the source BlockText into the fragment's NC line. Computed entirely by the orchestrator walk (SoftNcOptProc); applied dumbly by NcOptMixedPatchConverter.

public class NcOptSplitionFragmentPlan
Inheritance
NcOptSplitionFragmentPlan
Inherited Members
Extension Methods

Remarks

One plan entry exists per machining step of the pack's segment — including the fragments the essential filter drops (IsEmitted false; oracle filter in NcOptProc) — because the pre-build modal-F chain threads through dropped fragments too (as in the oracle). Known deliberate divergence: the oracle burns a dstSentenceIndex on every pre-built fragment, dropped ones included, leaving invisible holes in its dst numbering; the SoftNc side allocates destination sentence indices only for emitted fragments (one NcDstPieceFactory.Create per emitted fragment) — the emitted text is byte-identical, only the internal dst identity numbering differs.

Properties

ArcIjk_mm

Arc center offsets I/J/K to write (mm, coordinate output format), or null when no arc rewrite applies. Computed as center − previous EMITTED fragment endpoint with the plane-normal component replaced by the source helix pace (oracle NcOptProc). A NaN component is passed through SetTagNumber semantics: an existing token is deleted, an absent one stays absent (oracle omit rule for originally-unspecified axes whose offset is still ~0).

public vec3d_t? ArcIjk_mm { get; set; }

Property Value

vec3d_t?

DeleteRWord

Whether to delete the R word — planned for every emitted fragment of an R-format arc source, which is force-converted to I/J/K (the R sign carries the >/<180° semantic of the ORIGINAL arc, wrong per fragment; oracle NcOptProc).

public bool DeleteRWord { get; set; }

Property Value

bool

EmbeddedNote

Embedded-log note appended verbatim at the very end of the fragment line (after the kept comment of the first emitted fragment); null for none. SimpleLog shape (oracle NcOptProc, default mode SimpleLog): non-last fragment " (src(StepIndex: k))", last fragment " (src(LineNo: n, StepIndex: k))" where n is the SOURCE 1-based line number.

public string EmbeddedNote { get; set; }

Property Value

string

FeedrateOp

The planned F-word text operation.

public NcOptFeedrateTextOp FeedrateOp { get; set; }

Property Value

NcOptFeedrateTextOp

FeedrateValue_mmdmin

F value in mm/min for Write (already rounded to the F output grid by the plan builder, mirroring the oracle's symmetric rounding).

public double FeedrateValue_mmdmin { get; set; }

Property Value

double

FileInitFeedrate_mmdmin

File-first-feedrate initialization write in mm/min (feedrate output format), applied AFTER the strip operations; NaN when not planned. Mirrors the oracle's per-emitted-fragment InitializeFileFirstFeedrate call (NcOptProc).

public double FileInitFeedrate_mmdmin { get; set; }

Property Value

double

IsEmitted

Whether the essential filter keeps this fragment (oracle rules, NcOptProc: the last fragment always; a fragment with compensation or an assigned F; a fragment after a compensated one; a fragment before a changed one). A dropped fragment emits no destination piece.

public bool IsEmitted { get; set; }

Property Value

bool

IsFeedrateAssigned

Whether the pre-build feedrate pass assigned an F to this fragment (the oracle's isFeedrateAssigned tuple member) — an input of the essential filter.

public bool IsFeedrateAssigned { get; set; }

Property Value

bool

ModalFeedrateAfter_mmdmin

The pre-build modal F after this fragment in mm/min — the value the oracle's localPreDstNcLine.Feedrate_mmdmin chain carries past this fragment.

The chain itself is threaded by the plan builder's own locals (the compare base and the two dst F registers), so this member records the chain rather than driving it — with one real consumer: the emission walk copies it into FileInitFeedrate_mmdmin when this fragment wins the file-first-feedrate initialization (oracle InitializeFileFirstFeedrate, NcOptProc, which likewise states the line's own modal F). Through that path the value CAN reach the emitted text, so it is not free-form bookkeeping.

public double ModalFeedrateAfter_mmdmin { get; set; }

Property Value

double

StepIndex

The machining step index this fragment re-interpolates.

public int StepIndex { get; set; }

Property Value

int

StripComment

Whether to remove the comment text from this fragment's draft — true for every emitted fragment after the first emitted one (oracle comment removal, NcOptProc).

public bool StripComment { get; set; }

Property Value

bool

StripModalFlagTokens

Whether to strip the modal flag tokens (StripModalTokens) from this fragment's draft — true for every emitted fragment after the first emitted one (oracle RebuildFlagSyntaxToNcLine call gate, NcOptProc).

public bool StripModalFlagTokens { get; set; }

Property Value

bool

WriteAbc_deg

Per-axis rotary endpoint values to write (A/B/C, degrees, rotary output format); NaN suppresses (oracle NcOptProc: MathUtil.AbsDiffAngle > 1e-6 rad gate, value converted rad → deg). Null when the fragment is not emitted.

public vec3d_t? WriteAbc_deg { get; set; }

Property Value

vec3d_t?

WriteProgramXyz_mm

Per-axis program-frame endpoint values to write (X/Y/Z, mm, coordinate output format); a NaN component suppresses the write so the source token text survives verbatim — the oracle's tolerance suppression leaves the SOURCE endpoint literal in place, not a blank (RebuildPosSyntaxToNcLine, NcOptProc; parity trap: suppressed axes keep the src value text). When the step's pack adjustment carries a tool-deflection compensation, the values are the COMPENSATED endpoint — the program-frame projection of the compensation vector is added by the plan builder before the tolerance decisions (oracle RebuildByProgramXyz slot). Null when the fragment is not emitted (no endpoint rebuild is planned).

public vec3d_t? WriteProgramXyz_mm { get; set; }

Property Value

vec3d_t?