197 lines
11 KiB
HTML
197 lines
11 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>HiNC App Anatomy | HiAPI-C# 2025 </title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="title" content="HiNC App Anatomy | HiAPI-C# 2025 ">
|
|
|
|
|
|
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
|
<link rel="stylesheet" href="../public/docfx.min.css">
|
|
<link rel="stylesheet" href="../public/main.css">
|
|
<meta name="docfx:navrel" content="../toc.html">
|
|
<meta name="docfx:tocrel" content="toc.html">
|
|
|
|
<meta name="docfx:rel" content="../">
|
|
|
|
|
|
|
|
<meta name="loc:inThisArticle" content="In this article">
|
|
<meta name="loc:searchResultsCount" content="{count} results for "{query}"">
|
|
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
|
<meta name="loc:tocFilter" content="Filter by title">
|
|
<meta name="loc:nextArticle" content="Next">
|
|
<meta name="loc:prevArticle" content="Previous">
|
|
<meta name="loc:themeLight" content="Light">
|
|
<meta name="loc:themeDark" content="Dark">
|
|
<meta name="loc:themeAuto" content="Auto">
|
|
<meta name="loc:changeTheme" content="Change theme">
|
|
<meta name="loc:copy" content="Copy">
|
|
<meta name="loc:downloadPdf" content="Download PDF">
|
|
|
|
<script type="module" src="./../public/docfx.min.js"></script>
|
|
|
|
<script>
|
|
const theme = localStorage.getItem('theme') || 'auto'
|
|
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
|
|
</script>
|
|
|
|
</head>
|
|
|
|
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="">
|
|
<header class="bg-body border-bottom">
|
|
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
|
|
<div class="container-xxl flex-nowrap">
|
|
<a class="navbar-brand" href="../index.html">
|
|
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
|
|
|
|
</a>
|
|
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
|
|
<i class="bi bi-three-dots"></i>
|
|
</button>
|
|
<div class="collapse navbar-collapse" id="navpanel">
|
|
<div id="navbar">
|
|
<form class="search" role="search" id="search">
|
|
<i class="bi bi-search"></i>
|
|
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
</header>
|
|
|
|
<main class="container-xxl">
|
|
<div class="toc-offcanvas">
|
|
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
|
|
<div class="offcanvas-header">
|
|
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
|
|
</div>
|
|
<div class="offcanvas-body">
|
|
<nav class="toc" id="toc"></nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="content">
|
|
<div class="actionbar">
|
|
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
|
|
<i class="bi bi-list"></i>
|
|
</button>
|
|
|
|
<nav id="breadcrumb"></nav>
|
|
</div>
|
|
|
|
<article data-uid="">
|
|
<h1 id="hinc-app-anatomy">HiNC App Anatomy</h1>
|
|
|
|
<p>This section is a <strong>transparent, per-component anatomy of the HiNC application family</strong> — the <strong>HiNC-2025-webservice</strong> (the current flagship product: Quasar SPA + ASP.NET Core) and the <strong>HiNC-2025-win-desktop</strong> (the WPF desktop client). Every page dissects one UI component and exposes three layers:</p>
|
|
<ol>
|
|
<li><strong>Layout</strong> — the visual / widget tree the user sees.</li>
|
|
<li><strong>Key Model</strong> — the backing HiAPI types (<a class="xref" href="../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>, <a class="xref" href="../api/Hi.HiNcKits.UserService.html">UserService</a>, …).</li>
|
|
<li><strong>Source Code Path</strong> — the concrete files (WPF <code>.xaml</code> + Quasar <code>.vue</code> + controller <code>.cs</code>) that implement the component, per application variant.</li>
|
|
</ol>
|
|
<p>The sibling <a href="general-rules.html">General Rules</a> describes conventions shared across the anatomy.</p>
|
|
<div class="NOTE">
|
|
<h5>Note</h5>
|
|
<p>This is <strong>not</strong> a from-scratch build tutorial. It documents how the shipped HiNC apps are put together, so that:</p>
|
|
<ul>
|
|
<li>End users can understand exactly what each product screen does and which project model each widget edits.</li>
|
|
<li>Developers extending HiAPI-based apps can see a live, production-scale example of every building block mapped to its source.</li>
|
|
<li>AI agents working on the codebase have a single reference for the <em>view ↔ model ↔ source</em> correspondence.</li>
|
|
</ul>
|
|
</div>
|
|
<h2 id="source-code-repositories">Source Code Repositories</h2>
|
|
<p>The anatomy covers two codebases in parallel. Each page's <em>Source Code Path</em> section lists the file in each repository that implements the same component.</p>
|
|
<h3 id="hinc-2025-webservice-current-flagship">HiNC-2025-webservice (current flagship)</h3>
|
|
<p>Quasar CLI SPA (Vue 3 + TypeScript + Pinia + Quasar) served by ASP.NET Core. This is the primary product delivered to end users today.</p>
|
|
<ul>
|
|
<li>Repository: <a href="https://superhightech-gitea.webredirect.org/HiNC-Deploy/HiNC-2025-webservice.git">https://superhightech-gitea.webredirect.org/HiNC-Deploy/HiNC-2025-webservice.git</a></li>
|
|
</ul>
|
|
<h3 id="hinc-2025-win-desktop">HiNC-2025-win-desktop</h3>
|
|
<p>Native Windows desktop client built on WPF.</p>
|
|
<ul>
|
|
<li>Repository: <a href="https://superhightech-gitea.webredirect.org/HiNC-Deploy/HiNC-2025-win-desktop.git">https://superhightech-gitea.webredirect.org/HiNC-Deploy/HiNC-2025-win-desktop.git</a></li>
|
|
</ul>
|
|
<h2 id="architecture-patterns">Architecture Patterns</h2>
|
|
<p>Cross-cutting patterns referenced by many pages:</p>
|
|
<ul>
|
|
<li><a href="common/dictionary-service-pattern.html">DictionaryService and DictionaryHub Pattern</a> — Connection-scoped object indexing for hierarchical components.</li>
|
|
<li><a href="hinc-web-service/disp-web-service.html">Rendering Canvas on Web Service</a> — WebSocket / SignalR-based 3D canvas architecture.</li>
|
|
</ul>
|
|
<h2 id="reading-guide">Reading Guide</h2>
|
|
<p>Jump straight to the component you want to understand. Most readers will land here via an in-text cross-link; the sections below are a browsable index of the anatomy.</p>
|
|
<h3 id="core-framework">Core Framework</h3>
|
|
<ul>
|
|
<li><a href="initialize-hiapi.html">Initialize HiAPI</a> — Application startup and HiAPI bootstrap.</li>
|
|
<li><a href="main-panel.html">Main Panel</a> — The top-level window / layout shell.</li>
|
|
<li><a href="message-section-on-main-panel.html">Message Section</a> — Status and notification bar.</li>
|
|
</ul>
|
|
<h3 id="rendering-and-visualization">Rendering and Visualization</h3>
|
|
<ul>
|
|
<li><a href="renderingcanvas-tool-bar.html">RenderingCanvas Tool Bar</a> — 3D view-control toolbar.</li>
|
|
<li><a href="player/index.html">Player Panel</a> — Simulation playback and visualization.</li>
|
|
</ul>
|
|
<h3 id="configuration-panels">Configuration Panels</h3>
|
|
<ul>
|
|
<li><a href="preference/index.html">Preference Menu</a> — Application settings entry point.</li>
|
|
<li><a href="preference/graphic-cache-dropdown.html">Graphic-Cache Dropdown</a> — Graphics caching tuning.</li>
|
|
</ul>
|
|
<h3 id="geometry-and-mechanism">Geometry and Mechanism</h3>
|
|
<ul>
|
|
<li><a href="widget/vec3d/index.html">Widget Components</a> — Reusable primitives (Vec3dControl, NumericInput, …).</li>
|
|
<li><a href="geom/index.html">Geometry Panels</a> — Geometry creation and management.</li>
|
|
<li><a href="mech/topo/transformers.html">Transformers</a> — Coordinate-transformation editors.</li>
|
|
<li><a href="mech/fixture-page.html">Fixture Page</a> — Fixture configuration.</li>
|
|
<li><a href="mech/workpiece-page.html">Workpiece Page</a> — Workpiece definition.</li>
|
|
<li><a href="mech/tool-house-page.html">ToolHouse Page</a> — Tool library.</li>
|
|
</ul>
|
|
<h3 id="operation">Operation</h3>
|
|
<ul>
|
|
<li><a href="controller/index.html">Controller Page</a> — CNC controller settings.</li>
|
|
<li><a href="mission/index.html">Mission Page</a> — Mission (shell-command sequence) editor.</li>
|
|
</ul>
|
|
<h2 id="reading-a-page">Reading a Page</h2>
|
|
<p>Each anatomy page is structured so the reader can pivot between the three layers in a single glance:</p>
|
|
<ol>
|
|
<li>Start at <strong>Layout</strong> to see the widget tree and understand the user-visible structure.</li>
|
|
<li>Drop down to <strong>Key Model</strong> to learn which backing type each widget edits; click the <code><xref:…></code> links to open the API reference.</li>
|
|
<li>Finish at <strong>Source Code Path</strong> to open the actual file in each repository. “Web Page Application Source Code Path” is authoritative for the current flagship product; the WPF entry supplies the desktop-client comparison.</li>
|
|
</ol>
|
|
<div class="TIP">
|
|
<h5>Tip</h5>
|
|
<p>If you are starting a new application on top of HiAPI and want a step-by-step build guide instead, see <a href="../fundamentals/getting-started/index.html">Getting Started</a>. The anatomy is the reference you keep open while you build; the Getting Started page is the tutorial you follow in sequence.</p>
|
|
</div>
|
|
<div class="NOTE">
|
|
<h5>Note</h5>
|
|
<p>If you are using an AI agent to make changes across both apps, point it at the specific anatomy page whose component you are editing. Each page intentionally names the WPF and Quasar source files in lock-step so the agent keeps the two in sync.</p>
|
|
</div>
|
|
|
|
</article>
|
|
|
|
<div class="contribution d-print-none">
|
|
</div>
|
|
|
|
<div class="next-article d-print-none border-top" id="nextArticle"></div>
|
|
|
|
</div>
|
|
|
|
<div class="affix">
|
|
<nav id="affix"></nav>
|
|
</div>
|
|
</main>
|
|
|
|
<div class="container-xxl search-results" id="search-results"></div>
|
|
|
|
<footer class="border-top text-secondary">
|
|
<div class="container-xxl">
|
|
<div class="flex-fill">
|
|
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
</body>
|
|
</html>
|