Class FeedPerToothMachiningMotionResolution
- Namespace
- Hi.Numerical.MachiningMotionResolutionUtils
- Assembly
- HiMech.dll
Automatic resolution by feed per tooth.
public class FeedPerToothMachiningMotionResolution : IMachiningMotionResolution, IMakeXmlSource, IToXElement
- Inheritance
-
FeedPerToothMachiningMotionResolution
- Implements
- Inherited Members
- Extension Methods
Constructors
FeedPerToothMachiningMotionResolution()
Ctor.
public FeedPerToothMachiningMotionResolution()
Properties
FluteNum
Flute count the last AdjustResolution(int, double, double) saw.
public int FluteNum { get; }
Property Value
LinearResolution_mm
Linear axis resolution in millimeter.
public double LinearResolution_mm { get; }
Property Value
Remarks
setter is for internal usage
RotaryAxisResolution_rad
Resolution in radian for a rotary-axis (A/B/C) swing — the posture change of the tool. Always finite: a swing is bounded by this angle whether or not the spindle turns, so a rapid 90° table swing is never left to a single step.
public double RotaryAxisResolution_rad { get; }
Property Value
RotaryResolution_deg
RotaryResolution_rad in degree.
public double RotaryResolution_deg { get; set; }
Property Value
Remarks
setter is for internal usage
RotaryResolution_rad
Angular resolution in radian for an arc's swept angle (and, on a fixed resolution, for rotary-axis swings as well — see RotaryAxisResolution_rad). A feed-derived resolution reports infinity here while the spindle turns: an arc is then split by its length per spindle cycle alone.
public double RotaryResolution_rad { get; }
Property Value
Remarks
setter is for internal usage
SpindleSpeed_radds
Spindle speed (rad/s) the last AdjustResolution(int, double, double) saw.
public double SpindleSpeed_radds { get; }
Property Value
XName
Name for XML IO.
public static string XName { get; }
Property Value
Methods
AdjustResolution(int, double, double)
Adjusts the resolution based on flute number, feed rate and spindle speed.
public void AdjustResolution(int fluteNum, double feedrate_mmds, double spindleSpeed_radds)
Parameters
fluteNumintNumber of flutes in the cutting tool
feedrate_mmdsdoubleFeed rate in mm per second
spindleSpeed_raddsdoubleSpindle speed in radians per second
GetStepNumByDuration(TimeSpan, double)
Step count the time criterion assigns to an act of the given duration, or null when this resolution has no time criterion — a fixed geometric resolution, or a feed-derived one while the spindle is not turning. Feed per cycle means one step per spindle revolution, feed per tooth one per tooth pass; the value is the revolutions (or tooth passes) the act spans, scaled by the resolution's own knobs.
This is the criterion a rotary-bearing act uses instead of "tool-tip travel ÷ LinearResolution_mm". The linear resolution is derived from the controller's commanded CL feedrate, but the real tool tip (the equipped tool, possibly not the length the controller's H describes) travels with the posture change while that CL point may stand still; dividing the one by the other mixes two motions, and for a pure RTCP rapid swing it saturated the step count to MaxValue (a customer program, 2026-09-08). Counting spindle cycles over the act's duration is the same number whenever tip and CL point coincide, and the honest one when they do not.
public int? GetStepNumByDuration(TimeSpan duration, double travel_mm)
Parameters
durationTimeSpanThe act's duration.
travel_mmdoubleThe real tool-tip travel of the act in mm, or NaN when unknown; a resolution with a user floor on per-step travel caps the count so a step never covers less than that floor.
Returns
- int?
Remarks
One step per tooth pass (revolutions × flutes) over the act; null while the spindle is not turning, the flute count is unknown or the act has no duration.
MakeXmlSource(string, string, bool)
Creates an XML representation of the object. This method may also generate additional resources such as related files.
public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly)
Parameters
baseDirectorystringThe base directory for resolving relative paths
relFilestringThe relative file path for the XML source
exhibitionOnlyboolif true, the extended file creation is suppressed.
Returns
- XElement
An XML element representing the object's state
Remarks
For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied.
The baseDirectory is typically the folder at the nearest configuration file folder.
Since the folder can be moving with the configuration file.
Reg(XFactory)
Registers this type's deserializer with the given XFactory
and chains Reg(factory) on dependents. Idempotent.
public static void Reg(XFactory factory = null)
Parameters
factoryXFactory
ToXElement()
Get the XElement to represent the object.
public XElement ToXElement()