This commit is contained in:
2026-09-09 18:06:21 +08:00
parent 161af68fe3
commit 45b9f9ed5d
79 changed files with 1167 additions and 1532 deletions
@@ -87,18 +87,12 @@
<article data-uid="Anatomy-PreSettingCommandPanel">
<h1 id="presettingcommand-panel-general-config">PreSettingCommand Panel (General Config)</h1>
<p>The key model is <a class="xref" href="../../../api/Hi.SessionCommands.PreSettingCommand.html">PreSettingCommand</a>, the command both clients label
<strong>General Config</strong>. It is one command carrying a bundle of session settings — the machining
<p>The key model is <a class="xref" href="../../../api/Hi.SessionCommands.PreSettingCommand.html">PreSettingCommand</a>, labelled <strong>General Config</strong>. It is one command carrying a bundle of session settings — the machining
resolution, the machining motion resolution, collision detection, pause on failure, physics — plus
an optional read of a meshed-geometry file.</p>
<h2 id="where-a-general-config-comes-from">Where a General Config Comes From</h2>
<p>The two clients differ on how a mission acquires these settings, and that difference is the first
thing to know about this panel.</p>
<p>The WPF client creates the bundle. Its Add menu carries a hard-coded item that constructs a
<code>PreSettingCommand</code>, and the insert rule pins it to the top of the list: a new General Config lands
at index 0 unless the list already starts with one, and while it is the list's only General Config
the drag guard refuses to move it off that position.</p>
<p>The web client's Add Command dialog is served by the server's command catalog, which reflects every
<p>How a mission acquires these settings is the first thing to know about this panel.</p>
<p>The Add Command dialog is served by the server's command catalog, which reflects every
engine command carrying <code>[CommandCatalog]</code>. <code>PreSettingCommand</code> carries no such attribute, so the
dialog cannot produce one — the catalog keeps <code>presetting</code> only as a readable kind key, and creating
a command looks the kind up in the addable set alone. What the web offers instead is the same
@@ -212,21 +206,6 @@ project is loaded or assigned — not on a runtime reset and not when the workpi
an explicit setting survives both. This command carries its own value, and overwrites the
session's with it at the moment the command runs.</p>
</div>
<h2 id="the-wpf-clients-panel">The WPF Client's Panel</h2>
<p>There the whole bundle is one panel, in two group boxes.</p>
<ul>
<li><strong>Meshed Geometry Settings</strong> — an Enable Read Meshed Geometry checkbox over a Geometry File text
box and a Browse button; the grid beneath the checkbox is disabled until it is ticked. Browse is
an <code>OpenFileDialog</code> filtered to <code>*.wct;*.stl</code>, storing a pick under the project directory as a
relative path and one outside it as an absolute path.</li>
<li><strong>Machining Settings</strong> — the Machining Resolution control is an editable ComboBox pre-filled with
fifteen powers of two, from 0.0009765625 up to 16 in doublings, and a typed value outside that
list is accepted. Beside the Motion Resolution ComboBox a content presenter holds the fixed
fields, built at runtime and labelled Linear Resolution (mm) and Angle Resolution (deg) — Angle
Resolution being this client's wording for the same <code>RotaryResolution_deg</code> the web labels Rotary
Resolution. The three checkboxes sit loose in the same grid, and the Enable Physics one carries no
licence gate.</li>
</ul>
<h2 id="source-code-path">Source Code Path</h2>
<p>See <a class="xref" href="../../index.html">HiNC App Anatomy</a> for git repository links.</p>
<h3 id="web-application">Web Application</h3>