tune
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,145 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Kinematic Topology | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Kinematic Topology | 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="Usage.HiMech.Topo">
|
||||
<h1 id="kinematic-topology">Kinematic Topology</h1>
|
||||
|
||||
<p>The Kinematic Topology is composed of three elemental classes: <strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.Anchor.html">Anchor</a></strong>, <strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.Branch.html">Branch</a></strong> and <strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.Asmb.html">Asmb</a></strong>.</p>
|
||||
<h2 id="basic-elements">Basic Elements</h2>
|
||||
<h3 id="anchors-and-branches">Anchors and Branches</h3>
|
||||
<p><strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.Anchor.html">Anchor</a></strong> object contains a cartesian coordinate. It can be a mechanical component or a flag.</p>
|
||||
<p><strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.Branch.html">Branch</a></strong> object is a directional link between two <a class="xref" href="../../../../../api/Hi.Mech.Topo.Anchor.html">Anchor</a> objects. It contains the <strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.ITransformer.html">ITransformer</a></strong> object. The <a class="xref" href="../../../../../api/Hi.Mech.Topo.ITransformer.html">ITransformer</a> object contains a coordinate <strong>transformation matrix</strong>. As shown in the following sketch:</p>
|
||||
<p><img src="chainLink.png" alt="Chain Structure"></p>
|
||||
<h3 id="assembly-management">Assembly Management</h3>
|
||||
<p><strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.Asmb.html">Asmb</a></strong> (Assembly) provides organization and management of Anchors. An Assembly can contain both Anchors and other Assemblies. Key features include:</p>
|
||||
<ul>
|
||||
<li>Grouping related Anchors together</li>
|
||||
<li>Managing coordinate transformations</li>
|
||||
<li>Providing display and indexing functions</li>
|
||||
<li>Supporting hierarchical structure</li>
|
||||
</ul>
|
||||
<h2 id="kinematic-chain-example">Kinematic Chain Example</h2>
|
||||
<p>The following figure shows a kinematic chain of a non-orthogonal 5-axis machine tool:</p>
|
||||
<p><img src="vmt.png" alt="VMT Structure"></p>
|
||||
<p>Each <a class="xref" href="../../../../../api/Hi.Mech.Topo.Anchor.html">Anchor</a> represents a component:</p>
|
||||
<ul>
|
||||
<li>Axis components: X, Y, Z, B, C</li>
|
||||
<li>Base components: O (base1), O* (base2)</li>
|
||||
<li>Tool components: S (spindle), T (tool body), T* (tool flute)</li>
|
||||
<li>Workpiece: W</li>
|
||||
</ul>
|
||||
<p>The relative transform between two Anchors is calculated by multiplying the transform matrices along the Branch. For example, the transform matrix from W to T is:</p>
|
||||
<div class="math">
|
||||
\[
|
||||
M_{WT} = M_{CW}^{-1} \cdot M_{YC}^{-1} \cdot M_{OY}^{-1} \cdot M_{OO^*} \cdot M_{O^*X} \cdot M_{XZ} \cdot M_{ZB} \cdot M_{BS} \cdot M_{ST}
|
||||
\]</div>
|
||||
<p>This matrix can be obtained using <a class="xref" href="../../../../../api/Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_GetMat4d_Hi_Mech_Topo_IGetAnchor_Hi_Mech_Topo_IGetAnchor_">GetMat4d(IGetAnchor, IGetAnchor)</a>.</p>
|
||||
|
||||
</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>
|
||||
|
After Width: | Height: | Size: 90 KiB |
@@ -0,0 +1,138 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>HiAPI Mechanics Overview | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="HiAPI Mechanics Overview | 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="HiMech.Overview">
|
||||
<h1 id="mechanism-topology">Mechanism Topology</h1>
|
||||
|
||||
<p>HiAPI Mechanism Topology provides basic functionality for assembling mechanical structures and simulating their motions. It allows you to build kinematic models of milling machines and similar mechanical structures through a topology-based approach.</p>
|
||||
<h2 id="core-concepts">Core Concepts</h2>
|
||||
<h3 id="kinematic-topology">Kinematic Topology</h3>
|
||||
<p>Kinematic Topology is the core concept of this module, which describes the motion relationships between mechanical components. With Kinematic Topology, you can:</p>
|
||||
<ul>
|
||||
<li>Define mechanical structures and motion relationships</li>
|
||||
<li>Calculate forward and inverse kinematics</li>
|
||||
<li>Display component positions and orientations</li>
|
||||
<li>Conduct collision detection</li>
|
||||
</ul>
|
||||
<h3 id="main-modules">Main Modules</h3>
|
||||
<ul>
|
||||
<li><a href="Topo/index.html">Topology</a> - Kinematic topology structure, including assembly management and chain definition</li>
|
||||
<li><a href="transformers/index.html">Transformers</a> - Coordinate transformation and motion transformation</li>
|
||||
</ul>
|
||||
<h2 id="api-references">API References</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../../../api/Hi.Mech.Topo.html">Hi.Mech.Topo</a> - Core topology functionality</li>
|
||||
<li><a class="xref" href="../../../../api/Hi.Mech.Topo.Asmb.html">Asmb</a> - Assembly-related functionality</li>
|
||||
<li><a class="xref" href="../../../../api/Hi.Mech.Topo.Branch.html">Branch</a> - Chain-related functionality</li>
|
||||
</ul>
|
||||
<h2 id="examples">Examples</h2>
|
||||
<p>Please refer to the examples in each sub-section to learn how to use these features to build your applications.</p>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,198 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Handle Transform Matrix by ITransformer | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Handle Transform Matrix by ITransformer | 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="HiMech.Tutor.transformers">
|
||||
<h1 id="handle-transform-matrix-by-itransformer">Handle Transform Matrix by ITransformer</h1>
|
||||
|
||||
<p><strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.ITransformer.html">ITransformer</a></strong> contains a transform matrix and a inverse transform matrix. The matrix is 4x4 column-major matrix, which describe the orientation or movement between 3D coordinates.</p>
|
||||
<p>Several common used interface and class are implemented from <a class="xref" href="../../../../../api/Hi.Mech.Topo.ITransformer.html">ITransformer</a>. The inheritance is shown:</p>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Mech.Topo.IStaticTransformer.html">IStaticTransformer</a>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Mech.Topo.NoTransform.html">NoTransform</a></li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Mech.Topo.StaticTranslation.html">StaticTranslation</a></li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Mech.Topo.StaticRotation.html">StaticRotation</a></li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Mech.Topo.StaticFreeform.html">StaticFreeform</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Mech.Topo.IDynamicTransformer.html">IDynamicTransformer</a>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Mech.Topo.IDynamicRegular.html">IDynamicRegular</a>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Mech.Topo.DynamicTranslation.html">DynamicTranslation</a></li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Mech.Topo.DynamicRotation.html">DynamicRotation</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Mech.Topo.DynamicFreeform.html">DynamicFreeform</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p><strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.IStaticTransformer.html">IStaticTransformer</a></strong> is transformer with constant matrix. <strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.NoTransform.html">NoTransform</a></strong>, <strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.StaticTranslation.html">StaticTranslation</a></strong> and <strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.StaticRotation.html">StaticRotation</a></strong> contains transform matrix of identity, translate and rotate respectively. <strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.StaticFreeform.html">StaticFreeform</a></strong> contains a arbitrary constant transform matrix.</p>
|
||||
<p>The transform matrix of <a class="xref" href="../../../../../api/Hi.Mech.Topo.StaticTranslation.html">StaticTranslation</a> is:</p>
|
||||
<div class="math">
|
||||
\[
|
||||
M_{StaticTranslate}=
|
||||
\begin{bmatrix}
|
||||
1 & 0 & 0 & 0 \\\\
|
||||
0 & 1 & 0 & 0 \\\\
|
||||
0 & 0 & 1 & 0 \\\\
|
||||
Trans.x & Trans.y & Trans.z & 1
|
||||
\end{bmatrix}
|
||||
\]</div>
|
||||
<p>The transform matrix of <a class="xref" href="../../../../../api/Hi.Mech.Topo.StaticRotation.html">StaticRotation</a> and <a class="xref" href="../../../../../api/Hi.Mech.Topo.DynamicRotation.html">DynamicRotation</a> is:</p>
|
||||
<div class="math">
|
||||
\[
|
||||
M_{Rotate}=
|
||||
\begin{bmatrix}
|
||||
1 & 0 & 0 & 0 \\\\
|
||||
0 & 1 & 0 & 0 \\\\
|
||||
0 & 0 & 1 & 0 \\\\
|
||||
-Pivot.x & -Pivot.y & -Pivot.z & 1
|
||||
\end{bmatrix}
|
||||
\cdot
|
||||
\\\\
|
||||
\begin{bmatrix}
|
||||
Rot_{00}(axis,rad) & Rot_{01}(axis,rad) & Rot_{02}(axis,rad) & 0 \\\\
|
||||
Rot_{10}(axis,rad) & Rot_{11}(axis,rad) & Rot_{12}(axis,rad) & 0 \\\\
|
||||
Rot_{20}(axis,rad) & Rot_{21}(axis,rad) & Rot_{22}(axis,rad) & 0 \\\\
|
||||
0 & 0 & 0 & 1
|
||||
\end{bmatrix}
|
||||
\cdot
|
||||
\\\\
|
||||
\begin{bmatrix}
|
||||
1 & 0 & 0 & 0 \\\\
|
||||
0 & 1 & 0 & 0 \\\\
|
||||
0 & 0 & 1 & 0 \\\\
|
||||
Pivot.x & Pivot.y & Pivot.z & 1
|
||||
\end{bmatrix}
|
||||
\]</div>
|
||||
<p>Where <a class="xref" href="../../../../../api/Hi.Mech.Topo.DynamicRotation.html#Hi_Mech_Topo_DynamicRotation_Pivot">Pivot</a> is the position of the rotation axis.</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p>Pivot is a point. However, rotation axis is a line. It means that it causes the same matrix no matter how the pivot is moving along the axis.</p>
|
||||
</div>
|
||||
<p><strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.IDynamicTransformer.html">IDynamicTransformer</a></strong> is transformer with inconstant transform matrix. <strong><a class="xref" href="../../../../../api/Hi.Mech.Topo.IDynamicRegular.html">IDynamicRegular</a></strong> has a property <a class="xref" href="../../../../../api/Hi.Mech.Topo.IDynamicRegular.html#Hi_Mech_Topo_IDynamicRegular_Step">Step</a>, implied that the transform matrix is one parameter driven. <a class="xref" href="../../../../../api/Hi.Mech.Topo.TransformerUtil.html#Hi_Mech_Topo_TransformerUtil_GetSteps_Hi_Mech_Topo_IDynamicRegular___">GetSteps(IDynamicRegular[])</a> and <a class="xref" href="../../../../../api/Hi.Mech.Topo.TransformerUtil.html#Hi_Mech_Topo_TransformerUtil_SetSteps_Hi_Mech_Topo_IDynamicRegular___System_Double___">SetSteps(IDynamicRegular[], double[])</a> provide easy handle of an array of <a class="xref" href="../../../../../api/Hi.Mech.Topo.IDynamicRegular.html">IDynamicRegular</a> objects.</p>
|
||||
<p>The transform matrix of <a class="xref" href="../../../../../api/Hi.Mech.Topo.DynamicTranslation.html">DynamicTranslation</a> is:</p>
|
||||
<div class="math">
|
||||
\[
|
||||
M_{DynamicTranslate}=
|
||||
\begin{bmatrix}
|
||||
1 & 0 & 0 & 0 \\\\
|
||||
0 & 1 & 0 & 0 \\\\
|
||||
0 & 0 & 1 & 0 \\\\
|
||||
Trans.x \cdot Step & Trans.y \cdot Step & Trans.z \cdot Step & 1
|
||||
\end{bmatrix}
|
||||
\]</div>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p>In convention, <a class="xref" href="../../../../../api/Hi.Mech.Topo.StaticTranslation.html#Hi_Mech_Topo_StaticTranslation_Trans">Trans</a> should be normalized.</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>
|
||||
|
After Width: | Height: | Size: 8.2 KiB |
@@ -0,0 +1,300 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Using Hi.Disp.Drawing | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Using Hi.Disp.Drawing | 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="using-hidispdrawing">Using Hi.Disp.Drawing</h1>
|
||||
|
||||
<p>The <a class="xref" href="../../../../../api/Hi.Disp.Drawing.html">Drawing</a> class is the most fundamental and efficient rendering unit that allows you to draw points, lines, and surfaces within the <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a>.</p>
|
||||
<h2 id="understanding-drawing-structure">Understanding Drawing Structure</h2>
|
||||
<p>Looking at the constructor <a class="xref" href="../../../../../api/Hi.Disp.Drawing.html#Hi_Disp_Drawing__ctor_System_Double___Hi_Disp_Stamp_System_Int32_">Drawing(double[], Stamp, int)</a> helps explain its structure:</p>
|
||||
<ul>
|
||||
<li>The <code>double[]</code> array contains batch data for rendering, composed of one or more data groups of consistent length</li>
|
||||
<li>Each data group's length is determined by the <a class="xref" href="../../../../../api/Hi.Disp.Stamp.html">Stamp</a> parameter</li>
|
||||
<li>Each data group describes a single vertex</li>
|
||||
</ul>
|
||||
<h2 id="data-components">Data Components</h2>
|
||||
<p>A data group can contain up to four types of information:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Information</th>
|
||||
<th>Abbreviation</th>
|
||||
<th>Description</th>
|
||||
<th>Size</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Vertex</strong></td>
|
||||
<td>V</td>
|
||||
<td>The position of the point (x, y, z)</td>
|
||||
<td>3 doubles</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Normal</strong></td>
|
||||
<td>N</td>
|
||||
<td>The normal vector affecting light reflection (Nx, Ny, Nz)</td>
|
||||
<td>3 doubles</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Color</strong></td>
|
||||
<td>C</td>
|
||||
<td>RGB color values ranging from 0 to 1</td>
|
||||
<td>3 doubles</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Pick ID</strong></td>
|
||||
<td>P</td>
|
||||
<td>A single double value converted from an integer for selection operations</td>
|
||||
<td>1 double</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>The <a class="xref" href="../../../../../api/Hi.Disp.Stamp.html">Stamp</a> enumeration combines these abbreviations to create these possible stamps: <code>{V, NV, CV, CNV, PV, PNV, PCV, PCNV}</code>.</p>
|
||||
<h3 id="important-notes">Important Notes:</h3>
|
||||
<ul>
|
||||
<li>The <strong>Vertex</strong> (V) is mandatory, which is why V appears in every Stamp option</li>
|
||||
<li><strong>Normal</strong> vectors (N) are typically used for 3D graphics to create a sense of depth through lighting</li>
|
||||
<li><strong>Color</strong> (C) uses three double values (R, G, B) in the range of 0 to 1</li>
|
||||
<li><strong>Pick ID</strong> (P) is used for graphical selection operations</li>
|
||||
</ul>
|
||||
<h2 id="data-structure-example">Data Structure Example</h2>
|
||||
<ul>
|
||||
<li>If <a class="xref" href="../../../../../api/Hi.Disp.Stamp.html">Stamp</a> is <code>V</code>, each data group consists of 3 double values (x, y, z)</li>
|
||||
<li>If <a class="xref" href="../../../../../api/Hi.Disp.Stamp.html">Stamp</a> is <code>PCV</code>, each data group consists of 1(P) + 3(C) + 3(V) = 7 double values</li>
|
||||
</ul>
|
||||
<h2 id="rendering-mode">Rendering Mode</h2>
|
||||
<p>The <code>glmode</code> parameter is an OpenGL constant that specifies the drawing mode. You can search for “OpenGL Primitives” online to see illustrations of these modes.</p>
|
||||
<h2 id="example-usage">Example Usage</h2>
|
||||
<pre><code class="lang-csharp">// Creating a simple line strip with three vertices
|
||||
double[] vertices = new double[] {
|
||||
0, 0, 0, // First point at origin
|
||||
1, 0, 0, // Second point along X-axis
|
||||
0, 0, 1 // Third point along Z-axis
|
||||
};
|
||||
|
||||
// Create drawing object using the vertices
|
||||
var drawing = new Drawing(vertices, Stamp.V, (int)OpenGL.GL_LINE_STRIP);
|
||||
</code></pre>
|
||||
<p>This example creates three vertices with only position information (V), so each vertex has just xyz coordinates. The drawing mode is set to LineStrip.</p>
|
||||
<p><img src="easydraw_lines.png" alt="Line Strip Drawing Example"></p>
|
||||
<h2 id="performance-considerations">Performance Considerations</h2>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p>After a <a class="xref" href="../../../../../api/Hi.Disp.Drawing.html">Drawing</a> object is created, its source data is stored in GPU memory. Regardless of the amount of data, the CPU processing load when calling <a class="xref" href="../../../../../api/Hi.Disp.IDisplayee.html#Hi_Disp_IDisplayee_Display_Hi_Disp_Bind_">Display(Bind)</a> remains consistent. This means displaying 100 points with one <a class="xref" href="../../../../../api/Hi.Disp.Drawing.html">Drawing</a> object is approximately 100 times faster than using 100 separate Drawing objects to display 100 individual points.</p>
|
||||
</div>
|
||||
<h2 id="composing-multiple-idisplayee-objects">Composing Multiple IDisplayee Objects</h2>
|
||||
<p>A common pattern is to combine multiple <a class="xref" href="../../../../../api/Hi.Disp.IDisplayee.html">IDisplayee</a> objects, including <a class="xref" href="../../../../../api/Hi.Disp.Drawing.html">Drawing</a> objects:</p>
|
||||
<pre><code class="lang-csharp">public class MyCompositeDisplayee : IDisplayee
|
||||
{
|
||||
private readonly List<IDisplayee> _displayees = new List<IDisplayee>();
|
||||
|
||||
public MyCompositeDisplayee()
|
||||
{
|
||||
// Create a grid drawing
|
||||
_displayees.Add(CreateGridDrawing());
|
||||
|
||||
// Create an axes drawing
|
||||
_displayees.Add(CreateAxesDrawing());
|
||||
|
||||
// Add other custom drawings
|
||||
_displayees.Add(CreateCustomDrawing());
|
||||
}
|
||||
|
||||
private Drawing CreateGridDrawing()
|
||||
{
|
||||
// Code to create a grid
|
||||
double[] gridVertices = new double[/* grid data */];
|
||||
return new Drawing(gridVertices, Stamp.CV, (int)OpenGL.GL_LINES);
|
||||
}
|
||||
|
||||
private Drawing CreateAxesDrawing()
|
||||
{
|
||||
// Create colored axes
|
||||
double[] axesData = new double[] {
|
||||
// Red X-axis (with color)
|
||||
1, 0, 0, 0, 0, 0, // Red color, origin
|
||||
1, 0, 0, 1, 0, 0, // Red color, x-axis end
|
||||
|
||||
// Green Y-axis (with color)
|
||||
0, 1, 0, 0, 0, 0, // Green color, origin
|
||||
0, 1, 0, 0, 1, 0, // Green color, y-axis end
|
||||
|
||||
// Blue Z-axis (with color)
|
||||
0, 0, 1, 0, 0, 0, // Blue color, origin
|
||||
0, 0, 1, 0, 0, 1 // Blue color, z-axis end
|
||||
};
|
||||
|
||||
return new Drawing(axesData, Stamp.CV, (int)OpenGL.GL_LINES);
|
||||
}
|
||||
|
||||
public void Display(Bind bind)
|
||||
{
|
||||
// Render all contained displayees
|
||||
foreach (var displayee in _displayees)
|
||||
{
|
||||
displayee.Display(bind);
|
||||
}
|
||||
}
|
||||
|
||||
public void ExpandToBox3d(Box3d box)
|
||||
{
|
||||
// Update bounding box based on all displayees
|
||||
foreach (var displayee in _displayees)
|
||||
{
|
||||
displayee.ExpandToBox3d(box);
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre>
|
||||
<h2 id="creating-common-shapes">Creating Common Shapes</h2>
|
||||
<p>Here are some examples of creating common shapes using the <a class="xref" href="../../../../../api/Hi.Disp.Drawing.html">Drawing</a> class:</p>
|
||||
<h3 id="creating-points">Creating Points</h3>
|
||||
<pre><code class="lang-csharp">// Create an array of points
|
||||
double[] pointData = new double[] {
|
||||
0, 0, 0, // Point 1
|
||||
1, 1, 1, // Point 2
|
||||
2, 0, 0, // Point 3
|
||||
0, 2, 0 // Point 4
|
||||
};
|
||||
|
||||
// Create a Drawing for points
|
||||
var pointDrawing = new Drawing(pointData, Stamp.V, (int)OpenGL.GL_POINTS);
|
||||
</code></pre>
|
||||
<h3 id="creating-lines">Creating Lines</h3>
|
||||
<pre><code class="lang-csharp">// Create line segments (pairs of vertices)
|
||||
double[] lineData = new double[] {
|
||||
0, 0, 0, 1, 1, 0, // Line 1: (0,0,0) to (1,1,0)
|
||||
2, 0, 0, 2, 2, 0 // Line 2: (2,0,0) to (2,2,0)
|
||||
};
|
||||
|
||||
// Create a Drawing for lines
|
||||
var lineDrawing = new Drawing(lineData, Stamp.V, (int)OpenGL.GL_LINES);
|
||||
</code></pre>
|
||||
<h3 id="creating-triangles">Creating Triangles</h3>
|
||||
<pre><code class="lang-csharp">// Create triangles (triplets of vertices)
|
||||
double[] triangleData = new double[] {
|
||||
// Triangle 1
|
||||
0, 0, 0, // Vertex 1
|
||||
1, 0, 0, // Vertex 2
|
||||
0, 1, 0 // Vertex 3
|
||||
};
|
||||
|
||||
// Create a Drawing for triangles
|
||||
var triangleDrawing = new Drawing(triangleData, Stamp.V, (int)OpenGL.GL_TRIANGLES);
|
||||
</code></pre>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a></li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Disp.IDisplayee.html">IDisplayee</a></li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Disp.DispList.html">DispList</a></li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,171 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Rendering with HiAPI | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Rendering with HiAPI | 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="rendering-with-hiapi">Rendering with HiAPI</h1>
|
||||
|
||||
<p>This section covers the rendering capabilities of HiAPI, focusing on how to create and display visual content in your applications.</p>
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p>HiAPI provides a powerful rendering system built around the <a class="xref" href="../../../../api/Hi.Disp.DispEngine.html">DispEngine</a> and <a class="xref" href="../../../../api/Hi.Disp.IDisplayee.html">IDisplayee</a> interface. This system enables you to:</p>
|
||||
<ul>
|
||||
<li>Create and render 3D and 2D graphics</li>
|
||||
<li>Implement interactive user interfaces</li>
|
||||
<li>Achieve high-performance rendering across multiple platforms</li>
|
||||
<li>Handle touch, mouse, and keyboard input uniformly</li>
|
||||
</ul>
|
||||
<h2 id="key-components">Key Components</h2>
|
||||
<p>The HiAPI rendering system consists of several key components:</p>
|
||||
<ul>
|
||||
<li><strong>DispEngine</strong>: The core rendering engine that processes displayees and handles user interaction</li>
|
||||
<li><strong>IDisplayee</strong>: The interface for renderable objects</li>
|
||||
<li><strong>Drawing</strong>: A fundamental rendering unit for creating basic geometric elements</li>
|
||||
<li><strong>RenderingCanvas</strong>: UI controls for different frameworks that host the DispEngine</li>
|
||||
</ul>
|
||||
<h2 id="sections">Sections</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Topic</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="rendering-canvas/index.html">Using RenderingCanvas with DispEngine</a></td>
|
||||
<td>Learn how to use the RenderingCanvas component in your applications</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="rendering-canvas/custom-implementation.html">Building Your Own Rendering Canvas</a></td>
|
||||
<td>Understand how to implement custom rendering components</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="drawing/index.html">Drawing</a></td>
|
||||
<td>Learn how to use the Drawing class to create basic geometric elements</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="basic-rendering-workflow">Basic Rendering Workflow</h2>
|
||||
<p>The typical workflow for rendering with HiAPI follows these steps:</p>
|
||||
<ol>
|
||||
<li><strong>Create Displayees</strong>: Implement <a class="xref" href="../../../../api/Hi.Disp.IDisplayee.html">IDisplayee</a> or use existing implementations like <a class="xref" href="../../../../api/Hi.Disp.Drawing.html">Drawing</a></li>
|
||||
<li><strong>Configure DispEngine</strong>: Create and initialize a <a class="xref" href="../../../../api/Hi.Disp.DispEngine.html">DispEngine</a> with your displayees</li>
|
||||
<li><strong>UI Integration</strong>: Use RenderingCanvas components to display the rendered content in your UI</li>
|
||||
<li><strong>Handle Input</strong>: Process user interactions through the DispEngine's input handling methods</li>
|
||||
</ol>
|
||||
<p>This pattern works consistently across all supported UI frameworks, allowing you to develop cross-platform applications with a unified codebase.</p>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../../../api/Hi.Disp.DispEngine.html">DispEngine</a></li>
|
||||
<li><a class="xref" href="../../../../api/Hi.Disp.IDisplayee.html">IDisplayee</a></li>
|
||||
<li><a class="xref" href="../../../../api/Hi.Disp.Drawing.html">Drawing</a></li>
|
||||
<li><a class="xref" href="../../../../api/Hi.Disp.DispList.html">DispList</a></li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,850 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Building Your Own Rendering Canvas | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Building Your Own Rendering Canvas | 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="building-your-own-rendering-canvas">Building Your Own Rendering Canvas</h1>
|
||||
|
||||
<p>This guide provides detailed implementation information for creating your own <code>RenderingCanvas</code> using the <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a>. By understanding these implementation details, you can customize the rendering component for specific application needs or create implementations for other UI frameworks.</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>For Windows Applications</strong>: If you are developing for Windows systems, it is recommended to directly use the existing <code>RenderingCanvas</code> implementations in the <code>Hi.WinForm</code> or <code>Hi.Wpf</code> packages, rather than creating your own. These implementations are fully tested, optimized, and maintained.</p>
|
||||
<p>The implementation details provided in this document are primarily for educational purposes or for developers who need to port RenderingCanvas to other platforms/frameworks.</p>
|
||||
</div>
|
||||
<h2 id="basic-dispengine-usage">Basic DispEngine Usage</h2>
|
||||
<p>The <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a> is designed to display objects that implement the <a class="xref" href="../../../../../api/Hi.Disp.IDisplayee.html">IDisplayee</a> interface. This is the fundamental purpose of DispEngine - to render displayable objects.</p>
|
||||
<h3 id="idisplayee-implementation">IDisplayee Implementation</h3>
|
||||
<p>To create renderable content, implement the <a class="xref" href="../../../../../api/Hi.Disp.IDisplayee.html">IDisplayee</a> interface:</p>
|
||||
<pre><code class="lang-csharp">public class MyCustomDisplayee : IDisplayee
|
||||
{
|
||||
public void Display(Bind bind)
|
||||
{
|
||||
// Drawing code using the bind object
|
||||
}
|
||||
|
||||
public void ExpandToBox3d(Box3d box)
|
||||
{
|
||||
// Update bounding box for view calculations
|
||||
}
|
||||
}
|
||||
</code></pre>
|
||||
<h3 id="using-displayees-with-dispengine">Using Displayees with DispEngine</h3>
|
||||
<p>There are multiple ways to provide displayees to a DispEngine:</p>
|
||||
<pre><code class="lang-csharp">// Create DispEngine with a single displayee
|
||||
var engine = new DispEngine(myDisplayee);
|
||||
|
||||
// Create DispEngine with multiple displayees
|
||||
var engine = new DispEngine(displayee1, displayee2, displayee3);
|
||||
|
||||
// Change the displayee after creation
|
||||
engine.Displayee = newDisplayee;
|
||||
|
||||
// Use DispList to group multiple displayees
|
||||
var displayList = new DispList(displayee1, displayee2);
|
||||
engine.Displayee = displayList;
|
||||
</code></pre>
|
||||
<h2 id="core-implementation-pattern">Core Implementation Pattern</h2>
|
||||
<p>When implementing a custom <code>RenderingCanvas</code> for a UI platform, follow these key steps:</p>
|
||||
<ol>
|
||||
<li><strong>Initialize UI Component</strong> - Set up the UI control properties and event handling</li>
|
||||
<li><strong>Configure DispEngine</strong> - Create and properly initialize the <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a> instance</li>
|
||||
<li><strong>Set Up Rendering Pipeline</strong> - Implement buffer swapping mechanism for visualization</li>
|
||||
<li><strong>Handle User Input</strong> - Map platform-specific input events to DispEngine methods</li>
|
||||
<li><strong>Manage Component Lifecycle</strong> - Ensure proper resource management and cleanup</li>
|
||||
</ol>
|
||||
<p>Let's examine the actual implementations in WinForm and WPF frameworks to understand these patterns in practice.</p>
|
||||
<h2 id="winform-implementation-details">WinForm Implementation Details</h2>
|
||||
<p>The WinForm implementation in <code>Hi.WinForm</code> combines Windows Forms controls with the <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a> rendering system.</p>
|
||||
<h3 id="core-properties-and-fields">Core Properties and Fields</h3>
|
||||
<p>Here are the essential properties and fields defined in the WinForm implementation:</p>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">/// <summary>
|
||||
/// <see cref="DispEngine"/>.
|
||||
/// </summary>
|
||||
public DispEngine DispEngine { get; }
|
||||
|
||||
// Constants and structures for WM_TOUCH
|
||||
private const int WM_TOUCH = 0x0240;
|
||||
private const int TOUCHEVENTF_MOVE = 0x0001;
|
||||
private const int TOUCHEVENTF_DOWN = 0x0002;
|
||||
private const int TOUCHEVENTF_UP = 0x0004;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct TOUCHINPUT
|
||||
{
|
||||
public int x;
|
||||
public int y;
|
||||
public IntPtr hSource;
|
||||
public int dwID;
|
||||
public int dwFlags;
|
||||
public int dwMask;
|
||||
public int dwTime;
|
||||
public IntPtr dwExtraInfo;
|
||||
public int cxContact;
|
||||
public int cyContact;
|
||||
}
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern bool RegisterTouchWindow(IntPtr hWnd, uint ulFlags);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern bool GetTouchInputInfo(IntPtr hTouchInput, int cInputs, [In, Out] TOUCHINPUT[] pInputs, int cbSize);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern void CloseTouchInputHandle(IntPtr lParam);
|
||||
</code></pre><h3 id="initialization">Initialization</h3>
|
||||
<p>The initialization code sets up event handlers and creates the DispEngine:</p>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">/// <summary>
|
||||
/// Ctor.
|
||||
/// </summary>
|
||||
/// <param name="displayees">displayees</param>
|
||||
public unsafe RenderingCanvas(params IDisplayee[] displayees)
|
||||
{
|
||||
// Configure the control's visual styles
|
||||
SetStyle(ControlStyles.Selectable, true);
|
||||
SetStyle(ControlStyles.OptimizedDoubleBuffer, false);
|
||||
SetStyle(ControlStyles.ContainerControl, false);
|
||||
SetStyle(ControlStyles.ResizeRedraw, false);
|
||||
DoubleBuffered = true;
|
||||
|
||||
InitializeComponent();
|
||||
Dock = DockStyle.Fill;
|
||||
|
||||
// Connect event handlers for user input and window events
|
||||
this.Resize += RenderingCanvas_Resize;
|
||||
this.VisibleChanged += RenderingCanvas_VisibleChanged;
|
||||
this.MouseMove += RenderingCanvas_MouseMove;
|
||||
this.MouseDown += RenderingCanvas_MouseDown;
|
||||
this.MouseUp += RenderingCanvas_MouseUp;
|
||||
this.MouseWheel += RenderingCanvas_MouseWheel;
|
||||
this.KeyDown += RenderingCanvas_KeyDown;
|
||||
this.KeyUp += RenderingCanvas_KeyUp;
|
||||
|
||||
// Add focus event handler
|
||||
this.GotFocus += RenderingCanvas_GotFocus;
|
||||
this.HandleCreated += OnHandleCreated;
|
||||
|
||||
// Enable touch input and click events for the control
|
||||
this.SetStyle(ControlStyles.StandardClick, true);
|
||||
this.SetStyle(ControlStyles.StandardDoubleClick, true);
|
||||
this.TabStop = true;
|
||||
|
||||
// Initialize the DispEngine with provided displayees
|
||||
DispEngine = new DispEngine(displayees);
|
||||
DispEngine.BackgroundColor = new Vec3d(0.1, 0.1, 0.5);
|
||||
DispEngine.BackgroundOpacity = 0.1;
|
||||
DispEngine.SetViewToHomeView();
|
||||
DispEngine.ImageRequestAfterBufferSwapped += DispEngine_ImageRequestAfterBufferSwapped;
|
||||
|
||||
// Set initial size and start the rendering engine
|
||||
this.Size = new System.Drawing.Size(500, 300);
|
||||
DispEngine.Start(this.ClientSize.Width, this.ClientSize.Height);
|
||||
}
|
||||
</code></pre><h3 id="rendering-pipeline">Rendering Pipeline</h3>
|
||||
<p>The rendering pipeline processes images from DispEngine and displays them:</p>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">private unsafe void DispEngine_ImageRequestAfterBufferSwapped(byte* bgra_unsignedbyte_pixels, int w, int h)
|
||||
{
|
||||
// Create a bitmap from the raw pixel data provided by DispEngine
|
||||
Bitmap bitmap;
|
||||
bitmap = new Bitmap(new Bitmap(w, h, w * 4,
|
||||
PixelFormat.Format32bppArgb, new IntPtr(bgra_unsignedbyte_pixels)));
|
||||
|
||||
// Update the background image and dispose the previous one
|
||||
Image pre = this.BackgroundImage;
|
||||
this.BackgroundImage = bitmap;
|
||||
pre?.Dispose();
|
||||
}
|
||||
</code></pre><h3 id="input-handling">Input Handling</h3>
|
||||
<h4 id="windows-message-handling-for-touch">Windows Message Handling for Touch</h4>
|
||||
<p>WinForm implementation intercepts Windows touch messages and forwards them to DispEngine:</p>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">protected override void WndProc(ref Message m)
|
||||
{
|
||||
if (m.Msg == WM_TOUCH)
|
||||
{
|
||||
HandleTouchInput(m.WParam, m.LParam);
|
||||
return;
|
||||
}
|
||||
|
||||
base.WndProc(ref m);
|
||||
}
|
||||
|
||||
private void OnHandleCreated(object sender, EventArgs e)
|
||||
{
|
||||
// Register window to receive touch messages
|
||||
RegisterTouchWindow(this.Handle, 0);
|
||||
}
|
||||
|
||||
private void HandleTouchInput(IntPtr wParam, IntPtr lParam)
|
||||
{
|
||||
int inputCount = wParam.ToInt32();
|
||||
TOUCHINPUT[] inputs = new TOUCHINPUT[inputCount];
|
||||
|
||||
if (!GetTouchInputInfo(lParam, inputCount, inputs, Marshal.SizeOf(typeof(TOUCHINPUT))))
|
||||
return;
|
||||
|
||||
try
|
||||
{
|
||||
for (int i = 0; i < inputCount; i++)
|
||||
{
|
||||
TOUCHINPUT ti = inputs[i];
|
||||
int touchId = ti.dwID;
|
||||
|
||||
// Convert touch coordinates to client coordinates
|
||||
Point touchPoint = PointToClient(new Point(ti.x / 100, ti.y / 100));
|
||||
|
||||
if ((ti.dwFlags & TOUCHEVENTF_DOWN) != 0)
|
||||
{
|
||||
// Touch down event
|
||||
DispEngine.TouchDown(touchId, touchPoint.X, touchPoint.Y);
|
||||
this.Focus();
|
||||
}
|
||||
else if ((ti.dwFlags & TOUCHEVENTF_MOVE) != 0)
|
||||
{
|
||||
// Touch move event
|
||||
DispEngine.TouchMove(touchId, touchPoint.X, touchPoint.Y);
|
||||
}
|
||||
else if ((ti.dwFlags & TOUCHEVENTF_UP) != 0)
|
||||
{
|
||||
// Touch up event
|
||||
DispEngine.TouchUp(touchId);
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
CloseTouchInputHandle(lParam);
|
||||
}
|
||||
}
|
||||
</code></pre>
|
||||
<p>The key aspect is mapping Windows touch events to DispEngine's touch API:</p>
|
||||
<pre><code class="lang-csharp">// Inside HandleTouchInput method
|
||||
if ((ti.dwFlags & TOUCHEVENTF_DOWN) != 0)
|
||||
{
|
||||
// Touch down event - delegate to DispEngine
|
||||
DispEngine.TouchDown(touchId, touchPoint.X, touchPoint.Y);
|
||||
this.Focus();
|
||||
}
|
||||
else if ((ti.dwFlags & TOUCHEVENTF_MOVE) != 0)
|
||||
{
|
||||
// Touch move event - delegate to DispEngine
|
||||
DispEngine.TouchMove(touchId, touchPoint.X, touchPoint.Y);
|
||||
}
|
||||
else if ((ti.dwFlags & TOUCHEVENTF_UP) != 0)
|
||||
{
|
||||
// Touch up event - delegate to DispEngine
|
||||
DispEngine.TouchUp(touchId);
|
||||
}
|
||||
</code></pre>
|
||||
<h4 id="mouse-events">Mouse Events</h4>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">private void RenderingCanvas_MouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
// Update mouse position and handle drag transforms
|
||||
DispEngine.MouseMove(e.Location.X, e.Location.Y);
|
||||
DispEngine.MouseDragTransform(e.Location.X, e.Location.Y,
|
||||
new mouse_button_table__transform_view_by_mouse_drag_t()
|
||||
{
|
||||
LEFT_BUTTON = (long)MouseButtons.Left,
|
||||
RIGHT_BUTTON = (long)MouseButtons.Right
|
||||
});
|
||||
}
|
||||
|
||||
private void RenderingCanvas_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
// Handle mouse button press
|
||||
DispEngine.MouseButtonDown((long)e.Button);
|
||||
this.Focus();
|
||||
}
|
||||
|
||||
private void RenderingCanvas_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
// Handle mouse button release
|
||||
DispEngine.MouseButtonUp((long)e.Button);
|
||||
}
|
||||
|
||||
private void RenderingCanvas_MouseWheel(object sender, MouseEventArgs e)
|
||||
{
|
||||
// Handle mouse wheel for zoom operations
|
||||
DispEngine.MouseWheel(0, e.Delta / 120);
|
||||
DispEngine.MouseWheelTransform(0, e.Delta / 120);
|
||||
}
|
||||
</code></pre><h4 id="keyboard-events">Keyboard Events</h4>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">/// <inheritdoc/>
|
||||
protected override bool IsInputKey(Keys keyData)
|
||||
{
|
||||
//since in default, arrow does not trigger key event(keyDown and keyUp).
|
||||
return true;
|
||||
}
|
||||
|
||||
private void RenderingCanvas_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
Focus();
|
||||
DispEngine.KeyDown((long)e.KeyData);
|
||||
|
||||
// Map specific keys for view transformation
|
||||
long key = (long)e.KeyData;
|
||||
if (key == (long)Keys.LShiftKey || key == (long)Keys.RShiftKey || key == (long)Keys.ShiftKey)
|
||||
key = (long)Keys.Shift;
|
||||
|
||||
DispEngine.KeyDownTransform(key, new key_table__transform_view_by_key_pressing_t()
|
||||
{
|
||||
HOME = (long)Keys.Home,
|
||||
PAGE_UP = (long)Keys.PageUp,
|
||||
PAGE_DOWN = (long)Keys.PageDown,
|
||||
F1 = (long)Keys.F1,
|
||||
F2 = (long)Keys.F2,
|
||||
F3 = (long)Keys.F3,
|
||||
F4 = (long)Keys.F4,
|
||||
SHIFT = (long)Keys.Shift,
|
||||
ARROW_LEFT = (long)Keys.Left,
|
||||
ARROW_RIGHT = (long)Keys.Right,
|
||||
ARROW_DOWN = (long)Keys.Down,
|
||||
ARROW_UP = (long)Keys.Up
|
||||
});
|
||||
}
|
||||
|
||||
private void RenderingCanvas_KeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
DispEngine.KeyUp((long)e.KeyData);
|
||||
}
|
||||
</code></pre><h3 id="lifecycle-management">Lifecycle Management</h3>
|
||||
<p>Window event handling ensures proper state management:</p>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">private void RenderingCanvas_Resize(object sender, EventArgs e)
|
||||
{
|
||||
// Notify DispEngine of size changes
|
||||
DispEngine.Resize(this.ClientSize.Width, this.ClientSize.Height);
|
||||
}
|
||||
|
||||
private void RenderingCanvas_VisibleChanged(object sender, EventArgs e)
|
||||
{
|
||||
// Update visibility state in DispEngine
|
||||
DispEngine.IsVisible = this.Visible;
|
||||
}
|
||||
</code></pre><h3 id="resource-cleanup">Resource Cleanup</h3>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
// Dispose the DispEngine to free resources
|
||||
DispEngine.Dispose();
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
</code></pre><h2 id="wpf-implementation-details">WPF Implementation Details</h2>
|
||||
<p>The WPF implementation uses WPF-specific controls and mechanisms but follows the same core pattern.</p>
|
||||
<h3 id="core-properties">Core Properties</h3>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">/// <summary>
|
||||
/// The DispEngine instance that handles rendering and user interactions
|
||||
/// </summary>
|
||||
public DispEngine DispEngine { get; } = new DispEngine();
|
||||
|
||||
/// <summary>
|
||||
/// Internal container for rendering content
|
||||
/// </summary>
|
||||
private UserControl DisplayerPane { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Dictionary to store touch point information
|
||||
/// </summary>
|
||||
private Dictionary<int, Point> TouchingPointsMap { get; } = new Dictionary<int, Point>();
|
||||
|
||||
/// <summary>
|
||||
/// Dictionary to store previous positions of touch points
|
||||
/// </summary>
|
||||
private Dictionary<int, Point> PreviousTouchingPointsMap { get; } = new Dictionary<int, Point>();
|
||||
</code></pre><h3 id="initialization-1">Initialization</h3>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">/// <summary>
|
||||
/// Initializes a new instance of the RenderingCanvas
|
||||
/// </summary>
|
||||
public RenderingCanvas()
|
||||
{
|
||||
DispEngine.BackgroundColor = new Vec3d(0.1, 0.1, 0.5);
|
||||
DispEngine.BackgroundOpacity = 0.1;
|
||||
|
||||
// Configure the main control properties
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch;
|
||||
VerticalAlignment = VerticalAlignment.Stretch;
|
||||
Focusable = true;
|
||||
KeyboardNavigation.SetDirectionalNavigation(this, KeyboardNavigationMode.Cycle);
|
||||
DataContextChanged += CanvasDataContextChanged;
|
||||
|
||||
// Create and configure the display pane
|
||||
DisplayerPane = new UserControl();
|
||||
DisplayerPane.HorizontalAlignment = HorizontalAlignment.Stretch;
|
||||
DisplayerPane.VerticalAlignment = VerticalAlignment.Stretch;
|
||||
DisplayerPane.Focusable = true;
|
||||
DisplayerPane.IsTabStop = true;
|
||||
|
||||
// Connect event handlers for user input and window events
|
||||
DisplayerPane.SizeChanged += RenderingCanvas_SizeChanged;
|
||||
DisplayerPane.MouseMove += RenderingCanvas_MouseMove;
|
||||
DisplayerPane.MouseDown += RenderingCanvas_MouseDown;
|
||||
DisplayerPane.MouseUp += RenderingCanvas_MouseUp;
|
||||
DisplayerPane.MouseWheel += RenderingCanvas_MouseWheel;
|
||||
DisplayerPane.KeyDown += RenderingCanvas_KeyDown;
|
||||
DisplayerPane.KeyUp += RenderingCanvas_KeyUp;
|
||||
DisplayerPane.Loaded += RenderingCanvas_Loaded;
|
||||
DisplayerPane.Unloaded += RenderingCanvas_Unloaded;
|
||||
DisplayerPane.IsVisibleChanged += DisplayerPane_IsVisibleChanged;
|
||||
|
||||
// Add touch event handlers
|
||||
DisplayerPane.TouchDown += RenderingCanvas_TouchDown;
|
||||
DisplayerPane.TouchMove += RenderingCanvas_TouchMove;
|
||||
DisplayerPane.TouchUp += RenderingCanvas_TouchUp;
|
||||
|
||||
// Enable touch support
|
||||
this.IsManipulationEnabled = true;
|
||||
|
||||
// Add the display pane to this control's content
|
||||
Content = DisplayerPane;
|
||||
}
|
||||
</code></pre><h3 id="rendering-pipeline-1">Rendering Pipeline</h3>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">/// <summary>
|
||||
/// Handles the buffer swapped event from DispEngine
|
||||
/// </summary>
|
||||
private unsafe void RenderingCanvas_BufferSwapped(byte* data, int w, int h)
|
||||
{
|
||||
if (data == null)
|
||||
return;
|
||||
|
||||
// Copy pixel data from DispEngine
|
||||
int n = w * h * 4;
|
||||
byte[] arr = new byte[n];
|
||||
for (int i = 0; i < n; i++)
|
||||
arr[i] = data[i];
|
||||
|
||||
// Update UI on the UI thread
|
||||
DisplayerPane.Dispatcher.InvokeAsync(() =>
|
||||
{
|
||||
BitmapSource bitmap = BitmapSource.Create(w, h, 1, 1, PixelFormats.Bgra32, null, arr, w * 4);
|
||||
DisplayerPane.Background = new ImageBrush(bitmap);
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles the size changed event
|
||||
/// </summary>
|
||||
private void RenderingCanvas_SizeChanged(object sender, SizeChangedEventArgs e)
|
||||
{
|
||||
// Notify DispEngine of size changes
|
||||
DispEngine.Resize((int)DisplayerPane.RenderSize.Width, (int)DisplayerPane.RenderSize.Height);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles visibility changes
|
||||
/// </summary>
|
||||
private unsafe void DisplayerPane_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
// Update visibility state in DispEngine
|
||||
DispEngine.IsVisible = IsVisible;
|
||||
}
|
||||
</code></pre><h3 id="mouse-and-keyboard-handling">Mouse and Keyboard Handling</h3>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">/// <summary>
|
||||
/// Helper method to get mouse button mask
|
||||
/// </summary>
|
||||
internal static HiMouseButtonMask GetMouseButtonMask(MouseDevice device)
|
||||
{
|
||||
HiMouseButtonMask mouseButtonMask = 0;
|
||||
mouseButtonMask.SetLeftPressed(device.LeftButton == MouseButtonState.Pressed);
|
||||
mouseButtonMask.SetMiddlePressed(device.MiddleButton == MouseButtonState.Pressed);
|
||||
mouseButtonMask.SetRightPressed(device.RightButton == MouseButtonState.Pressed);
|
||||
mouseButtonMask.SetXButton1Pressed(device.XButton1 == MouseButtonState.Pressed);
|
||||
mouseButtonMask.SetXButton2Pressed(device.XButton2 == MouseButtonState.Pressed);
|
||||
return mouseButtonMask;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles the mouse wheel event
|
||||
/// </summary>
|
||||
private void RenderingCanvas_MouseWheel(object sender, MouseWheelEventArgs e)
|
||||
{
|
||||
// Handle mouse wheel for zoom operations
|
||||
DispEngine.MouseWheel(0, e.Delta / 120);
|
||||
DispEngine.MouseWheelTransform(0, e.Delta / 120);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles the mouse up event
|
||||
/// </summary>
|
||||
private void RenderingCanvas_MouseUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
// Handle mouse button release
|
||||
DispEngine.MouseButtonUp((long)e.ChangedButton);
|
||||
(sender as UIElement)?.ReleaseMouseCapture();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles the mouse down event
|
||||
/// </summary>
|
||||
private void RenderingCanvas_MouseDown(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
// Handle mouse button press
|
||||
DispEngine.MouseButtonDown((long)e.ChangedButton);
|
||||
DisplayerPane.Focus();
|
||||
(sender as UIElement)?.CaptureMouse();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles the mouse move event
|
||||
/// </summary>
|
||||
private void RenderingCanvas_MouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
// Update mouse position and handle drag transforms
|
||||
Point p = e.GetPosition(DisplayerPane);
|
||||
DispEngine.MouseMove((int)p.X, (int)p.Y);
|
||||
DispEngine.MouseDragTransform((int)p.X, (int)p.Y,
|
||||
new mouse_button_table__transform_view_by_mouse_drag_t()
|
||||
{
|
||||
LEFT_BUTTON = (long)MouseButton.Left,
|
||||
RIGHT_BUTTON = (long)MouseButton.Right
|
||||
});
|
||||
}
|
||||
</code></pre><pre><code class="lang-csharp" name="RenderingCanvas">/// <summary>
|
||||
/// Handles the key up event
|
||||
/// </summary>
|
||||
private void RenderingCanvas_KeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
DispEngine.KeyUp((long)e.Key);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles the key down event
|
||||
/// </summary>
|
||||
private void RenderingCanvas_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
DispEngine.KeyDown((long)e.Key);
|
||||
|
||||
// Map specific keys for view transformation
|
||||
long key = (long)e.Key;
|
||||
if (key == (long)Key.RightShift)
|
||||
key = (long)Key.LeftShift;
|
||||
|
||||
DispEngine.KeyDownTransform(key, new key_table__transform_view_by_key_pressing_t()
|
||||
{
|
||||
HOME = (long)Key.Home,
|
||||
PAGE_UP = (long)Key.PageUp,
|
||||
PAGE_DOWN = (long)Key.PageDown,
|
||||
F1 = (long)Key.F1,
|
||||
F2 = (long)Key.F2,
|
||||
F3 = (long)Key.F3,
|
||||
F4 = (long)Key.F4,
|
||||
SHIFT = (long)Key.LeftShift,
|
||||
ARROW_LEFT = (long)Key.Left,
|
||||
ARROW_RIGHT = (long)Key.Right,
|
||||
ARROW_DOWN = (long)Key.Down,
|
||||
ARROW_UP = (long)Key.Up
|
||||
});
|
||||
}
|
||||
</code></pre><h3 id="lifecycle-management-1">Lifecycle Management</h3>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">/// <summary>
|
||||
/// Handles window state changes (maximize, minimize, etc.)
|
||||
/// </summary>
|
||||
private unsafe void RenderingCanvas_StateChanged(object sender, EventArgs e)
|
||||
{
|
||||
switch ((sender as Window).WindowState)
|
||||
{
|
||||
case WindowState.Maximized:
|
||||
DispEngine.IsVisible = true;
|
||||
break;
|
||||
case WindowState.Minimized:
|
||||
DispEngine.IsVisible = false;
|
||||
break;
|
||||
case WindowState.Normal:
|
||||
DispEngine.IsVisible = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles data context changes
|
||||
/// </summary>
|
||||
private unsafe void CanvasDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
DispEngine pre = e.OldValue as DispEngine;
|
||||
DispEngine cur = e.NewValue as DispEngine;
|
||||
|
||||
//child's binding event is triggered after IsVisible event and Load event.
|
||||
if (pre != null) //this section will never occur if the datacontext not set twice.
|
||||
{
|
||||
pre.Terminate();
|
||||
pre.ImageRequestAfterBufferSwapped -= RenderingCanvas_BufferSwapped;
|
||||
}
|
||||
if (cur != null)
|
||||
{
|
||||
cur.ImageRequestAfterBufferSwapped += RenderingCanvas_BufferSwapped;
|
||||
cur.Start((int)DisplayerPane.RenderSize.Width, (int)DisplayerPane.RenderSize.Height);
|
||||
|
||||
cur.IsVisible = IsVisible;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the current window containing this control
|
||||
/// </summary>
|
||||
private Window currentWindow;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the current window, connecting or disconnecting state change events
|
||||
/// </summary>
|
||||
Window CurrentWindow
|
||||
{
|
||||
get => currentWindow; set
|
||||
{
|
||||
if (currentWindow != null)
|
||||
currentWindow.StateChanged -= RenderingCanvas_StateChanged;
|
||||
currentWindow = value;
|
||||
if (currentWindow != null)
|
||||
currentWindow.StateChanged += RenderingCanvas_StateChanged;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles the loaded event
|
||||
/// </summary>
|
||||
private unsafe void RenderingCanvas_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
// Get the window containing this control
|
||||
CurrentWindow = Window.GetWindow(this);
|
||||
|
||||
// Set up DispEngine rendering
|
||||
DispEngine.ImageRequestAfterBufferSwapped -= RenderingCanvas_BufferSwapped;
|
||||
DispEngine.ImageRequestAfterBufferSwapped += RenderingCanvas_BufferSwapped;
|
||||
DispEngine.Start((int)DisplayerPane.RenderSize.Width, (int)DisplayerPane.RenderSize.Height);
|
||||
DispEngine.IsVisible = IsVisible;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles the unloaded event
|
||||
/// </summary>
|
||||
private unsafe void RenderingCanvas_Unloaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
DispEngine.IsVisible = IsVisible;
|
||||
DispEngine.ImageRequestAfterBufferSwapped -= RenderingCanvas_BufferSwapped;
|
||||
CurrentWindow = null;
|
||||
}
|
||||
</code></pre><h3 id="resource-cleanup-1">Resource Cleanup</h3>
|
||||
<pre><code class="lang-csharp" name="RenderingCanvas">/// <summary>
|
||||
/// Flag to track disposed state
|
||||
/// </summary>
|
||||
private bool disposedValue;
|
||||
|
||||
/// <summary>
|
||||
/// Disposes managed resources
|
||||
/// </summary>
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
if (!disposedValue)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
// Dispose the DispEngine to free resources
|
||||
DispEngine.Dispose();
|
||||
}
|
||||
disposedValue = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Public dispose method to free resources
|
||||
/// </summary>
|
||||
public void Dispose()
|
||||
{
|
||||
// Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method
|
||||
Dispose(disposing: true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
</code></pre><h2 id="core-dispengine-integration-patterns">Core DispEngine Integration Patterns</h2>
|
||||
<h3 id="1-initialization-sequence">1. Initialization Sequence</h3>
|
||||
<pre><code class="lang-csharp">// Create DispEngine (optionally with displayees)
|
||||
var engine = new DispEngine(displayees);
|
||||
|
||||
// Set up image buffer callback
|
||||
engine.ImageRequestAfterBufferSwapped += OnBufferSwapped;
|
||||
|
||||
// Initialize with canvas size
|
||||
engine.Start(width, height);
|
||||
|
||||
// Set initial view (optional)
|
||||
engine.SetViewToHomeView();
|
||||
</code></pre>
|
||||
<h3 id="2-render-loop">2. Render Loop</h3>
|
||||
<p>The rendering process follows this pattern:</p>
|
||||
<ol>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a> processes <a class="xref" href="../../../../../api/Hi.Disp.IDisplayee.html">IDisplayee</a> objects</li>
|
||||
<li>Buffer is swapped and callback is triggered</li>
|
||||
<li>UI framework renders the buffer to screen</li>
|
||||
<li>User input triggers view updates</li>
|
||||
<li>Process repeats</li>
|
||||
</ol>
|
||||
<h3 id="3-complete-user-input-mapping">3. Complete User Input Mapping</h3>
|
||||
<p>All user interactions must be mapped to <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a> methods:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>User Action</th>
|
||||
<th>DispEngine Method</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Mouse move</td>
|
||||
<td><a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_MouseMove_System_Int32_System_Int32_">MouseMove(int, int)</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Mouse drag</td>
|
||||
<td><a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_MouseDragTransform_System_Int32_System_Int32_Hi_Native_mouse_button_table__transform_view_by_mouse_drag_t_">MouseDragTransform(int, int, mouse_button_table__transform_view_by_mouse_drag_t)</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Mouse button</td>
|
||||
<td><a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_MouseButtonDown_System_Int64_">MouseButtonDown(long)</a> / <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_MouseButtonUp_System_Int64_">MouseButtonUp(long)</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Mouse wheel</td>
|
||||
<td><a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_MouseWheel_System_Int32_System_Int32_">MouseWheel(int, int)</a> and <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_MouseWheelTransform_System_Int32_System_Int32_System_Double_">MouseWheelTransform(int, int, double)</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Key press</td>
|
||||
<td><a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_KeyDown_System_Int64_">KeyDown(long)</a> / <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_KeyUp_System_Int64_">KeyUp(long)</a> and <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_KeyDownTransform_System_Int64_Hi_Native_key_table__transform_view_by_key_pressing_t_">KeyDownTransform(long, key_table__transform_view_by_key_pressing_t)</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Touch events</td>
|
||||
<td><a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_TouchDown_System_Int32_System_Int32_System_Int32_">TouchDown(int, int, int)</a> / <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_TouchMove_System_Int32_System_Int32_System_Int32_">TouchMove(int, int, int)</a> / <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_TouchUp_System_Int32_">TouchUp(int)</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3 id="4-proper-resource-cleanup">4. Proper Resource Cleanup</h3>
|
||||
<p>Resource management is critical for proper operation:</p>
|
||||
<pre><code class="lang-csharp">// In dispose method
|
||||
DispEngine.ImageRequestAfterBufferSwapped -= OnBufferSwapped;
|
||||
DispEngine.Terminate();
|
||||
DispEngine.Dispose();
|
||||
</code></pre>
|
||||
<h2 id="advanced-implementation-considerations">Advanced Implementation Considerations</h2>
|
||||
<p>When creating custom implementations, consider these aspects:</p>
|
||||
<h3 id="view-manipulation">View Manipulation</h3>
|
||||
<p>Use <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_SketchView">SketchView</a> to directly access or modify the view matrix:</p>
|
||||
<pre><code class="lang-csharp">// Get current view matrix
|
||||
Mat4d currentView = engine.SketchView;
|
||||
|
||||
// Apply custom rotation
|
||||
Mat4d rotation = Mat4d.RotateX(Math.PI/4);
|
||||
engine.SketchView = currentView * rotation;
|
||||
</code></pre>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a></li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Disp.IDisplayee.html">IDisplayee</a></li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Geom.Vec2d.html">Vec2d</a></li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Geom.Mat4d.html">Mat4d</a></li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,305 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Using RenderingCanvas with DispEngine | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Using RenderingCanvas with DispEngine | 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="using-renderingcanvas-with-dispengine">Using RenderingCanvas with DispEngine</h1>
|
||||
|
||||
<p>The <code>RenderingCanvas</code> is the primary UI component for displaying and interacting with 3D content across different platforms. This section explains how to use it with the <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a> to create cross-platform applications.</p>
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p>The <code>RenderingCanvas</code> class is available in frameworks:</p>
|
||||
<ul>
|
||||
<li><code>Hi.WinForm</code> for Windows Forms applications</li>
|
||||
<li><code>Hi.Wpf</code> for WPF applications</li>
|
||||
</ul>
|
||||
<p>All implementations share a common architecture centered around the <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a> class, enabling consistent rendering and interaction across platforms.</p>
|
||||
<h2 id="core-concept-dispengine-and-idisplayee">Core Concept: DispEngine and IDisplayee</h2>
|
||||
<p>At the heart of the rendering system is the relationship between <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a> and <a class="xref" href="../../../../../api/Hi.Disp.IDisplayee.html">IDisplayee</a>:</p>
|
||||
<ul>
|
||||
<li><strong>DispEngine</strong>: The rendering engine that manages the OpenGL context and handles user interaction</li>
|
||||
<li><strong>IDisplayee</strong>: The interface that defines objects that can be rendered by the DispEngine</li>
|
||||
</ul>
|
||||
<p>This relationship is fundamental - <strong>the primary purpose of DispEngine is to render IDisplayee objects</strong>.</p>
|
||||
<pre><code class="lang-mermaid">graph TD
|
||||
A[RenderingCanvas UI Component] --> B[DispEngine]
|
||||
B --> C[Rendering Pipeline]
|
||||
B --> D[Input Handling]
|
||||
B --> E[View Manipulation]
|
||||
F[IDisplayee Objects] -->|Rendered by| B
|
||||
</code></pre>
|
||||
<h3 id="working-with-idisplayee">Working with IDisplayee</h3>
|
||||
<p>Objects implementing <a class="xref" href="../../../../../api/Hi.Disp.IDisplayee.html">IDisplayee</a> define what gets rendered. Typically, you'll use <a class="xref" href="../../../../../api/Hi.Disp.Drawing.html">Drawing</a> objects or compose multiple IDisplayee objects together:</p>
|
||||
<pre><code class="lang-csharp">// Create a composite displayee
|
||||
public class MyCompositeDisplayee : IDisplayee
|
||||
{
|
||||
private List<IDisplayee> _displayees = new List<IDisplayee>();
|
||||
|
||||
public MyCompositeDisplayee()
|
||||
{
|
||||
// Add various displayees
|
||||
_displayees.Add(new AxesDisplayee());
|
||||
_displayees.Add(new ModelDisplayee());
|
||||
}
|
||||
|
||||
public void Display(Bind bind)
|
||||
{
|
||||
// Render all contained displayees
|
||||
foreach (var displayee in _displayees)
|
||||
{
|
||||
displayee.Display(bind);
|
||||
}
|
||||
}
|
||||
|
||||
public void ExpandToBox3d(Box3d box)
|
||||
{
|
||||
// Update bounding box based on all displayees
|
||||
foreach (var displayee in _displayees)
|
||||
{
|
||||
displayee.ExpandToBox3d(box);
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre>
|
||||
<p>Multiple displayees can be combined using <a class="xref" href="../../../../../api/Hi.Disp.DispList.html">DispList</a>:</p>
|
||||
<pre><code class="lang-csharp">// Combine multiple displayees
|
||||
var displayList = new DispList();
|
||||
displayList.Add(myModel);
|
||||
displayList.Add(myAnnotations);
|
||||
displayList.Add(myCoordinateSystem);
|
||||
|
||||
// Pass to DispEngine
|
||||
engine.Displayee = displayList;
|
||||
</code></pre>
|
||||
<p>For more detailed information on creating displayees with <a class="xref" href="../../../../../api/Hi.Disp.Drawing.html">Drawing</a>, see the <a href="../drawing/index.html">Drawing</a> section.</p>
|
||||
<h2 id="basic-usage">Basic Usage</h2>
|
||||
<h3 id="winform-implementation">WinForm Implementation</h3>
|
||||
<pre><code class="lang-csharp">// Create a new instance with displayee objects
|
||||
using Hi.WinForm.Disp;
|
||||
|
||||
// Create displayee object
|
||||
var displayee = new MyCompositeDisplayee();
|
||||
|
||||
// Initialize canvas with the displayee
|
||||
var canvas = new RenderingCanvas(displayee);
|
||||
|
||||
// Access the DispEngine for direct manipulation
|
||||
DispEngine engine = canvas.DispEngine;
|
||||
|
||||
// Add to a form
|
||||
myForm.Controls.Add(canvas);
|
||||
</code></pre>
|
||||
<h3 id="wpf-implementation">WPF Implementation</h3>
|
||||
<pre><code class="lang-csharp">// Create a new instance
|
||||
using Hi.Wpf.Disp;
|
||||
|
||||
// Create displayee object
|
||||
var displayee = new MyCompositeDisplayee();
|
||||
|
||||
// Initialize the canvas
|
||||
var canvas = new RenderingCanvas();
|
||||
|
||||
// Set displayee objects through the DispEngine
|
||||
canvas.DispEngine.Displayee = displayee;
|
||||
|
||||
// Add to a container
|
||||
myGrid.Children.Add(canvas);
|
||||
</code></pre>
|
||||
<h2 id="switching-displayees-at-runtime">Switching Displayees at Runtime</h2>
|
||||
<p>You can dynamically change what's being displayed:</p>
|
||||
<pre><code class="lang-csharp">// Switch to a different displayee
|
||||
renderingCanvas.DispEngine.Displayee = alternativeDisplayee;
|
||||
|
||||
// Or update a DispList
|
||||
var displayList = new DispList();
|
||||
if (showModel) displayList.Add(modelDisplayee);
|
||||
if (showGrid) displayList.Add(gridDisplayee);
|
||||
renderingCanvas.DispEngine.Displayee = displayList;
|
||||
</code></pre>
|
||||
<h2 id="key-features-of-dispengine">Key Features of DispEngine</h2>
|
||||
<p>The <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a> provides cross-platform support for:</p>
|
||||
<ol>
|
||||
<li><p><strong>Rendering Pipeline Management</strong></p>
|
||||
<ul>
|
||||
<li>Handles buffer swapping and image generation</li>
|
||||
<li>Manages GPU resources efficiently</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p><strong>Input Handling</strong></p>
|
||||
<ul>
|
||||
<li>Mouse/pointer events (move, click, drag)</li>
|
||||
<li>Keyboard navigation</li>
|
||||
<li>Touch gestures (pinch, rotate, pan)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p><strong>View Manipulation</strong></p>
|
||||
<ul>
|
||||
<li>Camera positioning and orientation</li>
|
||||
<li>Standard views (front, top, isometric, etc.)</li>
|
||||
<li>Zoom, pan, and rotate operations</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p><strong>DisplayeeObjects Management</strong></p>
|
||||
<ul>
|
||||
<li>Renders <a class="xref" href="../../../../../api/Hi.Disp.IDisplayee.html">IDisplayee</a> implementations</li>
|
||||
<li>Manages visibility and drawing state</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
<h2 id="touch-and-gesture-support">Touch and Gesture Support</h2>
|
||||
<p>The <a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a> centralizes touch handling across all platforms with a unified API that supports:</p>
|
||||
<ul>
|
||||
<li>Single-finger pan</li>
|
||||
<li>Two-finger rotate and scale</li>
|
||||
<li>Multi-finger specialized operations</li>
|
||||
</ul>
|
||||
<p>The touch API is designed to be simple for UI implementations to use. Platform-specific UI components only need to capture touch events and forward them to the DispEngine.</p>
|
||||
<h3 id="basic-touch-api-example">Basic Touch API Example</h3>
|
||||
<pre><code class="lang-csharp">// When a touch point is detected
|
||||
DispEngine.TouchDown(touchId, x, y);
|
||||
|
||||
// When a touch point moves
|
||||
DispEngine.TouchMove(touchId, x, y);
|
||||
|
||||
// When a touch point is released
|
||||
DispEngine.TouchUp(touchId);
|
||||
</code></pre>
|
||||
<h2 id="common-operations">Common Operations</h2>
|
||||
<pre><code class="lang-csharp">// Accessing DispEngine (works on all platforms)
|
||||
var engine = renderingCanvas.DispEngine;
|
||||
|
||||
// Set to standard views
|
||||
engine.SetViewToHomeView();
|
||||
engine.SetViewToFrontView();
|
||||
|
||||
// Manual camera manipulation
|
||||
engine.Translate(dx, dy);
|
||||
engine.Rotate(deltaX, deltaY);
|
||||
|
||||
// Resize handling
|
||||
engine.Resize(width, height);
|
||||
</code></pre>
|
||||
<h2 id="implementation-details">Implementation Details</h2>
|
||||
<p>For detailed implementation information, including:</p>
|
||||
<ul>
|
||||
<li>Full source code examples</li>
|
||||
<li>Implementation details for each platform</li>
|
||||
<li>Advanced touch handling</li>
|
||||
<li>Custom implementation guidance</li>
|
||||
</ul>
|
||||
<p>See the <a href="custom-implementation.html">Building Your Own RenderingCanvas</a> guide.</p>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Disp.DispEngine.html">DispEngine</a></li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Disp.IDisplayee.html">IDisplayee</a></li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Disp.DispList.html">DispList</a></li>
|
||||
<li><a class="xref" href="../../../../../api/Hi.Disp.Drawing.html">Drawing</a></li>
|
||||
<li><a href="custom-implementation.html">Building Your Own RenderingCanvas</a></li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,201 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Getting Started with HiAPI | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Getting Started with HiAPI | 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="getting-started-with-hiapi">Getting Started with HiAPI</h1>
|
||||
|
||||
<p>This guide will help you get started with HiAPI development.</p>
|
||||
<h2 id="installation">Installation</h2>
|
||||
<ol>
|
||||
<li><p>Create a dotnet project.</p>
|
||||
</li>
|
||||
<li><p>Setting the nuget server and account.</p>
|
||||
<p>The HiAPI installation is typical Nuget Package installation. You can apply global or local nuget setting.</p>
|
||||
<p>Here apply the local solution for startup. Create a file and name it to <code>nuget.config</code> in the same folder of your dotnet project file. the content of the file is as the following:</p>
|
||||
<pre><code class="lang-xml"><?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="HiAPI" value="https://superhightech-gitea.webredirect.org/api/packages/HiAPI/nuget/index.json" />
|
||||
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
|
||||
</packageSources>
|
||||
<packageSourceCredentials>
|
||||
<HiAPI>
|
||||
<add key="Username" value="xxxxxx" />
|
||||
<add key="ClearTextPassword" value="xxxxxx" />
|
||||
</HiAPI>
|
||||
</packageSourceCredentials>
|
||||
</configuration>
|
||||
</code></pre>
|
||||
</li>
|
||||
<li><p>In the dotnet project file, add the package reference.</p>
|
||||
<pre><code class="lang-xml"><ItemGroup>
|
||||
<PackageReference Include="HiNc" Version="1.4.*" />
|
||||
<!--optional-->
|
||||
<PackageReference Include="Hi.Wpf" Version="*" />
|
||||
</ItemGroup>
|
||||
</code></pre>
|
||||
</li>
|
||||
<li><p>In the program file, setting the environment initialization and finalization.</p>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Disp;
|
||||
using Hi.Licenses;
|
||||
using Hi.MongoUtils;
|
||||
using System;
|
||||
|
||||
namespace Sample
|
||||
{
|
||||
/// <summary>
|
||||
/// A sample class demonstrating initialization and usage of the HiAPI framework.
|
||||
/// Shows the basic setup of display engine, MongoDB server, licensing, and other core functionality.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This example serves as an entry point for those getting started with HiAPI.
|
||||
/// It demonstrates proper initialization and teardown of key components.
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample/HelloHiAPI.cs)]
|
||||
/// </remarks>
|
||||
public static class HelloHiAPI
|
||||
{
|
||||
static int Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("HiAPI starting.");
|
||||
License.LogInAll();
|
||||
DispEngine.Init();
|
||||
MongoServer.Default = MongoServer.Run(new MongoRunnerOptions()
|
||||
{
|
||||
MongoPort = 28100
|
||||
});
|
||||
|
||||
Console.WriteLine("Hello World! HiAPI.");
|
||||
|
||||
MongoServer.Default.Dispose();
|
||||
DispEngine.FinishDisp();
|
||||
License.LogOutAll();
|
||||
Console.WriteLine("HiAPI exited.");
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre>
|
||||
<p>If 3D rendering is not required, the setting of <a class="xref" href="../../../api/Hi.Disp.DispEngine.html">DispEngine</a> can be eliminated.</p>
|
||||
</li>
|
||||
</ol>
|
||||
<h2 id="sample-code-to-start-a-">Sample Code to Start a <a class="xref" href="../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a></h2>
|
||||
<p>See the following sample code to start a HiAPI application.</p>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../sample/Sample.Machining.DemoBuildMachiningProject.html">DemoBuildMachiningProject</a>
|
||||
Build a <a class="xref" href="../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>.</li>
|
||||
<li><a class="xref" href="../../sample/Sample.Machining.DemoUseMachiningProject.html">DemoUseMachiningProject</a>
|
||||
Load a <a class="xref" href="../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a> and run NC simulation.</li>
|
||||
<li><a class="xref" href="../../sample/Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection.html">DemoRenderingMachiningProcessAndStripPosSelection</a>
|
||||
Apply <a class="xref" href="../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a> to 3D canvas with user-interaction in windows platform.</li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,157 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>HiAPI Overview | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="HiAPI Overview | 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="hiapi-overview">HiAPI Overview</h1>
|
||||
|
||||
<p>HiAPI is a C# software development kit for machining simulation. It provides libraries for NC motion simulation, collision detection, geometry removal simulation, milling force simulation, optimization, and more.</p>
|
||||
<h2 id="nuget-packages">Nuget Packages</h2>
|
||||
<p>The HiAPI is applied by the form of Nuget Packages. You have to apply <code>HiNc</code> nuget package and its dependencies. They include all the functionality of the HiNC software, but do not include the GUI components.</p>
|
||||
<p>The packages can be downloaded and installed from the HiAPI NuGet Server. The server URL is:</p>
|
||||
<p><a href="%5Bhttps://superhightech-gitea.webredirect.org/api/packages/HiAPI/nuget/index.json">https://superhightech-gitea.webredirect.org/api/packages/HiAPI/nuget/index.json</a></p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<ul>
|
||||
<li>Authentication is required to access the server (username and password)</li>
|
||||
<li>Direct browser access to the URL will not show meaningful content. Since the server is designed for Visual Studio NuGet package management. For more information about NuGet, visit <a href="https://www.nuget.org/">NuGet.org</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h3 id="package-dependencies">Package Dependencies</h3>
|
||||
<p>The <code>HiNc</code> package has the following dependency chain:</p>
|
||||
<pre><code class="lang-mermaid">graph LR
|
||||
HiGeom --> HiDisp
|
||||
HiDisp --> HiCbtr
|
||||
HiCbtr --> HiMech
|
||||
HiMech --> HiUniNc
|
||||
HiUniNc --> HiNc
|
||||
|
||||
HiDisp --> Hi.WinForm
|
||||
HiDisp --> Hi.Wpf
|
||||
|
||||
style HiNc fill:#d3d,stroke:#333,stroke-width:2px
|
||||
</code></pre>
|
||||
<h3 id="ui-framework-support">UI Framework Support</h3>
|
||||
<p>If you need to develop Windows desktop applications:</p>
|
||||
<ul>
|
||||
<li>For Windows Forms applications, use the <code>Hi.WinForm</code> package</li>
|
||||
<li>For WPF applications, use the <code>Hi.Wpf</code> package</li>
|
||||
</ul>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p>See <a href="basic/rendering/rendering-canvas/custom-implementation.html">Building Your Own Rendering Canvas</a> to build the rendering canvas cross-platform.</p>
|
||||
</div>
|
||||
<h2 id="hiapi-sample-code">HiAPI Sample Code</h2>
|
||||
<p>See <a href="../sample/Sample.Machining.html">Sample Code</a> or download the repositories to get more samples. The following sample repository demonstrate various aspects of using HiAPI for machining simulation:</p>
|
||||
<ul>
|
||||
<li>The <a href="https://superhightech-gitea.webredirect.org/HiNC-Deploy/Hi.Sample">Hi.Sample Repository</a> contains a collection of sample projects showcasing different features and capabilities of HiAPI with no platform constrain.</li>
|
||||
<li>The <a href="https://superhightech-gitea.webredirect.org/HiNC-Deploy/Hi.Sample.Wpf">Hi.Sample.Wpf Repository</a> repository contains samples specifically designed for Windows Presentation Foundation applications.</li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,137 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>System Requirements | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="System Requirements | 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="system-requirements">System Requirements</h1>
|
||||
|
||||
<ul>
|
||||
<li><strong>Operating System</strong>:
|
||||
<ul>
|
||||
<li>Windows 10 or later</li>
|
||||
<li>Ubuntu 22.04 LTS</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><strong>CPU Architecture</strong>: x64 (ARM not yet supported)</li>
|
||||
<li><strong>Runtime</strong>: .NET 9.0 or later</li>
|
||||
<li><strong>Memory (RAM)</strong>:
|
||||
<ul>
|
||||
<li>Minimum: 8GB RAM (suitable for low-resolution models)</li>
|
||||
<li>Recommended: 128GB RAM or higher (for large and detailed models)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><strong>Graphics</strong>:
|
||||
<ul>
|
||||
<li>OpenGL 4.4 compatible graphics card or integrated graphics</li>
|
||||
<li>Most computers manufactured within the last 15 years meet this requirement</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,67 @@
|
||||
|
||||
<div id="sidetoggle">
|
||||
<div>
|
||||
<div class="sidefilter">
|
||||
<form class="toc-filter">
|
||||
<span class="glyphicon glyphicon-filter filter-icon"></span>
|
||||
<span class="glyphicon glyphicon-remove clear-icon" id="toc_filter_clear"></span>
|
||||
<input type="text" id="toc_filter_input" placeholder="Filter by title" onkeypress="if(event.keyCode==13) {return false;}">
|
||||
</form>
|
||||
</div>
|
||||
<div class="sidetoc">
|
||||
<div class="toc" id="toc">
|
||||
|
||||
<ul class="nav level1">
|
||||
<li>
|
||||
<a href="index.html" name="" title="Overview">Overview</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="system-requirements.html" name="" title="System Requirements">System Requirements</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="getting-started/index.html" name="" title="Getting Started">Getting Started</a>
|
||||
</li>
|
||||
<li>
|
||||
<span class="expand-stub"></span>
|
||||
<a>Logic Basic</a>
|
||||
|
||||
<ul class="nav level2">
|
||||
<li>
|
||||
<span class="expand-stub"></span>
|
||||
<a href="basic/rendering/index.html" name="" title="Rendering">Rendering</a>
|
||||
|
||||
<ul class="nav level3">
|
||||
<li>
|
||||
<a href="basic/rendering/rendering-canvas/index.html" name="" title="Using RenderingCanvas with DispEngine">Using RenderingCanvas with DispEngine</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="basic/rendering/rendering-canvas/custom-implementation.html" name="" title="Building Your Own Rendering Canvas">Building Your Own Rendering Canvas</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="basic/rendering/drawing/index.html" name="" title="Drawing">Drawing</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<span class="expand-stub"></span>
|
||||
<a>Mechanism Topology</a>
|
||||
|
||||
<ul class="nav level3">
|
||||
<li>
|
||||
<a href="basic/mechanism/index.html" name="" title="Overview">Overview</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="basic/mechanism/Topo/index.html" name="" title="Topology Structure">Topology Structure</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="basic/mechanism/transformers/index.html" name="" title="Transformers">Transformers</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"System Requirements","href":"system-requirements.html","topicHref":"system-requirements.html"},{"name":"Getting Started","href":"getting-started/index.html","topicHref":"getting-started/index.html"},{"name":"Logic Basic","items":[{"name":"Rendering","href":"basic/rendering/index.html","topicHref":"basic/rendering/index.html","items":[{"name":"Using RenderingCanvas with DispEngine","href":"basic/rendering/rendering-canvas/index.html","topicHref":"basic/rendering/rendering-canvas/index.html"},{"name":"Building Your Own Rendering Canvas","href":"basic/rendering/rendering-canvas/custom-implementation.html","topicHref":"basic/rendering/rendering-canvas/custom-implementation.html"},{"name":"Drawing","href":"basic/rendering/drawing/index.html","topicHref":"basic/rendering/drawing/index.html"}]},{"name":"Mechanism Topology","items":[{"name":"Overview","href":"basic/mechanism/index.html","topicHref":"basic/mechanism/index.html"},{"name":"Topology Structure","href":"basic/mechanism/Topo/index.html","topicHref":"basic/mechanism/Topo/index.html"},{"name":"Transformers","href":"basic/mechanism/transformers/index.html","topicHref":"basic/mechanism/transformers/index.html"}]}]}]}
|
||||
@@ -0,0 +1,125 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>HiNC Documentation | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="HiNC Documentation | 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="content">
|
||||
<div class="actionbar">
|
||||
|
||||
<nav id="breadcrumb"></nav>
|
||||
</div>
|
||||
|
||||
<article data-uid="">
|
||||
<h1 id="hinc-documentation">HiNC Documentation</h1>
|
||||
|
||||
<p>Welcome to the HiNC documentation website. This site contains documentation for both the HiNC software and its development API.</p>
|
||||
<h2 id="documentation-sections">Documentation Sections</h2>
|
||||
<h3 id="1-user-guide">1. User Guide</h3>
|
||||
<p>Complete documentation for using the HiNC software, including installation, features, and troubleshooting.</p>
|
||||
<ul>
|
||||
<li><a href="user-guide/index.html">User Guide</a></li>
|
||||
</ul>
|
||||
<h3 id="2-developer-documentation">2. Developer Documentation</h3>
|
||||
<p>Technical documentation for the HiNC API, including reference, requirements, and integration guides.</p>
|
||||
<ul>
|
||||
<li><a href="developer-doc/index.html">Developer Documentation</a></li>
|
||||
</ul>
|
||||
<p>The sample code using HiNC API:</p>
|
||||
<ul>
|
||||
<li><a href="sample/Sample.Machining.html">Sample Code</a></li>
|
||||
</ul>
|
||||
<p>HiNC API specification:</p>
|
||||
<ul>
|
||||
<li><a href="../api/Hi.Machining.html">API Reference</a></li>
|
||||
</ul>
|
||||
<h2 id="ai-collaboration">AI Collaboration</h2>
|
||||
<p>Let AI agent scan HiAPI Doc (Brief) Web Root: <a href="index.html">https://superhightech.com.tw/HiAPI-docsite/brief/</a> to get help.</p>
|
||||
<p>The brief web root does not contains the <a href="../api/toc.html">API Reference</a>. Since the API Reference contains too many pages. It is not recommand to send it to AI agent if the AI capability is not enough.</p>
|
||||
<p>HiNC / HiAPI does not provide LLM. You should use the 3rd party AI agent to apply the document.</p>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,234 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoCylindroid | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoCylindroid | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates the creation and visualization of objects. Includes examples of building a programmatically with points and serializing/deserializing via XML.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Disp.DemoCylindroid">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Disp_DemoCylindroid" data-uid="Sample.Disp.DemoCylindroid" class="text-break">
|
||||
Class DemoCylindroid
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Disp.html">Disp</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.Wpf.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates the creation and visualization of <a class="xref" href="../../api/Hi.Geom.Cylindroid.html">Cylindroid</a> objects.
|
||||
Includes examples of building a <a class="xref" href="../../api/Hi.Geom.Cylindroid.html">Cylindroid</a> programmatically with
|
||||
<a class="xref" href="../../api/Hi.Geom.PairZr.html">PairZr</a> points and serializing/deserializing via XML.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class DemoCylindroid</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoCylindroid</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Disp_DemoCylindroid_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Disp;
|
||||
using Hi.Geom;
|
||||
using System;
|
||||
|
||||
namespace Sample.Disp
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates the creation and visualization of <see cref="Cylindroid"/> objects.
|
||||
/// Includes examples of building a <see cref="Cylindroid"/> programmatically with
|
||||
/// <see cref="PairZr"/> points and serializing/deserializing via XML.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoCylindroid.cs)]
|
||||
/// </remarks>
|
||||
public static class DemoCylindroid
|
||||
{
|
||||
internal static void BuildCylindorid()
|
||||
{
|
||||
Cylindroid cylindroid = new Cylindroid(24,
|
||||
new PairZr(0, 1),
|
||||
new PairZr(1, 1),
|
||||
new PairZr(1, 2),
|
||||
new PairZr(2, 2),
|
||||
new PairZr(8, 3));
|
||||
|
||||
DispEngine.Init();
|
||||
DemoUtil.RunApplication("BuildCylindorid", cylindroid.ToFaceDrawing());
|
||||
}
|
||||
|
||||
internal static void TestCylindoridXml()
|
||||
{
|
||||
Cylindroid cylindroid = new Cylindroid(24,
|
||||
new PairZr(0, 1),
|
||||
new PairZr(1, 1),
|
||||
new PairZr(1, 2),
|
||||
new PairZr(2, 2),
|
||||
new PairZr(4, 3));
|
||||
var xmlElement = cylindroid.MakeXmlSource(null, null);
|
||||
Console.WriteLine("XML:" + xmlElement);
|
||||
|
||||
cylindroid = new Cylindroid(xmlElement);
|
||||
DispEngine.Init();
|
||||
DemoUtil.RunApplication("BuildCylindorid", cylindroid.ToFaceDrawing());
|
||||
}
|
||||
|
||||
static void Main()
|
||||
{
|
||||
BuildCylindorid();
|
||||
//TestCylindoridXml();
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,304 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoDiscreteRgb | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoDiscreteRgb | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates the use of discrete RGB colors for rendering multiple objects. Shows how to apply different colors to similar geometric shapes using the method from class.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Disp.DemoDiscreteRgb">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Disp_DemoDiscreteRgb" data-uid="Sample.Disp.DemoDiscreteRgb" class="text-break">
|
||||
Class DemoDiscreteRgb
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Disp.html">Disp</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.Wpf.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates the use of discrete RGB colors for rendering multiple objects.
|
||||
Shows how to apply different colors to similar geometric shapes using the
|
||||
<a class="xref" href="../../api/Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetDiscreteRGB_Env_System_Double_System_Double_">GetDiscreteRGB_Env(double, double)</a> method from <a class="xref" href="../../api/Hi.Coloring.ColorUtil.html">ColorUtil</a> class.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public class DemoDiscreteRgb : IDisplayee, IExpandToBox3d</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoDiscreteRgb</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl class="typelist implements">
|
||||
<dt>Implements</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="../../api/Hi.Disp.IDisplayee.html">IDisplayee</a></div>
|
||||
<div><a class="xref" href="../../api/Hi.Geom.IExpandToBox3d.html">IExpandToBox3d</a></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Disp_DemoDiscreteRgb_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Disp;
|
||||
using Hi.Disp.Flag;
|
||||
using Hi.Geom;
|
||||
using Hi.Coloring;
|
||||
|
||||
namespace Sample.Disp
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates the use of discrete RGB colors for rendering multiple objects.
|
||||
/// Shows how to apply different colors to similar geometric shapes using the
|
||||
/// <see cref="ColorUtil.GetDiscreteRGB_Env"/> method from <see cref="ColorUtil"/> class.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoDiscreteRgb.cs)]
|
||||
/// </remarks>
|
||||
public class DemoDiscreteRgb : IDisplayee
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public void Display(Bind bind)
|
||||
{
|
||||
bind.RGB = ColorUtil.GetDiscreteRGB_Env();
|
||||
new Box3d(0, 0, 0, 1, 1, 1).ToDraw_Face().Display(bind);
|
||||
|
||||
bind.RGB = ColorUtil.GetDiscreteRGB_Env();
|
||||
new Box3d(1, 0, 0, 2, 1, 1).ToDraw_Face().Display(bind);
|
||||
|
||||
bind.RGB = ColorUtil.GetDiscreteRGB_Env();
|
||||
new Box3d(2, 0, 0, 3, 1, 1).ToDraw_Face().Display(bind);
|
||||
}
|
||||
/// <inheritdoc/>
|
||||
public void ExpandToBox3d(Box3d dst)
|
||||
{
|
||||
dst.Expand(new Vec3d(0, 0, 0));
|
||||
dst.Expand(new Vec3d(3, 1, 1));
|
||||
}
|
||||
|
||||
static void Main()
|
||||
{
|
||||
DemoUtil.RunApplication("Demo Discrete I",
|
||||
new DispList(new CoordinateDrawing(), new DemoDiscreteRgb()));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoDiscreteRgb_Display_" data-uid="Sample.Disp.DemoDiscreteRgb.Display*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoDiscreteRgb_Display_Hi_Disp_Bind_" data-uid="Sample.Disp.DemoDiscreteRgb.Display(Hi.Disp.Bind)">
|
||||
Display(Bind)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Display function called in <a class="xref" href="../../api/Hi.Disp.DispEngine.html">DispEngine</a> rendering loop.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void Display(Bind bind)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>bind</code> <a class="xref" href="../../api/Hi.Disp.Bind.html">Bind</a></dt>
|
||||
<dd><p>Bind with <a class="xref" href="../../api/Hi.Disp.DispEngine.html">DispEngine</a>. See <a class="xref" href="../../api/Hi.Disp.Bind.html">Bind</a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoDiscreteRgb_ExpandToBox3d_" data-uid="Sample.Disp.DemoDiscreteRgb.ExpandToBox3d*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoDiscreteRgb_ExpandToBox3d_Hi_Geom_Box3d_" data-uid="Sample.Disp.DemoDiscreteRgb.ExpandToBox3d(Hi.Geom.Box3d)">
|
||||
ExpandToBox3d(Box3d)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Expands the destination box.
|
||||
This function is usually used to compute the bounding box of elements.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void ExpandToBox3d(Box3d dst)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>dst</code> <a class="xref" href="../../api/Hi.Geom.Box3d.html">Box3d</a></dt>
|
||||
<dd><p>Destination box</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,501 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoDrawing | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoDrawing | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates various drawing techniques using the HiAPI graphics system. Provides examples of primitive drawing, attribute specification, and rendering options. Includes methods for drawing lines, points, triangles, and other geometric primitives.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Disp.DemoDrawing">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Disp_DemoDrawing" data-uid="Sample.Disp.DemoDrawing" class="text-break">
|
||||
Class DemoDrawing
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Disp.html">Disp</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.Wpf.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates various drawing techniques using the HiAPI graphics system.
|
||||
Provides examples of primitive drawing, attribute specification, and rendering options.
|
||||
Includes methods for drawing lines, points, triangles, and other geometric primitives.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class DemoDrawing</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoDrawing</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Disp_DemoDrawing_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Geom;
|
||||
using Hi.Disp;
|
||||
using System.Collections.Generic;
|
||||
using Hi.Disp.Treat;
|
||||
using Hi.Coloring;
|
||||
|
||||
namespace Sample.Disp
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates various drawing techniques using the HiAPI graphics system.
|
||||
/// Provides examples of primitive drawing, attribute specification, and rendering options.
|
||||
/// Includes methods for drawing lines, points, triangles, and other geometric primitives.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoDrawing.cs)]
|
||||
/// </remarks>
|
||||
public static class DemoDrawing
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates simple line drawing using raw vertex coordinates.
|
||||
/// Creates a basic line strip from three vertices and displays it using DemoUtil.
|
||||
/// </summary>
|
||||
public static void FreeDrawing()
|
||||
{
|
||||
#region DocSite.FreeDrawing
|
||||
double[] vs =
|
||||
{0,0,0
|
||||
,1,0,0
|
||||
,0,0,1};
|
||||
DemoUtil.RunApplication("EasyDraw"
|
||||
, new Drawing(vs, Stamp.V, GL.GL_LINE_STRIP));
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Demonstrates various types of line drawing techniques.
|
||||
/// Shows how to create points, line strips, line strips with normals, and colored line strips.
|
||||
/// Illustrates different ways to specify vertex attributes like position, color, and normal.
|
||||
/// </summary>
|
||||
public static void DrawLines()
|
||||
{
|
||||
List<Vec3d> ps;
|
||||
double[] vs;
|
||||
int n = 10; //vertex num
|
||||
|
||||
////create drawPoints
|
||||
ps = new List<Vec3d>(n);
|
||||
for (int i = 0; i < n; i++)
|
||||
ps.Add(new Vec3d(i, 0, 0));
|
||||
vs = new double[ps.Count * 3];
|
||||
for (int i = 0; i < ps.Count; i++)
|
||||
{
|
||||
vs[3 * i] = ps[i].x;
|
||||
vs[3 * i + 1] = ps[i].y;
|
||||
vs[3 * i + 2] = ps[i].z;
|
||||
}
|
||||
|
||||
//V means Vertex
|
||||
Drawing drawPoints = new Drawing(vs, Stamp.V, GL.GL_POINTS);
|
||||
|
||||
////create drawLineStrip
|
||||
vs = new double[ps.Count * 3];
|
||||
for (int i = 0; i < ps.Count; i++)
|
||||
{
|
||||
vs[3 * i] = i;
|
||||
vs[3 * i + 1] = 0;
|
||||
vs[3 * i + 2] = 1;
|
||||
}
|
||||
Drawing drawLineStrip = new Drawing(vs, Stamp.V, GL.GL_LINE_STRIP);
|
||||
|
||||
////create drawLineStripWithNormal
|
||||
//the content of vs is Nx,Ny,Nz,Vx,Vy,Vz, Nx,Ny,Nz,Vx,Vy,Vz, ...
|
||||
vs = new double[n * 6];
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
//nx,ny,nz
|
||||
vs[6 * i] = 1;
|
||||
vs[6 * i + 1] = 0;
|
||||
vs[6 * i + 2] = 0;
|
||||
//x,y,z
|
||||
vs[6 * i + 3] = i;
|
||||
vs[6 * i + 4] = 0;
|
||||
vs[6 * i + 5] = 2;
|
||||
}
|
||||
//V means Vertex; N means Normal
|
||||
Drawing drawLineStripWithNormal =
|
||||
new Drawing(vs, Stamp.NV, GL.GL_LINE_STRIP);
|
||||
|
||||
////create drawColorLines
|
||||
vs = new double[n * 6];
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
//the rgb values set casually.
|
||||
//r,g,b
|
||||
vs[6 * i] = i % 3 / 2D;
|
||||
vs[6 * i + 1] = i % 5 / 4D;
|
||||
vs[6 * i + 2] = i % 7 / 6D;
|
||||
//x,y,z
|
||||
vs[6 * i + 3] = i;
|
||||
vs[6 * i + 4] = 0;
|
||||
vs[6 * i + 5] = 3;
|
||||
}
|
||||
//V means Vertex; C means Color
|
||||
Drawing drawLineStripWithColor = new Drawing(vs, Stamp.CV, GL.GL_LINE_STRIP);
|
||||
|
||||
DemoUtil.RunApplication("DrawLines",
|
||||
new DispList(drawPoints, drawLineStrip
|
||||
, drawLineStripWithNormal, drawLineStripWithColor));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Demonstrates drawing triangles using OpenGL primitives.
|
||||
/// Shows how to create colored triangles (CV) and colored triangles with normals (CNV).
|
||||
/// Illustrates packing of vertex attributes (color, normal, position) into arrays for rendering.
|
||||
/// </summary>
|
||||
public static void DrawTrianglesByPrimitives()
|
||||
{
|
||||
int n = 10;// triangle num
|
||||
double[] vs;
|
||||
|
||||
////create drawTrisCV
|
||||
//each triangle has 3 point; each point has r,g,b,x,y,z, totally 6 doubles.
|
||||
vs = new double[n * 3 * 6];
|
||||
for (int i = 0, k = 0; i < n; i++)
|
||||
{
|
||||
//the rgb values set as casual.
|
||||
Vec3d rgb = ColorUtil.GetDiscreteRgb(i);
|
||||
Tri3d tri = new Tri3d(new Vec3d(i, 0, 0), new Vec3d(i + 1, 0, 0), new Vec3d(i + 0.5, 0, 1));
|
||||
for (int j = 0; j < 3; j++)
|
||||
{
|
||||
vs[k++] = rgb.x;
|
||||
vs[k++] = rgb.y;
|
||||
vs[k++] = rgb.z;
|
||||
vs[k++] = tri.ps[j].x;
|
||||
vs[k++] = tri.ps[j].y;
|
||||
vs[k++] = tri.ps[j].z;
|
||||
}
|
||||
}
|
||||
//V means Vertex; C means Color
|
||||
Drawing drawTrisCV = new Drawing(vs, Stamp.CV, GL.GL_TRIANGLES);
|
||||
|
||||
////create drawTrisCNV
|
||||
/////each triangle has 3 point; each point has r,g,b,nx,ny,nz,x,y,z, totally 6 doubles.
|
||||
vs = new double[n * 3 * 9];
|
||||
for (int i = 0, k = 0; i < n; i++)
|
||||
{
|
||||
//the rgb values set as casual.
|
||||
Vec3d rgb = ColorUtil.GetDiscreteRgb(i);
|
||||
Tri3d tri = new Tri3d(new Vec3d(i, 0, 3), new Vec3d(i + 1, 0, 3), new Vec3d(i + 0.5, 0, 4));
|
||||
Vec3d nn = tri.GetNormal();
|
||||
for (int j = 0; j < 3; j++)
|
||||
{
|
||||
vs[k++] = rgb.x;
|
||||
vs[k++] = rgb.y;
|
||||
vs[k++] = rgb.z;
|
||||
vs[k++] = nn.x;
|
||||
vs[k++] = nn.y;
|
||||
vs[k++] = nn.z;
|
||||
vs[k++] = tri.ps[j].x;
|
||||
vs[k++] = tri.ps[j].y;
|
||||
vs[k++] = tri.ps[j].z;
|
||||
}
|
||||
}
|
||||
//V means Vertex; C means Color; N means Normal
|
||||
Drawing drawTrisCNV = new Drawing(vs, Stamp.CNV, GL.GL_TRIANGLES);
|
||||
|
||||
//the color of colorTrisDraw is not influence by outer color setting.
|
||||
DemoUtil.RunApplication("DrawTrianglesByPrimitives",
|
||||
new DispList(new RgbTreat(1, 0, 0), drawTrisCV, drawTrisCNV));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Demonstrates drawing 3D triangles using the Tri3d helper class.
|
||||
/// Creates a series of triangles and renders them as both face (filled) and line (wireframe) drawings.
|
||||
/// Shows how to apply different colors to faces and lines of the same geometry.
|
||||
/// </summary>
|
||||
public static void DrawTri3d()
|
||||
{
|
||||
int n = 10;
|
||||
List<Tri3d> tris = new List<Tri3d>(n);
|
||||
for (int i = 0; i < n; i++)
|
||||
tris.Add(new Tri3d(new Vec3d(i, 0, 0), new Vec3d(i + 1, 0, 0), new Vec3d(i + 0.5, 0, 1)));
|
||||
|
||||
Drawing faceDraw = tris.GetFaceDrawing();
|
||||
Drawing linesDraw = tris.GetLineDrawing();
|
||||
|
||||
DemoUtil.RunApplication("DrawTri3d",
|
||||
new DispList(new RgbTreat(0, 0, 1), linesDraw
|
||||
, new RgbTreat(1, 0, 0), faceDraw));
|
||||
}
|
||||
|
||||
static void Main()
|
||||
{
|
||||
//FreeDrawing();
|
||||
//DrawLines();
|
||||
//DrawTrianglesByPrimitives();
|
||||
DrawTri3d();
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoDrawing_DrawLines_" data-uid="Sample.Disp.DemoDrawing.DrawLines*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoDrawing_DrawLines" data-uid="Sample.Disp.DemoDrawing.DrawLines">
|
||||
DrawLines()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Demonstrates various types of line drawing techniques.
|
||||
Shows how to create points, line strips, line strips with normals, and colored line strips.
|
||||
Illustrates different ways to specify vertex attributes like position, color, and normal.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static void DrawLines()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoDrawing_DrawTri3d_" data-uid="Sample.Disp.DemoDrawing.DrawTri3d*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoDrawing_DrawTri3d" data-uid="Sample.Disp.DemoDrawing.DrawTri3d">
|
||||
DrawTri3d()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Demonstrates drawing 3D triangles using the Tri3d helper class.
|
||||
Creates a series of triangles and renders them as both face (filled) and line (wireframe) drawings.
|
||||
Shows how to apply different colors to faces and lines of the same geometry.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static void DrawTri3d()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoDrawing_DrawTrianglesByPrimitives_" data-uid="Sample.Disp.DemoDrawing.DrawTrianglesByPrimitives*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoDrawing_DrawTrianglesByPrimitives" data-uid="Sample.Disp.DemoDrawing.DrawTrianglesByPrimitives">
|
||||
DrawTrianglesByPrimitives()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Demonstrates drawing triangles using OpenGL primitives.
|
||||
Shows how to create colored triangles (CV) and colored triangles with normals (CNV).
|
||||
Illustrates packing of vertex attributes (color, normal, position) into arrays for rendering.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static void DrawTrianglesByPrimitives()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoDrawing_FreeDrawing_" data-uid="Sample.Disp.DemoDrawing.FreeDrawing*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoDrawing_FreeDrawing" data-uid="Sample.Disp.DemoDrawing.FreeDrawing">
|
||||
FreeDrawing()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Demonstrates simple line drawing using raw vertex coordinates.
|
||||
Creates a basic line strip from three vertices and displays it using DemoUtil.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static void FreeDrawing()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,422 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoPick1 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoPick1 | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates basic object picking with mouse interaction in the HiAPI system. Shows how to create a pickable 3D object that responds to mouse events by changing its appearance. Implements the Pickable base class to enable mouse event handling.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Disp.DemoPick1">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Disp_DemoPick1" data-uid="Sample.Disp.DemoPick1" class="text-break">
|
||||
Class DemoPick1
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Disp.html">Disp</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.Wpf.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates basic object picking with mouse interaction in the HiAPI system.
|
||||
Shows how to create a pickable 3D object that responds to mouse events by changing its appearance.
|
||||
Implements the Pickable base class to enable mouse event handling.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public class DemoPick1 : Pickable, IPickableGetter, IDisposable, IDisplayee, IExpandToBox3d</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><a class="xref" href="../../api/Hi.Disp.Pickable.html">Pickable</a></div>
|
||||
<div><span class="xref">DemoPick1</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl class="typelist implements">
|
||||
<dt>Implements</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="../../api/Hi.Disp.IPickableGetter.html">IPickableGetter</a></div>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
|
||||
<div><a class="xref" href="../../api/Hi.Disp.IDisplayee.html">IDisplayee</a></div>
|
||||
<div><a class="xref" href="../../api/Hi.Geom.IExpandToBox3d.html">IExpandToBox3d</a></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="../../api/Hi.Disp.Pickable.html#Hi_Disp_Pickable_Pickables">Pickable.Pickables</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="../../api/Hi.Disp.Pickable.html#Hi_Disp_Pickable_mark">Pickable.mark</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="../../api/Hi.Disp.Pickable.html#Hi_Disp_Pickable_PickingID">Pickable.PickingID</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="../../api/Hi.Disp.Pickable.html#Hi_Disp_Pickable_GetPickable">Pickable.GetPickable()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="../../api/Hi.Disp.Pickable.html#Hi_Disp_Pickable_OnKeyDown_Hi_Native_key_event_t_Hi_Native_panel_state_t_">Pickable.OnKeyDown(key_event_t, panel_state_t)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="../../api/Hi.Disp.Pickable.html#Hi_Disp_Pickable_OnKeyUp_Hi_Native_key_event_t_Hi_Native_panel_state_t_">Pickable.OnKeyUp(key_event_t, panel_state_t)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="../../api/Hi.Disp.Pickable.html#Hi_Disp_Pickable_OnMouseDown_Hi_Native_mouse_button_event_t_Hi_Native_panel_state_t_">Pickable.OnMouseDown(mouse_button_event_t, panel_state_t)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="../../api/Hi.Disp.Pickable.html#Hi_Disp_Pickable_OnMouseUp_Hi_Native_mouse_button_event_t_Hi_Native_panel_state_t_">Pickable.OnMouseUp(mouse_button_event_t, panel_state_t)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="../../api/Hi.Disp.Pickable.html#Hi_Disp_Pickable_OnMouseMove_Hi_Native_mouse_move_event_t_Hi_Native_panel_state_t_">Pickable.OnMouseMove(mouse_move_event_t, panel_state_t)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="../../api/Hi.Disp.Pickable.html#Hi_Disp_Pickable_OnMouseWheel_Hi_Native_mouse_wheel_event_t_Hi_Native_panel_state_t_">Pickable.OnMouseWheel(mouse_wheel_event_t, panel_state_t)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="../../api/Hi.Disp.Pickable.html#Hi_Disp_Pickable_Dispose_System_Boolean_">Pickable.Dispose(bool)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="../../api/Hi.Disp.Pickable.html#Hi_Disp_Pickable_Dispose">Pickable.Dispose()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Disp_DemoPick1_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Geom;
|
||||
using Hi.Disp;
|
||||
using Hi.Native;
|
||||
|
||||
namespace Sample.Disp
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates basic object picking with mouse interaction in the HiAPI system.
|
||||
/// Shows how to create a pickable 3D object that responds to mouse events by changing its appearance.
|
||||
/// Implements the Pickable base class to enable mouse event handling.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoPick1.cs)]
|
||||
/// </remarks>
|
||||
public class DemoPick1 : Pickable, IDisplayee
|
||||
{
|
||||
bool isMouseOver = false;
|
||||
/// <inheritdoc/>
|
||||
public void Display(Bind bind)
|
||||
{
|
||||
bind.PickID = PickingID;
|
||||
bind.RGB = new Vec3d(isMouseOver ? 0 : 1, 1, 1);
|
||||
new Box3d(0, 0, 0, 1, 1, 1).DisplayFace(bind);
|
||||
bind.PickID = 0;
|
||||
}
|
||||
/// <inheritdoc/>
|
||||
public void ExpandToBox3d(Box3d dst)
|
||||
{
|
||||
dst.Expand(new Vec3d(0, 0, 0));
|
||||
dst.Expand(new Vec3d(1, 1, 1));
|
||||
}
|
||||
/// <inheritdoc/>
|
||||
public override void OnMouseEnter(ui_event_type e, panel_state_t state)
|
||||
{
|
||||
isMouseOver = true;
|
||||
}
|
||||
/// <inheritdoc/>
|
||||
public override void OnMouseLeave(ui_event_type e, panel_state_t state)
|
||||
{
|
||||
isMouseOver = false;
|
||||
}
|
||||
/// <summary>
|
||||
/// Entry point for the DemoPick1 example.
|
||||
/// Creates and displays a simple pickable object that changes color on mouse hover.
|
||||
/// </summary>
|
||||
static void Main()
|
||||
{
|
||||
DemoUtil.RunApplication("DemoPick1", new DemoPick1());
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoPick1_Display_" data-uid="Sample.Disp.DemoPick1.Display*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoPick1_Display_Hi_Disp_Bind_" data-uid="Sample.Disp.DemoPick1.Display(Hi.Disp.Bind)">
|
||||
Display(Bind)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Display function called in <a class="xref" href="../../api/Hi.Disp.DispEngine.html">DispEngine</a> rendering loop.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void Display(Bind bind)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>bind</code> <a class="xref" href="../../api/Hi.Disp.Bind.html">Bind</a></dt>
|
||||
<dd><p>Bind with <a class="xref" href="../../api/Hi.Disp.DispEngine.html">DispEngine</a>. See <a class="xref" href="../../api/Hi.Disp.Bind.html">Bind</a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoPick1_ExpandToBox3d_" data-uid="Sample.Disp.DemoPick1.ExpandToBox3d*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoPick1_ExpandToBox3d_Hi_Geom_Box3d_" data-uid="Sample.Disp.DemoPick1.ExpandToBox3d(Hi.Geom.Box3d)">
|
||||
ExpandToBox3d(Box3d)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Expands the destination box.
|
||||
This function is usually used to compute the bounding box of elements.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void ExpandToBox3d(Box3d dst)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>dst</code> <a class="xref" href="../../api/Hi.Geom.Box3d.html">Box3d</a></dt>
|
||||
<dd><p>Destination box</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoPick1_OnMouseEnter_" data-uid="Sample.Disp.DemoPick1.OnMouseEnter*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoPick1_OnMouseEnter_Hi_Native_ui_event_type_Hi_Native_panel_state_t_" data-uid="Sample.Disp.DemoPick1.OnMouseEnter(Hi.Native.ui_event_type,Hi.Native.panel_state_t)">
|
||||
OnMouseEnter(ui_event_type, panel_state_t)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Behavior on mouse enter</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public override void OnMouseEnter(ui_event_type e, panel_state_t state)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>e</code> <a class="xref" href="../../api/Hi.Native.ui_event_type.html">ui_event_type</a></dt>
|
||||
<dd><p>event type</p>
|
||||
</dd>
|
||||
<dt><code>state</code> <a class="xref" href="../../api/Hi.Native.panel_state_t.html">panel_state_t</a></dt>
|
||||
<dd><p>panel state</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoPick1_OnMouseLeave_" data-uid="Sample.Disp.DemoPick1.OnMouseLeave*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoPick1_OnMouseLeave_Hi_Native_ui_event_type_Hi_Native_panel_state_t_" data-uid="Sample.Disp.DemoPick1.OnMouseLeave(Hi.Native.ui_event_type,Hi.Native.panel_state_t)">
|
||||
OnMouseLeave(ui_event_type, panel_state_t)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Behavior on mouse leave</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public override void OnMouseLeave(ui_event_type e, panel_state_t state)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>e</code> <a class="xref" href="../../api/Hi.Native.ui_event_type.html">ui_event_type</a></dt>
|
||||
<dd><p>event type</p>
|
||||
</dd>
|
||||
<dt><code>state</code> <a class="xref" href="../../api/Hi.Native.panel_state_t.html">panel_state_t</a></dt>
|
||||
<dd><p>panel state</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,396 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoPick2 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoPick2 | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates advanced object picking with multiple pickable objects. Shows how to create and manage multiple pickable objects with different visual appearances. Implements proper resource cleanup through the IDisposable interface.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Disp.DemoPick2">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Disp_DemoPick2" data-uid="Sample.Disp.DemoPick2" class="text-break">
|
||||
Class DemoPick2
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Disp.html">Disp</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.Wpf.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates advanced object picking with multiple pickable objects.
|
||||
Shows how to create and manage multiple pickable objects with different visual appearances.
|
||||
Implements proper resource cleanup through the IDisposable interface.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public class DemoPick2 : IDisplayee, IExpandToBox3d, IDisposable</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoPick2</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl class="typelist implements">
|
||||
<dt>Implements</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="../../api/Hi.Disp.IDisplayee.html">IDisplayee</a></div>
|
||||
<div><a class="xref" href="../../api/Hi.Geom.IExpandToBox3d.html">IExpandToBox3d</a></div>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Disp_DemoPick2_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Geom;
|
||||
using Hi.Disp;
|
||||
using System;
|
||||
using Hi.Coloring;
|
||||
|
||||
namespace Sample.Disp
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates advanced object picking with multiple pickable objects.
|
||||
/// Shows how to create and manage multiple pickable objects with different visual appearances.
|
||||
/// Implements proper resource cleanup through the IDisposable interface.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoPick2.cs)]
|
||||
/// </remarks>
|
||||
public class DemoPick2 : IDisplayee, IDisposable
|
||||
{
|
||||
readonly Pickable pickableA = new ShowEventPickable { Tag = "A" };
|
||||
readonly Pickable pickableB = new ShowEventPickable { Tag = "B" };
|
||||
readonly Pickable pickableC = new ShowEventPickable { Tag = "C" };
|
||||
/// <inheritdoc/>
|
||||
public void Display(Bind bind)
|
||||
{
|
||||
bind.PickID = pickableA.PickingID;
|
||||
bind.RGB = ColorUtil.GetDiscreteRgb(1);
|
||||
new Box3d(0, 0, 0, 1, 1, 1).DisplayFace(bind);
|
||||
|
||||
bind.PickID = pickableB.PickingID;
|
||||
bind.RGB = ColorUtil.GetDiscreteRgb(2);
|
||||
new Box3d(0, 0, 1, 1, 1, 2).DisplayFace(bind);
|
||||
|
||||
bind.PickID = pickableC.PickingID;
|
||||
bind.RGB = ColorUtil.GetDiscreteRgb(3);
|
||||
new Box3d(0, 0, 2, 1, 1, 3).DisplayFace(bind);
|
||||
|
||||
bind.PickID = 0;
|
||||
}
|
||||
/// <inheritdoc/>
|
||||
public void ExpandToBox3d(Box3d dst)
|
||||
{
|
||||
dst.Expand(new Vec3d(0, 0, 0));
|
||||
dst.Expand(new Vec3d(1, 1, 3));
|
||||
}
|
||||
#region IDisposable Support
|
||||
private bool disposedValue = false; // To detect redundant calls
|
||||
/// <inheritdoc/>
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
if (!disposedValue)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
pickableA.Dispose();
|
||||
pickableB.Dispose();
|
||||
pickableC.Dispose();
|
||||
}
|
||||
disposedValue = true;
|
||||
}
|
||||
}
|
||||
/// <inheritdoc/>
|
||||
public void Dispose()
|
||||
{
|
||||
Dispose(true);
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Entry point for the DemoPick2 example.
|
||||
/// Creates and displays multiple pickable objects with distinct colors and positions.
|
||||
/// Demonstrates separation of picking behavior from visual representation.
|
||||
/// </summary>
|
||||
static void Main()
|
||||
{
|
||||
DemoUtil.RunApplication("DemoPick2", new DemoPick2());
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoPick2_Display_" data-uid="Sample.Disp.DemoPick2.Display*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoPick2_Display_Hi_Disp_Bind_" data-uid="Sample.Disp.DemoPick2.Display(Hi.Disp.Bind)">
|
||||
Display(Bind)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Display function called in <a class="xref" href="../../api/Hi.Disp.DispEngine.html">DispEngine</a> rendering loop.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void Display(Bind bind)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>bind</code> <a class="xref" href="../../api/Hi.Disp.Bind.html">Bind</a></dt>
|
||||
<dd><p>Bind with <a class="xref" href="../../api/Hi.Disp.DispEngine.html">DispEngine</a>. See <a class="xref" href="../../api/Hi.Disp.Bind.html">Bind</a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoPick2_Dispose_" data-uid="Sample.Disp.DemoPick2.Dispose*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoPick2_Dispose" data-uid="Sample.Disp.DemoPick2.Dispose">
|
||||
Dispose()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void Dispose()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoPick2_Dispose_" data-uid="Sample.Disp.DemoPick2.Dispose*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoPick2_Dispose_System_Boolean_" data-uid="Sample.Disp.DemoPick2.Dispose(System.Boolean)">
|
||||
Dispose(bool)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"></div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">protected virtual void Dispose(bool disposing)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>disposing</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoPick2_ExpandToBox3d_" data-uid="Sample.Disp.DemoPick2.ExpandToBox3d*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoPick2_ExpandToBox3d_Hi_Geom_Box3d_" data-uid="Sample.Disp.DemoPick2.ExpandToBox3d(Hi.Geom.Box3d)">
|
||||
ExpandToBox3d(Box3d)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Expands the destination box.
|
||||
This function is usually used to compute the bounding box of elements.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void ExpandToBox3d(Box3d dst)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>dst</code> <a class="xref" href="../../api/Hi.Geom.Box3d.html">Box3d</a></dt>
|
||||
<dd><p>Destination box</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,382 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoPickable | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoPickable | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates creation of pickable 3D geometry at the primitive level. Shows how to assign picking IDs directly to geometry vertices and create interactive triangles. Uses a lower-level approach than the Pickable base class for more precise control.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Disp.DemoPickable">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Disp_DemoPickable" data-uid="Sample.Disp.DemoPickable" class="text-break">
|
||||
Class DemoPickable
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Disp.html">Disp</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.Wpf.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates creation of pickable 3D geometry at the primitive level.
|
||||
Shows how to assign picking IDs directly to geometry vertices and create interactive triangles.
|
||||
Uses a lower-level approach than the Pickable base class for more precise control.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public class DemoPickable : IDisplayee, IExpandToBox3d</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoPickable</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl class="typelist implements">
|
||||
<dt>Implements</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="../../api/Hi.Disp.IDisplayee.html">IDisplayee</a></div>
|
||||
<div><a class="xref" href="../../api/Hi.Geom.IExpandToBox3d.html">IExpandToBox3d</a></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Disp_DemoPickable_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Disp;
|
||||
using Hi.Geom;
|
||||
using System;
|
||||
|
||||
namespace Sample.Disp
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates creation of pickable 3D geometry at the primitive level.
|
||||
/// Shows how to assign picking IDs directly to geometry vertices and create interactive triangles.
|
||||
/// Uses a lower-level approach than the Pickable base class for more precise control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoPickable.cs)]
|
||||
/// </remarks>
|
||||
public class DemoPickable : IDisplayee
|
||||
{
|
||||
private readonly Drawing draw;
|
||||
private readonly ShowEventPickable pickable;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of DemoPickable.
|
||||
/// Creates a pickable triangle with a specific picking ID for user interaction.
|
||||
/// </summary>
|
||||
public DemoPickable()
|
||||
{
|
||||
pickable = new ShowEventPickable();
|
||||
double pid = pickable.PickingID;
|
||||
double[] vs = new double[] {
|
||||
//pickID, x,y,z
|
||||
pid, 0,0.1,0.1,
|
||||
pid, 0.1,0,0,
|
||||
pid, 0.1,0,0.1
|
||||
};
|
||||
draw = new Drawing(vs, Stamp.PV, GL.GL_TRIANGLES);
|
||||
}
|
||||
/// <inheritdoc/>
|
||||
public void Display(Bind bind)
|
||||
{
|
||||
draw.Display(bind);
|
||||
}
|
||||
/// <inheritdoc/>
|
||||
public void ExpandToBox3d(Box3d dst)
|
||||
{
|
||||
draw.ExpandToBox3d(dst);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Entry point for the DemoPickable example.
|
||||
/// Creates and displays a pickable triangle that can respond to mouse events.
|
||||
/// Demonstrates integration of picking functionality with geometric primitives.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
public static void Main()
|
||||
{
|
||||
DemoUtil.RunApplication("DemoPickable", new DemoPickable());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
<h2 class="section" id="constructors">Constructors
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoPickable__ctor_" data-uid="Sample.Disp.DemoPickable.#ctor*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoPickable__ctor" data-uid="Sample.Disp.DemoPickable.#ctor">
|
||||
DemoPickable()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Initializes a new instance of DemoPickable.
|
||||
Creates a pickable triangle with a specific picking ID for user interaction.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public DemoPickable()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoPickable_Display_" data-uid="Sample.Disp.DemoPickable.Display*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoPickable_Display_Hi_Disp_Bind_" data-uid="Sample.Disp.DemoPickable.Display(Hi.Disp.Bind)">
|
||||
Display(Bind)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Display function called in <a class="xref" href="../../api/Hi.Disp.DispEngine.html">DispEngine</a> rendering loop.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void Display(Bind bind)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>bind</code> <a class="xref" href="../../api/Hi.Disp.Bind.html">Bind</a></dt>
|
||||
<dd><p>Bind with <a class="xref" href="../../api/Hi.Disp.DispEngine.html">DispEngine</a>. See <a class="xref" href="../../api/Hi.Disp.Bind.html">Bind</a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoPickable_ExpandToBox3d_" data-uid="Sample.Disp.DemoPickable.ExpandToBox3d*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoPickable_ExpandToBox3d_Hi_Geom_Box3d_" data-uid="Sample.Disp.DemoPickable.ExpandToBox3d(Hi.Geom.Box3d)">
|
||||
ExpandToBox3d(Box3d)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Expands the destination box.
|
||||
This function is usually used to compute the bounding box of elements.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void ExpandToBox3d(Box3d dst)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>dst</code> <a class="xref" href="../../api/Hi.Geom.Box3d.html">Box3d</a></dt>
|
||||
<dd><p>Destination box</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoPickable_Main_" data-uid="Sample.Disp.DemoPickable.Main*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoPickable_Main" data-uid="Sample.Disp.DemoPickable.Main">
|
||||
Main()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Entry point for the DemoPickable example.
|
||||
Creates and displays a pickable triangle that can respond to mouse events.
|
||||
Demonstrates integration of picking functionality with geometric primitives.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">[STAThread]
|
||||
public static void Main()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,314 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoSatellite | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoSatellite | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates a simple solar system animation using interface. Shows how to create a hierarchical transform structure with sun, earth and moon using matrices and model matrix stack transformations.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Disp.DemoSatellite">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Disp_DemoSatellite" data-uid="Sample.Disp.DemoSatellite" class="text-break">
|
||||
Class DemoSatellite
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Disp.html">Disp</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.Wpf.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates a simple solar system animation using <a class="xref" href="../../api/Hi.Disp.IDisplayee.html">IDisplayee</a> interface.
|
||||
Shows how to create a hierarchical transform structure with sun, earth and moon using
|
||||
<a class="xref" href="../../api/Hi.Geom.Mat4d.html">Mat4d</a> matrices and model matrix stack transformations.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public class DemoSatellite : IDisplayee, IExpandToBox3d</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoSatellite</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl class="typelist implements">
|
||||
<dt>Implements</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="../../api/Hi.Disp.IDisplayee.html">IDisplayee</a></div>
|
||||
<div><a class="xref" href="../../api/Hi.Geom.IExpandToBox3d.html">IExpandToBox3d</a></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Disp_DemoSatellite_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Geom;
|
||||
using Hi.Disp;
|
||||
|
||||
namespace Sample.Disp
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates a simple solar system animation using <see cref="IDisplayee"/> interface.
|
||||
/// Shows how to create a hierarchical transform structure with sun, earth and moon using
|
||||
/// <see cref="Mat4d"/> matrices and model matrix stack transformations.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoSatellite.cs)]
|
||||
/// </remarks>
|
||||
public class DemoSatellite : IDisplayee
|
||||
{
|
||||
Drawing sun;
|
||||
Drawing earth;
|
||||
Drawing moon;
|
||||
double angle_earth;
|
||||
double angle_moon;
|
||||
DemoSatellite()
|
||||
{
|
||||
sun = Box3d.CenterUnitBox.ScaleFromCenter(4).ToDraw_Face();
|
||||
earth = Box3d.CenterUnitBox.ScaleFromCenter(2).ToDraw_Face();
|
||||
moon = Box3d.CenterUnitBox.ToDraw_Face();
|
||||
}
|
||||
/// <inheritdoc/>
|
||||
public void Display(Bind bind)
|
||||
{
|
||||
sun.Display(bind);
|
||||
bind.ModelMatStack.Push();
|
||||
bind.ModelMatStack.Mul(new Mat4d(new AxisAngle4d(new Vec3d(0, 0, 1), angle_earth += 0.03)));
|
||||
bind.ModelMatStack.Mul(new Mat4d(new Vec3d(12, 0, 0)));
|
||||
earth.Display(bind);
|
||||
bind.ModelMatStack.Push();
|
||||
bind.ModelMatStack.Mul(new Mat4d(new AxisAngle4d(new Vec3d(0, 0, 1), angle_moon += 0.02)));
|
||||
bind.ModelMatStack.Mul(new Mat4d(new Vec3d(4, 0, 0)));
|
||||
moon.Display(bind);
|
||||
bind.ModelMatStack.Pop();
|
||||
bind.ModelMatStack.Pop();
|
||||
}
|
||||
/// <inheritdoc/>
|
||||
public void ExpandToBox3d(Box3d dst)
|
||||
{
|
||||
dst.Expand(new Vec3d(-14, -14, -2));
|
||||
dst.Expand(new Vec3d(14, 14, 2));
|
||||
}
|
||||
|
||||
static void Main()
|
||||
{
|
||||
DemoUtil.RunApplication("DemoSatellite", new DemoSatellite());
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoSatellite_Display_" data-uid="Sample.Disp.DemoSatellite.Display*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoSatellite_Display_Hi_Disp_Bind_" data-uid="Sample.Disp.DemoSatellite.Display(Hi.Disp.Bind)">
|
||||
Display(Bind)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Display function called in <a class="xref" href="../../api/Hi.Disp.DispEngine.html">DispEngine</a> rendering loop.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void Display(Bind bind)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>bind</code> <a class="xref" href="../../api/Hi.Disp.Bind.html">Bind</a></dt>
|
||||
<dd><p>Bind with <a class="xref" href="../../api/Hi.Disp.DispEngine.html">DispEngine</a>. See <a class="xref" href="../../api/Hi.Disp.Bind.html">Bind</a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoSatellite_ExpandToBox3d_" data-uid="Sample.Disp.DemoSatellite.ExpandToBox3d*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoSatellite_ExpandToBox3d_Hi_Geom_Box3d_" data-uid="Sample.Disp.DemoSatellite.ExpandToBox3d(Hi.Geom.Box3d)">
|
||||
ExpandToBox3d(Box3d)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Expands the destination box.
|
||||
This function is usually used to compute the bounding box of elements.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void ExpandToBox3d(Box3d dst)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>dst</code> <a class="xref" href="../../api/Hi.Geom.Box3d.html">Box3d</a></dt>
|
||||
<dd><p>Destination box</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,233 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoStl | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoStl | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates the loading, manipulation, and display of STL (stereolithography) files in HiAPI. Shows operations like loading STL data, transforming geometries, and basic visualization.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Disp.DemoStl">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Disp_DemoStl" data-uid="Sample.Disp.DemoStl" class="text-break">
|
||||
Class DemoStl
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Disp.html">Disp</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.Wpf.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates the loading, manipulation, and display of STL (stereolithography) files in HiAPI.
|
||||
Shows operations like loading STL data, transforming geometries, and basic visualization.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class DemoStl</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoStl</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Disp_DemoStl_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Geom;
|
||||
using System;
|
||||
using Hi.Disp;
|
||||
|
||||
namespace Sample.Disp
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates the loading, manipulation, and display of STL (stereolithography) files in HiAPI.
|
||||
/// Shows operations like loading STL data, transforming geometries, and basic visualization.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoStl.cs)]
|
||||
/// </remarks>
|
||||
public static class DemoStl
|
||||
{
|
||||
internal static void TransformStl()
|
||||
{
|
||||
#region DocSite.TransformStl
|
||||
Stl stl;
|
||||
|
||||
stl = new Stl("Demo/cubic.stl");
|
||||
//scale the stl to 100x.
|
||||
stl.Transform(new Mat4d(100));
|
||||
//create a new stl file.
|
||||
stl.WriteBin("big_cubic.stl");
|
||||
|
||||
stl = new Stl("Demo/cubic.stl");
|
||||
//move the stl by (100,0,0)
|
||||
stl.Transform(new Mat4d(new Vec3d(100, 0, 0)));
|
||||
//create a new stl file.
|
||||
stl.WriteBin("offset_x100_cubic.stl");
|
||||
#endregion
|
||||
}
|
||||
|
||||
internal static void DemoCommonUsage()
|
||||
{
|
||||
#region DocSite.CommonUsage
|
||||
Stl stl = new Stl("Disp/cubic.stl");
|
||||
Box3d bouindingbox = new Box3d(stl);
|
||||
Console.WriteLine("bouindingbox.Min: " + bouindingbox.Min);
|
||||
Console.WriteLine("bouindingbox.Max: " + bouindingbox.Max);
|
||||
Console.WriteLine("bouindingbox.Center: " + bouindingbox.Center);
|
||||
DispUtil.CallRenderingFrame("DemoForm", stl.ToFaceDrawing());
|
||||
#endregion
|
||||
}
|
||||
|
||||
static void Main()
|
||||
{
|
||||
DemoCommonUsage();
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,267 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoUtil | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoUtil | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Provides utility functions for running HiAPI display examples in a WPF environment. Contains helper methods that simplify the setup and execution of WPF applications with HiAPI rendering. Handles common initialization and cleanup tasks for visualization examples.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Disp.DemoUtil">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Disp_DemoUtil" data-uid="Sample.Disp.DemoUtil" class="text-break">
|
||||
Class DemoUtil
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Disp.html">Disp</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.Wpf.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Provides utility functions for running HiAPI display examples in a WPF environment.
|
||||
Contains helper methods that simplify the setup and execution of WPF applications with HiAPI rendering.
|
||||
Handles common initialization and cleanup tasks for visualization examples.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class DemoUtil</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoUtil</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Disp_DemoUtil_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Disp;
|
||||
using Hi.Licenses;
|
||||
using Hi.MongoUtils;
|
||||
using Hi.Wpf.Disp;
|
||||
using System.Windows;
|
||||
|
||||
namespace Sample.Disp
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides utility functions for running HiAPI display examples in a WPF environment.
|
||||
/// Contains helper methods that simplify the setup and execution of WPF applications with HiAPI rendering.
|
||||
/// Handles common initialization and cleanup tasks for visualization examples.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoUtil.cs)]
|
||||
/// </remarks>
|
||||
public static class DemoUtil
|
||||
{
|
||||
/// <summary>
|
||||
/// Creates and runs a WPF application with a RenderingWindow to display 3D content.
|
||||
/// Handles proper initialization and cleanup of HiAPI resources including MongoDB server,
|
||||
/// display engine, and licensing.
|
||||
/// </summary>
|
||||
/// <param name="title">The title for the application window</param>
|
||||
/// <param name="displayee">The object that implements IDisplayee to be rendered</param>
|
||||
public static void RunApplication(string title, IDisplayee displayee)
|
||||
{
|
||||
Application app = new Application();
|
||||
app.Exit += (o, e) =>
|
||||
{
|
||||
if(MongoServer.IsDefaultInit)
|
||||
MongoServer.Default.Dispose();
|
||||
DispEngine.FinishDisp();
|
||||
License.LogOutAll();
|
||||
};
|
||||
app.Run(new RenderingWindow()
|
||||
{
|
||||
Title = title,
|
||||
Displayee = displayee
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Sample_Disp_DemoUtil_RunApplication_" data-uid="Sample.Disp.DemoUtil.RunApplication*"></a>
|
||||
|
||||
<h3 id="Sample_Disp_DemoUtil_RunApplication_System_String_Hi_Disp_IDisplayee_" data-uid="Sample.Disp.DemoUtil.RunApplication(System.String,Hi.Disp.IDisplayee)">
|
||||
RunApplication(string, IDisplayee)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Creates and runs a WPF application with a RenderingWindow to display 3D content.
|
||||
Handles proper initialization and cleanup of HiAPI resources including MongoDB server,
|
||||
display engine, and licensing.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static void RunApplication(string title, IDisplayee displayee)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>title</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
|
||||
<dd><p>The title for the application window</p>
|
||||
</dd>
|
||||
<dt><code>displayee</code> <a class="xref" href="../../api/Hi.Disp.IDisplayee.html">IDisplayee</a></dt>
|
||||
<dd><p>The object that implements IDisplayee to be rendered</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,184 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Namespace Sample.Disp | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Namespace Sample.Disp | 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="ManagedReference">
|
||||
<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="Sample.Disp">
|
||||
|
||||
<h1 id="Sample_Disp" data-uid="Sample.Disp" class="text-break">Namespace Sample.Disp</h1>
|
||||
<div class="markdown level0 summary"></div>
|
||||
<div class="markdown level0 conceptual"></div>
|
||||
<div class="markdown level0 remarks"></div>
|
||||
|
||||
<h3 id="classes">
|
||||
Classes
|
||||
</h3>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Disp.DemoCylindroid.html">DemoCylindroid</a></dt>
|
||||
<dd><p>Demonstrates the creation and visualization of <a class="xref" href="../../api/Hi.Geom.Cylindroid.html">Cylindroid</a> objects.
|
||||
Includes examples of building a <a class="xref" href="../../api/Hi.Geom.Cylindroid.html">Cylindroid</a> programmatically with
|
||||
<a class="xref" href="../../api/Hi.Geom.PairZr.html">PairZr</a> points and serializing/deserializing via XML.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Disp.DemoDiscreteRgb.html">DemoDiscreteRgb</a></dt>
|
||||
<dd><p>Demonstrates the use of discrete RGB colors for rendering multiple objects.
|
||||
Shows how to apply different colors to similar geometric shapes using the
|
||||
<a class="xref" href="../../api/Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetDiscreteRGB_Env_System_Double_System_Double_">GetDiscreteRGB_Env(double, double)</a> method from <a class="xref" href="../../api/Hi.Coloring.ColorUtil.html">ColorUtil</a> class.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Disp.DemoDrawing.html">DemoDrawing</a></dt>
|
||||
<dd><p>Demonstrates various drawing techniques using the HiAPI graphics system.
|
||||
Provides examples of primitive drawing, attribute specification, and rendering options.
|
||||
Includes methods for drawing lines, points, triangles, and other geometric primitives.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Disp.DemoPick1.html">DemoPick1</a></dt>
|
||||
<dd><p>Demonstrates basic object picking with mouse interaction in the HiAPI system.
|
||||
Shows how to create a pickable 3D object that responds to mouse events by changing its appearance.
|
||||
Implements the Pickable base class to enable mouse event handling.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Disp.DemoPick2.html">DemoPick2</a></dt>
|
||||
<dd><p>Demonstrates advanced object picking with multiple pickable objects.
|
||||
Shows how to create and manage multiple pickable objects with different visual appearances.
|
||||
Implements proper resource cleanup through the IDisposable interface.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Disp.DemoPickable.html">DemoPickable</a></dt>
|
||||
<dd><p>Demonstrates creation of pickable 3D geometry at the primitive level.
|
||||
Shows how to assign picking IDs directly to geometry vertices and create interactive triangles.
|
||||
Uses a lower-level approach than the Pickable base class for more precise control.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Disp.DemoSatellite.html">DemoSatellite</a></dt>
|
||||
<dd><p>Demonstrates a simple solar system animation using <a class="xref" href="../../api/Hi.Disp.IDisplayee.html">IDisplayee</a> interface.
|
||||
Shows how to create a hierarchical transform structure with sun, earth and moon using
|
||||
<a class="xref" href="../../api/Hi.Geom.Mat4d.html">Mat4d</a> matrices and model matrix stack transformations.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Disp.DemoStl.html">DemoStl</a></dt>
|
||||
<dd><p>Demonstrates the loading, manipulation, and display of STL (stereolithography) files in HiAPI.
|
||||
Shows operations like loading STL data, transforming geometries, and basic visualization.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Disp.DemoUtil.html">DemoUtil</a></dt>
|
||||
<dd><p>Provides utility functions for running HiAPI display examples in a WPF environment.
|
||||
Contains helper methods that simplify the setup and execution of WPF applications with HiAPI rendering.
|
||||
Handles common initialization and cleanup tasks for visualization examples.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,260 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoBuildGeom | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoBuildGeom | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates the creation and manipulation of geometric objects in HiAPI. Shows how to create and transform various geometry types including boxes, cylindroids, and STL files.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Geom.DemoBuildGeom">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Geom_DemoBuildGeom" data-uid="Sample.Geom.DemoBuildGeom" class="text-break">
|
||||
Class DemoBuildGeom
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Geom.html">Geom</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates the creation and manipulation of geometric objects in HiAPI.
|
||||
Shows how to create and transform various geometry types including boxes, cylindroids, and STL files.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class DemoBuildGeom</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoBuildGeom</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Geom_DemoBuildGeom_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using System.Collections.Generic;
|
||||
using Hi.Geom;
|
||||
using Hi.Mech.Topo;
|
||||
|
||||
namespace Sample.Geom
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates the creation and manipulation of geometric objects in HiAPI.
|
||||
/// Shows how to create and transform various geometry types including boxes, cylindroids, and STL files.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample/Geom/DemoBuildGeom.cs)]
|
||||
/// </remarks>
|
||||
public static class DemoBuildGeom
|
||||
{
|
||||
/// <summary>
|
||||
/// Generates a collection of geometric objects for demonstration purposes.
|
||||
/// Creates various geometry types including boxes, cylindroids, STL files, and transformed geometries.
|
||||
/// </summary>
|
||||
/// <returns>A list of geometries implementing the IGetStl interface</returns>
|
||||
public static List<IGetStl> GenGeoms()
|
||||
{
|
||||
Box3d box = new Box3d(0, 0, -50, 70, 50, 0);
|
||||
Cylindroid cylindroid = new Cylindroid()
|
||||
{
|
||||
PairZrs = new List<PairZr>([ new PairZr(0,12),new PairZr(20,12),
|
||||
new PairZr(20,16),new PairZr(30,16)]),
|
||||
LongitudeNum = 30
|
||||
};
|
||||
Stl stl = new Stl("geom.stl");
|
||||
TransformationGeom transformationGeom = new TransformationGeom()
|
||||
{
|
||||
Transformer = new GeneralTransform(1,
|
||||
new StaticRotation(new Vec3d(0, 0, 1), MathUtil.ToRad(15), new Vec3d(0, 0, 0)),
|
||||
new StaticTranslation(new Vec3d(0, 0, 0))),
|
||||
Geom = stl
|
||||
};
|
||||
return new List<IGetStl>([box, cylindroid, stl, transformationGeom]);
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Sample_Geom_DemoBuildGeom_GenGeoms_" data-uid="Sample.Geom.DemoBuildGeom.GenGeoms*"></a>
|
||||
|
||||
<h3 id="Sample_Geom_DemoBuildGeom_GenGeoms" data-uid="Sample.Geom.DemoBuildGeom.GenGeoms">
|
||||
GenGeoms()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Generates a collection of geometric objects for demonstration purposes.
|
||||
Creates various geometry types including boxes, cylindroids, STL files, and transformed geometries.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static List<IGetStl> GenGeoms()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
<h4 class="section">Returns</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a><<a class="xref" href="../../api/Hi.Geom.IGetStl.html">IGetStl</a>></dt>
|
||||
<dd><p>A list of geometries implementing the IGetStl interface</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,208 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoIExpandToBox3d | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoIExpandToBox3d | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates how to create and calculate bounding boxes for different geometric objects. Shows the use of Box3d to encompass multiple geometric elements with a single boundary.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Geom.DemoIExpandToBox3d">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Geom_DemoIExpandToBox3d" data-uid="Sample.Geom.DemoIExpandToBox3d" class="text-break">
|
||||
Class DemoIExpandToBox3d
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Geom.html">Geom</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates how to create and calculate bounding boxes for different geometric objects.
|
||||
Shows the use of Box3d to encompass multiple geometric elements with a single boundary.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class DemoIExpandToBox3d</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoIExpandToBox3d</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Geom_DemoIExpandToBox3d_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Geom;
|
||||
using System;
|
||||
|
||||
namespace Sample.Geom
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates how to create and calculate bounding boxes for different geometric objects.
|
||||
/// Shows the use of Box3d to encompass multiple geometric elements with a single boundary.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample/Geom/DemoIExpandToBox3d.cs)]
|
||||
/// </remarks>
|
||||
public static class DemoIExpandToBox3d
|
||||
{
|
||||
static void Main()
|
||||
{
|
||||
#region DocSite.CountBoundingBox
|
||||
Box3d objA = new Box3d(0, 0, 0, 1, 1, 1);
|
||||
Box3d objB = new Box3d(-1, -2, -3, 3, 2, 1);
|
||||
Vec3d objC = new Vec3d(-2, 3, -5);
|
||||
|
||||
Box3d boundingbox = new Box3d(objA, objB, objC);
|
||||
Console.WriteLine("boundingbox: " + boundingbox);
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,135 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Namespace Sample.Geom | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Namespace Sample.Geom | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="The Sample.Geom namespace provides examples for using the API to create and manipulate geometric objects. This namespace demonstrates how to create basic geometric shapes (like and ), apply transformations with , and work with files. These examples serve as practical reference code for developers who need to understand the basic usage of HiAPI's geometry module.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Geom">
|
||||
|
||||
<h1 id="Sample_Geom" data-uid="Sample.Geom" class="text-break">Namespace Sample.Geom</h1>
|
||||
<div class="markdown level0 summary"><p>The Sample.Geom namespace provides examples for using the <a class="xref" href="../../api/Hi.Geom.html">Hi.Geom</a> API to create and manipulate geometric objects. This namespace demonstrates how to create basic geometric shapes (like <a class="xref" href="../../api/Hi.Geom.Box3d.html">Box3d</a> and <a class="xref" href="../../api/Hi.Geom.Cylindroid.html">Cylindroid</a>), apply transformations with <a class="xref" href="../../api/Hi.Geom.TransformationGeom.html">TransformationGeom</a>, and work with <a class="xref" href="../../api/Hi.Geom.Stl.html">Stl</a> files. These examples serve as practical reference code for developers who need to understand the basic usage of HiAPI's geometry module.</p>
|
||||
</div>
|
||||
<div class="markdown level0 conceptual"></div>
|
||||
<div class="markdown level0 remarks"></div>
|
||||
|
||||
<h3 id="classes">
|
||||
Classes
|
||||
</h3>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Geom.DemoBuildGeom.html">DemoBuildGeom</a></dt>
|
||||
<dd><p>Demonstrates the creation and manipulation of geometric objects in HiAPI.
|
||||
Shows how to create and transform various geometry types including boxes, cylindroids, and STL files.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Geom.DemoIExpandToBox3d.html">DemoIExpandToBox3d</a></dt>
|
||||
<dd><p>Demonstrates how to create and calculate bounding boxes for different geometric objects.
|
||||
Shows the use of Box3d to encompass multiple geometric elements with a single boundary.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,222 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class HelloHiAPI | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class HelloHiAPI | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="A sample class demonstrating initialization and usage of the HiAPI framework. Shows the basic setup of display engine, MongoDB server, licensing, and other core functionality.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.HelloHiAPI">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_HelloHiAPI" data-uid="Sample.HelloHiAPI" class="text-break">
|
||||
Class HelloHiAPI
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>A sample class demonstrating initialization and usage of the HiAPI framework.
|
||||
Shows the basic setup of display engine, MongoDB server, licensing, and other core functionality.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class HelloHiAPI</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">HelloHiAPI</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_HelloHiAPI_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><p>This example serves as an entry point for those getting started with HiAPI.
|
||||
It demonstrates proper initialization and teardown of key components.</p>
|
||||
<h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Disp;
|
||||
using Hi.Licenses;
|
||||
using Hi.MongoUtils;
|
||||
using System;
|
||||
|
||||
namespace Sample
|
||||
{
|
||||
/// <summary>
|
||||
/// A sample class demonstrating initialization and usage of the HiAPI framework.
|
||||
/// Shows the basic setup of display engine, MongoDB server, licensing, and other core functionality.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This example serves as an entry point for those getting started with HiAPI.
|
||||
/// It demonstrates proper initialization and teardown of key components.
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample/HelloHiAPI.cs)]
|
||||
/// </remarks>
|
||||
public static class HelloHiAPI
|
||||
{
|
||||
static int Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("HiAPI starting.");
|
||||
License.LogInAll();
|
||||
DispEngine.Init();
|
||||
MongoServer.Default = MongoServer.Run(new MongoRunnerOptions()
|
||||
{
|
||||
MongoPort = 28100
|
||||
});
|
||||
|
||||
Console.WriteLine("Hello World! HiAPI.");
|
||||
|
||||
MongoServer.Default.Dispose();
|
||||
DispEngine.FinishDisp();
|
||||
License.LogOutAll();
|
||||
Console.WriteLine("HiAPI exited.");
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,500 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoBuildMachineTool | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoBuildMachineTool | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Provides access to the PMC-B1 machine tool model.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.MachineTool.DemoBuildMachineTool">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_MachineTool_DemoBuildMachineTool" data-uid="Sample.MachineTool.DemoBuildMachineTool" class="text-break">
|
||||
Class DemoBuildMachineTool
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.MachineTool.html">MachineTool</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Provides access to the PMC-B1 machine tool model.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public class DemoBuildMachineTool : IGetCodeXyzabcMachineTool</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoBuildMachineTool</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl class="typelist implements">
|
||||
<dt>Implements</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="../../api/Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html">IGetCodeXyzabcMachineTool</a></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_MachineTool_DemoBuildMachineTool_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Common.XmlUtils;
|
||||
using Hi.Geom;
|
||||
using Hi.Mech;
|
||||
using Hi.Mech.Topo;
|
||||
using Hi.NcMech;
|
||||
using Hi.NcMech.Solids;
|
||||
using Hi.NcMech.Xyzabc;
|
||||
using Hi.Numerical.Xyzabc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sample.MachineTool
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides access to the PMC-B1 machine tool model.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample/MachineTool/DemoBuildMachineTool.cs)]
|
||||
/// </remarks>
|
||||
public class DemoBuildMachineTool : IGetCodeXyzabcMachineTool
|
||||
{
|
||||
static DemoBuildMachineTool()
|
||||
{
|
||||
XFactory.Regs.Add(XName, (xml, baseDirectory, relFile, res) => new DemoBuildMachineTool());
|
||||
}
|
||||
/// <summary>
|
||||
/// Generates an XYZ-ABC machine tool instance from embedded resources.
|
||||
/// </summary>
|
||||
/// <returns>A configured machine tool model.</returns>
|
||||
public static CodeXyzabcMachineTool GenXyzabcMachineTool()
|
||||
{
|
||||
CodeXyzabcChain chain = new CodeXyzabcChain("[O][Y][X][C][w];[O][Z][B][S][t]");
|
||||
if (chain.ToolBuckleTransformer is StaticTranslation st)
|
||||
st.Trans = new Vec3d(-72.40, 72.40, 176.44);
|
||||
chain.TransformerB.Pivot = new Vec3d(-72.4, -177.4, 225.94);
|
||||
Dictionary<string, Solid> solidMap = new Dictionary<string, Solid>()
|
||||
{
|
||||
["O"] = new Solid(new Stl("MachineTool/base.stl")),
|
||||
["X"] = new Solid(new Stl("MachineTool/X.stl")),
|
||||
["Y"] = new Solid(new Stl("MachineTool/Y.stl")),
|
||||
["Z"] = new Solid(new Stl("MachineTool/Z.stl")),
|
||||
["B"] = new Solid(new Stl("MachineTool/B.stl")),
|
||||
["C"] = new Solid(new Stl("MachineTool/C.stl")),
|
||||
["S"] = new Solid(new Stl("MachineTool/spindle.stl")),
|
||||
};
|
||||
chain.AnchorToSolid.BuildAnchorToSolid(
|
||||
chain.Asmb.GetDescendantAnchors(), solidMap);
|
||||
|
||||
CodeXyzabcMachineTool dst = new CodeXyzabcMachineTool(chain);
|
||||
dst.GenerateCollisionIndexPairs();
|
||||
return dst;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The cached machine tool instance.
|
||||
/// </summary>
|
||||
CodeXyzabcMachineTool MachineTool { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Default constructor that initializes the machine tool model.
|
||||
/// </summary>
|
||||
public DemoBuildMachineTool()
|
||||
{
|
||||
MachineTool = GenXyzabcMachineTool();
|
||||
}
|
||||
#region XML IO
|
||||
//public PmcB1MachineToolSource(XElement src, object res) : this() { }
|
||||
/// <summary>
|
||||
/// XML element name for serialization.
|
||||
/// </summary>
|
||||
public static string XName = nameof(DemoBuildMachineTool);
|
||||
/// <inheritdoc/>
|
||||
public XElement ToXElement() => new XElement(XName);
|
||||
#endregion
|
||||
/// <inheritdoc/>
|
||||
public CodeXyzabcMachineTool GetXyzabcMachineTool() => MachineTool;
|
||||
/// <inheritdoc/>
|
||||
public IMachiningChain GetMachiningChain() => MachineTool;
|
||||
/// <inheritdoc/>
|
||||
public ISolidMachiningChain GetSolidMachiningChain() => MachineTool;
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
<h2 class="section" id="constructors">Constructors
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Sample_MachineTool_DemoBuildMachineTool__ctor_" data-uid="Sample.MachineTool.DemoBuildMachineTool.#ctor*"></a>
|
||||
|
||||
<h3 id="Sample_MachineTool_DemoBuildMachineTool__ctor" data-uid="Sample.MachineTool.DemoBuildMachineTool.#ctor">
|
||||
DemoBuildMachineTool()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Default constructor that initializes the machine tool model.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public DemoBuildMachineTool()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="fields">Fields
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<h3 id="Sample_MachineTool_DemoBuildMachineTool_XName" data-uid="Sample.MachineTool.DemoBuildMachineTool.XName">
|
||||
XName
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>XML element name for serialization.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static string XName</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Field Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Sample_MachineTool_DemoBuildMachineTool_GenXyzabcMachineTool_" data-uid="Sample.MachineTool.DemoBuildMachineTool.GenXyzabcMachineTool*"></a>
|
||||
|
||||
<h3 id="Sample_MachineTool_DemoBuildMachineTool_GenXyzabcMachineTool" data-uid="Sample.MachineTool.DemoBuildMachineTool.GenXyzabcMachineTool">
|
||||
GenXyzabcMachineTool()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Generates an XYZ-ABC machine tool instance from embedded resources.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static CodeXyzabcMachineTool GenXyzabcMachineTool()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
<h4 class="section">Returns</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="../../api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html">CodeXyzabcMachineTool</a></dt>
|
||||
<dd><p>A configured machine tool model.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_MachineTool_DemoBuildMachineTool_GetMachiningChain_" data-uid="Sample.MachineTool.DemoBuildMachineTool.GetMachiningChain*"></a>
|
||||
|
||||
<h3 id="Sample_MachineTool_DemoBuildMachineTool_GetMachiningChain" data-uid="Sample.MachineTool.DemoBuildMachineTool.GetMachiningChain">
|
||||
GetMachiningChain()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"></div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public IMachiningChain GetMachiningChain()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
<h4 class="section">Returns</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="../../api/Hi.Mech.IMachiningChain.html">IMachiningChain</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_MachineTool_DemoBuildMachineTool_GetSolidMachiningChain_" data-uid="Sample.MachineTool.DemoBuildMachineTool.GetSolidMachiningChain*"></a>
|
||||
|
||||
<h3 id="Sample_MachineTool_DemoBuildMachineTool_GetSolidMachiningChain" data-uid="Sample.MachineTool.DemoBuildMachineTool.GetSolidMachiningChain">
|
||||
GetSolidMachiningChain()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"></div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public ISolidMachiningChain GetSolidMachiningChain()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
<h4 class="section">Returns</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="../../api/Hi.NcMech.ISolidMachiningChain.html">ISolidMachiningChain</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_MachineTool_DemoBuildMachineTool_GetXyzabcMachineTool_" data-uid="Sample.MachineTool.DemoBuildMachineTool.GetXyzabcMachineTool*"></a>
|
||||
|
||||
<h3 id="Sample_MachineTool_DemoBuildMachineTool_GetXyzabcMachineTool" data-uid="Sample.MachineTool.DemoBuildMachineTool.GetXyzabcMachineTool">
|
||||
GetXyzabcMachineTool()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Get <a class="xref" href="../../api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html">CodeXyzabcMachineTool</a>.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public CodeXyzabcMachineTool GetXyzabcMachineTool()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
<h4 class="section">Returns</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="../../api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html">CodeXyzabcMachineTool</a></dt>
|
||||
<dd><p>Machine tool.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Sample_MachineTool_DemoBuildMachineTool_ToXElement_" data-uid="Sample.MachineTool.DemoBuildMachineTool.ToXElement*"></a>
|
||||
|
||||
<h3 id="Sample_MachineTool_DemoBuildMachineTool_ToXElement" data-uid="Sample.MachineTool.DemoBuildMachineTool.ToXElement">
|
||||
ToXElement()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"></div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public XElement ToXElement()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
<h4 class="section">Returns</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.xml.linq.xelement">XElement</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,246 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoBuildMachineToolWithoutGeometrys | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoBuildMachineToolWithoutGeometrys | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demo Build Machine Tool without gemetries setting.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.MachineTool.DemoBuildMachineToolWithoutGeometrys">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_MachineTool_DemoBuildMachineToolWithoutGeometrys" data-uid="Sample.MachineTool.DemoBuildMachineToolWithoutGeometrys" class="text-break">
|
||||
Class DemoBuildMachineToolWithoutGeometrys
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.MachineTool.html">MachineTool</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demo Build Machine Tool without gemetries setting.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class DemoBuildMachineToolWithoutGeometrys</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoBuildMachineToolWithoutGeometrys</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_MachineTool_DemoBuildMachineToolWithoutGeometrys_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Geom;
|
||||
using Hi.Mech.Topo;
|
||||
using Hi.NcMech.Xyzabc;
|
||||
using Hi.Numerical.Xyzabc;
|
||||
|
||||
namespace Sample.MachineTool
|
||||
{
|
||||
/// <summary>
|
||||
/// Demo Build Machine Tool without gemetries setting.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample/MachineTool/DemoBuildMachineToolWithoutGeometrys.cs)]
|
||||
/// </remarks>
|
||||
public static class DemoBuildMachineToolWithoutGeometrys
|
||||
{
|
||||
/// <summary>
|
||||
/// Generates an empty machine tool with basic configuration.
|
||||
/// </summary>
|
||||
/// <returns>A configured but empty machine tool without solids.</returns>
|
||||
public static CodeXyzabcMachineTool GenEmptyMachineTool()
|
||||
{
|
||||
CodeXyzabcChain chain = new CodeXyzabcChain("[O][C][w];[O][X][Y][Z][B][S][t]");
|
||||
if (chain.ToolBuckleTransformer is StaticTranslation st)
|
||||
st.Trans = new Vec3d(-200, 200, 400);
|
||||
CodeXyzabcMachineTool xyzabcMachineTool = new CodeXyzabcMachineTool(chain);
|
||||
return xyzabcMachineTool;
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Sample_MachineTool_DemoBuildMachineToolWithoutGeometrys_GenEmptyMachineTool_" data-uid="Sample.MachineTool.DemoBuildMachineToolWithoutGeometrys.GenEmptyMachineTool*"></a>
|
||||
|
||||
<h3 id="Sample_MachineTool_DemoBuildMachineToolWithoutGeometrys_GenEmptyMachineTool" data-uid="Sample.MachineTool.DemoBuildMachineToolWithoutGeometrys.GenEmptyMachineTool">
|
||||
GenEmptyMachineTool()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Generates an empty machine tool with basic configuration.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static CodeXyzabcMachineTool GenEmptyMachineTool()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
<h4 class="section">Returns</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="../../api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html">CodeXyzabcMachineTool</a></dt>
|
||||
<dd><p>A configured but empty machine tool without solids.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,133 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Namespace Sample.MachineTool | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Namespace Sample.MachineTool | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="The Sample.MachineTool namespace provides examples for creating and configuring machine tool models using the API for CNC verification and simulation. This namespace contains complete examples for building XYZ-ABC type machine tools, including coordinate chain definition, geometry loading, and collision detection configuration. These examples demonstrate how to load machine components from STL files, configure kinematic chains, and integrate machine models for verification systems, offering a comprehensive guide for developers building custom machine tool configurations for accurate CNC simulation and verification.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.MachineTool">
|
||||
|
||||
<h1 id="Sample_MachineTool" data-uid="Sample.MachineTool" class="text-break">Namespace Sample.MachineTool</h1>
|
||||
<div class="markdown level0 summary"><p>The Sample.MachineTool namespace provides examples for creating and configuring machine tool models using the <a class="xref" href="../../api/Hi.NcMech.Xyzabc.html">Hi.NcMech.Xyzabc</a> API for CNC verification and simulation. This namespace contains complete examples for building XYZ-ABC type machine tools, including coordinate chain definition, geometry loading, and collision detection configuration. These examples demonstrate how to load machine components from STL files, configure kinematic chains, and integrate machine models for verification systems, offering a comprehensive guide for developers building custom machine tool configurations for accurate CNC simulation and verification.</p>
|
||||
</div>
|
||||
<div class="markdown level0 conceptual"></div>
|
||||
<div class="markdown level0 remarks"></div>
|
||||
|
||||
<h3 id="classes">
|
||||
Classes
|
||||
</h3>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.MachineTool.DemoBuildMachineTool.html">DemoBuildMachineTool</a></dt>
|
||||
<dd><p>Provides access to the PMC-B1 machine tool model.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.MachineTool.DemoBuildMachineToolWithoutGeometrys.html">DemoBuildMachineToolWithoutGeometrys</a></dt>
|
||||
<dd><p>Demo Build Machine Tool without gemetries setting.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,408 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoBuildMachiningProject | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoBuildMachiningProject | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates how to create and configure a programmatically. This sample shows how to set up , , , , , and save the project configuration to a file.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Machining.DemoBuildMachiningProject">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Machining_DemoBuildMachiningProject" data-uid="Sample.Machining.DemoBuildMachiningProject" class="text-break">
|
||||
Class DemoBuildMachiningProject
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Machining.html">Machining</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates how to create and configure a <a class="xref" href="../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a> programmatically.
|
||||
This sample shows how to set up <a class="xref" href="../../api/Hi.Milling.Cutters.MillingCutter.html">MillingCutter</a>, <a class="xref" href="../../api/Hi.NcMech.Holders.CylindroidHolder.html">CylindroidHolder</a>,
|
||||
<a class="xref" href="../../api/Hi.MillingMech.MillingTools.StickMachiningTool.html">StickMachiningTool</a>, <a class="xref" href="../../api/Hi.NcMech.Fixtures.Fixture.html">Fixture</a>, <a class="xref" href="../../api/Hi.NcMech.Workpieces.Workpiece.html">Workpiece</a>,
|
||||
and save the project configuration to a file.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class DemoBuildMachiningProject</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoBuildMachiningProject</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Machining_DemoBuildMachiningProject_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using System;
|
||||
using System.Collections.Generic;
|
||||
using Hi.Milling.Apts;
|
||||
using Hi.Common.XmlUtils;
|
||||
using Hi.Geom;
|
||||
using Hi.Machining;
|
||||
using Hi.Mech.Topo;
|
||||
using Hi.Milling.Cutters;
|
||||
using Hi.Milling.FluteContours;
|
||||
using Hi.MillingForces.Fittings;
|
||||
using Hi.MillingMech.MillingTools;
|
||||
using Hi.NcMech.Fixtures;
|
||||
using Hi.NcMech.Holders;
|
||||
using Hi.NcMech.Workpieces;
|
||||
using Hi.NcMech.Xyzabc;
|
||||
using Hi.NcOpt;
|
||||
using Hi.Physics;
|
||||
using Hi.MongoUtils;
|
||||
using Hi.Licenses;
|
||||
using Hi.MachiningProcs;
|
||||
using System.IO;
|
||||
|
||||
namespace Sample.Machining
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates how to create and configure a <see cref="MachiningProject"/> programmatically.
|
||||
/// This sample shows how to set up <see cref="MillingCutter"/>, <see cref="CylindroidHolder"/>,
|
||||
/// <see cref="StickMachiningTool"/>, <see cref="Fixture"/>, <see cref="Workpiece"/>,
|
||||
/// and save the project configuration to a file.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample/Machining/DemoBuildMachiningProject.cs)]
|
||||
/// </remarks>
|
||||
public static class DemoBuildMachiningProject
|
||||
{
|
||||
#region CreateMillingCutter1
|
||||
private static MillingCutter CreateMillingCutter1()
|
||||
{
|
||||
MillingCutter millingCutter = new MillingCutter()
|
||||
{
|
||||
UpperBeamGeom = new TransformationGeom(),
|
||||
MillingCutterOptLimit = new MillingCutterOptLimit()
|
||||
};
|
||||
// since the following properties of MillingCutter has self-invoke,
|
||||
// they have to be seperated from the initializer syntex.
|
||||
|
||||
//build ShaperProfile property
|
||||
double diameter_mm = 12;
|
||||
double roundRadius_mm = 0.5;
|
||||
millingCutter.ShaperProfile = new AptProfile(millingCutter,
|
||||
new ColumnApt()
|
||||
{
|
||||
Diameter_mm = diameter_mm,
|
||||
Rc_mm = roundRadius_mm,
|
||||
FluteHeight_mm = 40
|
||||
});
|
||||
|
||||
//build FluteContourTray property
|
||||
double helixAngle_deg = 50;
|
||||
double radialRakeAngle_deg = 15;
|
||||
double bottomOuterRadius_mm = diameter_mm / 2 - roundRadius_mm;
|
||||
millingCutter.FluteContourTray = new UniformContourTray()
|
||||
{
|
||||
TrackNum = 3,
|
||||
BaselineOneContour = new FluteContour()
|
||||
{
|
||||
BaseSideContour = new ConstHelixSideContour(millingCutter)
|
||||
{
|
||||
Helix_deg = helixAngle_deg,
|
||||
RadialRakeAngle_deg = radialRakeAngle_deg
|
||||
},
|
||||
BaseBottomContour = new SlideBottomContour()
|
||||
{
|
||||
//In most case, helix angle from side equal to rake angle from bottom.
|
||||
AxialRakeAngle_deg = MathUtil.ToDeg(helixAngle_deg),
|
||||
DiskAngle_deg = 1.5,
|
||||
//In most case, rake angle from side equal to eccentric angle from bottom.
|
||||
EccentricAngle_deg = radialRakeAngle_deg,
|
||||
CutterLengthOnBottomProjection_mm = bottomOuterRadius_mm * 0.9,
|
||||
OuterRadius_mm = bottomOuterRadius_mm
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
millingCutter.InnerBeamProfile
|
||||
= new FluteDependentRatioProfile(millingCutter);
|
||||
|
||||
return millingCutter;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region CreateMillingCutter2
|
||||
private static MillingCutter CreateMillingCutter2()
|
||||
{
|
||||
MillingCutter millingCutter = new MillingCutter()
|
||||
{
|
||||
UpperBeamGeom = new TransformationGeom(),
|
||||
MillingCutterOptLimit = new MillingCutterOptLimit()
|
||||
};
|
||||
|
||||
//build ShaperProfile property
|
||||
double diameter_mm = 12;
|
||||
millingCutter.ShaperProfile = new AptProfile(millingCutter,
|
||||
new ColumnApt()
|
||||
{
|
||||
Diameter_mm = diameter_mm,
|
||||
FluteHeight_mm = 40
|
||||
});
|
||||
|
||||
//build FluteContourTray property
|
||||
double helixAngle_deg = 50;
|
||||
double radialRakeAngle_deg = 15;
|
||||
millingCutter.FluteContourTray = new UniformContourTray()
|
||||
{
|
||||
TrackNum = 3,
|
||||
BaselineOneContour = new FluteContour()
|
||||
{
|
||||
BaseSideContour = new ConstHelixSideContour(millingCutter)
|
||||
{
|
||||
Helix_deg = helixAngle_deg,
|
||||
RadialRakeAngle_deg = radialRakeAngle_deg
|
||||
},
|
||||
//since no bottom cut, set bottom contour to null.
|
||||
BaseBottomContour = null
|
||||
}
|
||||
};
|
||||
|
||||
millingCutter.InnerBeamProfile
|
||||
= new FluteDependentRatioProfile(millingCutter);
|
||||
|
||||
return millingCutter;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TestMethod
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Console.WriteLine($"License Login.");
|
||||
License.LogInAll();
|
||||
|
||||
Console.WriteLine($"Start Database.");
|
||||
MongoServer.Default = MongoServer.Run(new MongoRunnerOptions()
|
||||
{
|
||||
MongoPort = 28100
|
||||
});
|
||||
|
||||
var projectPath = "C:/HiNC-Projects/NewProject/Main.hincproj";
|
||||
var projectDirectory = Path.GetDirectoryName(projectPath);
|
||||
Console.WriteLine($"Directory of the New Project: {projectDirectory}");
|
||||
MachiningProject machiningProject = new MachiningProject(projectDirectory);
|
||||
|
||||
#region ConfigureHolder
|
||||
CylindroidHolder cylindroidHolder = new CylindroidHolder()
|
||||
{
|
||||
Note = "BT40",
|
||||
Cylindroid = new Cylindroid()
|
||||
{
|
||||
PairZrs = new List<PairZr>([ new PairZr(0,12),new PairZr(20,12),
|
||||
new PairZr(20,16),new PairZr(30,16)]),
|
||||
LongitudeNum = 30
|
||||
}
|
||||
};
|
||||
#endregion
|
||||
|
||||
#region ConfigureMachiningToolHouse
|
||||
machiningProject.MachiningToolHouse = new MachiningToolHouse()
|
||||
{
|
||||
[1] = new StickMachiningTool()
|
||||
{
|
||||
Note = "T1",
|
||||
PreservedDistanceBetweenFluteAndSpindleNose_mm = 8,
|
||||
Holder = cylindroidHolder,
|
||||
Cutter = CreateMillingCutter1()
|
||||
},
|
||||
[2] = new StickMachiningTool()
|
||||
{
|
||||
Note = "T2",
|
||||
PreservedDistanceBetweenFluteAndSpindleNose_mm = 8,
|
||||
Holder = cylindroidHolder,
|
||||
Cutter = CreateMillingCutter2()
|
||||
},
|
||||
[3] = new StickMachiningTool()
|
||||
{
|
||||
Note = "T3",
|
||||
PreservedDistanceBetweenFluteAndSpindleNose_mm = 8,
|
||||
Holder = cylindroidHolder,
|
||||
Cutter = CreateMillingCutter1()
|
||||
},
|
||||
};
|
||||
#endregion
|
||||
|
||||
#region ConfigureFixture
|
||||
machiningProject.MachiningEquipment.Fixture = new Fixture()
|
||||
{
|
||||
Geom = new Box3d(new Vec3d(-40, -40, 0), new Vec3d(40, 40, 10)),
|
||||
TableToWorkpieceTransformer = new StaticTranslation(new Vec3d(0, 0, 10)),
|
||||
};
|
||||
#endregion
|
||||
|
||||
#region ConfigureWorkpiece
|
||||
machiningProject.MachiningEquipment.Workpiece = new Workpiece()
|
||||
{
|
||||
InitResolution = 0.25,
|
||||
InitGeom = new Box3d(0, 0, -50, 70, 50, 0),
|
||||
IdealGeom = null,
|
||||
WorkpieceGeomToFixtureBuckleTransformer = new StaticTranslation(new Vec3d(0, 0, 0)),
|
||||
MillingPara = XFactory.GenByFile<ICuttingPara>(
|
||||
"Resource/CuttingParameter", "Al6061T6.mp", GenMode.Default),
|
||||
WorkpieceMaterial = XFactory.GenByFile<WorkpieceMaterial>(
|
||||
"Resource/WorkpieceMaterial", "Al6061T6.WorkpieceMaterial", GenMode.Default),
|
||||
};
|
||||
#endregion
|
||||
|
||||
#region ConfigureMachineChain
|
||||
machiningProject.MachiningEquipment.SolidMachiningChain
|
||||
= XFactory.GenByFile<CodeXyzabcMachineTool>(
|
||||
"Resource/MachineTool", "PMC-B1/PMC-B1.mt", GenMode.Default);
|
||||
#endregion
|
||||
|
||||
machiningProject.MakeXmlSourceFile(projectPath);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,260 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoRenderingMachiningProcessAndStripPosSelection | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoRenderingMachiningProcessAndStripPosSelection | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates integration of machining process visualization with interactive strip position selection. Shows how to load a machining project, configure rendering options, and implement user interaction. Provides a complete example of a 3D visualization application with HiAPI and WPF.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Machining_DemoRenderingMachiningProcessAndStripPosSelection" data-uid="Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection" class="text-break">
|
||||
Class DemoRenderingMachiningProcessAndStripPosSelection
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Machining.html">Machining</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.Wpf.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates integration of machining process visualization with interactive strip position selection.
|
||||
Shows how to load a machining project, configure rendering options, and implement user interaction.
|
||||
Provides a complete example of a 3D visualization application with HiAPI and WPF.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class DemoRenderingMachiningProcessAndStripPosSelection</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoRenderingMachiningProcessAndStripPosSelection</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Machining_DemoRenderingMachiningProcessAndStripPosSelection_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using Hi.Wpf.Disp;
|
||||
using System;
|
||||
using Hi.MongoUtils;
|
||||
using Hi.Licenses;
|
||||
using Hi.MachiningProcs;
|
||||
using Hi.Common.FileLines;
|
||||
using Hi.MillingSteps;
|
||||
using System.Windows;
|
||||
using Hi.Disp;
|
||||
|
||||
namespace Sample.Machining
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates integration of machining process visualization with interactive strip position selection.
|
||||
/// Shows how to load a machining project, configure rendering options, and implement user interaction.
|
||||
/// Provides a complete example of a 3D visualization application with HiAPI and WPF.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Machining/DemoRenderingMachiningProcessAndStripPosSelection.cs)]
|
||||
/// </remarks>
|
||||
public static class DemoRenderingMachiningProcessAndStripPosSelection
|
||||
{
|
||||
[STAThread]
|
||||
static void Main(string[] args)
|
||||
{
|
||||
#region Initialize Environment
|
||||
License.LogInAll();
|
||||
DispEngine.Init();
|
||||
MongoServer.Default = MongoServer.Run(new MongoRunnerOptions()
|
||||
{
|
||||
MongoPort = 28100
|
||||
});
|
||||
#endregion
|
||||
|
||||
#region Load Machining Project
|
||||
var projectPath = "C:/HiNC-Projects/DemoStandardPath/Main.hincproj";
|
||||
Console.WriteLine($"Load Project: {projectPath}");
|
||||
MachiningProject machiningProject = MachiningProject.LoadFile(projectPath);
|
||||
|
||||
machiningProject.ShellApi.MillingStepSelected += (MachiningStep step) =>
|
||||
{
|
||||
var sourceCommand = step.SourceCommand;
|
||||
Console.WriteLine($"Step Selected: MRR = {step.Mrr_mm3ds} At \"{sourceCommand?.FilePath}\" (Line {sourceCommand?.GetLineNo()}) \"{sourceCommand?.Line}\"");
|
||||
};
|
||||
machiningProject.PacePlayer.Start();
|
||||
#endregion
|
||||
|
||||
#region Configure Rendering Options
|
||||
var projectDisplayee = new MachiningProjectDisplayee(machiningProject);
|
||||
projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.Mech] = true;
|
||||
projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.Fixture] = true;
|
||||
projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.WorkpieceGeom] = false;
|
||||
projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.ClStrip] = true;
|
||||
projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.DimensionBar] = true;
|
||||
#endregion
|
||||
|
||||
#region Create and Run WPF Application
|
||||
Application app = new Application
|
||||
{
|
||||
ShutdownMode = ShutdownMode.OnMainWindowClose
|
||||
};
|
||||
app.Exit += (o, e) =>
|
||||
{
|
||||
machiningProject.Dispose();
|
||||
MongoServer.Default.Dispose();
|
||||
DispEngine.FinishDisp();
|
||||
License.LogOutAll();
|
||||
Console.WriteLine($"App exit.");
|
||||
};
|
||||
app.Run(new RenderingWindow()
|
||||
{
|
||||
Title = "Demo",
|
||||
Displayee = projectDisplayee
|
||||
});
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,277 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoUseMachiningProject | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoUseMachiningProject | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates how to load and use an existing instance. This sample shows how to set up event handlers for messages and machining step objects, execute NC files, and properly manage project resources using .">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Machining.DemoUseMachiningProject">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Machining_DemoUseMachiningProject" data-uid="Sample.Machining.DemoUseMachiningProject" class="text-break">
|
||||
Class DemoUseMachiningProject
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Machining.html">Machining</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates how to load and use an existing <a class="xref" href="../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a> instance.
|
||||
This sample shows how to set up event handlers for messages and machining step objects,
|
||||
execute NC files, and properly manage project resources using
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable.dispose">Dispose()</a>.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class DemoUseMachiningProject</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoUseMachiningProject</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Machining_DemoUseMachiningProject_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using System;
|
||||
using Hi.Licenses;
|
||||
using Hi.Common.Messages;
|
||||
using Hi.MachiningProcs;
|
||||
using Hi.Common.FileLines;
|
||||
using Hi.MongoUtils;
|
||||
|
||||
namespace Sample.Machining
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates how to load and use an existing <see cref="MachiningProject"/> instance.
|
||||
/// This sample shows how to set up event handlers for messages and machining step objects,
|
||||
/// execute NC files, and properly manage project resources using
|
||||
/// <see cref="IDisposable.Dispose"/>.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample/Machining/DemoUseMachiningProject.cs)]
|
||||
/// </remarks>
|
||||
public static class DemoUseMachiningProject
|
||||
{
|
||||
static void Main()
|
||||
{
|
||||
#region LicenseAndDatabaseSetup
|
||||
Console.WriteLine($"License Login.");
|
||||
License.LogInAll();
|
||||
|
||||
Console.WriteLine($"Start Database.");
|
||||
MongoServer.Default = MongoServer.Run(new MongoRunnerOptions()
|
||||
{
|
||||
MongoPort = 28100
|
||||
});
|
||||
#endregion
|
||||
|
||||
#region ProjectLoading
|
||||
var projectPath = "C:/HiNC-Projects/DemoStandardPath/Main.hincproj";
|
||||
Console.WriteLine($"Load Project: {projectPath}");
|
||||
MachiningProject machiningProject = MachiningProject.LoadFile(projectPath);
|
||||
#endregion
|
||||
|
||||
#region EventHandling
|
||||
Console.WriteLine($"Set message event.");
|
||||
//show message if something abnormal.
|
||||
machiningProject.SessionMessageHost.CollectionItemAdded += pack =>
|
||||
{
|
||||
if (pack.Tags.Contains(MessageFlag.Warning.ToString()) ||
|
||||
pack.Tags.Contains(MessageFlag.Error.ToString()) ||
|
||||
pack.Tags.Contains(MessageFlag.SysErr.ToString()))
|
||||
{
|
||||
var sourceCommand = pack.SourceCommand;
|
||||
Console.WriteLine($"{pack.Message} At \"{sourceCommand?.FilePath}\" (Line {sourceCommand?.GetLineNo()}) \"{sourceCommand?.Line}\"");
|
||||
}
|
||||
};
|
||||
Console.WriteLine($"Set machining step event.");
|
||||
//show MRR.
|
||||
machiningProject.ShellApi.MachiningStepBuilt += (preStep, curStep) =>
|
||||
{
|
||||
var sourceCommand = curStep.SourceCommand;
|
||||
if (curStep.Mrr_mm3ds > 500) //show only the step that contains large MRR.
|
||||
Console.WriteLine($"MRR = {curStep.Mrr_mm3ds} At \"{sourceCommand?.FilePath}\" (Line {sourceCommand?.GetLineNo()}) \"{sourceCommand?.Line}\"");
|
||||
};
|
||||
#endregion
|
||||
|
||||
#region MachiningExecution
|
||||
Console.WriteLine($"Reset runtime status.");
|
||||
machiningProject.ResetRuntime();
|
||||
|
||||
Console.WriteLine($"Session begin.");
|
||||
machiningProject.BeginSession();
|
||||
machiningProject.ShellApi.MachiningResolution_mm = 1;
|
||||
machiningProject.ShellApi.EnableCollisionDetection = true;
|
||||
machiningProject.ShellApi.EnablePauseOnCollision = false;
|
||||
machiningProject.ShellApi.EnableMillingForceEvaluation = false;
|
||||
//the path from Shell-API is relative by project directory.
|
||||
machiningProject.ShellApi.PlayNcFile("NC/side.ptp");
|
||||
machiningProject.ShellApi.PlayNcFile("NC/circle.ptp");
|
||||
machiningProject.EndSession();
|
||||
Console.WriteLine($"Session end.");
|
||||
#endregion
|
||||
|
||||
#region CleanupResources
|
||||
Console.WriteLine($"Close Project: {projectPath}");
|
||||
machiningProject.Dispose();
|
||||
|
||||
Console.WriteLine($"Close Database.");
|
||||
MongoServer.Default.Dispose();
|
||||
|
||||
Console.WriteLine($"License Logout.");
|
||||
License.LogOutAll();
|
||||
|
||||
Console.WriteLine($"Program end.");
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,146 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Namespace Sample.Machining | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Namespace Sample.Machining | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="The Sample.Machining namespace contains comprehensive examples for creating and managing machining verification and optimization projects using the and APIs. This namespace demonstrates the complete workflow of building verification projects from scratch, including defining cutting tool geometries with , configuring tool holders with , setting up tool libraries, defining fixture and workpiece geometries, configuring machine kinematics, and setting material properties. These examples are particularly valuable for developers who need to programmatically create complete verification and optimization projects without relying on the HiNC GUI, providing reference code for implementing advanced CNC verification and simulation functionality.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Machining">
|
||||
|
||||
<h1 id="Sample_Machining" data-uid="Sample.Machining" class="text-break">Namespace Sample.Machining</h1>
|
||||
<div class="markdown level0 summary"><p>The Sample.Machining namespace contains comprehensive examples for creating and managing machining verification and optimization projects using the <a class="xref" href="../../api/Hi.Machining.html">Hi.Machining</a> and <a class="xref" href="../../api/Hi.MachiningProcs.html">Hi.MachiningProcs</a> APIs. This namespace demonstrates the complete workflow of building verification projects from scratch, including defining cutting tool geometries with <a class="xref" href="../../api/Hi.Milling.Cutters.html">Hi.Milling.Cutters</a>, configuring tool holders with <a class="xref" href="../../api/Hi.NcMech.Holders.html">Hi.NcMech.Holders</a>, setting up tool libraries, defining fixture and workpiece geometries, configuring machine kinematics, and setting material properties. These examples are particularly valuable for developers who need to programmatically create complete verification and optimization projects without relying on the HiNC GUI, providing reference code for implementing advanced CNC verification and simulation functionality.</p>
|
||||
</div>
|
||||
<div class="markdown level0 conceptual"></div>
|
||||
<div class="markdown level0 remarks"></div>
|
||||
|
||||
<h3 id="classes">
|
||||
Classes
|
||||
</h3>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Machining.DemoBuildMachiningProject.html">DemoBuildMachiningProject</a></dt>
|
||||
<dd><p>Demonstrates how to create and configure a <a class="xref" href="../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a> programmatically.
|
||||
This sample shows how to set up <a class="xref" href="../../api/Hi.Milling.Cutters.MillingCutter.html">MillingCutter</a>, <a class="xref" href="../../api/Hi.NcMech.Holders.CylindroidHolder.html">CylindroidHolder</a>,
|
||||
<a class="xref" href="../../api/Hi.MillingMech.MillingTools.StickMachiningTool.html">StickMachiningTool</a>, <a class="xref" href="../../api/Hi.NcMech.Fixtures.Fixture.html">Fixture</a>, <a class="xref" href="../../api/Hi.NcMech.Workpieces.Workpiece.html">Workpiece</a>,
|
||||
and save the project configuration to a file.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection.html">DemoRenderingMachiningProcessAndStripPosSelection</a></dt>
|
||||
<dd><p>Demonstrates integration of machining process visualization with interactive strip position selection.
|
||||
Shows how to load a machining project, configure rendering options, and implement user interaction.
|
||||
Provides a complete example of a 3D visualization application with HiAPI and WPF.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Machining.DemoUseMachiningProject.html">DemoUseMachiningProject</a></dt>
|
||||
<dd><p>Demonstrates how to load and use an existing <a class="xref" href="../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a> instance.
|
||||
This sample shows how to set up event handlers for messages and machining step objects,
|
||||
execute NC files, and properly manage project resources using
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable.dispose">Dispose()</a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,262 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class DemoTopo1 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class DemoTopo1 | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Demonstrates the creation and visualization of mechanical assemblies with kinematic linkages. Shows how to build coordinate systems, establish kinematic relationships, and capture visual output.">
|
||||
<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="ManagedReference">
|
||||
<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="Sample.Mech.DemoTopo1">
|
||||
|
||||
|
||||
|
||||
<h1 id="Sample_Mech_DemoTopo1" data-uid="Sample.Mech.DemoTopo1" class="text-break">
|
||||
Class DemoTopo1
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Sample.html">Sample</a>.<a class="xref" href="Sample.Mech.html">Mech</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>Hi.Sample.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Demonstrates the creation and visualization of mechanical assemblies with kinematic linkages.
|
||||
Shows how to build coordinate systems, establish kinematic relationships, and capture visual output.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class DemoTopo1</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">DemoTopo1</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="Sample_Mech_DemoTopo1_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><h3 id="source-code">Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode">using System;
|
||||
using System.Collections.Generic;
|
||||
using Hi.Disp;
|
||||
using Hi.Geom;
|
||||
using Hi.Mech.Topo;
|
||||
|
||||
namespace Sample.Mech
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates the creation and visualization of mechanical assemblies with kinematic linkages.
|
||||
/// Shows how to build coordinate systems, establish kinematic relationships, and capture visual output.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// ### Source Code
|
||||
/// [!code-csharp[SampleCode](~/../Hi.Sample/Mech/DemoTopo1.cs)]
|
||||
/// </remarks>
|
||||
public static class DemoTopo1
|
||||
{
|
||||
/// <summary>
|
||||
/// Creates a demonstration assembly with kinematic linkages.
|
||||
/// Builds a mechanical assembly with multiple anchors and branches, including both static and dynamic transformations.
|
||||
/// </summary>
|
||||
/// <returns>A tuple containing the assembly and root anchor</returns>
|
||||
static (Asmb asmb,Anchor root) GetDemoAsmb()
|
||||
{
|
||||
#region DocSite.DemoTopo1
|
||||
//build coordinate systems and the assembly.
|
||||
Asmb asmb = new Asmb { Name = "Mech" };
|
||||
Anchor O = new Anchor(asmb, "O");
|
||||
Anchor O1 = new Anchor(asmb, "O1");
|
||||
Anchor X = new Anchor(asmb, "X");
|
||||
Anchor Z = new Anchor(asmb, "Z");
|
||||
Anchor B = new Anchor(asmb, "B");
|
||||
|
||||
//build kinematic link
|
||||
Branch.Attach(O, O1, new StaticTranslation(new Vec3d(0, 0, 80)));
|
||||
Branch brnX = Branch.Attach(O1, X, new DynamicTranslation(new Vec3d(1, 0, 0)));
|
||||
Branch brnZ = Branch.Attach(X, Z, new DynamicTranslation(new Vec3d(0, 0, 1)));
|
||||
Branch brnB = Branch.Attach(Z, B, new DynamicRotation(new Vec3d(0, 1, 0), 0, new Vec3d(-100, 0, 0)));
|
||||
|
||||
//drive the dynamic transformation by single value for each branch.
|
||||
brnX.Step = 200;
|
||||
brnZ.Step = 100;
|
||||
brnB.Step = MathUtil.ToRad(-60);
|
||||
|
||||
//Get and show the transform matrices relative to O.
|
||||
Dictionary<Anchor, Mat4d> matMap = asmb.GetMat4dMap(O);
|
||||
Console.WriteLine("Transform Matrix relative to O:");
|
||||
foreach (KeyValuePair<Anchor, Mat4d> keyValue in matMap)
|
||||
Console.WriteLine($"{keyValue.Key.Name} : {keyValue.Value}");
|
||||
#endregion
|
||||
|
||||
return (asmb,O);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Captures the assembly visualization and saves it to a file.
|
||||
/// Initializes the display engine, sets up the assembly visualization with an isometric view, and saves a snapshot to a bitmap file.
|
||||
/// </summary>
|
||||
/// <param name="src">A tuple containing the assembly and root anchor for visualization</param>
|
||||
static void SnapshotToFile((Asmb asmb, Anchor root) src)
|
||||
{
|
||||
//all the drawing function has to call DispEngine.Init() before using.
|
||||
DispEngine.Init();
|
||||
DispEngine.EnableSuppressDefaultLogo = true;
|
||||
|
||||
using (DispEngine dispEngine = new DispEngine(
|
||||
src.asmb.GetAsmbDraw(src.root)))
|
||||
{
|
||||
dispEngine.SetViewToIsometricView();
|
||||
dispEngine.Snapshot("DemoTopo1.bmp", 680, 480);
|
||||
}
|
||||
Console.WriteLine("Snapshot file output.");
|
||||
|
||||
DispEngine.FinishDisp();
|
||||
}
|
||||
static void Main()
|
||||
{
|
||||
SnapshotToFile(GetDemoAsmb());
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,128 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Namespace Sample.Mech | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Namespace Sample.Mech | 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="ManagedReference">
|
||||
<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="Sample.Mech">
|
||||
|
||||
<h1 id="Sample_Mech" data-uid="Sample.Mech" class="text-break">Namespace Sample.Mech</h1>
|
||||
<div class="markdown level0 summary"></div>
|
||||
<div class="markdown level0 conceptual"></div>
|
||||
<div class="markdown level0 remarks"></div>
|
||||
|
||||
<h3 id="classes">
|
||||
Classes
|
||||
</h3>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.Mech.DemoTopo1.html">DemoTopo1</a></dt>
|
||||
<dd><p>Demonstrates the creation and visualization of mechanical assemblies with kinematic linkages.
|
||||
Shows how to build coordinate systems, establish kinematic relationships, and capture visual output.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,128 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Namespace Sample | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Namespace Sample | 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="ManagedReference">
|
||||
<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="Sample">
|
||||
|
||||
<h1 id="Sample" data-uid="Sample" class="text-break">Namespace Sample</h1>
|
||||
<div class="markdown level0 summary"></div>
|
||||
<div class="markdown level0 conceptual"></div>
|
||||
<div class="markdown level0 remarks"></div>
|
||||
|
||||
<h3 id="classes">
|
||||
Classes
|
||||
</h3>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Sample.HelloHiAPI.html">HelloHiAPI</a></dt>
|
||||
<dd><p>A sample class demonstrating initialization and usage of the HiAPI framework.
|
||||
Shows the basic setup of display engine, MongoDB server, licensing, and other core functionality.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</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>
|
||||
@@ -0,0 +1,115 @@
|
||||
|
||||
<div id="sidetoggle">
|
||||
<div>
|
||||
<div class="sidefilter">
|
||||
<form class="toc-filter">
|
||||
<span class="glyphicon glyphicon-filter filter-icon"></span>
|
||||
<span class="glyphicon glyphicon-remove clear-icon" id="toc_filter_clear"></span>
|
||||
<input type="text" id="toc_filter_input" placeholder="Filter by title" onkeypress="if(event.keyCode==13) {return false;}">
|
||||
</form>
|
||||
</div>
|
||||
<div class="sidetoc">
|
||||
<div class="toc" id="toc">
|
||||
|
||||
<ul class="nav level1">
|
||||
<li>
|
||||
<span class="expand-stub"></span>
|
||||
<a href="Sample.html" name="" title="Sample">Sample</a>
|
||||
|
||||
<ul class="nav level2">
|
||||
<li>
|
||||
<a href="Sample.HelloHiAPI.html" name="" title="HelloHiAPI">HelloHiAPI</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<span class="expand-stub"></span>
|
||||
<a href="Sample.Disp.html" name="" title="Sample.Disp">Sample.Disp</a>
|
||||
|
||||
<ul class="nav level2">
|
||||
<li>
|
||||
<a href="Sample.Disp.DemoCylindroid.html" name="" title="DemoCylindroid">DemoCylindroid</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Sample.Disp.DemoDiscreteRgb.html" name="" title="DemoDiscreteRgb">DemoDiscreteRgb</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Sample.Disp.DemoDrawing.html" name="" title="DemoDrawing">DemoDrawing</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Sample.Disp.DemoPick1.html" name="" title="DemoPick1">DemoPick1</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Sample.Disp.DemoPick2.html" name="" title="DemoPick2">DemoPick2</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Sample.Disp.DemoPickable.html" name="" title="DemoPickable">DemoPickable</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Sample.Disp.DemoSatellite.html" name="" title="DemoSatellite">DemoSatellite</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Sample.Disp.DemoStl.html" name="" title="DemoStl">DemoStl</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Sample.Disp.DemoUtil.html" name="" title="DemoUtil">DemoUtil</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<span class="expand-stub"></span>
|
||||
<a href="Sample.Geom.html" name="" title="Sample.Geom">Sample.Geom</a>
|
||||
|
||||
<ul class="nav level2">
|
||||
<li>
|
||||
<a href="Sample.Geom.DemoBuildGeom.html" name="" title="DemoBuildGeom">DemoBuildGeom</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Sample.Geom.DemoIExpandToBox3d.html" name="" title="DemoIExpandToBox3d">DemoIExpandToBox3d</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<span class="expand-stub"></span>
|
||||
<a href="Sample.MachineTool.html" name="" title="Sample.MachineTool">Sample.MachineTool</a>
|
||||
|
||||
<ul class="nav level2">
|
||||
<li>
|
||||
<a href="Sample.MachineTool.DemoBuildMachineTool.html" name="" title="DemoBuildMachineTool">DemoBuildMachineTool</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Sample.MachineTool.DemoBuildMachineToolWithoutGeometrys.html" name="" title="DemoBuildMachineToolWithoutGeometrys">DemoBuildMachineToolWithoutGeometrys</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<span class="expand-stub"></span>
|
||||
<a href="Sample.Machining.html" name="" title="Sample.Machining">Sample.Machining</a>
|
||||
|
||||
<ul class="nav level2">
|
||||
<li>
|
||||
<a href="Sample.Machining.DemoBuildMachiningProject.html" name="" title="DemoBuildMachiningProject">DemoBuildMachiningProject</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection.html" name="" title="DemoRenderingMachiningProcessAndStripPosSelection">DemoRenderingMachiningProcessAndStripPosSelection</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Sample.Machining.DemoUseMachiningProject.html" name="" title="DemoUseMachiningProject">DemoUseMachiningProject</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<span class="expand-stub"></span>
|
||||
<a href="Sample.Mech.html" name="" title="Sample.Mech">Sample.Mech</a>
|
||||
|
||||
<ul class="nav level2">
|
||||
<li>
|
||||
<a href="Sample.Mech.DemoTopo1.html" name="" title="DemoTopo1">DemoTopo1</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
{"items":[{"name":"Sample","href":"Sample.html","topicHref":"Sample.html","topicUid":"Sample","type":"Namespace","items":[{"name":"HelloHiAPI","href":"Sample.HelloHiAPI.html","topicHref":"Sample.HelloHiAPI.html","topicUid":"Sample.HelloHiAPI","type":"Class"}]},{"name":"Sample.Disp","href":"Sample.Disp.html","topicHref":"Sample.Disp.html","topicUid":"Sample.Disp","type":"Namespace","items":[{"name":"DemoCylindroid","href":"Sample.Disp.DemoCylindroid.html","topicHref":"Sample.Disp.DemoCylindroid.html","topicUid":"Sample.Disp.DemoCylindroid","type":"Class"},{"name":"DemoDiscreteRgb","href":"Sample.Disp.DemoDiscreteRgb.html","topicHref":"Sample.Disp.DemoDiscreteRgb.html","topicUid":"Sample.Disp.DemoDiscreteRgb","type":"Class"},{"name":"DemoDrawing","href":"Sample.Disp.DemoDrawing.html","topicHref":"Sample.Disp.DemoDrawing.html","topicUid":"Sample.Disp.DemoDrawing","type":"Class"},{"name":"DemoPick1","href":"Sample.Disp.DemoPick1.html","topicHref":"Sample.Disp.DemoPick1.html","topicUid":"Sample.Disp.DemoPick1","type":"Class"},{"name":"DemoPick2","href":"Sample.Disp.DemoPick2.html","topicHref":"Sample.Disp.DemoPick2.html","topicUid":"Sample.Disp.DemoPick2","type":"Class"},{"name":"DemoPickable","href":"Sample.Disp.DemoPickable.html","topicHref":"Sample.Disp.DemoPickable.html","topicUid":"Sample.Disp.DemoPickable","type":"Class"},{"name":"DemoSatellite","href":"Sample.Disp.DemoSatellite.html","topicHref":"Sample.Disp.DemoSatellite.html","topicUid":"Sample.Disp.DemoSatellite","type":"Class"},{"name":"DemoStl","href":"Sample.Disp.DemoStl.html","topicHref":"Sample.Disp.DemoStl.html","topicUid":"Sample.Disp.DemoStl","type":"Class"},{"name":"DemoUtil","href":"Sample.Disp.DemoUtil.html","topicHref":"Sample.Disp.DemoUtil.html","topicUid":"Sample.Disp.DemoUtil","type":"Class"}]},{"name":"Sample.Geom","href":"Sample.Geom.html","topicHref":"Sample.Geom.html","topicUid":"Sample.Geom","type":"Namespace","items":[{"name":"DemoBuildGeom","href":"Sample.Geom.DemoBuildGeom.html","topicHref":"Sample.Geom.DemoBuildGeom.html","topicUid":"Sample.Geom.DemoBuildGeom","type":"Class"},{"name":"DemoIExpandToBox3d","href":"Sample.Geom.DemoIExpandToBox3d.html","topicHref":"Sample.Geom.DemoIExpandToBox3d.html","topicUid":"Sample.Geom.DemoIExpandToBox3d","type":"Class"}]},{"name":"Sample.MachineTool","href":"Sample.MachineTool.html","topicHref":"Sample.MachineTool.html","topicUid":"Sample.MachineTool","type":"Namespace","items":[{"name":"DemoBuildMachineTool","href":"Sample.MachineTool.DemoBuildMachineTool.html","topicHref":"Sample.MachineTool.DemoBuildMachineTool.html","topicUid":"Sample.MachineTool.DemoBuildMachineTool","type":"Class"},{"name":"DemoBuildMachineToolWithoutGeometrys","href":"Sample.MachineTool.DemoBuildMachineToolWithoutGeometrys.html","topicHref":"Sample.MachineTool.DemoBuildMachineToolWithoutGeometrys.html","topicUid":"Sample.MachineTool.DemoBuildMachineToolWithoutGeometrys","type":"Class"}]},{"name":"Sample.Machining","href":"Sample.Machining.html","topicHref":"Sample.Machining.html","topicUid":"Sample.Machining","type":"Namespace","items":[{"name":"DemoBuildMachiningProject","href":"Sample.Machining.DemoBuildMachiningProject.html","topicHref":"Sample.Machining.DemoBuildMachiningProject.html","topicUid":"Sample.Machining.DemoBuildMachiningProject","type":"Class"},{"name":"DemoRenderingMachiningProcessAndStripPosSelection","href":"Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection.html","topicHref":"Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection.html","topicUid":"Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection","type":"Class"},{"name":"DemoUseMachiningProject","href":"Sample.Machining.DemoUseMachiningProject.html","topicHref":"Sample.Machining.DemoUseMachiningProject.html","topicUid":"Sample.Machining.DemoUseMachiningProject","type":"Class"}]},{"name":"Sample.Mech","href":"Sample.Mech.html","topicHref":"Sample.Mech.html","topicUid":"Sample.Mech","type":"Namespace","items":[{"name":"DemoTopo1","href":"Sample.Mech.DemoTopo1.html","topicHref":"Sample.Mech.DemoTopo1.html","topicUid":"Sample.Mech.DemoTopo1","type":"Class"}]}],"memberLayout":"SamePage"}
|
||||
@@ -0,0 +1,117 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>HiNC Software User Guide | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="HiNC Software User Guide | 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-software-user-guide">HiNC Software User Guide</h1>
|
||||
|
||||
<p>Welcome to the HiNC Software User Guide. This guide provides comprehensive information for end users of HiNC software.</p>
|
||||
<p><em>English version is coming soon.</em></p>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
<div id="sidetoggle">
|
||||
<div>
|
||||
<div class="sidefilter">
|
||||
<form class="toc-filter">
|
||||
<span class="glyphicon glyphicon-filter filter-icon"></span>
|
||||
<span class="glyphicon glyphicon-remove clear-icon" id="toc_filter_clear"></span>
|
||||
<input type="text" id="toc_filter_input" placeholder="Filter by title" onkeypress="if(event.keyCode==13) {return false;}">
|
||||
</form>
|
||||
</div>
|
||||
<div class="sidetoc">
|
||||
<div class="toc" id="toc">
|
||||
|
||||
<ul class="nav level1">
|
||||
<li>
|
||||
<a>Coming Soon</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
{"items":[{"name":"Coming Soon"}]}
|
||||
@@ -0,0 +1,121 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>HiNC Software User Guide | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="HiNC Software User Guide | 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-software-user-guide">HiNC Software User Guide</h1>
|
||||
|
||||
<p>Welcome to the HiNC Software User Guide. This guide provides comprehensive information for end users of the HiNC software.</p>
|
||||
<p>Please select your preferred language:</p>
|
||||
<ul>
|
||||
<li><a href="en/index.html">English</a></li>
|
||||
<li><a href="zh-Hant/index.html">繁體中文</a></li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,25 @@
|
||||
|
||||
<div id="sidetoggle">
|
||||
<div>
|
||||
<div class="sidefilter">
|
||||
<form class="toc-filter">
|
||||
<span class="glyphicon glyphicon-filter filter-icon"></span>
|
||||
<span class="glyphicon glyphicon-remove clear-icon" id="toc_filter_clear"></span>
|
||||
<input type="text" id="toc_filter_input" placeholder="Filter by title" onkeypress="if(event.keyCode==13) {return false;}">
|
||||
</form>
|
||||
</div>
|
||||
<div class="sidetoc">
|
||||
<div class="toc" id="toc">
|
||||
|
||||
<ul class="nav level1">
|
||||
<li>
|
||||
<a href="en/index.html" name="en/toc.html" title="English">English</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="zh-Hant/index.html" name="zh-Hant/toc.html" title="繁體中文">繁體中文</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
{"items":[{"name":"English","href":"en/index.html","tocHref":"en/toc.html","topicHref":"en/index.html","homepage":"en/index.html"},{"name":"繁體中文","href":"zh-Hant/index.html","tocHref":"zh-Hant/toc.html","topicHref":"zh-Hant/index.html","homepage":"zh-Hant/index.html"}]}
|
||||
@@ -0,0 +1,140 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>評估製程可加工性 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="評估製程可加工性 | 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="評估製程可加工性">評估製程可加工性</h1>
|
||||
|
||||
<p><strong>可加工性時序圖</strong>可以評估製程斷刀。</p>
|
||||
<p>斷刀會發生於<strong>降伏應力比</strong>(Yielding Stree Ratio)、<strong>主軸最大扭矩比</strong>(Max Spindle Torque Ratio)、<strong>主軸最大功率比</strong>(Max Spindle Power Ratio)其中任一項超過100%且持續時間大於一步仿真。
|
||||
如果超過甚多,概括地說是200%以上,則時間不用持續也會斷刀。</p>
|
||||
<blockquote>
|
||||
<p><strong>注意</strong>:預設仿真為每轉銑削模式,仿真一步為主軸一轉。</p>
|
||||
</blockquote>
|
||||
<p>小刀具斷刀通常是刀具承受力不夠,斷刀會基於<strong>降伏應力比</strong>。</p>
|
||||
<p>中小刀具斷刀通常是主軸性能不足,斷刀會基於<strong>主軸最大扭矩比</strong>、<strong>主軸最大功率比</strong>。
|
||||
當切削阻力超過主軸性能時,機床進給不變但是主軸轉速持續降低,使得每刃進給持續增大,所以切削力會飆高至斷刀或停機。</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>斷刀解決方案</strong></p>
|
||||
<p>更改加工路徑降低切寬深 或 以HiNC優化功能調整進給率,將<strong>降伏應力比</strong>、<strong>主軸最大扭矩比</strong>、<strong>主軸最大功率比</strong>降至100%以下。</p>
|
||||
</div>
|
||||
<h2 id="熱塑刃">熱塑刃</h2>
|
||||
<p>如果<strong>熱塑刃應力比</strong>(Thermal Yield Ratio)超過100%,則會發生刀刃熱塑變,加速磨耗。
|
||||
與降伏應力比、主軸最大扭矩比、主軸最大功率比不同,它是長期指標,超過100%也不會造成立即性影響。</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>熱塑刃解決方案</strong></p>
|
||||
<p>在解決斷刀問題的前提下,降低轉速,讓刀刃有充足時間散熱。</p>
|
||||
<p>注意冷卻液是否對準刀刃影響甚大。刀刃沒有對準刀具,相當於降低熱散係數。</p>
|
||||
</div>
|
||||
<p>刀具廠商通常會提供加工條件,而依照該加工條件模擬所得的熱塑刃應力比通常都超過100%,因為刀具材料的製程配方與HiNC依保守原則的訂定的預設值有差異。
|
||||
如果認為超過100%的熱塑刃應力比的加工條件才是合理的,可以調整刀具材料的熱傳性質,使得計算出的熱塑刃應力比貼近100%。</p>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,242 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>海德瀚(Heidenhain)控制器支援 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="海德瀚(Heidenhain)控制器支援 | 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="海德瀚heidenhain控制器支援">海德瀚(Heidenhain)控制器支援</h1>
|
||||
|
||||
<p>本章說明 HiNC 對海德瀚 TNC640、TNC530 控制器 NC 碼之支援。</p>
|
||||
<p>海德瀚控制器支援通用ISO語法。HiNC支援的通用ISO語法載於其他文件。</p>
|
||||
<p>文件中沒有寫到的,一般是不支援。不支援 R 半徑補正指令。</p>
|
||||
<h2 id="格式支援">格式支援</h2>
|
||||
<p>除L碼及FQ碼外,字母指令間須以空白分隔,否則無法解析。</p>
|
||||
<blockquote>
|
||||
<p>可解析:</p>
|
||||
<ul>
|
||||
<li><code>FMAX M03</code></li>
|
||||
<li><code>LX-26.3 Y+43.1 Z+100.3 A-90.0 C+13.123 FQ3</code></li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>無法解析:
|
||||
<code>FMAXM03</code></p>
|
||||
</blockquote>
|
||||
<p>支援 <code>L</code> 移動指令。</p>
|
||||
<blockquote>
|
||||
<p>可解析:</p>
|
||||
<ul>
|
||||
<li><code>LX+0Y+0FMAX</code></li>
|
||||
<li><code>L X+0 Y+0 FMAX</code></li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<h2 id="巨集支援">巨集支援</h2>
|
||||
<h3 id="q變數賦值">Q變數賦值</h3>
|
||||
<p>支援Q變數賦值。</p>
|
||||
<blockquote>
|
||||
<p>可解析:</p>
|
||||
<ul>
|
||||
<li><code>Q1 = 5000</code></li>
|
||||
<li><code>Q2 = 123</code></li>
|
||||
<li><code>Q3 = 1000</code></li>
|
||||
<li><code>LX-26.3 Y+43.1 Z+100.3 A-90.0 C+13.123 FQ3</code></li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<h3 id="q變數運算">Q變數運算</h3>
|
||||
<p>支援以下運算巨集:</p>
|
||||
<ul>
|
||||
<li><code>FN0</code> 指定數值。</li>
|
||||
<li><code>FN1</code> 計算及指定兩個值的總和。</li>
|
||||
<li><code>FN2</code> 計算及指定兩個值的差值。</li>
|
||||
<li><code>FN3</code> 計算及指定兩個值的乘積。</li>
|
||||
</ul>
|
||||
<blockquote>
|
||||
<p>可解析:</p>
|
||||
<ul>
|
||||
<li><code>FN0: Q1 = 5000</code></li>
|
||||
<li><code>FN1: Q1 = -Q2 + -5</code></li>
|
||||
<li><code>FN2: Q1 = +10 - +5</code></li>
|
||||
<li><code>FN3: Q2 = +3 * +3</code></li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<h2 id="tool-call">TOOL CALL</h2>
|
||||
<p>支援 <code>TOOL CALL</code>,但是刀具名稱須為數字。</p>
|
||||
<blockquote>
|
||||
<p>可解析:</p>
|
||||
<ul>
|
||||
<li><code>TOOL CALL "1" Z S5000</code></li>
|
||||
<li><code>TOOL CALL 1 Z S5000</code></li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>無法解析:
|
||||
<code>TOOL CALL "ET1" S5000</code></p>
|
||||
</blockquote>
|
||||
<h2 id="cycl-def-7">CYCL DEF 7</h2>
|
||||
<p>支援 <code>CYCL DEF 7</code> 工件原點位移指令。</p>
|
||||
<blockquote>
|
||||
<p>可解析:</p>
|
||||
<pre><code>CYCL DEF 7.0 DATUM SHIFT
|
||||
CYCL DEF 7.1 X10.123
|
||||
CYCL DEF 7.2 Y22.223
|
||||
CYCL DEF 7.3 Z32.97
|
||||
</code></pre>
|
||||
</blockquote>
|
||||
<h2 id="cycl-def-247">CYCL DEF 247</h2>
|
||||
<p>支援 <code>CYCL DEF 247</code> 工件原點設定。支援 <code>Q339</code> 座標索引。</p>
|
||||
<blockquote>
|
||||
<p>可解析:<code>CYCL DEF 247 Q339=+1</code></p>
|
||||
</blockquote>
|
||||
<h2 id="plane-系列指令">PLANE 系列指令</h2>
|
||||
<h3 id="運動行為指令">運動行為指令</h3>
|
||||
<p>支援三擇一運動行為指令: { <code>STAY</code> , <code>TURN</code> , <code>MOVE</code> } 。</p>
|
||||
<h3 id="seq">SEQ</h3>
|
||||
<p>支援 { <code>SEQ+</code> , <code>SEQ-</code> } 主動軸旋轉方向指令。</p>
|
||||
<h3 id="table-rot">TABLE ROT</h3>
|
||||
<p>支援 <code>TABLE ROT</code> 工作臺旋轉指令。</p>
|
||||
<h3 id="plane-spatial">PLANE SPATIAL</h3>
|
||||
<blockquote>
|
||||
<p>可解析:<code>PLANE SPATIAL SPA-60.3 SPB+0 SPC-19.88 STAY SEQ- TABLE ROT</code></p>
|
||||
</blockquote>
|
||||
<h3 id="plane-reset">PLANE RESET</h3>
|
||||
<blockquote>
|
||||
<p>可解析:<code>PLANE RESET STAY</code></p>
|
||||
</blockquote>
|
||||
<h2 id="海德瀚特有-m-碼">海德瀚特有 M 碼</h2>
|
||||
<p>支援以下海德瀚特有 M 碼。通用 ISO M 碼載於其他文件。</p>
|
||||
<h3 id="m91">M91</h3>
|
||||
<p>支援 <code>M91</code> 單行效的機械座標位移。</p>
|
||||
<blockquote>
|
||||
<p>可解析:<code>L Z-1 F5000 M91</code></p>
|
||||
</blockquote>
|
||||
<h3 id="m107">M107</h3>
|
||||
<p><strong>略過</strong> <code>M107</code> 顯示錯誤訊息指令。</p>
|
||||
<h3 id="m108">M108</h3>
|
||||
<p><strong>略過</strong> <code>M108</code> 重置 <code>M107</code> 指令。</p>
|
||||
<h3 id="m126">M126</h3>
|
||||
<p>支援 <code>M126</code> 在旋轉軸上以較短路徑移動。</p>
|
||||
<h3 id="m127">M127</h3>
|
||||
<p>支援 <code>M127</code> 重置 <code>M126</code> 指令。</p>
|
||||
<h4 id="控制器參數欄位-300401">控制器參數欄位 300401</h4>
|
||||
<p>支援控制器參數欄位 <code>300401</code> ,若該參數為真則不論是否下達 <code>M127</code> 都會在旋轉軸上以較短路徑移動。</p>
|
||||
<p>參數欄位 <code>300401</code> 預設值為真。</p>
|
||||
<h3 id="m128">M128</h3>
|
||||
<p>支援 <code>M128</code> 啟用刀尖點控制(TCPM)。</p>
|
||||
<h3 id="m129">M129</h3>
|
||||
<p>支援 <code>M129</code> 取消刀尖點控制(TCPM)。</p>
|
||||
<h3 id="m140">M140</h3>
|
||||
<p>支援 <code>M140 MB</code> <code>M140 MB MAX</code> 退刀指令。</p>
|
||||
<blockquote>
|
||||
<p>可解析:</p>
|
||||
<ul>
|
||||
<li><code>M140 MB MAX</code></li>
|
||||
<li><code>M140 MB+50 F6000</code></li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,126 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>通用NC碼支援 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="通用NC碼支援 | 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="通用nc碼支援">通用NC碼支援</h1>
|
||||
|
||||
<p>本節清單僅代表能適用該指令之部分功能。不一定能執行完整功能。</p>
|
||||
<h2 id="iso標準nc碼">ISO標準NC碼</h2>
|
||||
<p>G00、G01、G02、G03、G04、G17、G18、G19、G21、G28、G40、
|
||||
G43、G44、G49、G52、G53、G54~G59.9、G68、G69、G71、
|
||||
G80、G81、G82、G83、G85、G86、
|
||||
G90、G91、G94、G98、G99</p>
|
||||
<p>M03、M04、M05、M06、M08、M09、M13、M14、M30</p>
|
||||
<h2 id="fanuc--syntec專用nc碼">Fanuc & Syntec專用NC碼</h2>
|
||||
<p>G43.4、G53.1、G68.2</p>
|
||||
<h2 id="siemens專用nc碼">Siemens專用NC碼</h2>
|
||||
<p>G500、SUPA、TRAFOOF、TRAORI</p>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,173 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>建立虛擬機床 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="建立虛擬機床 | 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="建立虛擬機床">建立虛擬機床</h1>
|
||||
|
||||
<p>完成以下步驟以建立與使用虛擬機床:</p>
|
||||
<ol>
|
||||
<li><p>使用機構建構器建立拓樸結構。</p>
|
||||
<ol>
|
||||
<li>拓樸結構裏特定的 連接(<code>Branch</code>)名稱需要用相對應的運動軸關鍵字設定。
|
||||
<ul>
|
||||
<li>相應於運動方式的線性運動軸關鍵字為 <code>X</code>、<code>Y</code>、<code>Z</code>。</li>
|
||||
<li>相應於運動方式的旋轉運動軸關鍵字為 <code>A</code>、<code>B</code>、<code>C</code>。</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>拓樸結構裏特定的 錨點(<code>Anchor</code>)名稱需要用相對應的關鍵字設定。
|
||||
<ul>
|
||||
<li>關鍵字 <code>O</code> 為 接地錨點。</li>
|
||||
<li>關鍵字 <code>base</code> 為基座。</li>
|
||||
<li>關鍵字 <code>t</code> 為 刀具端錨點。用於連接刀具。</li>
|
||||
<li>關鍵字 <code>w</code> 為 工作臺端錨點。用於連接夾具或工件。</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
<blockquote>
|
||||
<p><strong>注意</strong></p>
|
||||
<p>關鍵字有區分大小寫。</p>
|
||||
</blockquote>
|
||||
</li>
|
||||
<li><p>對錨點設定幾何形狀。也可以不設定。</p>
|
||||
</li>
|
||||
<li><p>將拓樸結構存成工具機檔案。</p>
|
||||
</li>
|
||||
</ol>
|
||||
<h2 id="最佳實作">最佳實作</h2>
|
||||
<p>最方便的做法,是在CAD軟件中組好機台,將運動元件擺置機械原點<a id="fnref:1" href="#fn:1" class="footnote-ref"><sup>1</sup></a>,然後:</p>
|
||||
<ul>
|
||||
<li>對<strong>同一個座標系</strong>輸出個別主要元件的STL檔。再將這些STL設定進錨點。</li>
|
||||
<li>在CAD軟件中量好 刀具端錨點、工作臺端錨點、旋轉運動軸軸樞上任意點 相對於 輸出坐標系 的座標,再將這些座標輸入至拓樸結構。</li>
|
||||
<li>由於相對運動的關係,在基座至工作臺端的運動軸向設定一般為負。</li>
|
||||
</ul>
|
||||
<blockquote>
|
||||
<p>STL網格過多會降低軟件開啟速度及碰撞檢測速度。</p>
|
||||
</blockquote>
|
||||
<h2 id="範例小五軸立式銑床">範例:小五軸立式銑床</h2>
|
||||
<p>範例:<a href="B1.zip">B1.zip</a></p>
|
||||
<p>目標虛擬銑床:
|
||||
<img src="img/B1_anchors.png" alt="B1-with-anchors"></p>
|
||||
<p>拓樸結構:
|
||||
<img src="img/B1-topo.zh-Hant.png" alt="B1-topo"></p>
|
||||
<h2 id="建立臥式機床">建立臥式機床</h2>
|
||||
<ol>
|
||||
<li>依機床運動軸座標建立拓樸結構。</li>
|
||||
<li>將機床放倒:在接地錨點與機床基座錨點間的 連接 設定旋轉,軸向(0,1,1)(須正規化)、角度180度。</li>
|
||||
</ol>
|
||||
<div class="footnotes">
|
||||
<hr>
|
||||
<ol>
|
||||
<li id="fn:1">
|
||||
<p>機械原點(Machine Origin),所有機械座標(MC, Machine Coordinate)為0的位置,一般是原點復歸的位置。<a href="#fnref:1" class="footnote-back-ref">↩</a></p>
|
||||
</li>
|
||||
</ol>
|
||||
</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>
|
||||
@@ -0,0 +1,120 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>冷卻液設定參考 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="冷卻液設定參考 | 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="冷卻液設定參考">冷卻液設定參考</h1>
|
||||
|
||||
<ul>
|
||||
<li>氣冷熱傳係數 30 - 300 <span class="math">\(W/m^2K\)</span></li>
|
||||
<li>油性冷卻液熱傳係數 100 - 500 <span class="math">\(W/m^2K\)</span></li>
|
||||
<li>水性冷卻液熱傳係數 1000 - 3000 <span class="math">\(W/m^2K\)</span></li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 72 KiB |
@@ -0,0 +1,116 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>HiNC 使用說明 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="HiNC 使用說明 | 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-使用說明">HiNC 使用說明</h1>
|
||||
|
||||
<p>歡迎來到 HiNC 使用說明頁面。這裡將引導您了解 HiNC 的操作方法、注意事項以及技術理論。簡介與概觀請參閱 <a href="https://superhightech.com.tw/hinc/index.zh-Hant.html">HiNC 介紹頁面</a>。</p>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,142 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>HiNC使用者條款 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="HiNC使用者條款 | 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使用者條款">HiNC使用者條款</h1>
|
||||
|
||||
<p>甲方:超級高科技股份有限公司</p>
|
||||
<p>乙方:使用者</p>
|
||||
<p>茲 甲方授權乙方使用 HiNC軟體模組 一式,特立此書,乙方已閱讀並同意下列使用者條款:</p>
|
||||
<h2 id="第一條標的物">第一條、標的物</h2>
|
||||
<p>HiNC軟體模組(以下簡稱本模組),內容、授權期間請見甲方提供之規格表。</p>
|
||||
<h2 id="第二條智慧財產權保護及保密義務">第二條、智慧財產權保護及保密義務</h2>
|
||||
<p>一、本模組之結構、組織及代碼均屬於甲方所有的有價商業秘密和機密資訊,甲方提供之本模組及其所有相關資料,其智慧財產權均歸甲方所有。本模組僅供乙方內部使用,乙方同意依照使用者條款規範使用本模組,乙方不得出租、租賃、授權、移轉或販賣本組軟體、將本模組提供給第三方,亦不能修改、翻譯、逆向工程、反組譯、解譯本組軟體程序。</p>
|
||||
<p>二、乙方開發之衍生軟體,其衍生智財及收入歸乙方。</p>
|
||||
<h2 id="第三條軟體確保之限制">第三條、軟體確保之限制</h2>
|
||||
<p>本模組僅以「現貨」狀態為準,任何其它直接或隱含的表示,描述或擔保均不在確保之內。甲方及其經銷商對於特殊的、因其它事件而引起直接、間接或其它原因造成的損害,不負賠償責任。凡使用本模組所產生之結果及效能均由乙方自行承擔全部風險。</p>
|
||||
<h2 id="第四條資訊蒐集">第四條、資訊蒐集</h2>
|
||||
<p>一、乙方同意提供本模組紀錄使用次數、使用時間及部份硬體資訊給甲方。</p>
|
||||
<p>二、在乙方被授權電腦有連接網際網路之情況下,乙方同意將本條第一項所列資訊由本模組以網路傳輸方式傳遞給甲方。</p>
|
||||
<p>三、所有紀錄及傳輸資訊,僅限於供甲方授權驗證及軟體保護之目的使用,將不會公開揭露於第三者或作為第三方使用。</p>
|
||||
<h2 id="第五條同意條款">第五條、同意條款</h2>
|
||||
<p>乙方安裝甲方軟體時,系統將會顯示「使用者條款」的條款和條件,乙方必須接受「使用者條款」的條款和條件,才能使用軟體產品,如果不同意「使用者條款」的條款和條件,則請勿安裝、複製、使用、存取或執行軟體產品,並立即向您的購買點提交書面退貨通知,行使「使用者條款」中所賦予的權利,即表示乙方同意遵守其條款和條件。</p>
|
||||
<h2 id="第六條違約責任">第六條、違約責任</h2>
|
||||
<p>若使用者違反本使用者條款之全部或部分,甲方有權自行判斷並採取其認為適當的措施,包括終止甲方與使用者間之合約、立刻暫停使用者使用本模組或甲方之其他服務,亦不排除對此等使用者採取法律行動。</p>
|
||||
<h2 id="第七條一部無效">第七條、一部無效</h2>
|
||||
<p>本使用者條款部分條款依法被認為無效時,其他條款仍應繼續有效。</p>
|
||||
<p>(以下空白)</p>
|
||||
<hr>
|
||||
<p>甲 方:超級高科技股份有限公司</p>
|
||||
<p>代表人:梅可人 負責人</p>
|
||||
<p>統一編號:24921337</p>
|
||||
<p>地址:台南市永康區忠義街60 巷3 號9 樓之11</p>
|
||||
<p>日期:2020年1月27日</p>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,140 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>元件組裝與錨點 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="元件組裝與錨點 | 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="元件組裝與錨點">元件組裝與錨點</h1>
|
||||
|
||||
<p><strong>錨點</strong>(<code>Anchor</code>)為組裝用途,幾何間的錨點重合則完成組裝。</p>
|
||||
<p>嚴格來說,<strong>錨點</strong>不是一個點,而是一個座標系,兩座標系相等需要原點一致,旋轉方向一致。</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>錨點組裝範例</strong></p>
|
||||
<p>如下圖,存在兩組件,每組件存在兩個錨點,分別為{<code>AnchorA</code>,<code>AnchorB</code>}及{<code>AnchorC</code>,<code>AnchorD</code>}。
|
||||
兩組件以<code>AnchorB</code>及<code>AnchorC</code>重合完成組裝。</p>
|
||||
<div style="background-color: white; padding: 10px; display: inline-block; width: 100%;">
|
||||
<img src="img/Anchor%20for%20contact.png" alt="anc-contact" style="width: 100%; max-width: 800px;">
|
||||
</div>
|
||||
</div>
|
||||
<h2 id="工作臺錨點與工件錨點">工作臺錨點與工件錨點</h2>
|
||||
<p>工件與夾具皆存在一點為工件錨點(<code>WorkpieceBuckle</code>)、機台與夾具皆存在一點為工作臺錨點(TableBuckle),用來組裝工件、夾具、機台。</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>工件夾具組裝範例</strong></p>
|
||||
<p>工件與夾具以工件錨點(<code>WorkpieceBuckle</code>)重合完成組裝。</p>
|
||||
<div style="background-color: white; padding: 10px; display: inline-block; width: 100%;">
|
||||
<img src="img/Anchor%20for%20contact%20workpiece%20and%20fixture.png" alt="workpiece-fixture" style="width: 100%; max-width: 800px;">
|
||||
</div>
|
||||
</div>
|
||||
<p>如果沒有設置夾具,則工件將透過工件錨點而機台將透過工作臺錨點組裝機台與工件。</p>
|
||||
<h2 id="主軸錨點與刀把錨點">主軸錨點與刀把錨點</h2>
|
||||
<p>刀把與機台皆存在一點為主軸錨點(<code>SpindleBuckle</code>)、刀把與刀頭皆存在一點為刀把錨點(<code>HolderBuckle</code>),用來組裝刀頭、刀把、機台。</p>
|
||||
<p>如果沒有設置刀把,則刀頭將透過刀把錨點而機台將透過主軸錨點組裝機台與刀具。</p>
|
||||
|
||||
</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>
|
||||
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,128 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>APT刀具定義 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="APT刀具定義 | 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="apt刀具定義">APT刀具定義</h1>
|
||||
|
||||
<p>APT (Automatically Programmed Tool) 是一種通用刀具定義。參照APT參數圖例:</p>
|
||||
<div style="background-color: white; padding: 10px; display: inline-block; width: 100%;">
|
||||
<img src="img/APT.svg" alt="APT" style="width: 100%; max-width: 960px;">
|
||||
</div>
|
||||
<p>APT參數說明:</p>
|
||||
<ul>
|
||||
<li><code>D</code>:直徑</li>
|
||||
<li><code>Rc</code>:圓角半徑</li>
|
||||
<li><code>Rr</code>:圓角中心至刀具中心線距離</li>
|
||||
<li><code>Rz</code>:圓角中心至刀尖水平面距離</li>
|
||||
<li><code>Alpha</code>:水平面與刀尖側錐面夾角</li>
|
||||
<li><code>Beta</code>:刀具中心線與刀壁側錐面夾角</li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,135 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>刀具設定注意事項 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="刀具設定注意事項 | 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="刀具設定注意事項">刀具設定注意事項</h1>
|
||||
|
||||
<h2 id="刀身設定">刀身設定</h2>
|
||||
<h3 id="刀身形式">刀身形式</h3>
|
||||
<p>刀身(Cutter)形式包含:</p>
|
||||
<ul>
|
||||
<li><strong>銑削</strong>
|
||||
凡刀具以旋轉形式加工的,於HiNC中歸類為銑削,包含鑽、搪。</li>
|
||||
<li><strong>自由減法</strong>
|
||||
切割刀、放電加工模具。</li>
|
||||
</ul>
|
||||
<h3 id="離隙角">離隙角</h3>
|
||||
<p>HiNC的離隙角設定為第一離隙角。用來計算刀緣磨耗寬度(Flank Wear, VB)。</p>
|
||||
<h3 id="刀身重量">刀身重量</h3>
|
||||
<p>刀身重量 用來計算熱傳。</p>
|
||||
<ul>
|
||||
<li>一體式刀具: 刀身重量 填寫一體式刀具的重量。</li>
|
||||
<li>組裝式刀具: 刀身重量 填寫刀片總重,不包含組裝式刀把的重量。</li>
|
||||
</ul>
|
||||
<h3 id="刃磨半徑">刃磨半徑</h3>
|
||||
<p>刃磨半徑(Hone Radius)表示刀具銳利程度,為刀刃鋒利處的半徑。一般在 20 ~ 50 um。</p>
|
||||
<p>用來切削易加工材料的刀具通常刃磨半徑小,如Al6061T6,可以假設為20um;用來切削難加工材料的刀具通常刃磨半徑大,如不鏽鋼,可以假設為50um。</p>
|
||||
|
||||
</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>
|
||||
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 30 KiB |
@@ -0,0 +1,154 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>智慧刀把 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="智慧刀把 | 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="智慧刀把">智慧刀把</h1>
|
||||
|
||||
<p>智慧刀把是一種具備感測功能的工具機配件,能夠即時監測加工過程中的力和力矩數據。為了確保模擬結果的準確性,需要正確設定以下參數:</p>
|
||||
<h2 id="感測器設定">感測器設定</h2>
|
||||
<h3 id="力臂高度設定">力臂高度設定</h3>
|
||||
<ul>
|
||||
<li>感測器高度設定對模擬精度有重要影響</li>
|
||||
<li>該高度為感測器所測力矩的力臂距離</li>
|
||||
<li>若未正確設定,將導致力矩計算出現固定倍率的誤差</li>
|
||||
</ul>
|
||||
<h3 id="座標系對齊">座標系對齊</h3>
|
||||
<ol>
|
||||
<li><p><strong>基本原則</strong></p>
|
||||
<ul>
|
||||
<li>刀刃應對齊感測器的X軸</li>
|
||||
<li>確保感測器XY坐標系與模擬XY坐標系一致</li>
|
||||
<li>座標系對齊的影響程度相對力臂設定較小</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p><strong>安裝角度調整</strong></p>
|
||||
<ul>
|
||||
<li>如果無法完全對齊,請測量偏移角度</li>
|
||||
<li>將測得的角度填入"安裝角"欄位</li>
|
||||
<li>最大可能偏差為45度</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
<h2 id="精度影響因素">精度影響因素</h2>
|
||||
<h3 id="座標轉換影響">座標轉換影響</h3>
|
||||
<ul>
|
||||
<li>安裝角度偏差最多可導致√2倍的數值差異</li>
|
||||
<li>這種差異本質上是座標轉換的結果,而非測量精度的問題</li>
|
||||
<li>即使使用相同的智慧刀把,不同的安裝角度也會產生不同的測量數據</li>
|
||||
</ul>
|
||||
<h3 id="最佳實踐建議">最佳實踐建議</h3>
|
||||
<ol>
|
||||
<li>優先確保力臂高度設定的準確性</li>
|
||||
<li>盡可能將刀刃對準感測器X軸</li>
|
||||
<li>若無法完全對齊,務必測量並設定正確的安裝角度</li>
|
||||
</ol>
|
||||
<p>只有正確設定上述參數,模擬的微觀波形才能與感測器實際測量結果保持一致。</p>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,120 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>NC優化 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="NC優化 | 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="nc優化">NC優化</h1>
|
||||
|
||||
<h2 id="速度平滑化">速度平滑化</h2>
|
||||
<p>平滑範圍會中止於巨集指令或無法解譯路徑的行指令。</p>
|
||||
<p><em>速度平滑化</em>會根據當行指令行經路徑長度做加減速限制。
|
||||
所以<em>速度平滑化</em>對<em>可重新插補</em>的區域有效;
|
||||
但是對不可重新插補的區域,雖然仍有加減速限制,但可能因為單行行經路徑過長,使得實際應用上難以發揮作用。</p>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,133 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>碰撞檢測 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="碰撞檢測 | 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="碰撞檢測">碰撞檢測</h1>
|
||||
|
||||
<ul>
|
||||
<li><code>EnableCollisionDetection</code>:啟用碰撞檢測。</li>
|
||||
<li><code>EnablePauseOnCollision</code>:啟用碰撞發生時暫停。</li>
|
||||
</ul>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code class="lang-csharp">EnableCollisionDetection = <布林值>;
|
||||
EnablePauseOnCollision = <布林值>;
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<pre><code class="lang-csharp">EnableCollisionDetection = true;
|
||||
EnablePauseOnCollision = false;
|
||||
</code></pre>
|
||||
</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>
|
||||
@@ -0,0 +1,182 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>腳本 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="腳本 | 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="腳本">腳本</h1>
|
||||
|
||||
<p><strong>任務</strong>(Task)頁面會依照順序執行腳本,頁面排版順序為由左至右,再由上至下。</p>
|
||||
<h2 id="腳本工具列">腳本工具列</h2>
|
||||
<p>個別腳本的工具列的<strong>順序</strong>(Order)欄位為執行順序,如果沒有勾選<strong>啟用</strong>,則該任務會無視執行順序被略過。</p>
|
||||
<p>工具欄可新增、刪除腳本。</p>
|
||||
<p><a id="Script"></a></p>
|
||||
<h2 id="語法與功能">語法與功能</h2>
|
||||
<p><strong>腳本</strong> (Script) 中的<strong>標題</strong> (Title) 的功能僅為註記,無其他功能,腳本的內容與標題不一定要匹配。</p>
|
||||
<p>腳本預設為<strong>簡易模式</strong> (Simple Mode),該模式基於C#語言並簡化部分指令;如未勾選簡易模式,則腳本使用原生C#語言。</p>
|
||||
<p>簡易模式腳本在執行前會先轉換為C#語言再執行。</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>基本 C# 語法</strong></p>
|
||||
<ul>
|
||||
<li>指令以分號 <code>;</code> 作為結束符號。</li>
|
||||
<li>可以使用 <code>//</code> 作為行尾註解。</li>
|
||||
<li>可以使用<code>double.PositiveInfinity</code>、<code>double.NegativeInfinity</code>表示實數中的無限大及無限小。</li>
|
||||
</ul>
|
||||
<p>簡易模式腳本範例:</p>
|
||||
<pre><code class="lang-csharp">RunNcFile("NC/file1.nc");
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>簡易模式與原生C#語言(進階)</strong></p>
|
||||
<p>本段供有C#開發經驗的工程師參考。</p>
|
||||
<p>腳本執行函數回傳的物件<code>IEnumerable<Action></code>。</p>
|
||||
<p>撥放器在<code>Action</code>之間可以執行暫停(Pause)。</p>
|
||||
<p>與簡易模式腳本範例對照的典型原生C#語言腳本範例:</p>
|
||||
<pre><code class="lang-csharp">IEnumerable<Action> Run(){
|
||||
foreach(var action in RunNcFile("NC/file1.nc")) yield return action;
|
||||
yield return null;
|
||||
}
|
||||
return Run();
|
||||
</code></pre>
|
||||
</div>
|
||||
<p><a id="FileTemplate"></a></p>
|
||||
<h3 id="多檔案輸出樣板">多檔案輸出樣板</h3>
|
||||
<p>在有支援路徑樣板的指令中,路徑字串裡的<code>[NcName]</code>會被替換為NC檔案的名稱。</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<pre><code class="lang-csharp">RunNcFile("NC/file1.nc");
|
||||
RunNcFile("NC/file2.nc");
|
||||
WriteShotFiles("Output/[NcName].shot.csv", 1);
|
||||
// 輸出檔案至:
|
||||
// Output/file1.nc.shot.csv
|
||||
// Output/file2.nc.shot.csv
|
||||
OptimizeToFiles("Cache/Opt-[NcName]");
|
||||
// 輸出檔案至:
|
||||
// Cache/Opt-file1.nc
|
||||
// Cache/Opt-file2.nc
|
||||
</code></pre>
|
||||
</div>
|
||||
<h2 id="nc碼中的腳本指令">NC碼中的腳本指令</h2>
|
||||
<p>在註解內,以<code>;@</code>開頭,會在該行NC執行前執行腳本指令。</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>FANUC NC檔範例,在換刀時更改仿真解析度</strong></p>
|
||||
<pre><code>...
|
||||
G40 G17 G49 G54 G80
|
||||
G91 G28 Z0.0
|
||||
T01 M06 (;@MachiningResolution_mm=0.03125;)
|
||||
S1270 M03
|
||||
G43 Z10. H01
|
||||
...
|
||||
</code></pre>
|
||||
</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>
|
||||
@@ -0,0 +1,122 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>移除離料 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="移除離料 | 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="移除離料">移除離料</h1>
|
||||
|
||||
<p>在五軸切削過程中可能出現懸浮留料,使用<code>RemoveFlyPiece</code>指令清除。</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code class="lang-csharp">RemoveFlyPiece();
|
||||
</code></pre>
|
||||
</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>
|
||||
|
After Width: | Height: | Size: 884 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 371 KiB |
@@ -0,0 +1,153 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>幾何比對 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="幾何比對 | 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="幾何比對">幾何比對</h1>
|
||||
|
||||
<p>幾何比對指令 <code>Diff</code> 用於比對工件目標形狀(Target Shape)與仿真後形狀。</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code class="lang-csharp">Diff(<掃描半徑(mm)>);
|
||||
</code></pre>
|
||||
</div>
|
||||
<p><掃描半徑>(Detection Radius)是工件目標形狀的表面延伸距離,如果仿真後表面超過該距離,則不計算偏差值。
|
||||
掃描半徑越大,計算時間越長。</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<pre><code class="lang-csharp">Diff(1);
|
||||
</code></pre>
|
||||
</div>
|
||||
<p>比對後以顏色呈現過切與留料距離。</p>
|
||||
<p>比對後工件表面的路徑索引將會失效。</p>
|
||||
<h2 id="往復斜面干涉比對案例解析">往復斜面干涉比對案例解析</h2>
|
||||
<p>CAM產生的NC碼未必如預期,與使用方式有關,許多參數可以調整,還要靠使用者的經驗與細心,所以需要誤差比對確定CAM產生的NC無誤。</p>
|
||||
<p>本範例為CAM產生的NC,經過誤差比對發現諸多需修正處。</p>
|
||||
<p>這些問題若不使用軟體輔助只能在加工結束後發現,對精密製造影響甚鉅。</p>
|
||||
<h3 id="比對標的">比對標的</h3>
|
||||
<p>以上下斜坡之幾何做干涉比對測試,切削模擬之刀具為R0.5mm、D12mm之牛鼻刀,切削路徑為往復移動。</p>
|
||||
<p>比對標的、切削路徑如下:</p>
|
||||
<p><img src="img/geom_compare_slide_design.png" alt="geom_compare_slide_design">
|
||||
比對標的</p>
|
||||
<p><img src="img/slide_resolution_0p1_with_path.png" alt="slide_resolution_0p1_with_path">
|
||||
切削路徑</p>
|
||||
<h3 id="結果與討論">結果與討論</h3>
|
||||
<p>切削模擬後的干涉比對如下圖。</p>
|
||||
<p><img src="img/diff_resolution_0p02.png" alt="diff_resolution_0p02">
|
||||
切削模擬後的干涉比對。綠色為精準,正紅色為過切超過0.02mm、正藍色為留料超過0.02mm。</p>
|
||||
<ul>
|
||||
<li>目標幾何靠近壁面處為直角,故偵測出留料。</li>
|
||||
<li>進刀段落往復區域的NC碼Z值不一致,故偵測到過切。</li>
|
||||
<li>往復邊緣處刀子沒有走出刀具半徑,離工件距離過短,故偵測到留料。</li>
|
||||
<li>往復路徑中的藍綠斑馬紋為往復間距過大造成的留料。</li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
|
After Width: | Height: | Size: 165 KiB |
@@ -0,0 +1,291 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>資料映射 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="資料映射 | 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="資料映射">資料映射</h1>
|
||||
|
||||
<p>外部資料包含智慧刀把、動力計,可依時間線性映射至指定刀具路徑及加工區域。</p>
|
||||
<p>映射資料可用於檢視加工狀態、訓練銑削係數、校正銑削係數。</p>
|
||||
<p>所以資料映射需指定映射之兩部:指定輸入資料、指定NC路徑。</p>
|
||||
<figure class="alert text-bg-light">
|
||||
<img src="Mapping%20Overview%20Example.png" alt="Mapping Overview Example">
|
||||
<figcaption>資料映射圖例</figcaption>
|
||||
</figure>
|
||||
<h2 id="指定輸入資料">指定輸入資料</h2>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code>AddTimeDataByFile(<映射名>, <輸入檔案路徑>, <映射起點時間>, <映射終點時間>);
|
||||
</code></pre>
|
||||
</div>
|
||||
<p><映射名>為自訂之標記名稱,對應於指定<strong>NC路徑</strong>中的映射名。</p>
|
||||
<p>時間資料格式為<code><時>:<分>:<秒>.<小數點後秒></code>;其餘資料格式為實數。</p>
|
||||
<p>注意映射資料不會因撥放器重置而被清空。可以使用<code>ClearTimeMappingData</code>指令清空。</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code>ClearTimeMappingData();
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<pre><code>ClearTimeMappingData();
|
||||
AddTimeDataByFile( "lineA", "Mapping/sensor1.csv", "18:25:51.7100", "18:26:12.9910");
|
||||
AddTimeDataByFile( "lineB", "Mapping/sensor1.csv", "18:26:30.5750", "18:27:12.2880");
|
||||
RunNcFile("NC/file1.nc")
|
||||
</code></pre>
|
||||
</div>
|
||||
<p>輸入檔案格式為csv,須包含時間資訊,其餘資訊可選擇包含或不包含。</p>
|
||||
<p>csv檔案需有標題列,欄位標題需用特定指示詞標示。
|
||||
部分欄位指示詞為方便性是多擇一。</p>
|
||||
<ul>
|
||||
<li>時間:
|
||||
<ul>
|
||||
<li><code>TimeTag</code></li>
|
||||
<li><code>Timetag</code></li>
|
||||
<li><code>Time</code></li>
|
||||
<li><code>t</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>動力計:
|
||||
<ul>
|
||||
<li>X方向力:
|
||||
<ul>
|
||||
<li><code>Fx</code></li>
|
||||
<li><code>Workpiece.Fx</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Y方向力:
|
||||
<ul>
|
||||
<li><code>Fy</code></li>
|
||||
<li><code>Workpiece.Fy</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Z方向力:
|
||||
<ul>
|
||||
<li><code>Fz</code></li>
|
||||
<li><code>Workpiece.Fz</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>智慧刀把:
|
||||
<ul>
|
||||
<li>X方向力矩:
|
||||
<ul>
|
||||
<li><code>Mx</code></li>
|
||||
<li><code>Spindle.Mx</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Y方向力矩:
|
||||
<ul>
|
||||
<li><code>My</code></li>
|
||||
<li><code>Spindle.My</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Z方向力矩:
|
||||
<ul>
|
||||
<li><code>Mz</code></li>
|
||||
<li><code>Spindle.Mz</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>加速規(可選):
|
||||
<ul>
|
||||
<li><code>Ax</code></li>
|
||||
<li><code>Ay</code></li>
|
||||
<li><code>Az</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>欄位可以包含其他外部資訊,如下例之<code>CH1</code>、<code>CH2</code>。</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>檔案範例</strong></p>
|
||||
<pre><code>TimeTag,CH1,CH2,Mx,My,Mz
|
||||
18:23:54.703,-0.00398,-0.00034,-0.02923,0.10733,0.00409
|
||||
18:23:54.704,-0.00194,0.00285,0.04155,-0.04457,0.00448
|
||||
...
|
||||
</code></pre>
|
||||
</div>
|
||||
<h2 id="指定nc路徑">指定NC路徑</h2>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code>//範圍(多行)資料映射
|
||||
BeginSelection(<映射名>, <起點映射錨點旗標>, <起點偏置物件>);
|
||||
EndSelection(<映射名>, <終點映射錨點旗標>, <終點偏置物件>);
|
||||
//單行資料映射
|
||||
LineSelection(<映射名>, <起點映射錨點旗標>, <起點偏置物件>, <終點映射錨點旗標>, <終點偏置物件>);
|
||||
</code></pre>
|
||||
</div>
|
||||
<p><映射名>為自訂之標記名稱,對應於指定<strong>輸入資料</strong>中的映射名。</p>
|
||||
<ul>
|
||||
<li>可以使用<code>BeginSelection</code>與<code>EndSelection</code>作範圍(多行)資料映射:
|
||||
<ul>
|
||||
<li><code>BeginSelection</code>設置映射起點。</li>
|
||||
<li><code>EndSelection</code>設置映射終點。</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>或是使用<code>LineSelection</code>作單行資料映射。</li>
|
||||
</ul>
|
||||
<p><映射錨點旗標>可以使用:</p>
|
||||
<ul>
|
||||
<li><code>LineBegin</code>
|
||||
以該行運動起點為映射錨點。</li>
|
||||
<li><code>LineEnd</code>
|
||||
以該行運動終點為映射錨點。</li>
|
||||
<li><code>FirstTouch</code>
|
||||
以該行第一次接觸工件的位置為映射錨點。</li>
|
||||
<li><code>LastTouch</code>
|
||||
以該行最後接觸工件的位置為映射錨點。</li>
|
||||
</ul>
|
||||
<blockquote>
|
||||
<p><img src="markRegionOnTouch.png" alt="markRegionOnTouch.png"></p>
|
||||
</blockquote>
|
||||
<p><偏置物件>是相對於錨點的偏移,可以使用:</p>
|
||||
<ul>
|
||||
<li><code>null</code>
|
||||
無偏移。</li>
|
||||
<li><code>ShiftTime_s</code>
|
||||
單位秒。正值為往後時間;負值為往前時間。</li>
|
||||
<li><code>ShiftDistance_mm</code>
|
||||
單位mm。正值為往後位移;負值為往前位移。</li>
|
||||
</ul>
|
||||
<p>指定NC路徑命令需在NC碼註解中執行,前置<code>;@</code>符號。</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>NC檔案範例</strong></p>
|
||||
<pre><code>...
|
||||
G00 G90 X-6. Y10.
|
||||
G17 G01 Z-1. F600.
|
||||
S50 M03
|
||||
X13. F20 ;@LineSelection("lineA", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1));
|
||||
X25. F10 ;@LineSelection("lineB", FirstTouch, null, LastTouch, null);
|
||||
...
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>NC檔案範例2</strong></p>
|
||||
<p>如果控制器不支援<code>;</code>符號作為註解,如FANUC控制器,則需將其引入註解範圍內。</p>
|
||||
<pre><code>...
|
||||
G00 G90 X-6. Y10.
|
||||
G17 G01 Z-1. F600.
|
||||
S50 M03
|
||||
X13. F20 (;@LineSelection("lineA", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1));)
|
||||
X25. F10 (;@LineSelection("lineB", FirstTouch, null, LastTouch, null);)
|
||||
...
|
||||
</code></pre>
|
||||
</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>
|
||||
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,159 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>訓練與校正銑削係數 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="訓練與校正銑削係數 | 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="訓練與校正銑削係數">訓練與校正銑削係數</h1>
|
||||
|
||||
<p>銑削係數為計算銑削力的必須參數。</p>
|
||||
<p>訓練與校正銑削係數需先完成<a href="../Mapping/index.html">資料映射</a>。</p>
|
||||
<p><code>TrainMillingPara</code>訓練銑削係數,不需先設定工件銑削係數,輸出的新係數也與原工件銑削係數無關。</p>
|
||||
<p><code>ReTrainMillingPara</code>校正銑削係數,需基於已設定之工件銑削係數,才可輸出校正後係數。校正時原係數的權重10%、從資訊映射而得的樣本權重90%。</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code>//訓練銑削係數
|
||||
TrainMillingPara(<樣本旗標>, <檔案輸出路徑>);
|
||||
//校正銑削係數
|
||||
ReTrainMillingPara(<樣本旗標>, <檔案輸出路徑>);
|
||||
</code></pre>
|
||||
</div>
|
||||
<p><樣本旗標> 為應用於訓練資料的資料種類,包含:<code>Fx</code>、<code>Fy</code>、<code>Fz</code>、<code>Mx</code>、<code>My</code>、<code>Mz</code>。
|
||||
使用<code>|</code>號作聯集。</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>以動力計資料為例,輸出訓練銑削係數</strong></p>
|
||||
<pre><code>ClearTimeMappingData();
|
||||
AddTimeDataByFile( "lineA", "Mapping/sensor1.csv", "18:25:51.7100", "18:26:12.9910");
|
||||
AddTimeDataByFile( "lineB", "Mapping/sensor1.csv", "18:26:30.5750", "18:27:12.2880");
|
||||
RunNcFile("NC/file1.nc")
|
||||
TrainMillingPara(Fx|Fy|Fz, "StainlessSteel.mp");
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>以智慧刀把資料為例,輸出校正銑削係數</strong></p>
|
||||
<pre><code>ClearTimeMappingData();
|
||||
AddTimeDataByFile( "lineA", "Mapping/sensor1.csv", "18:25:51.7100", "18:26:12.9910");
|
||||
AddTimeDataByFile( "lineB", "Mapping/sensor1.csv", "18:26:30.5750", "18:27:12.2880");
|
||||
RunNcFile("NC/file1.nc")
|
||||
ReTrainMillingPara(Fz|Mx|My|Mz, "StainlessSteel.mp");
|
||||
</code></pre>
|
||||
</div>
|
||||
<h2 id="訓練條件">訓練條件</h2>
|
||||
<p>路徑樣本<u>以穩定資料訓練佳</u>,即資料波形有重複性維持至少兩轉。因系統演算法最低以一轉波形做訓練。
|
||||
在非穩定情況,會因為模擬中的每刃進給固定、訓練資料不穩定,造成剪切力於總力占比降低,使得訓練出的犁切係數偏高。</p>
|
||||
<p>樣本穩定的情況下,NC路徑沒有限制切削形狀,槽銑或側銑,任意形狀刀具皆可用來訓練及校正銑削係數。</p>
|
||||
<p>以<code>TrainMillingPara</code>訓練銑削係數,資訊映射須包含至少一組不同每刃進給的路徑樣本。訓練資料的資料種類建議最少為(動力計)<code>Fx|Fy|Fz</code>或(智慧刀把)<code>Fz|Mx|My|Mz</code>。
|
||||
如果資料種類少於前述,如<code>Fx|Fy</code>或<code>Mx|My|Mz</code>,則樣本的自由度太高,訓練出來的係數不能符合訓練樣本以外的路徑。</p>
|
||||
<p>如果僅使用<code>Mx|My|Mz</code>,由於力矩資料為 <span class="math">\(\vec{r} \times \vec{F}\)</span>,所以r方向資料會遺失,相當於少了一個自由度,難以訓練材料系數。
|
||||
所以力矩資料須搭配<code>Fz</code>使用。</p>
|
||||
<p>以<code>ReTrainMillingPara</code>校正銑削係數,沒有限制資料種類及每刃進給。</p>
|
||||
|
||||
</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>
|
||||
|
After Width: | Height: | Size: 20 KiB |
@@ -0,0 +1,264 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>NC優化 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="NC優化 | 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="nc優化">NC優化</h1>
|
||||
|
||||
<p>組態在NC仿真前設定,然後執行<strong>輸出優化NC檔</strong>指令。</p>
|
||||
<h2 id="組態">組態</h2>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code class="lang-csharp">OptEnableFeedrate = <布林值>;
|
||||
OptEnableInterpolation = <布林值>;
|
||||
OptRapidFeed_mmdmin = <實數>;
|
||||
OptMinFeedrate_mmdmin = <實數>;
|
||||
OptMaxFeedrate_mmdmin = <實數>;
|
||||
OptMaxAcceleration_mmds2 = <實數>;
|
||||
OptExtendedPreDistance_mm = <實數>;
|
||||
OptExtendedPostDistance_mm = <實數>;
|
||||
OptSpindlePowerSafetyFactor = <實數>;
|
||||
</code></pre>
|
||||
</div>
|
||||
<ul>
|
||||
<li><p><code>OptEnableFeedrate</code>:啟用順序式(Sequential)進給率優化。</p>
|
||||
<p>順序式係指該功能從下指令開始作用。與其相對的設定在刀具端,刀具端也能設定進給率優化,但是在裝刀時才會發揮作用。</p>
|
||||
<p><code>OptEnableFeedrate</code>與所有其他啟用進給率優化的指令需同時為真,進給率優化才會啟用。
|
||||
即與刀具設定端必須同時為真(true),進給率優化才會啟用。</p>
|
||||
<p><code>OptEnableFeedrate</code>預設值為真。</p>
|
||||
</li>
|
||||
<li><p><code>OptEnableInterpolation</code>:優化程序用重新插補。</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>重新插捕後NC碼會增加,可以更好地控制加減速。</p>
|
||||
<ul>
|
||||
<li><code>OptRapidFeed_mmdmin</code>:優化程序中的無切削區域進給率。單位mm/min。</li>
|
||||
</ul>
|
||||
<p>沒有切到工件的NC路徑,為無切削區域。優化後該路徑將採用無切削區域進給率。</p>
|
||||
<ul>
|
||||
<li><code>OptMinFeedrate_mmdmin</code>:優化程序中的有切削區域最小進給。單位mm/min。</li>
|
||||
<li><code>OptMaxFeedrate_mmdmin</code>:優化程序中的有切削區域最大進給。單位mm/min。</li>
|
||||
</ul>
|
||||
<p>有切到工件的NC路徑,為有切削區域。有切削區域的最大最小進給的設定通常依據經驗法則。</p>
|
||||
<ul>
|
||||
<li><p><code>OptMaxAcceleration_mmds2</code>:優化程序中的加減速限制。優化後NC碼的F值變化在該限制之內。單位$mm/s^2$。</p>
|
||||
</li>
|
||||
<li><p><code>OptExtendedPreDistance_mm</code>:優化程序中的有切削區域等效計算的前長度。單位mm。</p>
|
||||
</li>
|
||||
<li><p><code>OptExtendedPostDistance_mm</code>:優化程序中的有切削區域等效計算的後長度。單位mm。</p>
|
||||
</li>
|
||||
</ul>
|
||||
<figure>
|
||||
<img src="ExtendedDistance.png" alt="ExtendedDistance">
|
||||
<figcaption>優化程序中的有切削區域等效計算的長度</figcaption>
|
||||
</figure>
|
||||
<ul>
|
||||
<li><code>OptSpindlePowerSafetyFactor</code>:主軸功率安全係數。</li>
|
||||
<li><code>OptSpindleTorqueSafetyFactor</code>:主軸扭力安全係數。</li>
|
||||
</ul>
|
||||
<p>優化後的NC碼,主軸功率及主軸扭力將被限制於安全係數之內。</p>
|
||||
<ul>
|
||||
<li><code>OptPreferedForce_N</code>:優化程中的目標力。單位N。</li>
|
||||
</ul>
|
||||
<p>在符合所有限制的條件下,優化程序中的加工路徑產生的力會盡可能的趨近目標力。</p>
|
||||
<h2 id="nc碼中的優化腳本指令">NC碼中的優化腳本指令</h2>
|
||||
<h3 id="於指定nc行不啟用優化">於指定NC行不啟用優化</h3>
|
||||
<p>在執行 <code>Preserve()</code> 的NC行中,不啟用優化。</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<p>在 <code>N0140</code> 行不啟用優化。</p>
|
||||
<pre><code class="lang-nc">...
|
||||
N0130 X-1.965 Y17.053
|
||||
N0140 G03 X-2.66 Y38.193 I-103.796 J7.172 (;@Preserve();)
|
||||
N0150 G01 X-3.068 Y40.776
|
||||
...
|
||||
</code></pre>
|
||||
</div>
|
||||
<h3 id="於指定nc範圍不啟用優化">於指定NC範圍不啟用優化</h3>
|
||||
<p>使用<code>BeginPreserve()</code>的NC行及<code>EndPreserve()</code>的NC行及包含的NC範圍,不啟用優化。</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<p>在 <code>N0140</code>、<code>N0150</code>、<code>N0160</code> 行不啟用優化。</p>
|
||||
<pre><code class="lang-nc">...
|
||||
N0130 X-1.965 Y17.053
|
||||
N0140 G03 X-2.66 Y38.193 I-103.796 J7.172 (;@BeginPreserve();)
|
||||
N0150 G01 X-3.068 Y40.776
|
||||
N0160 X-3.555 Y43.338 (;@EndPreserve();)
|
||||
N0170 X-4.125 Y45.875
|
||||
...
|
||||
</code></pre>
|
||||
</div>
|
||||
<h2 id="輸出優化nc檔">輸出優化NC檔</h2>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code class="lang-csharp">OptimizeToFiles(<路徑樣板>);
|
||||
</code></pre>
|
||||
</div>
|
||||
<p><路徑樣板>支援 <a href="../Doc-Task/index.html#FileTemplate">檔案路徑樣板</a>。</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<pre><code class="lang-csharp">OptEnableFeedrate = true;
|
||||
OptEnableInterpolation = true;
|
||||
OptRapidFeed_mmdmin = 4000;
|
||||
OptMinFeedrate_mmdmin = 100;
|
||||
OptMaxFeedrate_mmdmin = 4000;
|
||||
OptMaxAcceleration_mmds2 = 10;
|
||||
OptExtendedPreDistance_mm = 3;
|
||||
OptExtendedPostDistance_mm = 2;
|
||||
OptSpindlePowerSafetyFactor = 1.5;
|
||||
OptSpindleTorqueSafetyFactor = 1.5;
|
||||
OptPreferedForce_N = double.PositiveInfinity;
|
||||
RunNcFile("NC/file1.nc");
|
||||
|
||||
OptRapidFeed_mmdmin = 8000;
|
||||
RunNcFile("NC/file2.nc");
|
||||
|
||||
OptimizeToFiles("Cache/Opt-[NcName]");
|
||||
</code></pre>
|
||||
</div>
|
||||
<p>組態設定可以穿插在NC仿真間,將會作用在組態設定後的NC仿真。</p>
|
||||
<p>以上範例為例,優化後的NC程式file1.nc的無切削區域快速進給為4000,file2.nc則為8000。</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>NC碼中的優化指令範例</strong></p>
|
||||
<pre><code class="lang-nc">...
|
||||
N0110 X-3.064 Y6.378 (;@OptMaxAcceleration_mmds2=10;)
|
||||
N0120 X-2.411 Y11.712
|
||||
N0130 X-1.965 Y17.053
|
||||
N0140 G03 X-2.66 Y38.193 I-103.796 J7.172 (;@Preserve();)
|
||||
N0150 G01 X-3.068 Y40.776 (;@OptMaxAcceleration_mmds2=100; OptMaxFeedrate_mmdmin=12000;)
|
||||
N0160 X-3.555 Y43.338
|
||||
N0170 X-4.125 Y45.875
|
||||
...
|
||||
</code></pre>
|
||||
</div>
|
||||
<blockquote>
|
||||
<p>N0110至N0150前,優化區加速度設為10 <span class="math">\(mm/s^2\)</span>;
|
||||
N0140單行不做優化;
|
||||
N0150及以後,優化區加速度設為100 <span class="math">\(mm/s^2\)</span>;
|
||||
N0150及以後,優化區切削區域最大進給設為12000 <span class="math">\(mm/min\)</span>;</p>
|
||||
</blockquote>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>斷刀解決方案</strong></p>
|
||||
<p>更改加工路徑降低切寬深 或 以HiNC優化功能調整進給率,將<strong>降伏應力比</strong>、<strong>主軸最大扭矩比</strong>、<strong>主軸最大功率比</strong>降至100%以下。</p>
|
||||
</div>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>熱崩刃解決方案</strong></p>
|
||||
<p>在解決斷刀問題的前提下,降低轉速,讓刀刃有充足時間散熱。</p>
|
||||
<p>注意冷卻液是否對準刀刃影響甚大。</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>
|
||||
@@ -0,0 +1,182 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>仿真解析度 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="仿真解析度 | 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="仿真解析度">仿真解析度</h1>
|
||||
|
||||
<p>仿真解析度可分為<a href="../RuntimeGeom/index.html">程序幾何</a>的<strong>實體解析度</strong>、程序幾何的<strong>顯示解析度</strong>、<strong>加工運動解析度</strong>。</p>
|
||||
<h2 id="程序幾何實體解析度">程序幾何實體解析度</h2>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code class="lang-csharp">MachiningResolution_mm = <實數>;
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<pre><code class="lang-csharp">MachiningResolution_mm = 0.125;
|
||||
</code></pre>
|
||||
</div>
|
||||
<p>工件網格由正立方體組成,工件實體解析度為最小工件網格立方體的寬度。</p>
|
||||
<p>網格立方體的寬度僅能為2的指數,包含 ..., 4, 2, 1, 0.5, 0.25, 0.125, ... 。如果設置的值不是2的指數,則系統會將其調整為2的指數。</p>
|
||||
<p>工件實體解析度越高,切削時計算量越大、仿真速度越慢。</p>
|
||||
<p>工件實體解析度每增加一倍,需要至多8倍的材料移除演算時間與RAM記憶體空間。</p>
|
||||
<h2 id="工件顯示暫存組態">工件顯示暫存組態</h2>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code class="lang-csharp">DispCache_Mb = <實數(Mb)>;
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<pre><code class="lang-csharp">DispCache_Mb = 260;
|
||||
</code></pre>
|
||||
</div>
|
||||
<p>工件網格的顯示解析度由暫存空間的大小決定。</p>
|
||||
<p>顯示網格是基於實體網格,所以顯示網格不會小於實體網格。</p>
|
||||
<p>數值設置越大,顯示延遲越長,建議數值不超過1000Mb。</p>
|
||||
<h2 id="加工運動解析度">加工運動解析度</h2>
|
||||
<p><strong>加工運動解析度</strong>(Machining Motion Resolution)決定仿真的每步間隔。
|
||||
有以下項目可選擇,預設值為<strong>每刃進給</strong>。</p>
|
||||
<ul>
|
||||
<li><strong>每轉進給</strong>(Feed Per Cycle)
|
||||
一步為主軸一轉。</li>
|
||||
<li><strong>每刃進給</strong>(Feed Per Tooth)
|
||||
一步為刀刃一轉。</li>
|
||||
<li><strong>固定解析度</strong>(Fixed Resolution)
|
||||
固定解析度在仿真時採用<strong>掃掠</strong>,兩步間沒有殘丘。
|
||||
其中<strong>線性解析度</strong>(Linear Resolution)為兩步間最大直線距離;<strong>旋轉解析度</strong>(Rotary Resolution)為兩步間最大旋轉角度。</li>
|
||||
</ul>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code class="lang-csharp">MachiningMotionResolution = <運動解析度物件>;
|
||||
|
||||
MachiningMotionResolution = FeedPerCycle;
|
||||
MachiningMotionResolution = FeedPerTooth;
|
||||
MachiningMotionResolution = FixedPace(<線性解析度(mm)>, <旋轉解析度(deg)>);
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<pre><code class="lang-csharp">MachiningMotionResolution = FeedPerCycle;
|
||||
MachiningMotionResolution = FixedPace(1, 15);
|
||||
</code></pre>
|
||||
</div>
|
||||
<h2 id="仿真效率">仿真效率</h2>
|
||||
<p>物理仿真採用平行處理,在大部分情況下不影響仿真速度,持續的高解析度大面積切削會出現暫時卡頓。</p>
|
||||
<p>與市面其他仿真軟件不同,HiNC的仿真使用體模型,刀具與工件接觸範圍越小,仿真速度越快。
|
||||
五軸切削仿真的速度會快於大面銑刀的仿真速度。</p>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,128 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>執行NC檔 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="執行NC檔 | 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="執行nc檔">執行NC檔</h1>
|
||||
|
||||
<p>執行NC檔指令為 <code>RunNcFile</code> ,<檔案路徑> 的根目錄為專案目錄。</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code class="lang-csharp">RunNcFile(<檔案路徑>);
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<pre><code class="lang-csharp">RunNcFile("NC/file1.nc");
|
||||
</code></pre>
|
||||
</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>
|
||||
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 105 KiB |
@@ -0,0 +1,151 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>程序幾何 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="程序幾何 | 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="程序幾何">程序幾何</h1>
|
||||
|
||||
<p>程序幾何(RuntimeGeom)是工件幾何在HiNC仿真運作期間的資料格式,由大小不一的正立方線架構網格組成。</p>
|
||||
<figure class="alert text-bg-light">
|
||||
<img src="cubesolid.png" alt="cubesolid.png">
|
||||
<figcaption>程序幾何外觀</figcaption>
|
||||
</figure>
|
||||
<figure class="alert text-bg-light">
|
||||
<img src="cubewire.png" alt="cubewire.png">
|
||||
<figcaption>程序幾何的正立方線架構網格</figcaption>
|
||||
</figure>
|
||||
<h2 id="讀寫程序幾何">讀寫程序幾何</h2>
|
||||
<p><code>ReadRuntimeGeom</code>、<code>WriteRuntimeGeom</code>可以讀寫程序幾何至檔案。</p>
|
||||
<p><code>WriteRuntimeGeomToStl</code>可以將程序幾何轉換為STL並寫入檔案。</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code class="lang-csharp">WriteRuntimeGeom(<檔案路徑>);
|
||||
ReadRuntimeGeom(<檔案路徑>);
|
||||
WriteRuntimeGeomToStl(<檔案路徑>, <解析度(mm)> = 0);
|
||||
</code></pre>
|
||||
<p><檔案路徑> 的根目錄為專案目錄。</p>
|
||||
<p><解析度> 輸出STL時依據的最小工件網格立方體寬度。
|
||||
該寬度不小於<a href="../Resolution/index.html">實體解析度</a>。若設定本參數小於實體解析度,則等同於設定為實體解析度。
|
||||
預設值為0,意同採用實體解析度。
|
||||
解析度越大,則檔案生成速度越快、佔用記憶體空間越小。</p>
|
||||
</div>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<pre><code class="lang-csharp">ReadRuntimeGeom("Cache/init.wct");
|
||||
RunNcFile("NC/file1.nc");
|
||||
WriteRuntimeGeom("Cache/file1.wct");
|
||||
WriteRuntimeGeomToStl("Output/file1.stl");
|
||||
</code></pre>
|
||||
<p>在仿真開始時,會將幾何模型轉換為程序幾何,轉換時間會依照初始解析度及幾何複雜度有所不同。</p>
|
||||
<p>如果工件模型會重複使用且轉換時間很長,可以在腳本執行NC指令前搭配使用<code>ReadRuntimeGeom</code>、<code>WriteRuntimeGeom</code>,節省等待時間。</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>
|
||||
@@ -0,0 +1,143 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>輸出波形資料檔案 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="輸出波形資料檔案 | 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="輸出波形資料檔案">輸出波形資料檔案</h1>
|
||||
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code class="lang-csharp">WriteShotFiles(<路徑樣板="Output/[NcName].shot.csv">, <時間解析度(ms)> = 1);
|
||||
</code></pre>
|
||||
</div>
|
||||
<p><路徑樣板>支援 <a href="../Doc-Task/index.html#FileTemplate">檔案路徑樣板</a>。</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<pre><code class="lang-csharp">WriteShotFiles("Output/[NcName].shot.csv", 1);
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>輸出範例</strong></p>
|
||||
<pre><code class="lang-csv">FileNo,LineNo,Time,X,Y,Z,A,B,C,Tool.Fx,Tool.Fy,Tool.Fz,Workpiece.Fx,Workpiece.Fy,Workpiece.Fz,Spindle.Mx,Spindle.My,Spindle.Mz
|
||||
1,6,00:00:00,0,0,0,NaN,NaN,NaN,0,0,0,0,0,0,0,0,0
|
||||
1,6,00:00:00.0010000,0,0,0.3703703703703703,NaN,NaN,NaN,0,0,0,0,0,0,0,0,0
|
||||
1,6,00:00:00.0020000,0,0,0.7407407407407406,NaN,NaN,NaN,0,0,0,0,0,0,0,0,0
|
||||
...
|
||||
</code></pre>
|
||||
</div>
|
||||
<p><code>X</code>、<code>Y</code>、<code>Z</code>、<code>A</code>、<code>B</code>、<code>C</code> 為機械座標。</p>
|
||||
<p><code>Tool.Fx</code>、<code>Tool.Fy</code>、<code>Tool.Fz</code>為刀具行進座標上的刀具受力,單位N。</p>
|
||||
<p><code>Workpiece.Fx</code>、<code>Workpiece.Fy</code>、<code>Workpiece.Fz</code>為工件座標上的工件受力,單位N,相當於動力計輸出資料。</p>
|
||||
<p><code>Spindle.Mx</code>、<code>Spindle.My</code>、<code>Spindle.Mz</code>為觀察點上主軸旋轉座標的主軸受力矩,相當於智慧刀把輸出資料。</p>
|
||||
<p>座標系說明見<a href="../../theory-and-technique/milling-physics-coordinates.html">銑削物理座標系</a>。</p>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,140 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>輸出步資料檔案 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="輸出步資料檔案 | 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="輸出步資料檔案">輸出步資料檔案</h1>
|
||||
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p><strong>指令格式</strong></p>
|
||||
<pre><code class="lang-csharp">WriteStepFiles(<路徑樣板="Output/[NcName].step.csv">);
|
||||
</code></pre>
|
||||
</div>
|
||||
<p><路徑樣板>支援 <a href="../Doc-Task/index.html#FileTemplate">檔案路徑樣板</a>。</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>指令範例</strong></p>
|
||||
<pre><code class="lang-csharp">WriteStepFiles("Output/[NcName].step.csv");
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>輸出範例</strong></p>
|
||||
<pre><code class="lang-csv">AccumulatedCraterWear_um,AccumulatedFlankWearDepth_um,AccumulatedFlankWearWidth_um,AccumulatedSpindleEnergyConsumption_kWh,AccumulatedTime,AvgAbsMomentAboutSensorVec3d_Nm.X,AvgAbsMomentAboutSensorVec3d_Nm.Y,AvgAbsMomentAboutSensorVec3d_Nm.Z,AvgAbsMomentXAboutSensorOnSpindleRotationCoordinate_Nm,AvgAbsMomentXAboutToolTipOnSpindleRotationCoordinate_Nm,AvgAbsTorque_Nm,AvgAbsTorqueByMapping_Nm,AvgAbsTorqueErrorRatioWithMapping,AvgForceToToolOnToolRunningCoordinate_N.X,AvgForceToToolOnToolRunningCoordinate_N.Y,AvgForceToToolOnToolRunningCoordinate_N.Z,AvgMomentAboutSensor_Nm,AvgMomentAboutToolTip_Nm,AvgMomentAboutToolTipOnToolRunningCoordinate_Nm.X,AvgMomentAboutToolTipOnToolRunningCoordinate_Nm.Y,AvgMomentAboutToolTipOnToolRunningCoordinate_Nm.Z,AvgMomentAboutToolTipOnWorkpieceGeomCoordinate_Nm.X,AvgMomentAboutToolTipOnWorkpieceGeomCoordinate_Nm.Y,AvgMomentAboutToolTipOnWorkpieceGeomCoordinate_Nm.Z,AvgMomentXyAboutObservationPoint_Nm,AvgMomentXyByMapping_Nm,AvgMomentXyErrorRatioWithMapping,BeginSpindleAngle_deg,ChipMass_mg,ChipTemperature_C,ChipThickness_mm,ChipVolume_mm3,Cl.I,Cl.J,Cl.K,Cl.X,Cl.Y,Cl.Z,CutterBodyTemperature_C,CutterDermisTemperature_C,CuttingDepth_mm,CuttingSpeed_mmds,CuttingWidth_mm,DeltaTipDeflectionOnToolRunningCoordinate_um.X,DeltaTipDeflectionOnToolRunningCoordinate_um.Y,DeltaTipDeflectionOnToolRunningCoordinate_um.Z,FeedPerCycle_mm,FeedPerTooth_mm,Feedrate_mmdmin,FileNo,FilePath,FlagsText,InstantCraterWear_um,IsTouched,LineNo,LineText,MaxAbsForce_N,MaxMomentAboutSensor_Nm,MaxMomentAboutToolTip_Nm,MaxSpindlePowerRatio,MaxSpindleTorqueRatio,MaxTipDeflectionOnToolRunningCoordinate_um.X,MaxTipDeflectionOnToolRunningCoordinate_um.Y,MaxTipDeflectionOnToolRunningCoordinate_um.Z,MC.B,MC.C,MC.X,MC.Y,MC.Z,MoveOnWorkpieceCoordinate.X,MoveOnWorkpieceCoordinate.Y,MoveOnWorkpieceCoordinate.Z,MovingLength_mm,Mrr_mm3ds,ReCutDepth_um,Side-Ra,SideCusp_um,SpindleCyclePeriod_s,SpindleInputPower_W,SpindleOutputPower_W,SpindleSpeed_rpm,StepDuration,ThermalCrackRatio,ThermalStress_MPa,ToolId,ToothArcDuration_s,WorkpieceDermisTemperature_C,WorkpiecePlasticDepth_um,YieldingStressRatio
|
||||
0,0,0,0,"00:00:00",0,0,0,0,0,0,null,null,0,0,0,0,0,0,0,0,0,0,0,0,null,null,0,0,"NaN",null,0,0,0,1,-37.400000000000006,97.4,63.44,25,25,0,0,0,0,0,0,"Infinity","Infinity",20000,1,"NC-hs/hs.nc","G54 G01 G17 G40 G49 G69 G80 G91 G94 M06 SpindleStop",0,0,4,"T01 M06",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Infinity",0,0,0,"00:00:00",0,0,1,"Infinity",25,0,0
|
||||
0,0,0,0,"00:00:00.0300000",0,0,0,0,0,0,null,null,0,0,0,0,0,0,0,0,0,0,0,0,null,null,171.9,0,"NaN",null,0,0,0,1,-37.400000000000006,97.4,73.44,25,25,0,63.666666666666664,0,0,0,0,20.942408376963353,5.235602094240838,20000,1,"NC-hs/hs.nc","G54 G01 G17 G40 G43 G69 G80 G91 G94 SpindleCw H1",0,0,7,"G43 Z10. H01",0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,10,10,0,0,0,0,0.06282722513089005,0,0,955,"00:00:00.0300000",0,0,1,0.015706806282722512,25,0,0
|
||||
...
|
||||
</code></pre>
|
||||
</div>
|
||||
<p><code>Cl.X</code>、<code>Cl.Y</code>、<code>Cl.Z</code>、<code>Cl.I</code>、<code>Cl.J</code>、<code>Cl.K</code> 為刀尖點座標(Cutter Location)及刀軸向量。</p>
|
||||
<p><code>MC.X</code>、<code>MC.Y</code>、<code>MC.Z</code>、<code>MC.A</code>、<code>MC.B</code>、<code>MC.C</code> 為機械座標(Machine Coordinate)。</p>
|
||||
<p>座標系說明見<a href="../../theory-and-technique/milling-physics-coordinates.html">銑削物理座標系</a>。</p>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,121 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>以授權器作第二層伺服(多主機) | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="以授權器作第二層伺服(多主機) | 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="以授權器作第二層伺服多主機">以授權器作第二層伺服(多主機)</h1>
|
||||
|
||||
<p>如果有開通多主機授權,下載並解壓縮<a href="https://superhightech.com.tw/download2/DelegateAuthorization.zip">DelegateAuthorization.zip</a>,並根據裡面的兩個pdf說明檔操作,分別設定授權伺服器與被授權客戶端。</p>
|
||||
<p>授權伺服器可能被windows防火牆擋住,可以開通如圖:</p>
|
||||
<p><img src="res/sentinel-firewall.jpg" alt="sentinel-firewall"></p>
|
||||
<blockquote>
|
||||
<p>使用紅色授權鎖,單機運行也需執行該壓縮包內容之 <code>win_install.bat</code>,以安裝授權執行軟件。</p>
|
||||
</blockquote>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,131 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>單機多站 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="單機多站 | 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="單機多站">單機多站</h1>
|
||||
|
||||
<p>如果有開通多程序授權,可以使用不同 <code>appsettings.<組態名稱>.json</code> 伺服多個程序。每個程序可同時執行不同的專案。</p>
|
||||
<p>同個主機中各程序<code>appsettings.<組態名稱>.json</code>中以下項目不可相同:</p>
|
||||
<ul>
|
||||
<li><code>Endpoints</code></li>
|
||||
<li><code>DatabasePort</code></li>
|
||||
<li><code>CacheDbId</code></li>
|
||||
</ul>
|
||||
<p>在命令列執行以下指令啟動指定程序:</p>
|
||||
<p><code>dotnet run HiNcServer.dll --environment <組態名稱></code></p>
|
||||
<blockquote>
|
||||
<p><strong>組態範例</strong></p>
|
||||
<ul>
|
||||
<li><a href="res/appsettings.Sub-1.json">appsettings.Sub-1.json</a></li>
|
||||
<li><a href="res/appsettings.Sub-2.json">appsettings.Sub-2.json</a></li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"DetailedErrors": true,
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"Kestrel": {
|
||||
"Endpoints": {
|
||||
"Http": {
|
||||
"Url": "http://localhost:3301"
|
||||
},
|
||||
//"Https": {
|
||||
// "Url": "https://xxxx.xxxx.xxxx:4301",
|
||||
// "Certificate": {
|
||||
// "Subject": "xxxx.xxxx.xxxx",
|
||||
// "Store": "WebHosting",
|
||||
// "AllowInvalid": true
|
||||
// }
|
||||
//},
|
||||
"Grpc": {
|
||||
"Protocols": "Http2",
|
||||
"Url": "http://localhost:5301"
|
||||
}
|
||||
}
|
||||
},
|
||||
"HiNC": {
|
||||
"CacheDbId": "Sub-1",
|
||||
"DatabasePort": 28001,
|
||||
"AdminDirectory": "../HiNC-Root",
|
||||
"OptCoreNum": 0,
|
||||
"Users": [
|
||||
{
|
||||
"Name": "admin",
|
||||
"Pw": "00000",
|
||||
"Role": "Admin",
|
||||
"IsFixedUser": true
|
||||
},
|
||||
{
|
||||
"Name": "worker",
|
||||
"Pw": "111111",
|
||||
"Role": "Collaborator",
|
||||
"IsFixedUser": false
|
||||
},
|
||||
{
|
||||
"Name": "guest",
|
||||
"Pw": "22222",
|
||||
"Role": "Guest",
|
||||
"IsFixedUser": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"LicenseManager": {
|
||||
//Available Command: "DoNothing","AutoLicenseUpdate","GetC2V","GenV2C","ApplyV2C","WriteInfo"
|
||||
"Command": "AutoLicenseUpdate",
|
||||
"Server": {
|
||||
"URI": "superhightech.com.tw",
|
||||
"Port": 20201,
|
||||
"ReceiveTimeout": 200
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"DetailedErrors": true,
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"Kestrel": {
|
||||
"Endpoints": {
|
||||
"Http": {
|
||||
"Url": "http://localhost:3302"
|
||||
},
|
||||
//"Https": {
|
||||
// "Url": "https://xxxx.xxxx.xxxx:4302",
|
||||
// "Certificate": {
|
||||
// "Subject": "xxxx.xxxx.xxxx",
|
||||
// "Store": "WebHosting",
|
||||
// "AllowInvalid": true
|
||||
// }
|
||||
//},
|
||||
"Grpc": {
|
||||
"Protocols": "Http2",
|
||||
"Url": "http://localhost:5302"
|
||||
}
|
||||
}
|
||||
},
|
||||
"HiNC": {
|
||||
"CacheDbId": "Sub-2",
|
||||
"DatabasePort": 28002,
|
||||
"AdminDirectory": "../HiNC-Root",
|
||||
"OptCoreNum": 0,
|
||||
"Users": [
|
||||
{
|
||||
"Name": "admin",
|
||||
"Pw": "00000",
|
||||
"Role": "Admin",
|
||||
"IsFixedUser": true
|
||||
},
|
||||
{
|
||||
"Name": "worker",
|
||||
"Pw": "111111",
|
||||
"Role": "Collaborator",
|
||||
"IsFixedUser": false
|
||||
},
|
||||
{
|
||||
"Name": "guest",
|
||||
"Pw": "22222",
|
||||
"Role": "Guest",
|
||||
"IsFixedUser": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"LicenseManager": {
|
||||
//Available Command: "DoNothing","AutoLicenseUpdate","GetC2V","GenV2C","ApplyV2C","WriteInfo"
|
||||
"Command": "AutoLicenseUpdate",
|
||||
"Server": {
|
||||
"URI": "superhightech.com.tw",
|
||||
"Port": 20201,
|
||||
"ReceiveTimeout": 200
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 94 KiB |
@@ -0,0 +1,131 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>教學視頻 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="教學視頻 | 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="教學視頻">教學視頻</h1>
|
||||
|
||||
<h2 id="建立機構與刀具">建立機構與刀具</h2>
|
||||
<ul>
|
||||
<li><a href="https://superhightech.com.tw/download2/%E6%A9%9F%E6%A7%8B%E5%BB%BA%E6%A7%8B%E5%99%A8%E5%BB%BA%E7%AB%8B%E8%99%9B%E6%93%AC%E6%A9%9F%E5%BA%8A.mp4">https://superhightech.com.tw/download2/機構建構器建立虛擬機床.mp4</a></li>
|
||||
<li><a href="https://superhightech.com.tw/download2/%E5%BB%BA%E7%AB%8B%E8%87%A5%E5%BC%8F%E6%A9%9F%E5%BA%8A.mp4">https://superhightech.com.tw/download2/建立臥式機床.mp4</a></li>
|
||||
<li><a href="https://superhightech.com.tw/download2/%E5%88%80%E5%85%B7%E5%BB%BA%E7%AB%8B-%E9%8A%91%E5%89%8A%E8%88%87%E5%88%80%E6%8A%8A.mp4">https://superhightech.com.tw/download2/刀具建立-銑削與刀把.mp4</a></li>
|
||||
</ul>
|
||||
<h2 id="專案設定與執行">專案設定與執行</h2>
|
||||
<ol>
|
||||
<li><a href="https://superhightech.com.tw/download2/%E7%AF%84%E4%BE%8B%E5%B0%88%E6%A1%88%E8%A8%AD%E7%BD%AE%E8%AA%AA%E6%98%8E.mp4">https://superhightech.com.tw/download2/範例專案設置說明.mp4</a></li>
|
||||
<li><a href="https://superhightech.com.tw/download2/%E7%AF%84%E4%BE%8B%E5%B0%88%E6%A1%88%E4%BB%BF%E7%9C%9F%E8%AA%AA%E6%98%8E.mp4">https://superhightech.com.tw/download2/範例專案仿真說明.mp4</a></li>
|
||||
<li><a href="https://superhightech.com.tw/download2/%E5%BB%BA%E7%AB%8B%E5%B0%88%E6%A1%88.mp4">https://superhightech.com.tw/download2/建立專案.mp4</a></li>
|
||||
</ol>
|
||||
<blockquote>
|
||||
<p><strong>範例專案下載</strong>
|
||||
<a href="https://superhightech-gitea.webredirect.org/HiNC-Deploy/DemoStandardPath/archive/master.zip">https://superhightech-gitea.webredirect.org/HiNC-Deploy/DemoStandardPath/archive/master.zip</a></p>
|
||||
</blockquote>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,162 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>HiNC啟用 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="HiNC啟用 | 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啟用">HiNC啟用</h1>
|
||||
|
||||
<p>本章節將介紹如何在不同環境下啟用HiNC系統,包含Windows系統的基本安裝、單機多站配置、多主機授權設置,以及提供相關教學視頻資源。</p>
|
||||
<ul>
|
||||
<li><a href="multi-station.html">單機多站配置</a></li>
|
||||
<li><a href="delegate-auth.html">多主機授權設置</a></li>
|
||||
<li><a href="tutorial.html">教學視頻</a></li>
|
||||
</ul>
|
||||
<h2 id="啟用hinc於windows系統">啟用HiNC於Windows系統</h2>
|
||||
<ol>
|
||||
<li><p>至官網下載HiNC安裝包並解壓縮:</p>
|
||||
<p><a href="https://superhightech-gitea.webredirect.org/HiNC-Deploy/HiNC-Manager-Win/archive/master.zip">https://superhightech-gitea.webredirect.org/HiNC-Deploy/HiNC-Manager-Win/archive/master.zip</a></p>
|
||||
</li>
|
||||
<li><p>插上HiNC授權鎖,執行資料夾內<code>HiNC-loop-with-update.bat</code>。</p>
|
||||
<p>該腳本會於每次執行下載或更新HiNC軟件於HiNC資料夾。</p>
|
||||
<p>首次執行過後,將產生HiNC子資料夾。</p>
|
||||
<blockquote>
|
||||
<p>除appsettings會被保留以外,其他在HiNC資料夾中的檔案變更會在更新後被刪除。
|
||||
HiNC資料夾內如果有非系統產生的更動,有可能使得下載或更新失敗,此時可以手動刪除整個HiNC資料夾然後再次執行<code>HiNC-loop-with-update.bat</code>。</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p><a href="res/startup.mp4">操作影片</a></p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>如果HiNC軟件的預設載點速度太慢,可以先使用<code>HiNC-update-gitcode.bat</code>至gitcode載點下載完成後,再執行<code>HiNC-loop-with-update.bat</code>。</p>
|
||||
</blockquote>
|
||||
<p>HiNC子資料夾內可找到<code>appsettings.json</code> 檔案,該檔案用來設定HiNC組態,包含網頁位置及使用者帳號密碼等。以下以預設值說明。</p>
|
||||
<p>依<code>appsettings.json</code>預設值,每次HiNC啟動時,會連結授權伺服器檢查是否有授權更新。授權更新的預設設置如下,如果要取消自動授權鎖更新,可將<code>AutoLicenseUpdate</code>改為<code>DoNothing</code>。</p>
|
||||
<pre><code>"LicenseManager": {
|
||||
//Available Command: "DoNothing","AutoLicenseUpdate","GetC2V","GenV2C","ApplyV2C","WriteInfo"
|
||||
"Command": "AutoLicenseUpdate",
|
||||
"Server": {
|
||||
"URI": "http://superhightech.com.tw:20201",
|
||||
}
|
||||
}
|
||||
</code></pre>
|
||||
<p><code>appsettings.json</code> 檔案中預設創建 <code>../HiNC-Root</code> 作為資料與專案的存放位置。</p>
|
||||
<blockquote>
|
||||
<p>如果啟動HiNC時,反覆出現錯誤長訊息,可能是作業系統太舊或久未更新,請安裝 <code>Microsoft Visual C++</code>。</p>
|
||||
</blockquote>
|
||||
</li>
|
||||
<li><p>打開網頁瀏覽器,進入預設網址:
|
||||
http://localhost:4330</p>
|
||||
</li>
|
||||
<li><p>輸入預設使用者帳密即可登入使用。
|
||||
帳號: <code>admin</code>
|
||||
密碼: <code>00000</code></p>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,139 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>檔案總管 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="檔案總管 | 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="檔案總管">檔案總管</h1>
|
||||
|
||||
<p>檔案總管可以管理檔案、上下傳檔案,內含編輯器可預覽編輯文字檔案。</p>
|
||||
<h2 id="根目錄">根目錄</h2>
|
||||
<p>檔案總管的<strong>根目錄</strong>有以下幾種:</p>
|
||||
<ul>
|
||||
<li>管理者目錄
|
||||
<ul>
|
||||
<li>資源目錄</li>
|
||||
<li>專案目錄</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>管理者目錄在專案目錄的上層;專案目錄為已載入專案的內容目錄;資源目錄為專案間共享,擺放材料系數等資料。</p>
|
||||
<h2 id="檔案重命名與移動">檔案重命名與移動</h2>
|
||||
<p>點選檔案總管中
|
||||
<button class=" btn btn-info" readonly="true"><span class="bi bi-feather"></span></button>
|
||||
後,即可以編輯對應檔案名稱。</p>
|
||||
<p>如果需要移動檔案,可以使用相對路徑重命名。也可以使用<code>~/</code>作為路徑開頭,將以根目錄作為根路徑。</p>
|
||||
<p>!!! success “移動檔案範例”
|
||||
- 將 <code>file1.txt</code> 重命名為 <code>Folder/file1.txt</code> 會將該檔案移動至 <code>Folder</code> 資料夾。
|
||||
- 將 <code>Folder</code> 資料夾中的 <code>file1.txt</code> 重命名為 <code>../file1.txt</code> 會將該檔案移出 <code>Folder</code> 資料夾。</p>
|
||||
<blockquote>
|
||||
<p><strong>注意</strong></p>
|
||||
<p>關鍵字有區分大小寫。</p>
|
||||
</blockquote>
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,137 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>刀具壽命與磨耗 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="刀具壽命與磨耗 | 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="刀具壽命與磨耗">刀具壽命與磨耗</h1>
|
||||
|
||||
<p>刀刃損傷模式繁多,可歸因於瞬間失效的模式,含斷刀、熱崩刃,見<a href="../availability/index.html">本文</a>;而歸因於長時間消耗而失效的模式,<u>建議以<strong>刀面磨耗</strong>作為評估刀具壽命的標的</u>。</p>
|
||||
<p>HiNC採用磨耗模式<a id="fnref:1" href="#fn:1" class="footnote-ref"><sup>1</sup></a>:</p>
|
||||
<p><span class="math">\(W(T) = \frac{k(T) L P}{H(T)}\)</span></p>
|
||||
<p>其中W為磨耗量、k為磨耗係數、L為接觸長度、P為壓力、H為硬度、T為溫度。</p>
|
||||
<p>HiNC計算的磨耗包含:</p>
|
||||
<ul>
|
||||
<li>刀面磨耗(Crater Wear)</li>
|
||||
<li>刀緣磨耗寬度(Flank Wear Width)</li>
|
||||
<li>刀緣磨耗深度(Flank Wear Depth)</li>
|
||||
</ul>
|
||||
<p>此處刀面磨耗係指刀面磨耗深度。</p>
|
||||
<p>刀緣磨耗寬度在論文中最常用來作為評估標的,因它有量測標準。刀具在平面運動中,會先磨刀峰再磨刀緣,所以在實驗室可以刀緣磨耗寬度評估總磨耗。</p>
|
||||
<p>但若銑削中刀具有上下運動,刀緣會在刀峰磨完前發生隨機碰撞,此時刀緣磨耗寬度就不具評估總磨耗的價值。</p>
|
||||
<p>HiNC 計算的 刀緣磨耗寬度,假設刀緣沒有隨機碰撞,僅適用於平面切削,HiNC保留這項數值於研究用途。</p>
|
||||
<div class="footnotes">
|
||||
<hr>
|
||||
<ol>
|
||||
<li id="fn:1">
|
||||
<p>Lee, R. S, and J. L Jou. “Application of Numerical Simulation for Wear Analysis of Warm Forging Die.” Journal of Materials Processing Technology, Proceedings of the 6th Asia Pacific Conference on materials Processing, 140, no. 1 (September 22, 2003): 43–48.<a href="#fnref:1" class="footnote-back-ref">↩</a></p>
|
||||
</li>
|
||||
</ol>
|
||||
</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>
|
||||
|
After Width: | Height: | Size: 28 KiB |
@@ -0,0 +1,130 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>銑削物理座標系 | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="銑削物理座標系 | 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="銑削物理座標系">銑削物理座標系</h1>
|
||||
|
||||
<p>銑削力、銑削力矩、形變等物理性質,可以用不同座標系表示。感測器原始資料對應的座標系也不一樣。</p>
|
||||
<p>用HiNC檢視物理仿真資料時,常會看到座標系的標示字,本章說明三個座標系。</p>
|
||||
<p><img src="img/Machining-3-Coordinate.png" alt="Machining-3-Coordinate"></p>
|
||||
<h2 id="工件座標系">工件座標系</h2>
|
||||
<p>工件座標系(Workpiece Coordinate),簡寫<code>[W]</code>。</p>
|
||||
<p>通常是程式原點座標系。</p>
|
||||
<p>工件座標系與動力計座標系一致。</p>
|
||||
<h2 id="刀具行進座標系">刀具行進座標系</h2>
|
||||
<p>刀具行進座標系(Tool Running Coordinate),簡寫<code>[TR]</code>。</p>
|
||||
<p>以刀具行進方向除去刀具法向移動後作為 +X ,刀具法向量作為 +Z ,以右手定則定義 +Y 。以順銑而言,+Y 方向遠離壁面。</p>
|
||||
<p>刀具行進座標系適合理解加工狀態。</p>
|
||||
<h2 id="主軸旋轉座標系">主軸旋轉座標系</h2>
|
||||
<p>主軸旋轉座標系(Spindle Rotation Coordinate),簡寫<code>[SR]</code>。</p>
|
||||
<p>刀具行進座標系對 Z 軸旋轉主軸運動角度 <span class="math">\(\theta\)</span> 後為主軸旋轉座標系。</p>
|
||||
<p>主軸旋轉座標系與智慧刀把座標系一致,因智慧刀把感測器會隨主軸一併旋轉。</p>
|
||||
|
||||
</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>
|
||||