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
mcXyzabcdvec3d_tMachine coordinate. Point = XYZ (mm), Normal = ABC (rad).
stripReporterIProgress<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
axesIXyzabcAxesThe machine's axes; null is a machine without axes, within every limit.
stripReporterIProgress<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
axisNamestring
Returns
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
axisNamestring
Returns
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
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)