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
@@ -106,7 +106,7 @@
<h2 id="1-prerequisites">1. Prerequisites</h2>
<div class="TIP">
<h5>Tip</h5>
<p>For the complete data-collection checklist behind a project, see <a href="../manual/setup/project-data-checklist.html">Project Data Checklist</a>.</p>
<p>For the complete data-collection checklist behind a project, see <a class="xref" href="project-data-checklist.html">Project Data Checklist</a>.</p>
</div>
<p>Before training you need:</p>
<table>
@@ -140,7 +140,8 @@
<p>Before training, the workpiece + fixture must be correctly placed relative to the work offset, otherwise the simulated engagement (and therefore the trained coefficients) is wrong. See <a href="../manual/setup/program-zero-alignment.html">Program Zero Alignment</a> — particularly the high-fidelity caution that the G54 used must reflect the <strong>real</strong> machine offset, and the rough-resolution check for catching a wrong setup at the opening plunge.</p>
</div>
<h3 id="sensor-data-file-format">Sensor Data File Format</h3>
<p>The CSV must contain a header row with <code>ActualTime</code> and at least one force/torque channel:</p>
<p>The CSV must contain a header row with a time column and at least one force/torque channel. Each
channel accepts more than one spelling, so a file written for an older release still reads:</p>
<table>
<thead>
<tr>
@@ -150,16 +151,20 @@
</thead>
<tbody>
<tr>
<td>Time</td>
<td><code>ActualTime</code>, or <code>ActualDateTime</code> for the absolute instant. <code>TimeTag</code> and <code>Time</code> are read for compatibility with older files.</td>
</tr>
<tr>
<td>Dynamometer</td>
<td><code>Fx</code> (or <code>Workpiece.Fx</code>), <code>Fy</code>, <code>Fz</code></td>
<td><code>Fx</code> or <code>Workpiece.Fx</code> (same for <code>y</code>, <code>z</code>)</td>
</tr>
<tr>
<td>Smart tool holder</td>
<td><code>Mx</code> (or <code>Holder.Mx</code>), <code>My</code>, <code>Mz</code></td>
<td><code>Mx</code> or <code>Holder.Mx</code> (same for <code>y</code>, <code>z</code>). <code>Spindle.Mx</code> is an obsolete spelling, read but not written.</td>
</tr>
<tr>
<td>Accelerometer (optional)</td>
<td><code>Ax</code>, <code>Ay</code>, <code>Az</code></td>
<td><code>Ax</code>, <code>Ay</code>, <code>Az</code> — one spelling only</td>
</tr>
</tbody>
</table>
@@ -400,7 +405,7 @@ WriteShotFiles(&quot;Output/[NcName].shot.csv&quot;, 0.1); // 2nd arg = sampling
<h5>Note</h5>
<p>A fine period makes large files — the case above went from 13 MB at 1 ms to 128 MB at 0.1 ms for a 6-cut program. Budget disk accordingly, and do not commit such files to a repository.</p>
</div>
<p>For coordinate system explanations, see <a href="../manual/analysis/milling-physics-coordinates.html">Milling Physics Coordinates</a>.</p>
<p>For coordinate system explanations, see <a class="xref" href="../technique/milling-physics/milling-physics-coordinates.html">Milling Physics Coordinates</a>.</p>
<hr>
<h2 id="6-train-milling-parameters">6. Train Milling Parameters</h2>
<h3 id="trainmillingpara-new-training">TrainMillingPara (New Training)</h3>
@@ -437,11 +442,18 @@ WriteShotFiles(&quot;Output/[NcName].shot.csv&quot;, 0.1); // 2nd arg = sampling
<h5>Warning</h5>
<p>Using only <code>Mx|My|Mz</code> without <code>Fz</code> loses one degree of freedom (torque = r × F loses the r-direction), making coefficient training unreliable. Always include <code>Fz</code> when using torque data.</p>
</div>
<p>The feed-per-tooth entry above is what the command refuses to run without, not what a usable
training needs. One sample at a different feed satisfies it; separating the shear coefficients from
the ploughing ones takes a <strong>range</strong> of chip loads across the passes.</p>
<h3 id="training-conditions">Training Conditions</h3>
<ul>
<li>Samples should have <strong>stable, repeatable waveforms</strong> for at least two spindle revolutions</li>
<li>Under unstable conditions, plowing coefficients tend to be over-estimated</li>
<li>Any NC path shape (slot milling, side milling, any tool shape) is acceptable when samples are stable</li>
<li><strong>Stable samples are necessary and not sufficient.</strong> Whether the coefficients can be recovered
from a cut set at all is decided by what that set spans, not by how clean it is: a set with one
helix angle leaves a combination of the shear coefficients exactly unobservable, and a set with a
narrow feed-per-tooth range cannot separate shear from ploughing. Design the set before cutting —
see <a href="../technique/measurement/training-cut-set-design.html">Designing a Training Cut Set</a></li>
</ul>
<hr>
<h2 id="7-evaluate-training-quality">7. Evaluate Training Quality</h2>
@@ -518,12 +530,12 @@ WriteShotFiles(&quot;Output/[NcName].shot.csv&quot;, 0.1);
</code></pre>
<h2 id="see-also">See Also</h2>
<ul>
<li><a href="../manual/analysis/milling-physics-coordinates.html">Milling Physics Coordinates</a> — coordinate system reference</li>
<li><a class="xref" href="../technique/milling-physics/milling-physics-coordinates.html">Milling Physics Coordinates</a> — coordinate system reference</li>
<li><a href="sensor-mapping.html">Sensor Mapping Workflow</a> — detailed mapping workflow</li>
<li><a class="xref" href="basic-simulation.html">Workflow: Basic Machining Simulation</a> — basic simulation setup</li>
<li><a class="xref" href="nc-optimization.html">Workflow: NC Optimization</a> — optimization after training</li>
<li><a class="xref" href="../manual/runtime/step.html">Step</a> — step data reference</li>
<li><a class="xref" href="../manual/runtime/session-shell.html">Glossary: SessionShell Quick-Reference</a> — SessionShell quick-reference</li>
<li><a class="xref" href="../technique/scripting/step.html">Step</a> — step data reference</li>
<li><a class="xref" href="../technique/scripting/session-shell.html">SessionShell</a> — SessionShell quick-reference</li>
<li><a href="examples/milling-training-dynamometer.html">Training with a Dynamometer (Example)</a></li>
<li><a href="examples/mapping-demo.html">Cascading Mapping (Example)</a></li>
</ul>