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
@@ -104,30 +104,18 @@
</ul>
<p>Then you should keep the Protability.</p>
<h2 id="file-path-of-load-button-and-save-button">File Path of Load Button and Save Button</h2>
<p>The genneral convention of the File Path of Load and Save is different by the single-user desktop application and web page application.</p>
<div class="TIP">
<h5>Tip</h5>
<p>Always preserve an empty filter ( * . * ) for the browser.</p>
</div>
<h3 id="single-user-desktop-application">Single-User Desktop Application</h3>
<p>The default directory of the Save/Load button are generally:</p>
<ul>
<li>System Default Directory or Project Directory (default, if not explicitly indicated)
The initial directory is the project directory.</li>
<li>Resource Directory
The path always point to <code>&lt;application path&gt;/Resource/&lt;classification&gt;</code> directory.
The button label has to explicitly show &lsquo;Load Resource&rsquo;.</li>
</ul>
<p>The kinds of buttons are not exclusive, they can be existed on the same tool bar.</p>
<p>If the selected file path is under the project directory, apply the relative path from the project, i.e. baseDirectory is project directory and relFile is the relative path.</p>
<h3 id="web-page-application">Web Page Application</h3>
<p>The default directory of the Save/Load button are generally:</p>
<p>A Load or Save button opens the browser at one of three roots:</p>
<ul>
<li>Admin Directory</li>
<li>Project Directory</li>
<li>Resource Directory</li>
</ul>
<p>The Resource Directory and Project Directory are generally under the Admin Directory. And the admin directory is generally set in the appsettings.json file.</p>
<p>The Resource Directory and Project Directory are generally under the Admin Directory, and the admin directory is generally set in the appsettings.json file. The kinds of button are not exclusive — several may sit on the same tool bar — and a button that opens the Resource root has to say so in its label.</p>
<p>If the selected file path is under the project directory, apply the relative path from the project: <code>baseDirectory</code> is the project directory and <code>relFile</code> is the relative path.</p>
<div class="TIP">
<h5>Tip</h5>
<p>Always preserve an empty filter ( * . * ) for the browser.</p>
</div>
<h2 id="typical-action-if-exhibitiononly-false">Typical Action if <code>exhibitionOnly</code> false</h2>
<p>On <a class="xref" href="../../api/Hi.Common.XmlUtils.IMakeXmlSource.html">IMakeXmlSource</a>.<a class="xref" href="../../api/Hi.Common.XmlUtils.IMakeXmlSource.html#Hi_Common_XmlUtils_IMakeXmlSource_MakeXmlSource_System_String_System_String_System_Boolean_">MakeXmlSource(string, string, bool)</a> with <code>exhibitionOnly</code> false, the argument (<code>baseDirectory</code> and <code>relFile</code>) should be the same from object's host (if exist) XML output function.</p>
@@ -164,16 +164,11 @@ MIME-ish strings (<code>STL</code>, <code>*.hincproj</code>) · units (<code>mm<
localStorage keys and series identifiers — anything a machine compares. Language self-names
(English, 简体中文, 繁體中文) stay in their own language in every locale. The full list lives with
the bundles, in the i18n folder's README.</p>
<h2 id="terms-carried-by-the-desktop-client">Terms Carried by the Desktop Client</h2>
<p>Three milling-cutter surfaces exist only on the WPF client, and their terms belong to the same
contract, so none of the words is reused elsewhere:</p>
<ul>
<li>Insert-Cutter 刀片 — a tab on <code>Mech/ToolHouse/MillingCutterPanel.xaml</code></li>
<li>Flute-Inner-Beam 刃中芯 — the tab served by <code>Mech/ToolHouse/FluteInnerBeamPanel.xaml</code></li>
<li>Cutter Integral Mode 刀頭形式 — a labelled tab there as well; the web application carries the
same choice as the <code>integralMode</code> datum, which decides whether the Tool House material section
offers a separate shank material, and shows no label of its own</li>
</ul>
<h2 id="a-choice-that-carries-no-label">A Choice That Carries No Label</h2>
<p>The cutter's integral mode reaches the web application as the <code>integralMode</code> datum rather than as a
named field: it decides whether the Tool House material section offers a separate shank material,
and shows no label of its own. A term with no visible string is still part of the contract — it has
to be settled before anything renders a value derived from it.</p>
<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>
<ul>