This commit is contained in:
2026-09-09 17:35:23 +08:00
parent 2a98ae7556
commit 161af68fe3
1271 changed files with 58251 additions and 98639 deletions
@@ -228,7 +228,7 @@ Note that the spindle information is only for milling behavior.</p>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public MachineMotionStep(TimeSpan stepDuration, TimeSpan accumulatedTime, double beginSpindleAngle_rad, double[] mcValues, double feedrate_mmds, double spindleSpeed_radds, SpindleDirection spindleDirection, CoolantMode coolantMode, int toolId, Mat4d programZeroToWorkpieceGeomToMat4d, Mat4d workpieceGeomToProgramZeroMat4d, SeqPair&lt;Mat4d&gt; seqOnWorkpieceGeomCoordinate)</code></pre>
<pre><code class="lang-csharp hljs">public MachineMotionStep(TimeSpan stepDuration, TimeSpan accumulatedTime, double beginSpindleAngle_rad, double[] mcValues, double commandedClFeedrate_mmds, double spindleSpeed_radds, SpindleDirection spindleDirection, CoolantMode coolantMode, int toolId, Mat4d programZeroToWorkpieceGeomToMat4d, Mat4d workpieceGeomToProgramZeroMat4d, SeqPair&lt;Mat4d&gt; seqOnWorkpieceGeomCoordinate)</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -245,8 +245,8 @@ Note that the spindle information is only for milling behavior.</p>
<dt><code>mcValues</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a>[]</dt>
<dd><p>The machine coordinate values.</p>
</dd>
<dt><code>feedrate_mmds</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The feed rate in millimeters per second.</p>
<dt><code>commandedClFeedrate_mmds</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The controller's commanded CL feedrate in millimeters per second.</p>
</dd>
<dt><code>spindleSpeed_radds</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The spindle speed in radians per second.</p>
@@ -286,6 +286,51 @@ Note that the spindle information is only for milling behavior.</p>
</h2>
<a id="Hi_MachiningSteps_MachineMotionStep_ActualTipFeedrate_mmds_" data-uid="Hi.MachiningSteps.MachineMotionStep.ActualTipFeedrate_mmds*"></a>
<h3 id="Hi_MachiningSteps_MachineMotionStep_ActualTipFeedrate_mmds" data-uid="Hi.MachiningSteps.MachineMotionStep.ActualTipFeedrate_mmds">
ActualTipFeedrate_mmds
</h3>
<div class="markdown level1 summary"><p>The equipped tool's real tip feedrate over this step in millimeters per
second: the tip's displacement relative to the workpiece from the previous
step's pose to this one, over <a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_MachiningSteps_MachineMotionStep_StepDuration">StepDuration</a>. This is the
feedrate the cut experiences. It equals <a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_MachiningSteps_MachineMotionStep_CommandedClFeedrate_mmds">CommandedClFeedrate_mmds</a>
whenever the tip translates with the controller's CL point (XYZ moves, CL
files, RTCP with the tool-length offset of the equipped tool) and differs
when the two decouple: under RTCP with an offset that does not describe
the equipped tool the tip sweeps with the posture change while the CL
point may stand still. Initialised to the commanded value; the step
builder assigns the measured one (<a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_MachiningSteps_MachineMotionStep_MeasureActualTipFeedrate_mmds_Hi_Geom_Vec3d_Hi_Geom_Vec3d_System_TimeSpan_System_Boolean_System_Double_">MeasureActualTipFeedrate_mmds(Vec3d, Vec3d, TimeSpan, bool, double)</a>)
and keeps the commanded value where no tip speed is defined. Physics reads
this value: <a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_MachiningSteps_MachineMotionStep_GetFeedPerTooth_mm_Hi_Machining_IMachiningTool_">GetFeedPerTooth_mm(IMachiningTool)</a>, <a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_MachiningSteps_MachineMotionStep_FeedPerCycle_mm">FeedPerCycle_mm</a>,
the force step and the MRR. Presented to clients as
<a class="xref" href="Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_ActualTipFeedrate_mmdmin">ActualTipFeedrate_mmdmin</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public double ActualTipFeedrate_mmds { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningSteps_MachineMotionStep_BeginSpindleAngle_deg_" data-uid="Hi.MachiningSteps.MachineMotionStep.BeginSpindleAngle_deg*"></a>
<h3 id="Hi_MachiningSteps_MachineMotionStep_BeginSpindleAngle_deg" data-uid="Hi.MachiningSteps.MachineMotionStep.BeginSpindleAngle_deg">
@@ -574,6 +619,45 @@ Note that the spindle information is only for milling behavior.</p>
<a id="Hi_MachiningSteps_MachineMotionStep_CommandedClFeedrate_mmds_" data-uid="Hi.MachiningSteps.MachineMotionStep.CommandedClFeedrate_mmds*"></a>
<h3 id="Hi_MachiningSteps_MachineMotionStep_CommandedClFeedrate_mmds" data-uid="Hi.MachiningSteps.MachineMotionStep.CommandedClFeedrate_mmds">
CommandedClFeedrate_mmds
</h3>
<div class="markdown level1 summary"><p>The controller's commanded feedrate of the CL point in millimeters per
second (<a class="xref" href="Hi.Numerical.Acts.StateActRunner.html#Hi_Numerical_Acts_StateActRunner_CommandedClFeedrate_mmds">CommandedClFeedrate_mmds</a>
at the time of the step): the F word after G94/G95/G93 conversion, or
for a rapid the CL path over the act duration. It is not the equipped
tool's real tip feedrate: under RTCP with a tool-length offset that does
not match the equipped tool the tip sweeps while the CL point may stand
still; the tip's own feedrate is <a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_MachiningSteps_MachineMotionStep_ActualTipFeedrate_mmds">ActualTipFeedrate_mmds</a>.
Presented to clients as <a class="xref" href="Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_Feedrate_mmdmin">Feedrate_mmdmin</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public double CommandedClFeedrate_mmds { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningSteps_MachineMotionStep_CoolantMode_" data-uid="Hi.MachiningSteps.MachineMotionStep.CoolantMode*"></a>
<h3 id="Hi_MachiningSteps_MachineMotionStep_CoolantMode" data-uid="Hi.MachiningSteps.MachineMotionStep.CoolantMode">
@@ -776,7 +860,9 @@ The value is <a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_M
</h3>
<div class="markdown level1 summary"><p>Gets the feed per cycle in millimeters.</p>
<div class="markdown level1 summary"><p>The feed per spindle cycle in millimeters, from the real tip feedrate
(<a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_MachiningSteps_MachineMotionStep_ActualTipFeedrate_mmds">ActualTipFeedrate_mmds</a>): the advance the cut experiences
per revolution.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -801,38 +887,6 @@ The value is <a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_M
<a id="Hi_MachiningSteps_MachineMotionStep_Feedrate_mmds_" data-uid="Hi.MachiningSteps.MachineMotionStep.Feedrate_mmds*"></a>
<h3 id="Hi_MachiningSteps_MachineMotionStep_Feedrate_mmds" data-uid="Hi.MachiningSteps.MachineMotionStep.Feedrate_mmds">
Feedrate_mmds
</h3>
<div class="markdown level1 summary"><p>Gets or sets the feed rate in millimeters per second.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public double Feedrate_mmds { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningSteps_MachineMotionStep_GeomCl_" data-uid="Hi.MachiningSteps.MachineMotionStep.GeomCl*"></a>
<h3 id="Hi_MachiningSteps_MachineMotionStep_GeomCl" data-uid="Hi.MachiningSteps.MachineMotionStep.GeomCl">
@@ -1452,7 +1506,9 @@ The value is <a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_M
</h3>
<div class="markdown level1 summary"><p>Gets the feed per tooth in millimeters.</p>
<div class="markdown level1 summary"><p>The feed per tooth in millimeters, from the real tip feedrate
(<a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_MachiningSteps_MachineMotionStep_ActualTipFeedrate_mmds">ActualTipFeedrate_mmds</a>): the chip load the cut experiences,
which the force step and the tooth sequence are built on.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -1862,6 +1918,69 @@ The value is <a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_M
<a id="Hi_MachiningSteps_MachineMotionStep_MeasureActualTipFeedrate_mmds_" data-uid="Hi.MachiningSteps.MachineMotionStep.MeasureActualTipFeedrate_mmds*"></a>
<h3 id="Hi_MachiningSteps_MachineMotionStep_MeasureActualTipFeedrate_mmds_Hi_Geom_Vec3d_Hi_Geom_Vec3d_System_TimeSpan_System_Boolean_System_Double_" data-uid="Hi.MachiningSteps.MachineMotionStep.MeasureActualTipFeedrate_mmds(Hi.Geom.Vec3d,Hi.Geom.Vec3d,System.TimeSpan,System.Boolean,System.Double)">
MeasureActualTipFeedrate_mmds(Vec3d, Vec3d, TimeSpan, bool, double)
</h3>
<div class="markdown level1 summary"><p>Measures a step's real tip feedrate: the distance from the tip point the
machine stood at before this step to the one it reaches, on the
workpiece-geometry coordinate, over the step duration. Falls back to
<code class="paramref">commandedClFeedrate_mmds</code> where a tip speed is not
defined: no previous point (the first step after a reset), a
non-positive duration (a CSV row without timing), or a tool change
between the two points (the tip jumped with the tool, it did not
travel). The previous point is the pose the step pipeline saw last,
step or no step (<a class="xref" href="Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html#Hi_Machining_MachiningVolumeRemovalProc_StepMotionSnapshot_PreTipPose">PreTipPose</a>):
the sweep valve skips a collinear return over a segment it already
covered, and it spans a motion pair's <code>pre</code> two steps back on a
straight run, so neither the last built step nor <code>cur - pre</code>
measures one step's travel.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static double MeasureActualTipFeedrate_mmds(Vec3d preTipPoint, Vec3d curTipPoint, TimeSpan stepDuration, bool sameTool, double commandedClFeedrate_mmds)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>preTipPoint</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd><p>The tip point before this step, or null.</p>
</dd>
<dt><code>curTipPoint</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd><p>The tip point this step reaches.</p>
</dd>
<dt><code>stepDuration</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.timespan">TimeSpan</a></dt>
<dd><p>This step's duration.</p>
</dd>
<dt><code>sameTool</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>Whether the tool at <code class="paramref">preTipPoint</code> is the tool of this step.</p>
</dd>
<dt><code>commandedClFeedrate_mmds</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The commanded CL feedrate, returned where no tip speed is defined.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The tip feedrate in millimeters per second.</p>
</dd>
</dl>
<a id="Hi_MachiningSteps_MachineMotionStep_ToString_" data-uid="Hi.MachiningSteps.MachineMotionStep.ToString*"></a>
<h3 id="Hi_MachiningSteps_MachineMotionStep_ToString" data-uid="Hi.MachiningSteps.MachineMotionStep.ToString">
@@ -1895,6 +2014,49 @@ The value is <a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_M
<a id="Hi_MachiningSteps_MachineMotionStep_WithFeedrate_" data-uid="Hi.MachiningSteps.MachineMotionStep.WithFeedrate*"></a>
<h3 id="Hi_MachiningSteps_MachineMotionStep_WithFeedrate_System_Double_" data-uid="Hi.MachiningSteps.MachineMotionStep.WithFeedrate(System.Double)">
WithFeedrate(double)
</h3>
<div class="markdown level1 summary"><p>A copy of this step at another feedrate: both
<a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_MachiningSteps_MachineMotionStep_CommandedClFeedrate_mmds">CommandedClFeedrate_mmds</a> and <a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_MachiningSteps_MachineMotionStep_ActualTipFeedrate_mmds">ActualTipFeedrate_mmds</a>
are <code class="paramref">feedrate_mmds</code>. For a solver asking what the cut
would experience at a candidate feed (the trial step of the NC
optimization's feed solve).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public MachineMotionStep WithFeedrate(double feedrate_mmds)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>feedrate_mmds</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The candidate feedrate in millimeters per second.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html">MachineMotionStep</a></dt>
<dd><p>The copy.</p>
</dd>
</dl>
</article>