This commit is contained in:
2025-12-18 11:09:45 +08:00
parent 5e28ac1fa7
commit 32ff8b45e3
62 changed files with 2436 additions and 1551 deletions
@@ -89,7 +89,7 @@
<p>At the application entry point, you need to initialize HiAPI and set the exiting event.</p>
<ul>
<li><a class="xref" href="../../../api/Hi.HiNcKits.LocalApp.html#Hi_HiNcKits_LocalApp_AppBegin">AppBegin()</a></li>
<li>&lt;xref:Hi.HiNcKits.LocalApp.AppBegin&gt;</li>
<li><a class="xref" href="../../../api/Hi.HiNcKits.LocalApp.html#Hi_HiNcKits_LocalApp_AppEnd">AppEnd()</a></li>
</ul>
<div class="IMPORTANT">
@@ -94,7 +94,7 @@
<li>Web Service Application: Service inherits from <a class="xref" href="../../../api/Hi.MachiningProcs.IProjectService.html">IProjectService</a></li>
</ul>
</li>
<li>Other Model: <a class="xref" href="../../../api/Hi.HiNcKits.AppService.html">AppService</a></li>
<li>Other Model: &lt;xref:Hi.HiNcKits.AppService&gt;</li>
</ul>
<h2 id="main-panel-layout"><code>Main Panel</code> Layout</h2>
<ul>
@@ -147,7 +147,7 @@
</li>
</ul>
<h3 id="property-tab">Property Tab</h3>
<p>Visible if <a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_EnablePhysics">EnablePhysics</a> is true.</p>
<p>Visible if &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.EnablePhysics&gt; is true.</p>
<ul>
<li>Integral Mode Selection Dropdown
<ul>
@@ -186,7 +186,7 @@ Since the thickness depdents on the Workpiece Cutting Parameter and hone radius.
</li>
</ul>
<h3 id="insert-cutter-tab">Insert-Cutter Tab</h3>
<p>Visible if <a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_EnablePhysics">EnablePhysics</a> is true and Integral Mode is Insert End.</p>
<p>Visible if &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.EnablePhysics&gt; is true and Integral Mode is Insert End.</p>
<ul>
<li>Insert Number Input field</li>
<li>Insert Mass Input field (g)
@@ -202,7 +202,7 @@ Since the thickness depdents on the Workpiece Cutting Parameter and hone radius.
</li>
</ul>
<h3 id="material-tab">Material Tab</h3>
<p>Visible if <a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_EnablePhysics">EnablePhysics</a> is true.</p>
<p>Visible if &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.EnablePhysics&gt; is true.</p>
<ul>
<li>Shank Material (visible only for Integral Mode is Insert End mode)
<ul>
@@ -302,7 +302,7 @@ Apply <a class="xref" href="../../../../../api/Hi.Physics.CoatingMaterial.html">
<li>&ldquo;Resource/CoatingMaterial&rdquo;</li>
</ul>
<h3 id="flute-contours-tab">Flute-Contours Tab</h3>
<p>Visible if <a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_EnablePhysics">EnablePhysics</a> is true.</p>
<p>Visible if &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.EnablePhysics&gt; is true.</p>
<p>This part manages <a class="xref" href="../../../../../api/Hi.Milling.Cutters.MillingCutter.html#Hi_Milling_Cutters_MillingCutter_FluteContourTray">FluteContourTray</a>.</p>
<ul>
<li>Contour Tray Selection Dropdown
@@ -333,7 +333,7 @@ Apply <a class="xref" href="../../../../../api/Hi.Physics.CoatingMaterial.html">
</li>
</ul>
<h3 id="flute-inner-beam-tab">Flute-Inner-Beam Tab</h3>
<p>Visible if <a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_EnablePhysics">EnablePhysics</a> is true.</p>
<p>Visible if &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.EnablePhysics&gt; is true.</p>
<p>This part manages <a class="xref" href="../../../../../api/Hi.Milling.Cutters.MillingCutter.html#Hi_Milling_Cutters_MillingCutter_InnerBeamProfile">InnerBeamProfile</a>.</p>
<ul>
<li>Profile Type Selection Dropdown
@@ -370,7 +370,7 @@ Apply <a class="xref" href="../../../../../api/Hi.Physics.CoatingMaterial.html">
</li>
</ul>
<h3 id="optimization-tab">Optimization Tab</h3>
<p>Visible if <a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_EnablePhysics">EnablePhysics</a> is true.</p>
<p>Visible if &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.EnablePhysics&gt; is true.</p>
<p>This part manages <a class="xref" href="../../../../../api/Hi.NcOpt.MillingCutterOptOption.html">MillingCutterOptOption</a>.</p>
<ul>
<li>Enable Optimization Checkbox
@@ -90,7 +90,7 @@
<p>The page triggers by <a href="../main-panel.html">Main Panel</a>.</p>
<p>The key model is <a class="xref" href="../../../../api/Hi.NcMech.Fixtures.Fixture.html">Fixture</a> and <a class="xref" href="../../../../api/Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html">FixtureEditorDisplayeeConfig</a>.
Fixture is assigned from the Main Panel's <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>.<a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MachiningEquipment">MachiningEquipment</a>.<a class="xref" href="../../../../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipment_Fixture">Fixture</a>.</p>
<p><a class="xref" href="../../../../api/Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html">FixtureEditorDisplayeeConfig</a> is from <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../api/Hi.HiNcKits.AppConfig.html">AppConfig</a> which assigned from the parent component.</p>
<p><a class="xref" href="../../../../api/Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html">FixtureEditorDisplayeeConfig</a> is from &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppConfig&gt; which assigned from the parent component.</p>
<h2 id="layout">Layout</h2>
<ul>
<li>Fixture Page
@@ -89,7 +89,7 @@
<p>The term stick is for not only milling, but other remover like electric discharge machining tool.</p>
<p>The key model is MillingTool.
Other model: <a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.</p>
Other model: &lt;xref:Hi.HiNcKits.AppService&gt;.</p>
<h2 id="layout">Layout</h2>
<ul>
<li>Head Line
@@ -122,7 +122,7 @@ Other model: <a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.htm
</ul>
</li>
<li>Intelligent Holder Tab
Visible if <a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_EnablePhysics">EnablePhysics</a> is true.</li>
Visible if &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.EnablePhysics&gt; is true.</li>
<li>Info Tab
<ul>
<li>Abstract Note TextField (readonly)</li>
@@ -89,7 +89,7 @@
<p>The page triggers by <a href="../main-panel.html">Main Panel</a>.</p>
<p>The key model is MachiningToolHouse.
The model <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a> is delivered by the host GUI.</p>
The model &lt;xref:Hi.HiNcKits.AppService&gt; is delivered by the host GUI.</p>
<h2 id="layout">Layout</h2>
<ul>
<li>Tool House Page
@@ -147,11 +147,11 @@ The panel has CRUD (and Duplicate) of the tools. Read and Update the selected to
<li>(Options of <a class="xref" href="../../../../api/Hi.Milling.Cutters.MillingCutterEditorDisplayee.html">MillingCutterEditorDisplayee</a>)
<ul>
<li>Shape Mode SubMenu
Set <a class="xref" href="../../../../api/Hi.Milling.Cutters.MillingCutterEditorDisplayee.html#Hi_Milling_Cutters_MillingCutterEditorDisplayee_ShapeMode">ShapeMode</a> to Solid Bounding Shape if <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_EnablePhysics">EnablePhysics</a> is false on GUI initialization.
Set <a class="xref" href="../../../../api/Hi.Milling.Cutters.MillingCutterEditorDisplayee.html#Hi_Milling_Cutters_MillingCutterEditorDisplayee_ShapeMode">ShapeMode</a> to Solid Bounding Shape if &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.EnablePhysics&gt; is false on GUI initialization.
<ul>
<li>Solid Bounding Shape Ratio Button</li>
<li>Detail Physics Shape Ratio Button
Visible if <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_EnablePhysics">EnablePhysics</a> is true.</li>
Visible if &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.EnablePhysics&gt; is true.</li>
</ul>
</li>
</ul>
@@ -90,7 +90,7 @@
<p>The page triggers by <a href="../main-panel.html">Main Panel</a>.</p>
<p>The key model is <a class="xref" href="../../../../api/Hi.NcMech.Workpieces.Workpiece.html">Workpiece</a> and <a class="xref" href="../../../../api/Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html">WorkpieceEditorDisplayeeConfig</a>.
Which is assigned from the Main Panel's <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>.<a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_Workpiece">Workpiece</a>.</p>
<p><a class="xref" href="../../../../api/Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html">FixtureEditorDisplayeeConfig</a> is from <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../api/Hi.HiNcKits.AppConfig.html">AppConfig</a> which assigned from the parent component.</p>
<p><a class="xref" href="../../../../api/Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html">FixtureEditorDisplayeeConfig</a> is from &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppConfig&gt; which assigned from the parent component.</p>
<h2 id="layout">Layout</h2>
<ul>
<li>Workpiece Page
@@ -165,7 +165,7 @@ Apply <a href="../geom/runtime-geom-panel.html">Runtime Geometry Panel</a></li>
</ul>
</li>
<li>Material Tab
Visible if <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_EnablePhysics">EnablePhysics</a> is true.
Visible if &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.EnablePhysics&gt; is true.
<ul>
<li>Workpiece Material File Selector
<ul>
@@ -92,7 +92,7 @@
<li>Assistant Model
<ul>
<li><a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a></li>
<li><a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a></li>
<li>&lt;xref:Hi.HiNcKits.AppService&gt;</li>
</ul>
</li>
</ul>
@@ -96,7 +96,7 @@
<li>Assistant Model
<ul>
<li><a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a></li>
<li><a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a></li>
<li>&lt;xref:Hi.HiNcKits.AppService&gt;</li>
</ul>
</li>
</ul>
@@ -120,7 +120,7 @@
</ul>
</li>
<li>Output Shot Files Section
Visible if <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_EnablePhysics">EnablePhysics</a> is true.
Visible if &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.EnablePhysics&gt; is true.
<ul>
<li>Enable Write Shot Files CheckBox
<ul>
@@ -142,7 +142,7 @@ Visible if <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">Ap
</ul>
</li>
<li>Optimization Files Section
Visible if <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_EnablePhysics">EnablePhysics</a> is true.
Visible if &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.EnablePhysics&gt; is true.
<ul>
<li>Enable Optimize To Files CheckBox
<ul>
@@ -96,7 +96,7 @@
<li>Assistant Model
<ul>
<li><a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a></li>
<li><a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a></li>
<li>&lt;xref:Hi.HiNcKits.AppService&gt;</li>
</ul>
</li>
</ul>
@@ -92,7 +92,7 @@
<li>Assistant Model
<ul>
<li><a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a></li>
<li><a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a></li>
<li>&lt;xref:Hi.HiNcKits.AppService&gt;</li>
</ul>
</li>
</ul>
@@ -87,7 +87,7 @@
<article data-uid="">
<h1 id="player-panel">Player Panel</h1>
<p>The model of the player panel is <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a> and <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.</p>
<p>The model of the player panel is <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a> and &lt;xref:Hi.HiNcKits.AppService&gt;.</p>
<h2 id="step-by-step-program-construction-check-list">Step by Step Program Construction Check List</h2>
<ol>
<li>Create the <code>Player Panel</code> Layout and set <code>Player Panel</code>/<code>RenderingCanvas</code>.</li>
@@ -88,15 +88,15 @@
<h1 id="selected-step-info-panel">Selected-Step Info Panel</h1>
<p>The panel locates on the <a href="index.html">Player Panel</a>.</p>
<p>The model is <a class="xref" href="../../../../api/Hi.MachiningSteps.MachiningStep.html">MachiningStep</a> and <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.</p>
<p>The model is <a class="xref" href="../../../../api/Hi.MachiningSteps.MachiningStep.html">MachiningStep</a> and &lt;xref:Hi.HiNcKits.AppService&gt;.</p>
<p>The <a class="xref" href="../../../../api/Hi.MachiningSteps.MachiningStep.html">MachiningStep</a> is assigned by <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_ClStrip">ClStrip</a>.<a class="xref" href="../../../../api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_PosSelected">PosSelected</a>.</p>
<p>Show step infomation from <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_DisplayedStepPresentAccessList">DisplayedStepPresentAccessList</a>.</p>
<p>Show step infomation from &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.DisplayedStepPresentAccessList&gt;.</p>
<p>The resx of <a class="xref" href="../../../../api/Hi.MachiningSteps.MachiningStep.html">MachiningStep</a> contains the translation of <a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.html">PresentAttribute</a>.<a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.html#Hi_MachiningSteps_PresentAttribute_Name">Name</a>, apply the translation to the GUI. If the translation not existed, use the original value.</p>
<p>See Also <a href="../preference/step-present-preference-page.html">Step Present Preference Page</a>.</p>
<h2 id="sample-code">Sample Code</h2>
<p>Refer the code to show step infomation.</p>
<pre><code class="lang-csharp" name="SampleCode-ShowStepPresent">internal static void ShowStepPresent(
AppService userEnv, MachiningStep machiningStep)
UserService userEnv, MachiningStep machiningStep)
{
foreach (var entry in userEnv.DisplayedStepPresentAccessList)
{
@@ -88,7 +88,7 @@
<h1 id="graphic-cache-submenu">Graphic-Cache SubMenu</h1>
<p>The submenu locates on the <a href="index.html">Preference Menu Dropdown</a>.</p>
<p>The model <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a> is from its parent component.</p>
<p>The model &lt;xref:Hi.HiNcKits.AppService&gt; is from its parent component.</p>
<h2 id="layout">Layout</h2>
<ul>
<li>Graphic-Cache SubMenu
@@ -101,7 +101,7 @@
</li>
</ul>
<h2 id="behavior">Behavior</h2>
<p><code>Graphic-Cache Input Text Field</code> and <code>Graphic-Cache Slider</code> bind the <a class="xref" href="../../../../api/Hi.HiNcKits.AppConfig.html">AppConfig</a>.<a class="xref" href="../../../../api/Hi.HiNcKits.AppConfig.html#Hi_HiNcKits_AppConfig_GraphicCacheMb">GraphicCacheMb</a>. The limit text fields also bind to the properties of <a class="xref" href="../../../../api/Hi.HiNcKits.AppConfig.html">AppConfig</a>.</p>
<p><code>Graphic-Cache Input Text Field</code> and <code>Graphic-Cache Slider</code> bind the &lt;xref:Hi.HiNcKits.AppConfig&gt;.&lt;xref:Hi.HiNcKits.AppConfig.GraphicCacheMb&gt;. The limit text fields also bind to the properties of &lt;xref:Hi.HiNcKits.AppConfig&gt;.</p>
<h2 id="source-code-path">Source Code Path</h2>
<p>See <a href="../index.html">this page</a> for git repository.</p>
<h3 id="wpf-application-source-code-path">WPF Application Source Code Path</h3>
@@ -87,8 +87,8 @@
<article data-uid="">
<h1 id="preference-menu-dropdown">Preference Menu Dropdown</h1>
<p>The model of the UI is <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.
<a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a> contains <a class="xref" href="../../../../api/Hi.HiNcKits.AppConfig.html">AppConfig</a>, which is rapidly used in the GUI.</p>
<p>The model of the UI is &lt;xref:Hi.HiNcKits.AppService&gt;.
&lt;xref:Hi.HiNcKits.AppService&gt; contains &lt;xref:Hi.HiNcKits.AppConfig&gt;, which is rapidly used in the GUI.</p>
<p>The dropdown is on the <a href="../main-panel.html">Main Panel</a>.</p>
<h2 id="layout">Layout</h2>
<ul>
@@ -99,8 +99,8 @@
<li><a href="language-selection-submenu.html">Language Selection SubMenu</a></li>
<li>Show Physics Options CheckBox
<ul>
<li>The model is <a class="xref" href="../../../../api/Hi.HiNcKits.AppConfig.html#Hi_HiNcKits_AppConfig_ShowPhysicsOptions">ShowPhysicsOptions</a>.</li>
<li>The checkbox is disabled and unchecked if <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_IsPhysicsLicensed">IsPhysicsLicensed</a> is false.</li>
<li>The model is &lt;xref:Hi.HiNcKits.AppConfig.ShowPhysicsOptions&gt;.</li>
<li>The checkbox is disabled and unchecked if &lt;xref:Hi.HiNcKits.AppService.IsPhysicsLicensed&gt; is false.</li>
</ul>
</li>
<li>Show Log Button
@@ -88,7 +88,7 @@
<h1 id="language-selection-submenu">Language Selection SubMenu</h1>
<p>The submenu locates on the <a href="index.html">Preference Menu Dropdown</a>.</p>
<p>The model <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a> is from its parent component.</p>
<p>The model &lt;xref:Hi.HiNcKits.AppService&gt; is from its parent component.</p>
<p>Load the language preference on application start.</p>
<div class="NOTE">
<h5>Note</h5>
@@ -87,9 +87,9 @@
<article data-uid="">
<h1 id="step-present-preference-page">Step Present Preference Page</h1>
<p>The model <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a> is from its parent component. The <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html">AppService</a>.<a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_AppConfig">AppConfig</a> is rapidly used.</p>
<p>The model of Candidate Keys Panel is <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_CandidateStepPresentKeyList">CandidateStepPresentKeyList</a>.
The model of Displayed Keys Panel is <a class="xref" href="../../../../api/Hi.HiNcKits.AppConfig.html#Hi_HiNcKits_AppConfig_DisplayedStepPresentKeyList">DisplayedStepPresentKeyList</a>.</p>
<p>The model &lt;xref:Hi.HiNcKits.AppService&gt; is from its parent component. The &lt;xref:Hi.HiNcKits.AppService&gt;.&lt;xref:Hi.HiNcKits.AppService.AppConfig&gt; is rapidly used.</p>
<p>The model of Candidate Keys Panel is &lt;xref:Hi.HiNcKits.AppService.CandidateStepPresentKeyList&gt;.
The model of Displayed Keys Panel is &lt;xref:Hi.HiNcKits.AppConfig.DisplayedStepPresentKeyList&gt;.</p>
<h2 id="layout">Layout</h2>
<ul>
<li>Step Present Preference Page (or window)
@@ -124,9 +124,9 @@ The model of Displayed Keys Panel is <a class="xref" href="../../../../api/Hi.Hi
</ul>
<p>The categories are not defined for programming logic but only for user experience. So decide and define the categories in the GUI here only.</p>
<p>Since the Keys are not all come from the properties of <a class="xref" href="../../../../api/Hi.MachiningSteps.MachiningStep.html">MachiningStep</a>, a category panel (Category Other Panel) for the uncategoried keys is required.</p>
<p>The keys in the Displayed Keys Panel is in sequence of <a class="xref" href="../../../../api/Hi.HiNcKits.AppConfig.html#Hi_HiNcKits_AppConfig_DisplayedStepPresentKeyList">DisplayedStepPresentKeyList</a>. User tune the sequence and remove key by the Displayed Keys Panel. User add and remove the key from the ToggleButtons in Candidate Keys Panel. Those UI control items are required.</p>
<p>The keys in the Displayed Keys Panel is in sequence of &lt;xref:Hi.HiNcKits.AppConfig.DisplayedStepPresentKeyList&gt;. User tune the sequence and remove key by the Displayed Keys Panel. User add and remove the key from the ToggleButtons in Candidate Keys Panel. Those UI control items are required.</p>
<p>To both Candidate Keys Panel and Displayed Keys Panel:
Apply <a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.html">PresentAttribute</a>.<a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.html#Hi_MachiningSteps_PresentAttribute_Name">Name</a> as Key label by <a class="xref" href="../../../../api/Hi.HiNcKits.AppService.html#Hi_HiNcKits_AppService_StepPresentAccessDictionary">StepPresentAccessDictionary</a>. Apply the key to the button tooltip.</p>
Apply <a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.html">PresentAttribute</a>.<a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.html#Hi_MachiningSteps_PresentAttribute_Name">Name</a> as Key label by &lt;xref:Hi.HiNcKits.AppService.StepPresentAccessDictionary&gt;. Apply the key to the button tooltip.</p>
<p>The resx of <a class="xref" href="../../../../api/Hi.MachiningSteps.MachiningStep.html">MachiningStep</a> contains the translation of <a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.html">PresentAttribute</a>.<a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.html#Hi_MachiningSteps_PresentAttribute_Name">Name</a>, apply the translation to the GUI. If the translation not existed, use the original value.</p>
<h3 id="categories">Categories</h3>
<p>Refer the code to design Categories:</p>
@@ -441,7 +441,7 @@ Apply <a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.h
</code></pre>
<p>Refer the code to apply <a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.html">PresentAttribute</a>.</p>
<pre><code class="lang-csharp" name="SampleCode-ShowStepPresent">internal static void ShowStepPresent(
AppService userEnv, MachiningStep machiningStep)
UserService userEnv, MachiningStep machiningStep)
{
foreach (var entry in userEnv.DisplayedStepPresentAccessList)
{