Table of Contents

Interface IStrokeLimitConfig

Namespace
Hi.NcParsers.Dependencys
Assembly
HiMech.dll

Per-axis stroke (travel) limits. Unit is mm for linear axes, deg for rotary axes. Implemented by ControllerParameterTableBase under each brand table's storage keys (e.g. 1300 / 1320 on the Fanuc table, MD36100 / MD36110 on the Siemens one), which are not the controllers' parameter numbers for those limits (IsStorageKeyOnly(int)).

public interface IStrokeLimitConfig : INcDependency, IMakeXmlSource
Inherited Members
Extension Methods

Methods

CheckStrokeLimit(dvec3d_t, IProgress<IMessage>)

Checks whether a position is within all configured stroke limits.

bool CheckStrokeLimit(dvec3d_t mcXyzabc, IProgress<IMessage> stripReporter = null)

Parameters

mcXyzabc dvec3d_t

Machine coordinate. Point = XYZ (mm), Normal = ABC (rad).

stripReporter IProgress<IMessage>

Progress sink for cutter-location strip updates. Can be null.

Returns

bool

True if within all limits or no limits configured.

Remarks

The comparison is the one native check both overloads share (stroke_limit__check, core.dll's mech/machining/stroke_limit.cpp, the port of the managed loop this method ran before play-core migration P9) over the six given values, so a position is judged and worded alike whichever overload sees it.

CheckStrokeLimit(IXyzabcAxes, IProgress<IMessage>)

Checks whether the machine's current position – the steps of its six axes – is within all configured stroke limits, with the axes' native steps read in the one call that compares them (stroke_limit__check, core.dll's mech/machining/stroke_limit.cpp, play-core migration P9): an axis that is the transformer of a live branch and of nothing else is read off that branch under one shared lock of the topology, never off its object's shadow value; any other axis reads its object's value (GetMcBranches(IXyzabcAxes, long[], double[])); an axis the machine does not have reads NaN and is over nothing. Every axis over a limit is reported through stripReporter with the message of CheckStrokeLimit(dvec3d_t, IProgress<IMessage>), in the order X Y Z A B C, the positive end before the negative one.

bool CheckStrokeLimit(IXyzabcAxes axes, IProgress<IMessage> stripReporter = null)

Parameters

axes IXyzabcAxes

The machine's axes; null is a machine without axes, within every limit.

stripReporter IProgress<IMessage>

Progress sink for cutter-location strip updates. Can be null.

Returns

bool

True if within all limits or no limits configured.

GetNegativeLimit(string)

Gets the negative stroke limit for a specific axis. Unit is mm for linear axes, deg for rotary axes. Returns null if not configured (no limit).

double? GetNegativeLimit(string axisName)

Parameters

axisName string

Returns

double?

GetPositiveLimit(string)

Gets the positive stroke limit for a specific axis. Unit is mm for linear axes, deg for rotary axes. Returns null if not configured (no limit).

double? GetPositiveLimit(string axisName)

Parameters

axisName string

Returns

double?

SetNegativeLimit(string, double)

Sets the negative stroke limit for a specific axis. Unit is mm for linear axes, deg for rotary axes.

void SetNegativeLimit(string axisName, double value)

Parameters

axisName string
value double

SetPositiveLimit(string, double)

Sets the positive stroke limit for a specific axis. Unit is mm for linear axes, deg for rotary axes.

void SetPositiveLimit(string axisName, double value)

Parameters

axisName string
value double