This commit is contained in:
2026-09-15 01:12:50 +08:00
parent 2db889ad89
commit 1a75503105
99 changed files with 4168 additions and 726 deletions
@@ -90,9 +90,10 @@
<p>Beyond putting a program into a run, a mission can change the session's settings part-way through,
steer the optimizer, write out what the run produced, and drive the session from a script.</p>
<h2 id="where-they-are">Where they are</h2>
<p>The Execution page's <strong>Mission</strong> branch, all from the same <strong>Add Command</strong>. The Program category's
other two commands are on <a href="playing-a-program.html">Playing a Program</a>, and the Flow category's one
command is on <a href="building-a-mission.html">Building a Mission</a>.</p>
<p>The Execution page's <strong>Mission</strong> branch of the Control Tree, all from the same <strong>Add Command</strong> —
the <strong>+</strong> on the <strong>Mission</strong> row or on a <strong>List</strong> row. The Program category's other two commands
are on <a href="playing-a-program.html">Playing a Program</a>, and the Flow category's one command is on
<a href="building-a-mission.html">Building a Mission</a>.</p>
<h2 id="settings-one-per-command">Settings, one per command</h2>
<p>The <strong>Setup</strong> category holds five commands, each carrying one setting:</p>
<table>
@@ -144,9 +145,10 @@ linear resolution in mm and a rotary one in degrees.</p>
<h5>Note</h5>
<p><strong>General Config is not on the menu, and it is not missing.</strong> It was one command carrying all five
of these settings at once, and the five above replace it. A project that still stores one loads as
those five commands in its place — preceded by a Record Meshed Geometry command where the bundle
also read a meshed geometry file — and saving from then on writes the five. There is nothing to
add and nothing to look for.</p>
those five commands in its place, and saving from then on writes the five. Where the bundle named a
meshed geometry file or had reading one switched on, a Record Meshed Geometry command set to
<strong>Read</strong> precedes them — ticked only where reading was switched on. There is nothing to add and
nothing to look for.</p>
</div>
<h2 id="the-optimizer-as-a-step">The optimizer, as a step</h2>
<p><strong>NC Optimization Config</strong> is the Optimization category's one command, and it exists so the
@@ -192,10 +194,12 @@ optimizer is on, which is the first switch on its panel.</p>
means, and why an optimized result can look wrong, is
<a href="../../technique/nc-optimization/index.html">NC Optimization</a>.</p>
<p>The demo mission's optimizer command, at <code>/execution?tree=execution/mission/7</code>. In this mission it
sits below both program groups rather than above them, so the ordering rule at the top of this
section is what decides how much of the run it reaches. The five switches are on the command's own
panel; the five value nodes are indented under it in the tree.</p>
<p><img src="the-other-commands-img/nc-optimization-config.en.png" alt="The NC Optimization Config command selected in the Mission branch, with Distances, Feedrate, Motion Dynamics, Force and Safety and Compensation child nodes listed beneath it, and the panel below showing the Enable Optimization, Enable Feedrate Optimization, Enable Depth Splition and Enable Interpolation checkboxes ticked above an unticked Omit Leading Zero in Output checkbox"></p>
sits below both <strong>List</strong> groups and the three loose entries after them rather than above them, so
the ordering rule at the top of this section is what decides how much of the run it reaches. The
five switches are on the command's own panel below the tree, headed <em>Mission / NC Optimization
Config</em>; the five value nodes are indented under it in the tree. Because the row is selected, its
move, duplicate and delete buttons show at its right edge.</p>
<p><img src="the-other-commands-img/nc-optimization-config.en.png" alt="The Control Tree on the Execution page, with the six transport buttons and a green ready badge above the tree and the Mission root row carrying a + at its right edge; among the command rows, each with a checkbox and a drag handle, NC Optimization Config is selected with its move up, move down, duplicate and delete buttons revealed at the right, and Distances, Feedrate, Motion Dynamics, Force &amp; Safety and Compensation are listed beneath it without checkboxes, with a greyed, unticked Post-Execution row at the pane's bottom edge below them; the panel below is headed Mission / NC Optimization Config and shows Enable Optimization, Enable Feedrate Optimization, Enable Depth Splition and Enable Interpolation ticked above an unticked Omit Leading Zero in Output"></p>
<h2 id="writing-out-what-the-run-produced">Writing out what the run produced</h2>
<p>The <strong>Output</strong> category holds three commands: <strong>Post-Execution</strong>, <strong>Record Meshed Geometry</strong> and
<strong>Export Meshed Geometry (STL)</strong>.</p>
@@ -230,7 +234,7 @@ it writes an interim snapshot of the same accumulating run. <strong>Its placemen
</tr>
<tr>
<td><strong>CL → NC Writeback</strong></td>
<td>brand NC re-synthesized from what was played</td>
<td>Fanuc NC re-synthesized from what was played</td>
<td><code>Output/[NcName].nc</code></td>
</tr>
<tr>
@@ -260,8 +264,11 @@ tree lists them in, and which matters only if you are reading their timestamps.<
<p>The demo mission's Post-Execution command with <strong>Step Files Output</strong> selected, at
<code>/execution?tree=execution/mission/8/step-files</code>. Each output is a child node with its own
checkbox — that tick is what switches the output on — and the template field for the selected one
sits in the panel below.</p>
<p><img src="the-other-commands-img/post-execution.en.png" alt="The Post-Execution command in the Mission branch with its five child nodes, each carrying its own checkbox, and the Step File Template field in the panel below"></p>
sits in the panel below, headed <em>Mission / Post-Execution / Step Files Output</em>. In the demo the
<strong>Post-Execution</strong> row itself is greyed with its checkbox cleared, and its outputs stay editable
all the same; the row is the last one the tree pane shows in full here, its child nodes cut off at
the pane's edge with only the top sliver of the first showing.</p>
<p><img src="the-other-commands-img/post-execution.en.png" alt="The Control Tree on the Execution page, with the six transport buttons and a green ready badge above the tree and the Mission root row carrying a + at its right edge; the command rows run down to a greyed Post-Execution row with its checkbox cleared at the bottom edge of the tree pane, only the top sliver of its first child row showing before the pane's edge cuts it off; the panel under the tree is headed Mission / Post-Execution / Step Files Output and holds one Step File Template field reading Output/[NcName].step.csv"></p>
<h2 id="keeping-the-workpiece-between-runs">Keeping the workpiece between runs</h2>
<p>The Output category's other two commands both take the workpiece as it stands at their own point in
the list. <strong>Record Meshed Geometry</strong> stores it in the application's mesh format so a later run can
@@ -302,8 +309,10 @@ first such entry reads, and every one below a program writes. Building a mission
Resolution command belongs above it. A missing file is not an error: writing it is what a run does.
<strong>Reset</strong> on the command's panel deletes the file it points at, so the next run records afresh.</p>
<p>Export Meshed Geometry (STL) takes a path — <code>Output/MeshedGeom.stl</code> by default, since an export is
something you asked for rather than a cache — and a resolution in millimetres; leave it at 0 for the
default. It also builds the mesh, so the same placement rule applies.</p>
something you asked for rather than a cache — and a resolution in millimetres for the triangles it
writes; 0 uses the display mesh resolution. What it triangulates is the same mesh Record Meshed
Geometry writes, built the same way, so the placement rule above applies to it too: the STL
resolution decides how finely that mesh is tessellated, not how finely it was cut.</p>
<h2 id="driving-the-session-from-a-script">Driving the session from a script</h2>
<p><strong>Script</strong> is the Program category's third command: C# evaluated against the running session, for
anything the other command kinds do not cover. Where the script returns a sequence of actions, that
@@ -317,10 +326,15 @@ tooltip. <strong>Staged means the service is holding the script, not that the pr
save the project to keep it.</p>
<p>Two prompts guard the edges, and neither is a yes/no question, so each has three buttons:</p>
<ul>
<li><strong>Unsaved Changes</strong>, when you select another node while a save is still pending — <em>Save &amp; switch</em>
flushes it first, <em>Discard</em> drops it, <em>Cancel</em> leaves the selection where it is.</li>
<li><strong>Unsaved Changes</strong>, when the script still has unsaved edits and you select another node, or
move, duplicate, delete or add a command from the tree rows — a save already on its way is let
land first, and the prompt appears only for what is still unsaved after it. <em>Save &amp; switch</em>
saves and then proceeds, and only once the save has landed; <em>Discard</em> drops the edits; <em>Cancel</em>
leaves the selection where it is, and a cancelled row operation is dropped with a notice that
the editor keeps its unsaved edits.</li>
<li><strong>Script changed elsewhere</strong>, when the command changed underneath you — another tab, or a project
reload.</li>
reload. <em>Discard &amp; reload</em> takes the server's copy, <em>Force overwrite</em> writes yours over it,
<em>Cancel</em> keeps your edits in the editor, unsaved, and the server's copy as it is.</li>
</ul>
<p>Like NC Code, the title is optional and is what the row brackets.</p>
<h2 id="the-list-is-not-closed">The list is not closed</h2>