This commit is contained in:
2026-01-31 17:18:04 +08:00
parent 0d5ad55028
commit 3cabb9e5f7
64 changed files with 9438 additions and 3144 deletions
@@ -194,17 +194,18 @@ Class XFactory
<a id="Hi_Common_XmlUtils_XFactory_GenByChild_" data-uid="Hi.Common.XmlUtils.XFactory.GenByChild*"></a>
<h3 id="Hi_Common_XmlUtils_XFactory_GenByChild__1_System_Xml_Linq_XElement_System_String_Hi_Common_XmlUtils_SetFileDelegate_Hi_Common_XmlUtils_GenMode_System_Object___" data-uid="Hi.Common.XmlUtils.XFactory.GenByChild``1(System.Xml.Linq.XElement,System.String,Hi.Common.XmlUtils.SetFileDelegate,Hi.Common.XmlUtils.GenMode,System.Object[])">
GenByChild&lt;T&gt;(XElement, string, SetFileDelegate, GenMode, params object[])
<h3 id="Hi_Common_XmlUtils_XFactory_GenByChild__1_System_Xml_Linq_XElement_System_String_Hi_Common_XmlUtils_GenMode_System_Object___" data-uid="Hi.Common.XmlUtils.XFactory.GenByChild``1(System.Xml.Linq.XElement,System.String,Hi.Common.XmlUtils.GenMode,System.Object[])">
GenByChild&lt;T&gt;(XElement, string, GenMode, params object[])
</h3>
<div class="markdown level1 summary"><p>Generates an object of type T from a child element of the provided XML element.</p>
<div class="markdown level1 summary"><p>Generates an object of type T from a child element of the provided XML element.
This overload discards the relative file path output.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static T GenByChild&lt;T&gt;(XElement src, string baseDirectory, SetFileDelegate setFileAction, GenMode genMode, params object[] res) where T : class</code></pre>
<pre><code class="lang-csharp hljs">public static T GenByChild&lt;T&gt;(XElement src, string baseDirectory, GenMode genMode, params object[] res) where T : class</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -215,8 +216,62 @@ Class XFactory
<dt><code>baseDirectory</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The base directory for resolving paths</p>
</dd>
<dt><code>setFileAction</code> <a class="xref" href="Hi.Common.XmlUtils.SetFileDelegate.html">SetFileDelegate</a></dt>
<dd><p>Action to execute when setting the file path</p>
<dt><code>genMode</code> <a class="xref" href="Hi.Common.XmlUtils.GenMode.html">GenMode</a></dt>
<dd><p>The generation mode to use</p>
</dd>
<dt><code>res</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd><p>Additional parameters for generation</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>The generated object of type T, or null if generation fails</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>The type of object to generate</p>
</dd>
</dl>
<a id="Hi_Common_XmlUtils_XFactory_GenByChild_" data-uid="Hi.Common.XmlUtils.XFactory.GenByChild*"></a>
<h3 id="Hi_Common_XmlUtils_XFactory_GenByChild__1_System_Xml_Linq_XElement_System_String_System_String__Hi_Common_XmlUtils_GenMode_System_Object___" data-uid="Hi.Common.XmlUtils.XFactory.GenByChild``1(System.Xml.Linq.XElement,System.String,System.String@,Hi.Common.XmlUtils.GenMode,System.Object[])">
GenByChild&lt;T&gt;(XElement, string, out string, GenMode, params object[])
</h3>
<div class="markdown level1 summary"><p>Generates an object of type T from a child element of the provided XML element.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static T GenByChild&lt;T&gt;(XElement src, string baseDirectory, out string relFile, GenMode genMode, params object[] res) where T : class</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>src</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.xml.linq.xelement">XElement</a></dt>
<dd><p>The parent XML element containing the child to process</p>
</dd>
<dt><code>baseDirectory</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The base directory for resolving paths</p>
</dd>
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Output parameter that receives the relative file path if src is a file reference, or null otherwise</p>
</dd>
<dt><code>genMode</code> <a class="xref" href="Hi.Common.XmlUtils.GenMode.html">GenMode</a></dt>
<dd><p>The generation mode to use</p>
@@ -413,8 +468,8 @@ Class XFactory
<a id="Hi_Common_XmlUtils_XFactory_GenXmlSourceAndFile_" data-uid="Hi.Common.XmlUtils.XFactory.GenXmlSourceAndFile*"></a>
<h3 id="Hi_Common_XmlUtils_XFactory_GenXmlSourceAndFile__1_System_Xml_Linq_XElement_System_String_Hi_Common_XmlUtils_SetFileDelegate_Hi_Common_XmlUtils_GenMode_System_Object___" data-uid="Hi.Common.XmlUtils.XFactory.GenXmlSourceAndFile``1(System.Xml.Linq.XElement,System.String,Hi.Common.XmlUtils.SetFileDelegate,Hi.Common.XmlUtils.GenMode,System.Object[])">
GenXmlSourceAndFile&lt;T&gt;(XElement, string, SetFileDelegate, GenMode, params object[])
<h3 id="Hi_Common_XmlUtils_XFactory_GenXmlSourceAndFile__1_System_Xml_Linq_XElement_System_String_Hi_Common_XmlUtils_GenMode_System_Object___" data-uid="Hi.Common.XmlUtils.XFactory.GenXmlSourceAndFile``1(System.Xml.Linq.XElement,System.String,Hi.Common.XmlUtils.GenMode,System.Object[])">
GenXmlSourceAndFile&lt;T&gt;(XElement, string, GenMode, params object[])
</h3>
@@ -423,7 +478,7 @@ Class XFactory
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static XmlSourceAndFile&lt;T&gt; GenXmlSourceAndFile&lt;T&gt;(XElement src, string baseDirectory, SetFileDelegate setFileAction, GenMode genMode, params object[] res) where T : class, IMakeXmlSource</code></pre>
<pre><code class="lang-csharp hljs">public static XmlSourceAndFile&lt;T&gt; GenXmlSourceAndFile&lt;T&gt;(XElement src, string baseDirectory, GenMode genMode, params object[] res) where T : class, IMakeXmlSource</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -433,9 +488,6 @@ Class XFactory
</dd>
<dt><code>baseDirectory</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The base directory for resolving paths</p>
</dd>
<dt><code>setFileAction</code> <a class="xref" href="Hi.Common.XmlUtils.SetFileDelegate.html">SetFileDelegate</a></dt>
<dd><p>Action to execute when setting the file path</p>
</dd>
<dt><code>genMode</code> <a class="xref" href="Hi.Common.XmlUtils.GenMode.html">GenMode</a></dt>
<dd><p>The generation mode to use</p>
@@ -470,17 +522,18 @@ Class XFactory
<a id="Hi_Common_XmlUtils_XFactory_Gen_" data-uid="Hi.Common.XmlUtils.XFactory.Gen*"></a>
<h3 id="Hi_Common_XmlUtils_XFactory_Gen__1_System_Xml_Linq_XElement_System_String_Hi_Common_XmlUtils_SetFileDelegate_Hi_Common_XmlUtils_GenMode_System_Object___" data-uid="Hi.Common.XmlUtils.XFactory.Gen``1(System.Xml.Linq.XElement,System.String,Hi.Common.XmlUtils.SetFileDelegate,Hi.Common.XmlUtils.GenMode,System.Object[])">
Gen&lt;T&gt;(XElement, string, SetFileDelegate, GenMode, params object[])
<h3 id="Hi_Common_XmlUtils_XFactory_Gen__1_System_Xml_Linq_XElement_System_String_Hi_Common_XmlUtils_GenMode_System_Object___" data-uid="Hi.Common.XmlUtils.XFactory.Gen``1(System.Xml.Linq.XElement,System.String,Hi.Common.XmlUtils.GenMode,System.Object[])">
Gen&lt;T&gt;(XElement, string, GenMode, params object[])
</h3>
<div class="markdown level1 summary"><p>Generates an object of type T from an XML element with specified generation mode.</p>
<div class="markdown level1 summary"><p>Generates an object of type T from an XML element with specified generation mode.
This overload discards the relative file path output.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static T Gen&lt;T&gt;(XElement src, string baseDirectory, SetFileDelegate setFileAction, GenMode mode, params object[] res) where T : class</code></pre>
<pre><code class="lang-csharp hljs">public static T Gen&lt;T&gt;(XElement src, string baseDirectory, GenMode mode, params object[] res) where T : class</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -491,8 +544,62 @@ Class XFactory
<dt><code>baseDirectory</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The base directory for resolving paths</p>
</dd>
<dt><code>setFileAction</code> <a class="xref" href="Hi.Common.XmlUtils.SetFileDelegate.html">SetFileDelegate</a></dt>
<dd><p>Action to execute when setting the file path</p>
<dt><code>mode</code> <a class="xref" href="Hi.Common.XmlUtils.GenMode.html">GenMode</a></dt>
<dd><p>The generation mode to use</p>
</dd>
<dt><code>res</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd><p>Additional parameters for generation</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>The generated object of type T, or null if generation fails</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>The type of object to generate</p>
</dd>
</dl>
<a id="Hi_Common_XmlUtils_XFactory_Gen_" data-uid="Hi.Common.XmlUtils.XFactory.Gen*"></a>
<h3 id="Hi_Common_XmlUtils_XFactory_Gen__1_System_Xml_Linq_XElement_System_String_System_String__Hi_Common_XmlUtils_GenMode_System_Object___" data-uid="Hi.Common.XmlUtils.XFactory.Gen``1(System.Xml.Linq.XElement,System.String,System.String@,Hi.Common.XmlUtils.GenMode,System.Object[])">
Gen&lt;T&gt;(XElement, string, out string, GenMode, params object[])
</h3>
<div class="markdown level1 summary"><p>Generates an object of type T from an XML element with specified generation mode.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static T Gen&lt;T&gt;(XElement src, string baseDirectory, out string relFile, GenMode mode, params object[] res) where T : class</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>src</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.xml.linq.xelement">XElement</a></dt>
<dd><p>The source XML element</p>
</dd>
<dt><code>baseDirectory</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The base directory for resolving paths</p>
</dd>
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Output parameter that receives the relative file path if src is a file reference, or null otherwise</p>
</dd>
<dt><code>mode</code> <a class="xref" href="Hi.Common.XmlUtils.GenMode.html">GenMode</a></dt>
<dd><p>The generation mode to use</p>
@@ -413,6 +413,88 @@ Class SolverUtil
<a id="Hi_Geom_Solvers_SolverUtil_GetCosSinTermRotationMat4d_" data-uid="Hi.Geom.Solvers.SolverUtil.GetCosSinTermRotationMat4d*"></a>
<h3 id="Hi_Geom_Solvers_SolverUtil_GetCosSinTermRotationMat4d_Hi_Geom_Vec3d_System_Double_System_Double_" data-uid="Hi.Geom.Solvers.SolverUtil.GetCosSinTermRotationMat4d(Hi.Geom.Vec3d,System.Double,System.Double)">
GetCosSinTermRotationMat4d(Vec3d, double, double)
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Mat4d GetCosSinTermRotationMat4d(Vec3d axis, double cos, double sin)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>axis</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd></dd>
<dt><code>cos</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
<dt><code>sin</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Mat4d.html">Mat4d</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Solvers_SolverUtil_GetCosSinTermRotationMat4d_" data-uid="Hi.Geom.Solvers.SolverUtil.GetCosSinTermRotationMat4d*"></a>
<h3 id="Hi_Geom_Solvers_SolverUtil_GetCosSinTermRotationMat4d_Hi_Geom_Vec3d_System_Double_System_Double_Hi_Geom_Vec3d_" data-uid="Hi.Geom.Solvers.SolverUtil.GetCosSinTermRotationMat4d(Hi.Geom.Vec3d,System.Double,System.Double,Hi.Geom.Vec3d)">
GetCosSinTermRotationMat4d(Vec3d, double, double, Vec3d)
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Mat4d GetCosSinTermRotationMat4d(Vec3d axis, double cos, double sin, Vec3d pivot)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>axis</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd></dd>
<dt><code>cos</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
<dt><code>sin</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
<dt><code>pivot</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Mat4d.html">Mat4d</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Solvers_SolverUtil_GetJacobMat_" data-uid="Hi.Geom.Solvers.SolverUtil.GetJacobMat*"></a>
<h3 id="Hi_Geom_Solvers_SolverUtil_GetJacobMat_System_Func_System_Double___System_Double____System_Double___System_Double___System_Int32_" data-uid="Hi.Geom.Solvers.SolverUtil.GetJacobMat(System.Func{System.Double[],System.Double[]},System.Double[],System.Double[],System.Int32)">
@@ -225,7 +225,8 @@ Host class for HiNC functionality that provides project management, path resolut
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.HiNcKits.HiNcHost.html">HiNcHost</a> class.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -235,9 +236,11 @@ Host class for HiNC functionality that provides project management, path resolut
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>adminDirectory</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The admin directory path.</p>
</dd>
<dt><code>mongodbPort</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
<dd><p>The MongoDB port number (kept for backward compatibility).</p>
</dd>
<dt><code>displayEngineFontFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The default value will be alternative if the value is null.</p>
</dd>
@@ -452,6 +455,38 @@ Host class for HiNC functionality that provides project management, path resolut
<a id="Hi_HiNcKits_HiNcHost_IdentityStorage_" data-uid="Hi.HiNcKits.HiNcHost.IdentityStorage*"></a>
<h3 id="Hi_HiNcKits_HiNcHost_IdentityStorage" data-uid="Hi.HiNcKits.HiNcHost.IdentityStorage">
IdentityStorage
</h3>
<div class="markdown level1 summary"><p>Gets the SQLite identity storage instance (for user authentication).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public SqliteIdentityStorage IdentityStorage { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteIdentityStorage.html">SqliteIdentityStorage</a></dt>
<dd></dd>
</dl>
<a id="Hi_HiNcKits_HiNcHost_LocalProjectService_" data-uid="Hi.HiNcKits.HiNcHost.LocalProjectService*"></a>
<h3 id="Hi_HiNcKits_HiNcHost_LocalProjectService" data-uid="Hi.HiNcKits.HiNcHost.LocalProjectService">
@@ -516,38 +551,6 @@ Host class for HiNC functionality that provides project management, path resolut
<a id="Hi_HiNcKits_HiNcHost_MongoServer_" data-uid="Hi.HiNcKits.HiNcHost.MongoServer*"></a>
<h3 id="Hi_HiNcKits_HiNcHost_MongoServer" data-uid="Hi.HiNcKits.HiNcHost.MongoServer">
MongoServer
</h3>
<div class="markdown level1 summary"><p>Gets the main MongoDB runner.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public IMongoRunner MongoServer { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.MongoUtils.IMongoRunner.html">IMongoRunner</a></dt>
<dd></dd>
</dl>
<a id="Hi_HiNcKits_HiNcHost_ProjectDirectory_" data-uid="Hi.HiNcKits.HiNcHost.ProjectDirectory*"></a>
<h3 id="Hi_HiNcKits_HiNcHost_ProjectDirectory" data-uid="Hi.HiNcKits.HiNcHost.ProjectDirectory">
@@ -836,6 +839,38 @@ Host class for HiNC functionality that provides project management, path resolut
<a id="Hi_HiNcKits_HiNcHost_StepStorage_" data-uid="Hi.HiNcKits.HiNcHost.StepStorage*"></a>
<h3 id="Hi_HiNcKits_HiNcHost_StepStorage" data-uid="Hi.HiNcKits.HiNcHost.StepStorage">
StepStorage
</h3>
<div class="markdown level1 summary"><p>Gets the SQLite step storage instance (for milling step data).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public SqliteStepStorage StepStorage { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteStepStorage.html">SqliteStepStorage</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
@@ -259,26 +259,23 @@ Class LocalApp
<a id="Hi_HiNcKits_LocalApp_AppBegin_" data-uid="Hi.HiNcKits.LocalApp.AppBegin*"></a>
<h3 id="Hi_HiNcKits_LocalApp_AppBegin_System_Int32_System_String_" data-uid="Hi.HiNcKits.LocalApp.AppBegin(System.Int32,System.String)">
AppBegin(int, string)
<h3 id="Hi_HiNcKits_LocalApp_AppBegin_System_String_" data-uid="Hi.HiNcKits.LocalApp.AppBegin(System.String)">
AppBegin(string)
</h3>
<div class="markdown level1 summary"><p>Initializes the application with the specified database port and cache path.</p>
<div class="markdown level1 summary"><p>Initializes the application with the specified cache database path.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void AppBegin(int dbPort, string cacheDbPath)</code></pre>
<pre><code class="lang-csharp hljs">public static void AppBegin(string cacheDbPath = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>dbPort</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The MongoDB port number.</p>
</dd>
<dt><code>cacheDbPath</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The path to the cache database.</p>
<dd><p>The path to the SQLite cache database. If null, uses default path.</p>
</dd>
</dl>
@@ -293,10 +290,10 @@ Class LocalApp
<a id="Hi_HiNcKits_LocalApp_AppBegin_" data-uid="Hi.HiNcKits.LocalApp.AppBegin*"></a>
<a id="Hi_HiNcKits_LocalApp_AppBeginWithConfigFile_" data-uid="Hi.HiNcKits.LocalApp.AppBeginWithConfigFile*"></a>
<h3 id="Hi_HiNcKits_LocalApp_AppBegin_System_String_" data-uid="Hi.HiNcKits.LocalApp.AppBegin(System.String)">
AppBegin(string)
<h3 id="Hi_HiNcKits_LocalApp_AppBeginWithConfigFile_System_String_" data-uid="Hi.HiNcKits.LocalApp.AppBeginWithConfigFile(System.String)">
AppBeginWithConfigFile(string)
</h3>
@@ -305,7 +302,7 @@ Class LocalApp
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void AppBegin(string hostConfigPath = null)</code></pre>
<pre><code class="lang-csharp hljs">public static void AppBeginWithConfigFile(string hostConfigPath = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -252,7 +252,7 @@ Class LocalAppConfig
</h3>
<div class="markdown level1 summary"><p>Gets or sets the cache database path.</p>
<div class="markdown level1 summary"><p>Gets or sets the cache database path (SQLite database).</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -277,38 +277,6 @@ Class LocalAppConfig
<a id="Hi_HiNcKits_LocalAppConfig_MongoPort_" data-uid="Hi.HiNcKits.LocalAppConfig.MongoPort*"></a>
<h3 id="Hi_HiNcKits_LocalAppConfig_MongoPort" data-uid="Hi.HiNcKits.LocalAppConfig.MongoPort">
MongoPort
</h3>
<div class="markdown level1 summary"><p>Gets or sets the MongoDB port number.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int MongoPort { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<a id="Hi_HiNcKits_LocalAppConfig_XName_" data-uid="Hi.HiNcKits.LocalAppConfig.XName*"></a>
<h3 id="Hi_HiNcKits_LocalAppConfig_XName" data-uid="Hi.HiNcKits.LocalAppConfig.XName">
@@ -123,11 +123,6 @@ This cutter type supports complex geometries for both the noble (upper) part and
<dl class="jumplist">
<dt><a class="xref" href="Hi.Machining.MatRelationUtil.html">MatRelationUtil</a></dt>
<dd><p>Utility methods for determining relationships between matrices.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Machining.MotionUtil.html">MotionUtil</a></dt>
<dd><p>Cutter location utility.</p>
</dd>
</dl>
<dl class="jumplist">
@@ -186,8 +186,8 @@ Class MachiningActRunner
<a id="Hi_MachiningProcs_MachiningActRunner__ctor_" data-uid="Hi.MachiningProcs.MachiningActRunner.#ctor*"></a>
<h3 id="Hi_MachiningProcs_MachiningActRunner__ctor_Hi_MachiningProcs_SessionMessageHost_MongoDB_Driver_MongoClient_System_Func_Hi_Machining_MachiningToolHouse__System_Func_Hi_Machining_MachiningEquipmentUtils_MachiningEquipment__MongoDB_Driver_IMongoCollection_Hi_MillingSteps_MillingStepLuggage__MongoDB_Driver_IMongoCollection_Hi_Common_Slice__System_Action_Hi_ScriptApiUtils_ICsScriptApi_Hi_MachiningProcs_MachiningActRunnerConfig_" data-uid="Hi.MachiningProcs.MachiningActRunner.#ctor(Hi.MachiningProcs.SessionMessageHost,MongoDB.Driver.MongoClient,System.Func{Hi.Machining.MachiningToolHouse},System.Func{Hi.Machining.MachiningEquipmentUtils.MachiningEquipment},MongoDB.Driver.IMongoCollection{Hi.MillingSteps.MillingStepLuggage},MongoDB.Driver.IMongoCollection{Hi.Common.Slice},System.Action,Hi.ScriptApiUtils.ICsScriptApi,Hi.MachiningProcs.MachiningActRunnerConfig)">
MachiningActRunner(SessionMessageHost, MongoClient, Func&lt;MachiningToolHouse&gt;, Func&lt;MachiningEquipment&gt;, IMongoCollection&lt;MillingStepLuggage&gt;, IMongoCollection&lt;Slice&gt;, Action, ICsScriptApi, MachiningActRunnerConfig)
<h3 id="Hi_MachiningProcs_MachiningActRunner__ctor_Hi_MachiningProcs_SessionMessageHost_System_Action_System_Collections_Generic_IEnumerable_Hi_MillingSteps_MillingStepLuggage___System_Func_Hi_Machining_MachiningToolHouse__System_Func_Hi_Machining_MachiningEquipmentUtils_MachiningEquipment__System_Action_Hi_ScriptApiUtils_ICsScriptApi_Hi_MachiningProcs_MachiningActRunnerConfig_" data-uid="Hi.MachiningProcs.MachiningActRunner.#ctor(Hi.MachiningProcs.SessionMessageHost,System.Action{System.Collections.Generic.IEnumerable{Hi.MillingSteps.MillingStepLuggage}},System.Func{Hi.Machining.MachiningToolHouse},System.Func{Hi.Machining.MachiningEquipmentUtils.MachiningEquipment},System.Action,Hi.ScriptApiUtils.ICsScriptApi,Hi.MachiningProcs.MachiningActRunnerConfig)">
MachiningActRunner(SessionMessageHost, Action&lt;IEnumerable&lt;MillingStepLuggage&gt;&gt;, Func&lt;MachiningToolHouse&gt;, Func&lt;MachiningEquipment&gt;, Action, ICsScriptApi, MachiningActRunnerConfig)
</h3>
@@ -196,7 +196,7 @@ Class MachiningActRunner
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public MachiningActRunner(SessionMessageHost messageHost, MongoClient mongoClient, Func&lt;MachiningToolHouse&gt; machiningToolHouseGetter, Func&lt;MachiningEquipment&gt; machiningEquipmentGetter, IMongoCollection&lt;MillingStepLuggage&gt; millingStepLuggageCollection, IMongoCollection&lt;Slice&gt; substractionSplicDbCollection, Action resetMillingStepLuggageDbAction, ICsScriptApi shellApi, MachiningActRunnerConfig config = null)</code></pre>
<pre><code class="lang-csharp hljs">public MachiningActRunner(SessionMessageHost messageHost, Action&lt;IEnumerable&lt;MillingStepLuggage&gt;&gt; stepStorageWriter, Func&lt;MachiningToolHouse&gt; machiningToolHouseGetter, Func&lt;MachiningEquipment&gt; machiningEquipmentGetter, Action resetMillingStepLuggageDbAction, ICsScriptApi shellApi, MachiningActRunnerConfig config = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -204,20 +204,14 @@ Class MachiningActRunner
<dt><code>messageHost</code> <a class="xref" href="Hi.MachiningProcs.SessionMessageHost.html">SessionMessageHost</a></dt>
<dd><p>The milling message host.</p>
</dd>
<dt><code>mongoClient</code> <span class="xref">MongoClient</span></dt>
<dd><p>The MongoDB client.</p>
<dt><code>stepStorageWriter</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.action-1">Action</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;<a class="xref" href="Hi.MillingSteps.MillingStepLuggage.html">MillingStepLuggage</a>&gt;&gt;</dt>
<dd><p>The action to write milling step luggages to storage.</p>
</dd>
<dt><code>machiningToolHouseGetter</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-1">Func</a>&lt;<a class="xref" href="Hi.Machining.MachiningToolHouse.html">MachiningToolHouse</a>&gt;</dt>
<dd><p>The getter function for the machining tool house.</p>
</dd>
<dt><code>machiningEquipmentGetter</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-1">Func</a>&lt;<a class="xref" href="Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html">MachiningEquipment</a>&gt;</dt>
<dd><p>The getter function for the machining equipment.</p>
</dd>
<dt><code>millingStepLuggageCollection</code> <span class="xref">IMongoCollection</span>&lt;<a class="xref" href="Hi.MillingSteps.MillingStepLuggage.html">MillingStepLuggage</a>&gt;</dt>
<dd><p>The MongoDB collection for milling step luggage.</p>
</dd>
<dt><code>substractionSplicDbCollection</code> <span class="xref">IMongoCollection</span>&lt;<a class="xref" href="Hi.Common.Slice.html">Slice</a>&gt;</dt>
<dd><p>The MongoDB collection for subtraction slices.</p>
</dd>
<dt><code>resetMillingStepLuggageDbAction</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.action">Action</a></dt>
<dd><p>Action to reset the milling step luggage database.</p>
@@ -1056,7 +1056,7 @@ If <code class="paramref">displayees</code> is null, do nothing.</p>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;DirectionBranchPack&gt; GetBranchChain(IGetAnchor head, IGetAnchor tail)</code></pre>
<pre><code class="lang-csharp hljs">public List&lt;DirectionBranchEntry&gt; GetBranchChain(IGetAnchor head, IGetAnchor tail)</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -1071,7 +1071,7 @@ If <code class="paramref">displayees</code> is null, do nothing.</p>
<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>&lt;<a class="xref" href="Hi.Mech.Topo.DirectionBranchPack.html">DirectionBranchPack</a>&gt;</dt>
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.Mech.Topo.DirectionBranchEntry.html">DirectionBranchEntry</a>&gt;</dt>
<dd><p>A list of direction-branch pairs representing the chain, or an empty list if no chain exists.</p>
</dd>
</dl>
@@ -2,9 +2,9 @@
<html>
<head>
<meta charset="utf-8">
<title>Class DirectionBranchPack | HiAPI-C# 2025 </title>
<title>Class DirectionBranchEntry | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class DirectionBranchPack | HiAPI-C# 2025 ">
<meta name="title" content="Class DirectionBranchEntry | HiAPI-C# 2025 ">
<meta name="description" content="A data pack contains and a boolean .">
<link rel="icon" href="../img/HiAPI.favicon.ico">
@@ -84,12 +84,12 @@
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Mech.Topo.DirectionBranchPack">
<article data-uid="Hi.Mech.Topo.DirectionBranchEntry">
<h1 id="Hi_Mech_Topo_DirectionBranchPack" data-uid="Hi.Mech.Topo.DirectionBranchPack" class="text-break">
Class DirectionBranchPack
<h1 id="Hi_Mech_Topo_DirectionBranchEntry" data-uid="Hi.Mech.Topo.DirectionBranchEntry" class="text-break">
Class DirectionBranchEntry
</h1>
<div class="facts text-secondary">
@@ -97,12 +97,12 @@ Class DirectionBranchPack
<dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
</div>
<div class="markdown summary"><p>A data pack contains <a class="xref" href="Hi.Mech.Topo.Branch.html">Branch</a> and a boolean <a class="xref" href="Hi.Mech.Topo.DirectionBranchPack.html#Hi_Mech_Topo_DirectionBranchPack_isForward">isForward</a>.</p>
<div class="markdown summary"><p>A data pack contains <a class="xref" href="Hi.Mech.Topo.Branch.html">Branch</a> and a boolean <a class="xref" href="Hi.Mech.Topo.DirectionBranchEntry.html#Hi_Mech_Topo_DirectionBranchEntry_isForward">isForward</a>.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class DirectionBranchPack</code></pre>
<pre><code class="lang-csharp hljs">public class DirectionBranchEntry</code></pre>
</div>
@@ -112,7 +112,7 @@ Class DirectionBranchPack
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">DirectionBranchPack</span></div>
<div><span class="xref">DirectionBranchEntry</span></div>
</dd>
</dl>
@@ -175,10 +175,10 @@ Class DirectionBranchPack
</h2>
<a id="Hi_Mech_Topo_DirectionBranchPack__ctor_" data-uid="Hi.Mech.Topo.DirectionBranchPack.#ctor*"></a>
<a id="Hi_Mech_Topo_DirectionBranchEntry__ctor_" data-uid="Hi.Mech.Topo.DirectionBranchEntry.#ctor*"></a>
<h3 id="Hi_Mech_Topo_DirectionBranchPack__ctor_System_Boolean_Hi_Mech_Topo_Branch_" data-uid="Hi.Mech.Topo.DirectionBranchPack.#ctor(System.Boolean,Hi.Mech.Topo.Branch)">
DirectionBranchPack(bool, Branch)
<h3 id="Hi_Mech_Topo_DirectionBranchEntry__ctor_System_Boolean_Hi_Mech_Topo_Branch_" data-uid="Hi.Mech.Topo.DirectionBranchEntry.#ctor(System.Boolean,Hi.Mech.Topo.Branch)">
DirectionBranchEntry(bool, Branch)
</h3>
@@ -187,7 +187,7 @@ Class DirectionBranchPack
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public DirectionBranchPack(bool isForward, Branch brn)</code></pre>
<pre><code class="lang-csharp hljs">public DirectionBranchEntry(bool isForward, Branch brn)</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -216,7 +216,7 @@ Class DirectionBranchPack
<h3 id="Hi_Mech_Topo_DirectionBranchPack_brn" data-uid="Hi.Mech.Topo.DirectionBranchPack.brn">
<h3 id="Hi_Mech_Topo_DirectionBranchEntry_brn" data-uid="Hi.Mech.Topo.DirectionBranchEntry.brn">
brn
</h3>
@@ -247,7 +247,7 @@ Class DirectionBranchPack
<h3 id="Hi_Mech_Topo_DirectionBranchPack_isForward" data-uid="Hi.Mech.Topo.DirectionBranchPack.isForward">
<h3 id="Hi_Mech_Topo_DirectionBranchEntry_isForward" data-uid="Hi.Mech.Topo.DirectionBranchEntry.isForward">
isForward
</h3>
@@ -281,9 +281,9 @@ Class DirectionBranchPack
</h2>
<a id="Hi_Mech_Topo_DirectionBranchPack_ToString_" data-uid="Hi.Mech.Topo.DirectionBranchPack.ToString*"></a>
<a id="Hi_Mech_Topo_DirectionBranchEntry_ToString_" data-uid="Hi.Mech.Topo.DirectionBranchEntry.ToString*"></a>
<h3 id="Hi_Mech_Topo_DirectionBranchPack_ToString" data-uid="Hi.Mech.Topo.DirectionBranchPack.ToString">
<h3 id="Hi_Mech_Topo_DirectionBranchEntry_ToString" data-uid="Hi.Mech.Topo.DirectionBranchEntry.ToString">
ToString()
</h3>
@@ -155,8 +155,8 @@ Class DirectionBranchPackUtil
<a id="Hi_Mech_Topo_DirectionBranchPackUtil_GetMat4d_" data-uid="Hi.Mech.Topo.DirectionBranchPackUtil.GetMat4d*"></a>
<h3 id="Hi_Mech_Topo_DirectionBranchPackUtil_GetMat4d_System_Collections_Generic_IEnumerable_Hi_Mech_Topo_DirectionBranchPack__" data-uid="Hi.Mech.Topo.DirectionBranchPackUtil.GetMat4d(System.Collections.Generic.IEnumerable{Hi.Mech.Topo.DirectionBranchPack})">
GetMat4d(IEnumerable&lt;DirectionBranchPack&gt;)
<h3 id="Hi_Mech_Topo_DirectionBranchPackUtil_GetMat4d_System_Collections_Generic_IEnumerable_Hi_Mech_Topo_DirectionBranchEntry__" data-uid="Hi.Mech.Topo.DirectionBranchPackUtil.GetMat4d(System.Collections.Generic.IEnumerable{Hi.Mech.Topo.DirectionBranchEntry})">
GetMat4d(IEnumerable&lt;DirectionBranchEntry&gt;)
</h3>
@@ -167,12 +167,12 @@ Where the number in parentheses is the index number of the <code class="paramref
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Mat4d GetMat4d(this IEnumerable&lt;DirectionBranchPack&gt; chain)</code></pre>
<pre><code class="lang-csharp hljs">public static Mat4d GetMat4d(this IEnumerable&lt;DirectionBranchEntry&gt; chain)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>chain</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;<a class="xref" href="Hi.Mech.Topo.DirectionBranchPack.html">DirectionBranchPack</a>&gt;</dt>
<dt><code>chain</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;<a class="xref" href="Hi.Mech.Topo.DirectionBranchEntry.html">DirectionBranchEntry</a>&gt;</dt>
<dd><p>chain</p>
</dd>
</dl>
@@ -131,8 +131,8 @@ in form of <a class="xref" href="Hi.Disp.Flag.CoordinateDrawing.html">Coordinate
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Mech.Topo.DirectionBranchPack.html">DirectionBranchPack</a></dt>
<dd><p>A data pack contains <a class="xref" href="Hi.Mech.Topo.Branch.html">Branch</a> and a boolean <a class="xref" href="Hi.Mech.Topo.DirectionBranchPack.html#Hi_Mech_Topo_DirectionBranchPack_isForward">isForward</a>.</p>
<dt><a class="xref" href="Hi.Mech.Topo.DirectionBranchEntry.html">DirectionBranchEntry</a></dt>
<dd><p>A data pack contains <a class="xref" href="Hi.Mech.Topo.Branch.html">Branch</a> and a boolean <a class="xref" href="Hi.Mech.Topo.DirectionBranchEntry.html#Hi_Mech_Topo_DirectionBranchEntry_isForward">isForward</a>.</p>
</dd>
</dl>
<dl class="jumplist">
@@ -84,16 +84,16 @@
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Machining.MotionUtil">
<article data-uid="Hi.Motion.MotionUtil">
<h1 id="Hi_Machining_MotionUtil" data-uid="Hi.Machining.MotionUtil" class="text-break">
<h1 id="Hi_Motion_MotionUtil" data-uid="Hi.Motion.MotionUtil" class="text-break">
Class MotionUtil
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Machining.html">Machining</a></dd></dl>
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Motion.html">Motion</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
</div>
@@ -153,9 +153,9 @@ Class MotionUtil
</h2>
<a id="Hi_Machining_MotionUtil_GetLinearRatio_" data-uid="Hi.Machining.MotionUtil.GetLinearRatio*"></a>
<a id="Hi_Motion_MotionUtil_GetLinearRatio_" data-uid="Hi.Motion.MotionUtil.GetLinearRatio*"></a>
<h3 id="Hi_Machining_MotionUtil_GetLinearRatio_Hi_Geom_Vec3d_Hi_Geom_Vec3d_Hi_Geom_Vec3d_" data-uid="Hi.Machining.MotionUtil.GetLinearRatio(Hi.Geom.Vec3d,Hi.Geom.Vec3d,Hi.Geom.Vec3d)">
<h3 id="Hi_Motion_MotionUtil_GetLinearRatio_Hi_Geom_Vec3d_Hi_Geom_Vec3d_Hi_Geom_Vec3d_" data-uid="Hi.Motion.MotionUtil.GetLinearRatio(Hi.Geom.Vec3d,Hi.Geom.Vec3d,Hi.Geom.Vec3d)">
GetLinearRatio(Vec3d, Vec3d, Vec3d)
</h3>
@@ -195,9 +195,9 @@ Theta is the clamping angle between (v1-v0) and (v2-v1).</p>
<a id="Hi_Machining_MotionUtil_InterpolateClMat_" data-uid="Hi.Machining.MotionUtil.InterpolateClMat*"></a>
<a id="Hi_Motion_MotionUtil_InterpolateClMat_" data-uid="Hi.Motion.MotionUtil.InterpolateClMat*"></a>
<h3 id="Hi_Machining_MotionUtil_InterpolateClMat_Hi_Geom_Mat4d_Hi_Geom_DVec3d_" data-uid="Hi.Machining.MotionUtil.InterpolateClMat(Hi.Geom.Mat4d,Hi.Geom.DVec3d)">
<h3 id="Hi_Motion_MotionUtil_InterpolateClMat_Hi_Geom_Mat4d_Hi_Geom_DVec3d_" data-uid="Hi.Motion.MotionUtil.InterpolateClMat(Hi.Geom.Mat4d,Hi.Geom.DVec3d)">
InterpolateClMat(Mat4d, DVec3d)
</h3>
@@ -236,10 +236,10 @@ Theta is the clamping angle between (v1-v0) and (v2-v1).</p>
<a id="Hi_Machining_MotionUtil_InterpolateClRotMatByClAbc_" data-uid="Hi.Machining.MotionUtil.InterpolateClRotMatByClAbc*"></a>
<a id="Hi_Motion_MotionUtil_InterpolateClRotMatByClNormal_" data-uid="Hi.Motion.MotionUtil.InterpolateClRotMatByClNormal*"></a>
<h3 id="Hi_Machining_MotionUtil_InterpolateClRotMatByClAbc_Hi_Geom_Mat4d_Hi_Geom_Vec3d_" data-uid="Hi.Machining.MotionUtil.InterpolateClRotMatByClAbc(Hi.Geom.Mat4d,Hi.Geom.Vec3d)">
InterpolateClRotMatByClAbc(Mat4d, Vec3d)
<h3 id="Hi_Motion_MotionUtil_InterpolateClRotMatByClNormal_Hi_Geom_Mat4d_Hi_Geom_Vec3d_" data-uid="Hi.Motion.MotionUtil.InterpolateClRotMatByClNormal(Hi.Geom.Mat4d,Hi.Geom.Vec3d)">
InterpolateClRotMatByClNormal(Mat4d, Vec3d)
</h3>
@@ -248,7 +248,7 @@ Theta is the clamping angle between (v1-v0) and (v2-v1).</p>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static IEnumerable&lt;Mat4d&gt; InterpolateClRotMatByClAbc(Mat4d clMat0, Vec3d targetClAbc)</code></pre>
<pre><code class="lang-csharp hljs">public static IEnumerable&lt;Mat4d&gt; InterpolateClRotMatByClNormal(Mat4d clMat0, Vec3d targetClNormal)</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -256,7 +256,7 @@ Theta is the clamping angle between (v1-v0) and (v2-v1).</p>
<dt><code>clMat0</code> <a class="xref" href="Hi.Geom.Mat4d.html">Mat4d</a></dt>
<dd><p>current cutter location mat, at begining position</p>
</dd>
<dt><code>targetClAbc</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dt><code>targetClNormal</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd><p>The target cl.n, at end position</p>
</dd>
</dl>
@@ -277,9 +277,9 @@ Theta is the clamping angle between (v1-v0) and (v2-v1).</p>
<a id="Hi_Machining_MotionUtil_Interpolation_" data-uid="Hi.Machining.MotionUtil.Interpolation*"></a>
<a id="Hi_Motion_MotionUtil_Interpolation_" data-uid="Hi.Motion.MotionUtil.Interpolation*"></a>
<h3 id="Hi_Machining_MotionUtil_Interpolation_Hi_Geom_Mat4d_Hi_Geom_Mat4d_System_Double_" data-uid="Hi.Machining.MotionUtil.Interpolation(Hi.Geom.Mat4d,Hi.Geom.Mat4d,System.Double)">
<h3 id="Hi_Motion_MotionUtil_Interpolation_Hi_Geom_Mat4d_Hi_Geom_Mat4d_System_Double_" data-uid="Hi.Motion.MotionUtil.Interpolation(Hi.Geom.Mat4d,Hi.Geom.Mat4d,System.Double)">
Interpolation(Mat4d, Mat4d, double)
</h3>
@@ -322,9 +322,9 @@ Theta is the clamping angle between (v1-v0) and (v2-v1).</p>
<a id="Hi_Machining_MotionUtil_IsMcLinear_" data-uid="Hi.Machining.MotionUtil.IsMcLinear*"></a>
<a id="Hi_Motion_MotionUtil_IsMcLinear_" data-uid="Hi.Motion.MotionUtil.IsMcLinear*"></a>
<h3 id="Hi_Machining_MotionUtil_IsMcLinear_Hi_Geom_DVec3d_Hi_Geom_DVec3d_Hi_Geom_DVec3d_System_Double_" data-uid="Hi.Machining.MotionUtil.IsMcLinear(Hi.Geom.DVec3d,Hi.Geom.DVec3d,Hi.Geom.DVec3d,System.Double)">
<h3 id="Hi_Motion_MotionUtil_IsMcLinear_Hi_Geom_DVec3d_Hi_Geom_DVec3d_Hi_Geom_DVec3d_System_Double_" data-uid="Hi.Motion.MotionUtil.IsMcLinear(Hi.Geom.DVec3d,Hi.Geom.DVec3d,Hi.Geom.DVec3d,System.Double)">
IsMcLinear(DVec3d, DVec3d, DVec3d, double)
</h3>
@@ -2,9 +2,9 @@
<html>
<head>
<meta charset="utf-8">
<title>Namespace Hi.MongoUtils | HiAPI-C# 2025 </title>
<title>Namespace Hi.Motion | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Namespace Hi.MongoUtils | HiAPI-C# 2025 ">
<meta name="title" content="Namespace Hi.Motion | HiAPI-C# 2025 ">
<link rel="icon" href="../img/HiAPI.favicon.ico">
@@ -84,9 +84,9 @@
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.MongoUtils">
<article data-uid="Hi.Motion">
<h1 id="Hi_MongoUtils" data-uid="Hi.MongoUtils" class="text-break">Namespace Hi.MongoUtils</h1>
<h1 id="Hi_Motion" data-uid="Hi.Motion" class="text-break">Namespace Hi.Motion</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>
<div class="markdown level0 remarks"></div>
@@ -95,21 +95,8 @@
Classes
</h3>
<dl class="jumplist">
<dt><a class="xref" href="Hi.MongoUtils.MongoRunnerOptions.html">MongoRunnerOptions</a></dt>
<dd><p>Options for configuring a MongoDB runner instance.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.MongoUtils.MongoServer.html">MongoServer</a></dt>
<dd><p>A MongoDB runner that manages MongoDB processes.</p>
</dd>
</dl>
<h3 id="interfaces">
Interfaces
</h3>
<dl class="jumplist">
<dt><a class="xref" href="Hi.MongoUtils.IMongoRunner.html">IMongoRunner</a></dt>
<dd><p>Interface for MongoDB runner implementations that manage MongoDB instances.</p>
<dt><a class="xref" href="Hi.Motion.MotionUtil.html">MotionUtil</a></dt>
<dd><p>Cutter location utility.</p>
</dd>
</dl>
@@ -206,7 +206,7 @@ This class handles complex tool movements with both position and orientation con
</h3>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.Numerical.Acts.ActMcXyzabcOrientableLinearContour.html">ActMcXyzabcOrientableLinearContour</a> class.</p>
<div class="markdown level1 summary"><p>Initializes a new instance.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -399,7 +399,7 @@ Class HardNcEnv
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public ICoordinateConverter CoordinateConverter { get; set; }</code></pre>
<pre><code class="lang-csharp hljs">public XyzabcSolver CoordinateConverter { get; set; }</code></pre>
</div>
@@ -408,7 +408,7 @@ Class HardNcEnv
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Numerical.Xyzabc.ICoordinateConverter.html">ICoordinateConverter</a></dt>
<dt><a class="xref" href="Hi.Numerical.Xyzabc.XyzabcSolver.html">XyzabcSolver</a></dt>
<dd></dd>
</dl>
@@ -2294,54 +2294,6 @@ So be care that do not change the NC XYZ if not needed.</p>
<a id="Hi_Numerical_HardNcLine_GetProgramXyzabc_" data-uid="Hi.Numerical.HardNcLine.GetProgramXyzabc*"></a>
<h3 id="Hi_Numerical_HardNcLine_GetProgramXyzabc_Hi_Numerical_HardNcEnv_Hi_Geom_DVec3d_System_Nullable_System_Boolean___Hi_Common_Messages_IMessageHost_" data-uid="Hi.Numerical.HardNcLine.GetProgramXyzabc(Hi.Numerical.HardNcEnv,Hi.Geom.DVec3d,System.Nullable{System.Boolean}@,Hi.Common.Messages.IMessageHost)">
GetProgramXyzabc(HardNcEnv, DVec3d, out bool?, IMessageHost)
</h3>
<div class="markdown level1 summary"><p>Gets the program XYZABC coordinates from machine coordinates.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public DVec3d GetProgramXyzabc(HardNcEnv ncEnv, DVec3d mcXyzabc, out bool? isG68p2Successed, IMessageHost messageHost)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>ncEnv</code> <a class="xref" href="Hi.Numerical.HardNcEnv.html">HardNcEnv</a></dt>
<dd><p>The NC environment.</p>
</dd>
<dt><code>mcXyzabc</code> <a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dd><p>The machine coordinates.</p>
</dd>
<dt><code>isG68p2Successed</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>?</dt>
<dd><p>Output parameter indicating whether G68.2 coordinate conversion was successful.</p>
</dd>
<dt><code>messageHost</code> <a class="xref" href="Hi.Common.Messages.IMessageHost.html">IMessageHost</a></dt>
<dd><p>The message host for logging.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dd><p>The program XYZABC coordinates.</p>
</dd>
</dl>
<a id="Hi_Numerical_HardNcLine_GetSourceCommand_" data-uid="Hi.Numerical.HardNcLine.GetSourceCommand*"></a>
<h3 id="Hi_Numerical_HardNcLine_GetSourceCommand" data-uid="Hi.Numerical.HardNcLine.GetSourceCommand">
@@ -1,758 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class SimpleChainCoordinateConverter | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class SimpleChainCoordinateConverter | HiAPI-C# 2025 ">
<meta name="description" content="Provides coordinate conversion functionality for a simple chain configuration.">
<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 &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<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="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter">
<h1 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter" class="text-break">
Class SimpleChainCoordinateConverter
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Numerical.html">Numerical</a>.<a class="xref" href="Hi.Numerical.Xyzabc.html">Xyzabc</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
</div>
<div class="markdown summary"><p>Provides coordinate conversion functionality for a simple chain configuration.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class SimpleChainCoordinateConverter : ICoordinateConverter, IToXElement</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">SimpleChainCoordinateConverter</span></div>
</dd>
</dl>
<dl class="typelist implements">
<dt>Implements</dt>
<dd>
<div><a class="xref" href="Hi.Numerical.Xyzabc.ICoordinateConverter.html">ICoordinateConverter</a></div>
<div><a class="xref" href="Hi.Common.XmlUtils.IToXElement.html">IToXElement</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>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter__ctor_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.#ctor*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter__ctor" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.#ctor">
SimpleChainCoordinateConverter()
</h3>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.html">SimpleChainCoordinateConverter</a> class.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public SimpleChainCoordinateConverter()</code></pre>
</div>
<a id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter__ctor_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.#ctor*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter__ctor_System_String_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.#ctor(System.String)">
SimpleChainCoordinateConverter(string)
</h3>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.html">SimpleChainCoordinateConverter</a> class with a specified chain code.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public SimpleChainCoordinateConverter(string chainCode)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>chainCode</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The chain code defining the coordinate system.</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter__ctor_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.#ctor*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter__ctor_System_Xml_Linq_XElement_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.#ctor(System.Xml.Linq.XElement)">
SimpleChainCoordinateConverter(XElement)
</h3>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.html">SimpleChainCoordinateConverter</a> class from an XML element.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public SimpleChainCoordinateConverter(XElement src)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>src</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.xml.linq.xelement">XElement</a></dt>
<dd><p>The XML element containing the converter configuration.</p>
</dd>
</dl>
<h2 class="section" id="fields">Fields
</h2>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_XName" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.XName">
XName
</h3>
<div class="markdown level1 summary"><p>Gets the XML element name used 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="properties">Properties
</h2>
<a id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_ChainCode_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.ChainCode*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_ChainCode" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.ChainCode">
ChainCode
</h3>
<div class="markdown level1 summary"><p>ChainCode of machine tool.
Must contain at least base, tool buckle and table buckle, where the code is O,T and W, respectively.</p>
<p>The other available members:
S is spindle.
X,Y and Z are translational motion component.
A,B and C are rotational motion component.</p>
The codes should be all uppercases.
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string ChainCode { get; set; }</code></pre>
</div>
<h4 class="section">Property 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="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_AttacherPnToMc_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.AttacherPnToMc*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_AttacherPnToMc_Hi_Geom_DVec3d_System_Boolean__" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.AttacherPnToMc(Hi.Geom.DVec3d,System.Boolean@)">
AttacherPnToMc(DVec3d, out bool)
</h3>
<div class="markdown level1 summary"><p>tool attacher NP (Normal and Point) to machine coordinate.
The NP is from table buckle to tool attacher.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public DVec3d AttacherPnToMc(DVec3d np, out bool isConverted)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>np</code> <a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dd></dd>
<dt><code>isConverted</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>is conversion succeed</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dd><p>machine coordinate</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_IsAxisAExisted_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.IsAxisAExisted*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_IsAxisAExisted" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.IsAxisAExisted">
IsAxisAExisted()
</h3>
<div class="markdown level1 summary"><p>Is rotary A existed.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool IsAxisAExisted()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>Is rotary A existed.</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_IsAxisBExisted_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.IsAxisBExisted*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_IsAxisBExisted" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.IsAxisBExisted">
IsAxisBExisted()
</h3>
<div class="markdown level1 summary"><p>Is rotary B existed.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool IsAxisBExisted()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>Is rotary B existed.</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_IsAxisCExisted_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.IsAxisCExisted*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_IsAxisCExisted" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.IsAxisCExisted">
IsAxisCExisted()
</h3>
<div class="markdown level1 summary"><p>Is rotary C existed.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool IsAxisCExisted()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>Is rotary C existed.</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_MakeXmlSource_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.MakeXmlSource*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_MakeXmlSource_System_String_System_String_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.MakeXmlSource(System.String,System.String)">
MakeXmlSource(string, string)
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public XElement MakeXmlSource(string baseDirectory, string relFile)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>baseDirectory</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<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>
<a id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_McAbcToTiltMat_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.McAbcToTiltMat*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_McAbcToTiltMat_Hi_Geom_Vec3d_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.McAbcToTiltMat(Hi.Geom.Vec3d)">
McAbcToTiltMat(Vec3d)
</h3>
<div class="markdown level1 summary"><p>Converts machine ABC coordinates to a tilt matrix.
the tilt matrix is the transformation matrix from table to attacher.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Mat4d McAbcToTiltMat(Vec3d mcAbc_rad)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>mcAbc_rad</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd><p>The machine ABC coordinates in radians</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Mat4d.html">Mat4d</a></dt>
<dd><p>The tilt matrix</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_McToAttacherMat_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.McToAttacherMat*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_McToAttacherMat_Hi_Geom_DVec3d_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.McToAttacherMat(Hi.Geom.DVec3d)">
McToAttacherMat(DVec3d)
</h3>
<div class="markdown level1 summary"><p>Converts machine coordinates to an attacher matrix.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Mat4d McToAttacherMat(DVec3d mc)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>mc</code> <a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Mat4d.html">Mat4d</a></dt>
<dd><p>The attacher matrix</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_McToAttacherPn_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.McToAttacherPn*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_McToAttacherPn_Hi_Geom_DVec3d_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.McToAttacherPn(Hi.Geom.DVec3d)">
McToAttacherPn(DVec3d)
</h3>
<div class="markdown level1 summary"><p>Machine coordinate to tool attacher NP (Normal and Point).
The NP is from table buckle to tool attacher.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public DVec3d McToAttacherPn(DVec3d mc)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>mc</code> <a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dd><p>tool attacher Pn (Point and Normal)</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_TiltMatToMcAbc_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.TiltMatToMcAbc*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_TiltMatToMcAbc_Hi_Geom_Mat4d_Hi_Geom_Vec3d__" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.TiltMatToMcAbc(Hi.Geom.Mat4d,Hi.Geom.Vec3d@)">
TiltMatToMcAbc(Mat4d, out Vec3d)
</h3>
<div class="markdown level1 summary"><p>Converts a tilt matrix to machine ABC coordinates.
the tilt matrix is the transformation matrix from table to attacher.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool TiltMatToMcAbc(Mat4d tiltMat, out Vec3d mcAbc_rad)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>tiltMat</code> <a class="xref" href="Hi.Geom.Mat4d.html">Mat4d</a></dt>
<dd><p>The tilt matrix to convert</p>
</dd>
<dt><code>mcAbc_rad</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd><p>Output parameter that will contain the machine ABC coordinates in radians</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>Whether the conversion was successful</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_ToXElement_" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.ToXElement*"></a>
<h3 id="Hi_Numerical_Xyzabc_SimpleChainCoordinateConverter_ToXElement" data-uid="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.ToXElement">
ToXElement()
</h3>
<div class="markdown level1 summary"><p>Get the <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.xml.linq.xelement">XElement</a> to represent the object.</p>
</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><p><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.xml.linq.xelement">XElement</a> to represent the object.</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>
@@ -1,678 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class XyzabcChainMillingCoordinateConverter | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class XyzabcChainMillingCoordinateConverter | HiAPI-C# 2025 ">
<meta name="description" content="Provides coordinate conversion functionality for XYZABC chain milling operations.">
<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 &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<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="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter">
<h1 id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter" class="text-break">
Class XyzabcChainMillingCoordinateConverter
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Numerical.html">Numerical</a>.<a class="xref" href="Hi.Numerical.Xyzabc.html">Xyzabc</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
</div>
<div class="markdown summary"><p>Provides coordinate conversion functionality for XYZABC chain milling operations.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class XyzabcChainMillingCoordinateConverter : ICoordinateConverter, IMakeXmlSource</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">XyzabcChainMillingCoordinateConverter</span></div>
</dd>
</dl>
<dl class="typelist implements">
<dt>Implements</dt>
<dd>
<div><a class="xref" href="Hi.Numerical.Xyzabc.ICoordinateConverter.html">ICoordinateConverter</a></div>
<div><a class="xref" href="Hi.Common.XmlUtils.IMakeXmlSource.html">IMakeXmlSource</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>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter__ctor_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.#ctor*"></a>
<h3 id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter__ctor_Hi_Numerical_Xyzabc_IXyzabcChain_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.#ctor(Hi.Numerical.Xyzabc.IXyzabcChain)">
XyzabcChainMillingCoordinateConverter(IXyzabcChain)
</h3>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.html">XyzabcChainMillingCoordinateConverter</a> class.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public XyzabcChainMillingCoordinateConverter(IXyzabcChain chain)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>chain</code> <a class="xref" href="Hi.Numerical.Xyzabc.IXyzabcChain.html">IXyzabcChain</a></dt>
<dd><p>The XYZABC chain instance.</p>
</dd>
</dl>
<h4 class="section">Exceptions</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.argumentnullexception">ArgumentNullException</a></dt>
<dd><p>Thrown when chain is null.</p>
</dd>
</dl>
<h2 class="section" id="fields">Fields
</h2>
<h3 id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_XName" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.XName">
XName
</h3>
<div class="markdown level1 summary"><p>Gets the 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="properties">Properties
</h2>
<a id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_XyzabcSolver_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.XyzabcSolver*"></a>
<h3 id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_XyzabcSolver" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.XyzabcSolver">
XyzabcSolver
</h3>
<div class="markdown level1 summary"><p>Gets the XYZABC solver instance.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public XyzabcSolver XyzabcSolver { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Numerical.Xyzabc.XyzabcSolver.html">XyzabcSolver</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_AttacherPnToMc_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.AttacherPnToMc*"></a>
<h3 id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_AttacherPnToMc_Hi_Geom_DVec3d_System_Boolean__" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.AttacherPnToMc(Hi.Geom.DVec3d,System.Boolean@)">
AttacherPnToMc(DVec3d, out bool)
</h3>
<div class="markdown level1 summary"><p>tool attacher NP (Normal and Point) to machine coordinate.
The NP is from table buckle to tool attacher.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public DVec3d AttacherPnToMc(DVec3d np, out bool isConverted)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>np</code> <a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dd></dd>
<dt><code>isConverted</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>is conversion succeed</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dd><p>machine coordinate</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_IsAxisAExisted_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.IsAxisAExisted*"></a>
<h3 id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_IsAxisAExisted" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.IsAxisAExisted">
IsAxisAExisted()
</h3>
<div class="markdown level1 summary"><p>Is rotary A existed.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool IsAxisAExisted()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>Is rotary A existed.</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_IsAxisBExisted_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.IsAxisBExisted*"></a>
<h3 id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_IsAxisBExisted" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.IsAxisBExisted">
IsAxisBExisted()
</h3>
<div class="markdown level1 summary"><p>Is rotary B existed.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool IsAxisBExisted()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>Is rotary B existed.</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_IsAxisCExisted_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.IsAxisCExisted*"></a>
<h3 id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_IsAxisCExisted" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.IsAxisCExisted">
IsAxisCExisted()
</h3>
<div class="markdown level1 summary"><p>Is rotary C existed.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool IsAxisCExisted()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>Is rotary C existed.</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_MakeXmlSource_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.MakeXmlSource*"></a>
<h3 id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_MakeXmlSource_System_String_System_String_System_Boolean_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.MakeXmlSource(System.String,System.String,System.Boolean)">
MakeXmlSource(string, string, bool)
</h3>
<div class="markdown level1 summary"><p>Creates an XML representation of the object.
This method may also generate additional resources such as related files.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>baseDirectory</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The base directory for resolving relative paths</p>
</dd>
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The relative file path for the XML source</p>
</dd>
<dt><code>exhibitionOnly</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>if true, the extended file creation is suppressed.</p>
</dd>
</dl>
<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><p>An XML element representing the object's state</p>
</dd>
</dl>
<h4 class="section" id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_MakeXmlSource_System_String_System_String_System_Boolean__remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied.
The <code class="paramref">baseDirectory</code> is typically the folder at the nearest configuration file folder.
Since the folder can be moving with the configuration file.</p>
</div>
<a id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_McAbcToTiltMat_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.McAbcToTiltMat*"></a>
<h3 id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_McAbcToTiltMat_Hi_Geom_Vec3d_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.McAbcToTiltMat(Hi.Geom.Vec3d)">
McAbcToTiltMat(Vec3d)
</h3>
<div class="markdown level1 summary"><p>Converts machine ABC coordinates to a tilt matrix.
the tilt matrix is the transformation matrix from table to attacher.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Mat4d McAbcToTiltMat(Vec3d mcAbc_rad)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>mcAbc_rad</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd><p>The machine ABC coordinates in radians</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Mat4d.html">Mat4d</a></dt>
<dd><p>The tilt matrix</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_McToAttacherMat_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.McToAttacherMat*"></a>
<h3 id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_McToAttacherMat_Hi_Geom_DVec3d_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.McToAttacherMat(Hi.Geom.DVec3d)">
McToAttacherMat(DVec3d)
</h3>
<div class="markdown level1 summary"><p>Converts machine coordinates to an attacher matrix.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Mat4d McToAttacherMat(DVec3d mc)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>mc</code> <a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Mat4d.html">Mat4d</a></dt>
<dd><p>The attacher matrix</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_McToAttacherPn_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.McToAttacherPn*"></a>
<h3 id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_McToAttacherPn_Hi_Geom_DVec3d_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.McToAttacherPn(Hi.Geom.DVec3d)">
McToAttacherPn(DVec3d)
</h3>
<div class="markdown level1 summary"><p>Machine coordinate to tool attacher NP (Normal and Point).
The NP is from table buckle to tool attacher.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public DVec3d McToAttacherPn(DVec3d mc)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>mc</code> <a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dd><p>tool attacher Pn (Point and Normal)</p>
</dd>
</dl>
<a id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_TiltMatToMcAbc_" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.TiltMatToMcAbc*"></a>
<h3 id="Hi_Numerical_Xyzabc_XyzabcChainMillingCoordinateConverter_TiltMatToMcAbc_Hi_Geom_Mat4d_Hi_Geom_Vec3d__" data-uid="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.TiltMatToMcAbc(Hi.Geom.Mat4d,Hi.Geom.Vec3d@)">
TiltMatToMcAbc(Mat4d, out Vec3d)
</h3>
<div class="markdown level1 summary"><p>Converts a tilt matrix to machine ABC coordinates.
the tilt matrix is the transformation matrix from table to attacher.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool TiltMatToMcAbc(Mat4d tiltMat, out Vec3d mcAbc_rad)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>tiltMat</code> <a class="xref" href="Hi.Geom.Mat4d.html">Mat4d</a></dt>
<dd><p>The tilt matrix to convert</p>
</dd>
<dt><code>mcAbc_rad</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd><p>Output parameter that will contain the machine ABC coordinates in radians</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>Whether the conversion was successful</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>
@@ -108,16 +108,6 @@ On purpose of easy XML hand management.</p>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html">ReflectedXyzabcChain</a></dt>
<dd><p>Cloned <a class="xref" href="Hi.Numerical.Xyzabc.CodeXyzabcChain.html">CodeXyzabcChain</a>.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.html">SimpleChainCoordinateConverter</a></dt>
<dd><p>Provides coordinate conversion functionality for a simple chain configuration.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.html">XyzabcChainMillingCoordinateConverter</a></dt>
<dd><p>Provides coordinate conversion functionality for XYZABC chain milling operations.</p>
</dd>
</dl>
<dl class="jumplist">
@@ -2,11 +2,11 @@
<html>
<head>
<meta charset="utf-8">
<title>Class MongoRunnerOptions | HiAPI-C# 2025 </title>
<title>Class SqliteIdentityRole | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class MongoRunnerOptions | HiAPI-C# 2025 ">
<meta name="title" content="Class SqliteIdentityRole | HiAPI-C# 2025 ">
<meta name="description" content="Options for configuring a MongoDB runner instance.">
<meta name="description" content="Base class for SQLite-based identity roles.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -84,25 +84,25 @@
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.MongoUtils.MongoRunnerOptions">
<article data-uid="Hi.SqliteUtils.SqliteIdentityRole">
<h1 id="Hi_MongoUtils_MongoRunnerOptions" data-uid="Hi.MongoUtils.MongoRunnerOptions" class="text-break">
Class MongoRunnerOptions
<h1 id="Hi_SqliteUtils_SqliteIdentityRole" data-uid="Hi.SqliteUtils.SqliteIdentityRole" class="text-break">
Class SqliteIdentityRole
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.MongoUtils.html">MongoUtils</a></dd></dl>
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.SqliteUtils.html">SqliteUtils</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiNc.dll</dd></dl>
</div>
<div class="markdown summary"><p>Options for configuring a MongoDB runner instance.</p>
<div class="markdown summary"><p>Base class for SQLite-based identity roles.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class MongoRunnerOptions</code></pre>
<pre><code class="lang-csharp hljs">public class SqliteIdentityRole</code></pre>
</div>
@@ -112,7 +112,7 @@ Class MongoRunnerOptions
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">MongoRunnerOptions</span></div>
<div><span class="xref">SqliteIdentityRole</span></div>
</dd>
</dl>
@@ -174,23 +174,83 @@ Class MongoRunnerOptions
<h2 class="section" id="constructors">Constructors
</h2>
<a id="Hi_SqliteUtils_SqliteIdentityRole__ctor_" data-uid="Hi.SqliteUtils.SqliteIdentityRole.#ctor*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityRole__ctor" data-uid="Hi.SqliteUtils.SqliteIdentityRole.#ctor">
SqliteIdentityRole()
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public SqliteIdentityRole()</code></pre>
</div>
<a id="Hi_SqliteUtils_SqliteIdentityRole__ctor_" data-uid="Hi.SqliteUtils.SqliteIdentityRole.#ctor*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityRole__ctor_System_String_" data-uid="Hi.SqliteUtils.SqliteIdentityRole.#ctor(System.String)">
SqliteIdentityRole(string)
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public SqliteIdentityRole(string roleName)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>roleName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_MongoUtils_MongoRunnerOptions_AdditionalArguments_" data-uid="Hi.MongoUtils.MongoRunnerOptions.AdditionalArguments*"></a>
<a id="Hi_SqliteUtils_SqliteIdentityRole_ConcurrencyStamp_" data-uid="Hi.SqliteUtils.SqliteIdentityRole.ConcurrencyStamp*"></a>
<h3 id="Hi_MongoUtils_MongoRunnerOptions_AdditionalArguments" data-uid="Hi.MongoUtils.MongoRunnerOptions.AdditionalArguments">
AdditionalArguments
<h3 id="Hi_SqliteUtils_SqliteIdentityRole_ConcurrencyStamp" data-uid="Hi.SqliteUtils.SqliteIdentityRole.ConcurrencyStamp">
ConcurrencyStamp
</h3>
<div class="markdown level1 summary"><p>Gets or sets additional command-line arguments.</p>
</div>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string AdditionalArguments { get; set; }</code></pre>
<pre><code class="lang-csharp hljs">public virtual string ConcurrencyStamp { get; set; }</code></pre>
</div>
@@ -210,51 +270,18 @@ Class MongoRunnerOptions
<a id="Hi_MongoUtils_MongoRunnerOptions_ConnectionTimeout_" data-uid="Hi.MongoUtils.MongoRunnerOptions.ConnectionTimeout*"></a>
<a id="Hi_SqliteUtils_SqliteIdentityRole_Id_" data-uid="Hi.SqliteUtils.SqliteIdentityRole.Id*"></a>
<h3 id="Hi_MongoUtils_MongoRunnerOptions_ConnectionTimeout" data-uid="Hi.MongoUtils.MongoRunnerOptions.ConnectionTimeout">
ConnectionTimeout
<h3 id="Hi_SqliteUtils_SqliteIdentityRole_Id" data-uid="Hi.SqliteUtils.SqliteIdentityRole.Id">
Id
</h3>
<div class="markdown level1 summary"><p>Gets or sets the connection timeout.</p>
</div>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TimeSpan ConnectionTimeout { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.timespan">TimeSpan</a></dt>
<dd></dd>
</dl>
<a id="Hi_MongoUtils_MongoRunnerOptions_DataDirectory_" data-uid="Hi.MongoUtils.MongoRunnerOptions.DataDirectory*"></a>
<h3 id="Hi_MongoUtils_MongoRunnerOptions_DataDirectory" data-uid="Hi.MongoUtils.MongoRunnerOptions.DataDirectory">
DataDirectory
</h3>
<div class="markdown level1 summary"><p>Gets or sets the data directory path.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string DataDirectory { get; set; }</code></pre>
<pre><code class="lang-csharp hljs">public virtual string Id { get; set; }</code></pre>
</div>
@@ -274,19 +301,18 @@ Class MongoRunnerOptions
<a id="Hi_MongoUtils_MongoRunnerOptions_KillMongoProcessesWhenCurrentProcessExits_" data-uid="Hi.MongoUtils.MongoRunnerOptions.KillMongoProcessesWhenCurrentProcessExits*"></a>
<a id="Hi_SqliteUtils_SqliteIdentityRole_Name_" data-uid="Hi.SqliteUtils.SqliteIdentityRole.Name*"></a>
<h3 id="Hi_MongoUtils_MongoRunnerOptions_KillMongoProcessesWhenCurrentProcessExits" data-uid="Hi.MongoUtils.MongoRunnerOptions.KillMongoProcessesWhenCurrentProcessExits">
KillMongoProcessesWhenCurrentProcessExits
<h3 id="Hi_SqliteUtils_SqliteIdentityRole_Name" data-uid="Hi.SqliteUtils.SqliteIdentityRole.Name">
Name
</h3>
<div class="markdown level1 summary"><p>Gets or sets a value indicating whether to kill MongoDB processes when the current process exits.</p>
</div>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool KillMongoProcessesWhenCurrentProcessExits { get; set; }</code></pre>
<pre><code class="lang-csharp hljs">public virtual string Name { get; set; }</code></pre>
</div>
@@ -295,7 +321,7 @@ Class MongoRunnerOptions
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
@@ -306,19 +332,18 @@ Class MongoRunnerOptions
<a id="Hi_MongoUtils_MongoRunnerOptions_MongoPort_" data-uid="Hi.MongoUtils.MongoRunnerOptions.MongoPort*"></a>
<a id="Hi_SqliteUtils_SqliteIdentityRole_NormalizedName_" data-uid="Hi.SqliteUtils.SqliteIdentityRole.NormalizedName*"></a>
<h3 id="Hi_MongoUtils_MongoRunnerOptions_MongoPort" data-uid="Hi.MongoUtils.MongoRunnerOptions.MongoPort">
MongoPort
<h3 id="Hi_SqliteUtils_SqliteIdentityRole_NormalizedName" data-uid="Hi.SqliteUtils.SqliteIdentityRole.NormalizedName">
NormalizedName
</h3>
<div class="markdown level1 summary"><p>Gets or sets the MongoDB port.</p>
</div>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int MongoPort { get; set; }</code></pre>
<pre><code class="lang-csharp hljs">public virtual string NormalizedName { get; set; }</code></pre>
</div>
@@ -327,103 +352,7 @@ Class MongoRunnerOptions
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<a id="Hi_MongoUtils_MongoRunnerOptions_ReplicaSetSetupTimeout_" data-uid="Hi.MongoUtils.MongoRunnerOptions.ReplicaSetSetupTimeout*"></a>
<h3 id="Hi_MongoUtils_MongoRunnerOptions_ReplicaSetSetupTimeout" data-uid="Hi.MongoUtils.MongoRunnerOptions.ReplicaSetSetupTimeout">
ReplicaSetSetupTimeout
</h3>
<div class="markdown level1 summary"><p>Gets or sets the replica set setup timeout.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TimeSpan ReplicaSetSetupTimeout { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.timespan">TimeSpan</a></dt>
<dd></dd>
</dl>
<a id="Hi_MongoUtils_MongoRunnerOptions_StandardErrorLogger_" data-uid="Hi.MongoUtils.MongoRunnerOptions.StandardErrorLogger*"></a>
<h3 id="Hi_MongoUtils_MongoRunnerOptions_StandardErrorLogger" data-uid="Hi.MongoUtils.MongoRunnerOptions.StandardErrorLogger">
StandardErrorLogger
</h3>
<div class="markdown level1 summary"><p>Gets or sets the logger for standard error.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Action&lt;string&gt; StandardErrorLogger { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.action-1">Action</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_MongoUtils_MongoRunnerOptions_StandardOuputLogger_" data-uid="Hi.MongoUtils.MongoRunnerOptions.StandardOuputLogger*"></a>
<h3 id="Hi_MongoUtils_MongoRunnerOptions_StandardOuputLogger" data-uid="Hi.MongoUtils.MongoRunnerOptions.StandardOuputLogger">
StandardOuputLogger
</h3>
<div class="markdown level1 summary"><p>Gets or sets the logger for standard output.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Action&lt;string&gt; StandardOuputLogger { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.action-1">Action</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt;</dt>
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
@@ -2,11 +2,11 @@
<html>
<head>
<meta charset="utf-8">
<title>Interface IMongoRunner | HiAPI-C# 2025 </title>
<title>Class SqliteIdentityStorage.RoleRow | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Interface IMongoRunner | HiAPI-C# 2025 ">
<meta name="title" content="Class SqliteIdentityStorage.RoleRow | HiAPI-C# 2025 ">
<meta name="description" content="Interface for MongoDB runner implementations that manage MongoDB instances.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -84,33 +84,64 @@
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.MongoUtils.IMongoRunner">
<article data-uid="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow">
<h1 id="Hi_MongoUtils_IMongoRunner" data-uid="Hi.MongoUtils.IMongoRunner" class="text-break">
Interface IMongoRunner
<h1 id="Hi_SqliteUtils_SqliteIdentityStorage_RoleRow" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow" class="text-break">
Class SqliteIdentityStorage.RoleRow
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.MongoUtils.html">MongoUtils</a></dd></dl>
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.SqliteUtils.html">SqliteUtils</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiNc.dll</dd></dl>
</div>
<div class="markdown summary"><p>Interface for MongoDB runner implementations that manage MongoDB instances.</p>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public interface IMongoRunner</code></pre>
<pre><code class="lang-csharp hljs">public class SqliteIdentityStorage.RoleRow</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">SqliteIdentityStorage.RoleRow</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>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
@@ -146,19 +177,111 @@ Interface IMongoRunner
</h2>
<a id="Hi_MongoUtils_IMongoRunner_ConnectionString_" data-uid="Hi.MongoUtils.IMongoRunner.ConnectionString*"></a>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_RoleRow_ConcurrencyStamp_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.ConcurrencyStamp*"></a>
<h3 id="Hi_MongoUtils_IMongoRunner_ConnectionString" data-uid="Hi.MongoUtils.IMongoRunner.ConnectionString">
ConnectionString
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_RoleRow_ConcurrencyStamp" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.ConcurrencyStamp">
ConcurrencyStamp
</h3>
<div class="markdown level1 summary"><p>Gets the connection string to the MongoDB instance.</p>
</div>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">string ConnectionString { get; }</code></pre>
<pre><code class="lang-csharp hljs">public string ConcurrencyStamp { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_RoleRow_Id_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.Id*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_RoleRow_Id" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.Id">
Id
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string Id { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_RoleRow_Name_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.Name*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_RoleRow_Name" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.Name">
Name
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string Name { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_RoleRow_NormalizedName_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.NormalizedName*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_RoleRow_NormalizedName" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.NormalizedName">
NormalizedName
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string NormalizedName { get; set; }</code></pre>
</div>
@@ -182,23 +305,32 @@ Interface IMongoRunner
</h2>
<a id="Hi_MongoUtils_IMongoRunner_Dispose_" data-uid="Hi.MongoUtils.IMongoRunner.Dispose*"></a>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_RoleRow_ToRole_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.ToRole*"></a>
<h3 id="Hi_MongoUtils_IMongoRunner_Dispose" data-uid="Hi.MongoUtils.IMongoRunner.Dispose">
Dispose()
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_RoleRow_ToRole__1" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.ToRole``1">
ToRole&lt;TRole&gt;()
</h3>
<div class="markdown level1 summary"><p>Stops the MongoDB instance.</p>
</div>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">void Dispose()</code></pre>
<pre><code class="lang-csharp hljs">public TRole ToRole&lt;TRole&gt;() where TRole : SqliteIdentityRole, new()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">TRole</span></dt>
<dd></dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TRole</code></dt>
<dd></dd>
</dl>
@@ -0,0 +1,771 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class SqliteIdentityStorage.UserRow | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class SqliteIdentityStorage.UserRow | 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 &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<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="Hi.SqliteUtils.SqliteIdentityStorage.UserRow">
<h1 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow" class="text-break">
Class SqliteIdentityStorage.UserRow
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.SqliteUtils.html">SqliteUtils</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiNc.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class SqliteIdentityStorage.UserRow</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">SqliteIdentityStorage.UserRow</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>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_AccessFailedCount_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.AccessFailedCount*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_AccessFailedCount" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.AccessFailedCount">
AccessFailedCount
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int AccessFailedCount { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_ConcurrencyStamp_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.ConcurrencyStamp*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_ConcurrencyStamp" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.ConcurrencyStamp">
ConcurrencyStamp
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string ConcurrencyStamp { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_CustomData_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.CustomData*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_CustomData" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.CustomData">
CustomData
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string CustomData { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_Email_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.Email*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_Email" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.Email">
Email
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string Email { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_EmailConfirmed_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.EmailConfirmed*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_EmailConfirmed" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.EmailConfirmed">
EmailConfirmed
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int EmailConfirmed { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_Id_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.Id*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_Id" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.Id">
Id
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string Id { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_InitialPassword_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.InitialPassword*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_InitialPassword" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.InitialPassword">
InitialPassword
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string InitialPassword { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_LockoutEnabled_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.LockoutEnabled*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_LockoutEnabled" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.LockoutEnabled">
LockoutEnabled
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int LockoutEnabled { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_LockoutEnd_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.LockoutEnd*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_LockoutEnd" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.LockoutEnd">
LockoutEnd
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string LockoutEnd { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_NormalizedEmail_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.NormalizedEmail*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_NormalizedEmail" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.NormalizedEmail">
NormalizedEmail
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string NormalizedEmail { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_NormalizedUserName_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.NormalizedUserName*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_NormalizedUserName" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.NormalizedUserName">
NormalizedUserName
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string NormalizedUserName { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_PasswordHash_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.PasswordHash*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_PasswordHash" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.PasswordHash">
PasswordHash
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string PasswordHash { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_PhoneNumber_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.PhoneNumber*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_PhoneNumber" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.PhoneNumber">
PhoneNumber
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string PhoneNumber { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_PhoneNumberConfirmed_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.PhoneNumberConfirmed*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_PhoneNumberConfirmed" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.PhoneNumberConfirmed">
PhoneNumberConfirmed
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int PhoneNumberConfirmed { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_SecurityStamp_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.SecurityStamp*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_SecurityStamp" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.SecurityStamp">
SecurityStamp
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string SecurityStamp { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_TwoFactorEnabled_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.TwoFactorEnabled*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_TwoFactorEnabled" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.TwoFactorEnabled">
TwoFactorEnabled
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int TwoFactorEnabled { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_UserName_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.UserName*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_UserName" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.UserName">
UserName
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string UserName { get; set; }</code></pre>
</div>
<h4 class="section">Property 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="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_ToUser_" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.ToUser*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityStorage_UserRow_ToUser__1" data-uid="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.ToUser``1">
ToUser&lt;TUser&gt;()
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TUser ToUser&lt;TUser&gt;() where TUser : SqliteIdentityUser, new()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">TUser</span></dt>
<dd></dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TUser</code></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>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,769 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class SqliteIdentityUser | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class SqliteIdentityUser | HiAPI-C# 2025 ">
<meta name="description" content="Base class for SQLite-based identity users.">
<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 &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<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="Hi.SqliteUtils.SqliteIdentityUser">
<h1 id="Hi_SqliteUtils_SqliteIdentityUser" data-uid="Hi.SqliteUtils.SqliteIdentityUser" class="text-break">
Class SqliteIdentityUser
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.SqliteUtils.html">SqliteUtils</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiNc.dll</dd></dl>
</div>
<div class="markdown summary"><p>Base class for SQLite-based identity users.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class SqliteIdentityUser</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">SqliteIdentityUser</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>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_SqliteUtils_SqliteIdentityUser_AccessFailedCount_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.AccessFailedCount*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_AccessFailedCount" data-uid="Hi.SqliteUtils.SqliteIdentityUser.AccessFailedCount">
AccessFailedCount
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual int AccessFailedCount { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_ConcurrencyStamp_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.ConcurrencyStamp*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_ConcurrencyStamp" data-uid="Hi.SqliteUtils.SqliteIdentityUser.ConcurrencyStamp">
ConcurrencyStamp
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual string ConcurrencyStamp { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_Email_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.Email*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_Email" data-uid="Hi.SqliteUtils.SqliteIdentityUser.Email">
Email
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual string Email { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_EmailConfirmed_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.EmailConfirmed*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_EmailConfirmed" data-uid="Hi.SqliteUtils.SqliteIdentityUser.EmailConfirmed">
EmailConfirmed
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual bool EmailConfirmed { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_Id_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.Id*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_Id" data-uid="Hi.SqliteUtils.SqliteIdentityUser.Id">
Id
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual string Id { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_InitialPassword_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.InitialPassword*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_InitialPassword" data-uid="Hi.SqliteUtils.SqliteIdentityUser.InitialPassword">
InitialPassword
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual string InitialPassword { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_LockoutEnabled_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.LockoutEnabled*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_LockoutEnabled" data-uid="Hi.SqliteUtils.SqliteIdentityUser.LockoutEnabled">
LockoutEnabled
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual bool LockoutEnabled { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_LockoutEnd_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.LockoutEnd*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_LockoutEnd" data-uid="Hi.SqliteUtils.SqliteIdentityUser.LockoutEnd">
LockoutEnd
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual DateTimeOffset? LockoutEnd { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.datetimeoffset">DateTimeOffset</a>?</dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_NormalizedEmail_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.NormalizedEmail*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_NormalizedEmail" data-uid="Hi.SqliteUtils.SqliteIdentityUser.NormalizedEmail">
NormalizedEmail
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual string NormalizedEmail { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_NormalizedUserName_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.NormalizedUserName*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_NormalizedUserName" data-uid="Hi.SqliteUtils.SqliteIdentityUser.NormalizedUserName">
NormalizedUserName
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual string NormalizedUserName { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_PasswordHash_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.PasswordHash*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_PasswordHash" data-uid="Hi.SqliteUtils.SqliteIdentityUser.PasswordHash">
PasswordHash
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual string PasswordHash { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_PhoneNumber_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.PhoneNumber*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_PhoneNumber" data-uid="Hi.SqliteUtils.SqliteIdentityUser.PhoneNumber">
PhoneNumber
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual string PhoneNumber { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_PhoneNumberConfirmed_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.PhoneNumberConfirmed*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_PhoneNumberConfirmed" data-uid="Hi.SqliteUtils.SqliteIdentityUser.PhoneNumberConfirmed">
PhoneNumberConfirmed
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual bool PhoneNumberConfirmed { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_SecurityStamp_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.SecurityStamp*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_SecurityStamp" data-uid="Hi.SqliteUtils.SqliteIdentityUser.SecurityStamp">
SecurityStamp
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual string SecurityStamp { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_TwoFactorEnabled_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.TwoFactorEnabled*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_TwoFactorEnabled" data-uid="Hi.SqliteUtils.SqliteIdentityUser.TwoFactorEnabled">
TwoFactorEnabled
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual bool TwoFactorEnabled { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_UserName_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.UserName*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_UserName" data-uid="Hi.SqliteUtils.SqliteIdentityUser.UserName">
UserName
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual string UserName { get; set; }</code></pre>
</div>
<h4 class="section">Property 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="Hi_SqliteUtils_SqliteIdentityUser_DeserializeCustomData_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.DeserializeCustomData*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_DeserializeCustomData_System_String_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.DeserializeCustomData(System.String)">
DeserializeCustomData(string)
</h3>
<div class="markdown level1 summary"><p>Deserializes custom data from JSON string. Override in derived class.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual void DeserializeCustomData(string json)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>json</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_SqliteUtils_SqliteIdentityUser_SerializeCustomData_" data-uid="Hi.SqliteUtils.SqliteIdentityUser.SerializeCustomData*"></a>
<h3 id="Hi_SqliteUtils_SqliteIdentityUser_SerializeCustomData" data-uid="Hi.SqliteUtils.SqliteIdentityUser.SerializeCustomData">
SerializeCustomData()
</h3>
<div class="markdown level1 summary"><p>Serializes custom data to JSON string. Override in derived class.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual string SerializeCustomData()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</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,745 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class SqliteRoleStore&lt;TRole&gt; | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class SqliteRoleStore&lt;TRole&gt; | HiAPI-C# 2025 ">
<meta name="description" content="SQLite-based role store for ASP.NET Core Identity.">
<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 &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<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="Hi.SqliteUtils.SqliteRoleStore`1">
<h1 id="Hi_SqliteUtils_SqliteRoleStore_1" data-uid="Hi.SqliteUtils.SqliteRoleStore`1" class="text-break">
Class SqliteRoleStore&lt;TRole&gt;
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.SqliteUtils.html">SqliteUtils</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiNc.dll</dd></dl>
</div>
<div class="markdown summary"><p>SQLite-based role store for ASP.NET Core Identity.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class SqliteRoleStore&lt;TRole&gt; : IRoleStore&lt;TRole&gt;, IQueryableRoleStore&lt;TRole&gt;, IRoleStore&lt;TRole&gt;, IDisposable where TRole : SqliteIdentityRole, new()</code></pre>
</div>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TRole</code></dt>
<dd><p>The type of role.</p>
</dd>
</dl>
<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">SqliteRoleStore&lt;TRole&gt;</span></div>
</dd>
</dl>
<dl class="typelist implements">
<dt>Implements</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.irolestore-1">IRoleStore</a>&lt;TRole&gt;</div>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.iqueryablerolestore-1">IQueryableRoleStore</a>&lt;TRole&gt;</div>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.irolestore-1">IRoleStore</a>&lt;TRole&gt;</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>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="Hi_SqliteUtils_SqliteRoleStore_1__ctor_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.#ctor*"></a>
<h3 id="Hi_SqliteUtils_SqliteRoleStore_1__ctor_Hi_SqliteUtils_SqliteIdentityStorage_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.#ctor(Hi.SqliteUtils.SqliteIdentityStorage)">
SqliteRoleStore(SqliteIdentityStorage)
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public SqliteRoleStore(SqliteIdentityStorage storage)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>storage</code> <a class="xref" href="Hi.SqliteUtils.SqliteIdentityStorage.html">SqliteIdentityStorage</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_SqliteUtils_SqliteRoleStore_1_Roles_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.Roles*"></a>
<h3 id="Hi_SqliteUtils_SqliteRoleStore_1_Roles" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.Roles">
Roles
</h3>
<div class="markdown level1 summary"><p>Returns an <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable&lt;T&gt;</a> collection of roles.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public IQueryable&lt;TRole&gt; Roles { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable</a>&lt;TRole&gt;</dt>
<dd><p>An <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable&lt;T&gt;</a> collection of roles.</p>
</dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_SqliteUtils_SqliteRoleStore_1_CreateAsync_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.CreateAsync*"></a>
<h3 id="Hi_SqliteUtils_SqliteRoleStore_1_CreateAsync__0_System_Threading_CancellationToken_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.CreateAsync(`0,System.Threading.CancellationToken)">
CreateAsync(TRole, CancellationToken)
</h3>
<div class="markdown level1 summary"><p>Creates a new role in a store as an asynchronous operation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task&lt;IdentityResult&gt; CreateAsync(TRole role, CancellationToken cancellationToken)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>role</code> <span class="xref">TRole</span></dt>
<dd><p>The role to create in the store.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd><p>The <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a> used to propagate notifications that the operation should be canceled.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.identityresult">IdentityResult</a>&gt;</dt>
<dd><p>A <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task&lt;TResult&gt;</a> that represents the <a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.identityresult">IdentityResult</a> of the asynchronous query.</p>
</dd>
</dl>
<a id="Hi_SqliteUtils_SqliteRoleStore_1_DeleteAsync_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.DeleteAsync*"></a>
<h3 id="Hi_SqliteUtils_SqliteRoleStore_1_DeleteAsync__0_System_Threading_CancellationToken_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.DeleteAsync(`0,System.Threading.CancellationToken)">
DeleteAsync(TRole, CancellationToken)
</h3>
<div class="markdown level1 summary"><p>Deletes a role from the store as an asynchronous operation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task&lt;IdentityResult&gt; DeleteAsync(TRole role, CancellationToken cancellationToken)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>role</code> <span class="xref">TRole</span></dt>
<dd><p>The role to delete from the store.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd><p>The <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a> used to propagate notifications that the operation should be canceled.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.identityresult">IdentityResult</a>&gt;</dt>
<dd><p>A <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task&lt;TResult&gt;</a> that represents the <a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.identityresult">IdentityResult</a> of the asynchronous query.</p>
</dd>
</dl>
<a id="Hi_SqliteUtils_SqliteRoleStore_1_Dispose_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.Dispose*"></a>
<h3 id="Hi_SqliteUtils_SqliteRoleStore_1_Dispose" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.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="Hi_SqliteUtils_SqliteRoleStore_1_FindByIdAsync_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.FindByIdAsync*"></a>
<h3 id="Hi_SqliteUtils_SqliteRoleStore_1_FindByIdAsync_System_String_System_Threading_CancellationToken_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.FindByIdAsync(System.String,System.Threading.CancellationToken)">
FindByIdAsync(string, CancellationToken)
</h3>
<div class="markdown level1 summary"><p>Finds the role who has the specified ID as an asynchronous operation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task&lt;TRole&gt; FindByIdAsync(string roleId, CancellationToken cancellationToken)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>roleId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The role ID to look for.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd><p>The <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a> used to propagate notifications that the operation should be canceled.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;TRole&gt;</dt>
<dd><p>A <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task&lt;TResult&gt;</a> that result of the look up.</p>
</dd>
</dl>
<a id="Hi_SqliteUtils_SqliteRoleStore_1_FindByNameAsync_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.FindByNameAsync*"></a>
<h3 id="Hi_SqliteUtils_SqliteRoleStore_1_FindByNameAsync_System_String_System_Threading_CancellationToken_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.FindByNameAsync(System.String,System.Threading.CancellationToken)">
FindByNameAsync(string, CancellationToken)
</h3>
<div class="markdown level1 summary"><p>Finds the role who has the specified normalized name as an asynchronous operation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task&lt;TRole&gt; FindByNameAsync(string normalizedRoleName, CancellationToken cancellationToken)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>normalizedRoleName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The normalized role name to look for.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd><p>The <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a> used to propagate notifications that the operation should be canceled.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;TRole&gt;</dt>
<dd><p>A <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task&lt;TResult&gt;</a> that result of the look up.</p>
</dd>
</dl>
<a id="Hi_SqliteUtils_SqliteRoleStore_1_GetNormalizedRoleNameAsync_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.GetNormalizedRoleNameAsync*"></a>
<h3 id="Hi_SqliteUtils_SqliteRoleStore_1_GetNormalizedRoleNameAsync__0_System_Threading_CancellationToken_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.GetNormalizedRoleNameAsync(`0,System.Threading.CancellationToken)">
GetNormalizedRoleNameAsync(TRole, CancellationToken)
</h3>
<div class="markdown level1 summary"><p>Get a role's normalized name as an asynchronous operation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task&lt;string&gt; GetNormalizedRoleNameAsync(TRole role, CancellationToken cancellationToken)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>role</code> <span class="xref">TRole</span></dt>
<dd><p>The role whose normalized name should be retrieved.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd><p>The <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a> used to propagate notifications that the operation should be canceled.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt;</dt>
<dd><p>A <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task&lt;TResult&gt;</a> that contains the name of the role.</p>
</dd>
</dl>
<a id="Hi_SqliteUtils_SqliteRoleStore_1_GetRoleIdAsync_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.GetRoleIdAsync*"></a>
<h3 id="Hi_SqliteUtils_SqliteRoleStore_1_GetRoleIdAsync__0_System_Threading_CancellationToken_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.GetRoleIdAsync(`0,System.Threading.CancellationToken)">
GetRoleIdAsync(TRole, CancellationToken)
</h3>
<div class="markdown level1 summary"><p>Gets the ID for a role from the store as an asynchronous operation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task&lt;string&gt; GetRoleIdAsync(TRole role, CancellationToken cancellationToken)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>role</code> <span class="xref">TRole</span></dt>
<dd><p>The role whose ID should be returned.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd><p>The <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a> used to propagate notifications that the operation should be canceled.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt;</dt>
<dd><p>A <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task&lt;TResult&gt;</a> that contains the ID of the role.</p>
</dd>
</dl>
<a id="Hi_SqliteUtils_SqliteRoleStore_1_GetRoleNameAsync_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.GetRoleNameAsync*"></a>
<h3 id="Hi_SqliteUtils_SqliteRoleStore_1_GetRoleNameAsync__0_System_Threading_CancellationToken_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.GetRoleNameAsync(`0,System.Threading.CancellationToken)">
GetRoleNameAsync(TRole, CancellationToken)
</h3>
<div class="markdown level1 summary"><p>Gets the name of a role from the store as an asynchronous operation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task&lt;string&gt; GetRoleNameAsync(TRole role, CancellationToken cancellationToken)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>role</code> <span class="xref">TRole</span></dt>
<dd><p>The role whose name should be returned.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd><p>The <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a> used to propagate notifications that the operation should be canceled.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt;</dt>
<dd><p>A <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task&lt;TResult&gt;</a> that contains the name of the role.</p>
</dd>
</dl>
<a id="Hi_SqliteUtils_SqliteRoleStore_1_SetNormalizedRoleNameAsync_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.SetNormalizedRoleNameAsync*"></a>
<h3 id="Hi_SqliteUtils_SqliteRoleStore_1_SetNormalizedRoleNameAsync__0_System_String_System_Threading_CancellationToken_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.SetNormalizedRoleNameAsync(`0,System.String,System.Threading.CancellationToken)">
SetNormalizedRoleNameAsync(TRole, string, CancellationToken)
</h3>
<div class="markdown level1 summary"><p>Set a role's normalized name as an asynchronous operation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task SetNormalizedRoleNameAsync(TRole role, string normalizedName, CancellationToken cancellationToken)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>role</code> <span class="xref">TRole</span></dt>
<dd><p>The role whose normalized name should be set.</p>
</dd>
<dt><code>normalizedName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The normalized name to set</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd><p>The <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a> used to propagate notifications that the operation should be canceled.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task">Task</a></dt>
<dd><p>The <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task">Task</a> that represents the asynchronous operation.</p>
</dd>
</dl>
<a id="Hi_SqliteUtils_SqliteRoleStore_1_SetRoleNameAsync_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.SetRoleNameAsync*"></a>
<h3 id="Hi_SqliteUtils_SqliteRoleStore_1_SetRoleNameAsync__0_System_String_System_Threading_CancellationToken_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.SetRoleNameAsync(`0,System.String,System.Threading.CancellationToken)">
SetRoleNameAsync(TRole, string, CancellationToken)
</h3>
<div class="markdown level1 summary"><p>Sets the name of a role in the store as an asynchronous operation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task SetRoleNameAsync(TRole role, string roleName, CancellationToken cancellationToken)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>role</code> <span class="xref">TRole</span></dt>
<dd><p>The role whose name should be set.</p>
</dd>
<dt><code>roleName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The name of the role.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd><p>The <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a> used to propagate notifications that the operation should be canceled.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task">Task</a></dt>
<dd><p>The <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task">Task</a> that represents the asynchronous operation.</p>
</dd>
</dl>
<a id="Hi_SqliteUtils_SqliteRoleStore_1_UpdateAsync_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.UpdateAsync*"></a>
<h3 id="Hi_SqliteUtils_SqliteRoleStore_1_UpdateAsync__0_System_Threading_CancellationToken_" data-uid="Hi.SqliteUtils.SqliteRoleStore`1.UpdateAsync(`0,System.Threading.CancellationToken)">
UpdateAsync(TRole, CancellationToken)
</h3>
<div class="markdown level1 summary"><p>Updates a role in a store as an asynchronous operation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task&lt;IdentityResult&gt; UpdateAsync(TRole role, CancellationToken cancellationToken)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>role</code> <span class="xref">TRole</span></dt>
<dd><p>The role to update in the store.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd><p>The <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a> used to propagate notifications that the operation should be canceled.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.identityresult">IdentityResult</a>&gt;</dt>
<dd><p>A <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task&lt;TResult&gt;</a> that represents the <a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.identityresult">IdentityResult</a> of the asynchronous query.</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>
@@ -2,11 +2,11 @@
<html>
<head>
<meta charset="utf-8">
<title>Class MongoServer | HiAPI-C# 2025 </title>
<title>Class SqliteStepStorage | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class MongoServer | HiAPI-C# 2025 ">
<meta name="title" content="Class SqliteStepStorage | HiAPI-C# 2025 ">
<meta name="description" content="A MongoDB runner that manages MongoDB processes.">
<meta name="description" content="SQLite-based storage for milling step data. Replaces MongoDB collections for MillingStepLuggage and Slice data.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -84,25 +84,26 @@
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.MongoUtils.MongoServer">
<article data-uid="Hi.SqliteUtils.SqliteStepStorage">
<h1 id="Hi_MongoUtils_MongoServer" data-uid="Hi.MongoUtils.MongoServer" class="text-break">
Class MongoServer
<h1 id="Hi_SqliteUtils_SqliteStepStorage" data-uid="Hi.SqliteUtils.SqliteStepStorage" class="text-break">
Class SqliteStepStorage
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.MongoUtils.html">MongoUtils</a></dd></dl>
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.SqliteUtils.html">SqliteUtils</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiNc.dll</dd></dl>
</div>
<div class="markdown summary"><p>A MongoDB runner that manages MongoDB processes.</p>
<div class="markdown summary"><p>SQLite-based storage for milling step data.
Replaces MongoDB collections for MillingStepLuggage and Slice data.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class MongoServer : IMongoRunner, IDisposable</code></pre>
<pre><code class="lang-csharp hljs">public class SqliteStepStorage : IDisposable</code></pre>
</div>
@@ -112,14 +113,13 @@ Class MongoServer
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">MongoServer</span></div>
<div><span class="xref">SqliteStepStorage</span></div>
</dd>
</dl>
<dl class="typelist implements">
<dt>Implements</dt>
<dd>
<div><a class="xref" href="Hi.MongoUtils.IMongoRunner.html">IMongoRunner</a></div>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
</dd>
</dl>
@@ -181,23 +181,60 @@ Class MongoServer
<h2 class="section" id="properties">Properties
<h2 class="section" id="constructors">Constructors
</h2>
<a id="Hi_MongoUtils_MongoServer_ConnectionString_" data-uid="Hi.MongoUtils.MongoServer.ConnectionString*"></a>
<a id="Hi_SqliteUtils_SqliteStepStorage__ctor_" data-uid="Hi.SqliteUtils.SqliteStepStorage.#ctor*"></a>
<h3 id="Hi_MongoUtils_MongoServer_ConnectionString" data-uid="Hi.MongoUtils.MongoServer.ConnectionString">
ConnectionString
<h3 id="Hi_SqliteUtils_SqliteStepStorage__ctor_System_String_" data-uid="Hi.SqliteUtils.SqliteStepStorage.#ctor(System.String)">
SqliteStepStorage(string)
</h3>
<div class="markdown level1 summary"><p>Gets the connection string to the MongoDB instance.</p>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.SqliteUtils.SqliteStepStorage.html">SqliteStepStorage</a> class.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string ConnectionString { get; }</code></pre>
<pre><code class="lang-csharp hljs">public SqliteStepStorage(string databasePath = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>databasePath</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The path to the SQLite database file. If null, uses in-memory database.</p>
</dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_SqliteUtils_SqliteStepStorage_DatabasePath_" data-uid="Hi.SqliteUtils.SqliteStepStorage.DatabasePath*"></a>
<h3 id="Hi_SqliteUtils_SqliteStepStorage_DatabasePath" data-uid="Hi.SqliteUtils.SqliteStepStorage.DatabasePath">
DatabasePath
</h3>
<div class="markdown level1 summary"><p>Gets the database file path.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string DatabasePath { get; }</code></pre>
</div>
@@ -217,20 +254,19 @@ Class MongoServer
<a id="Hi_MongoUtils_MongoServer_Default_" data-uid="Hi.MongoUtils.MongoServer.Default*"></a>
<a id="Hi_SqliteUtils_SqliteStepStorage_Default_" data-uid="Hi.SqliteUtils.SqliteStepStorage.Default*"></a>
<h3 id="Hi_MongoUtils_MongoServer_Default" data-uid="Hi.MongoUtils.MongoServer.Default">
<h3 id="Hi_SqliteUtils_SqliteStepStorage_Default" data-uid="Hi.SqliteUtils.SqliteStepStorage.Default">
Default
</h3>
<div class="markdown level1 summary"><p>Gets or sets the default MongoDB server instance.
If not explicitly set, it will be automatically created.</p>
<div class="markdown level1 summary"><p>Gets or sets the default SQLite step storage instance.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static MongoServer Default { get; set; }</code></pre>
<pre><code class="lang-csharp hljs">public static SqliteStepStorage Default { get; set; }</code></pre>
</div>
@@ -239,7 +275,7 @@ If not explicitly set, it will be automatically created.</p>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.MongoUtils.MongoServer.html">MongoServer</a></dt>
<dt><a class="xref" href="Hi.SqliteUtils.SqliteStepStorage.html">SqliteStepStorage</a></dt>
<dd></dd>
</dl>
@@ -250,14 +286,14 @@ If not explicitly set, it will be automatically created.</p>
<a id="Hi_MongoUtils_MongoServer_IsDefaultInit_" data-uid="Hi.MongoUtils.MongoServer.IsDefaultInit*"></a>
<a id="Hi_SqliteUtils_SqliteStepStorage_IsDefaultInit_" data-uid="Hi.SqliteUtils.SqliteStepStorage.IsDefaultInit*"></a>
<h3 id="Hi_MongoUtils_MongoServer_IsDefaultInit" data-uid="Hi.MongoUtils.MongoServer.IsDefaultInit">
<h3 id="Hi_SqliteUtils_SqliteStepStorage_IsDefaultInit" data-uid="Hi.SqliteUtils.SqliteStepStorage.IsDefaultInit">
IsDefaultInit
</h3>
<div class="markdown level1 summary"><p>Gets a value indicating whether the default MongoDB instance has been initialized.</p>
<div class="markdown level1 summary"><p>Gets a value indicating whether the default storage has been initialized.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -286,26 +322,53 @@ If not explicitly set, it will be automatically created.</p>
</h2>
<a id="Hi_MongoUtils_MongoServer_CheckMongoHealth_" data-uid="Hi.MongoUtils.MongoServer.CheckMongoHealth*"></a>
<a id="Hi_SqliteUtils_SqliteStepStorage_ClearMillingStepLuggages_" data-uid="Hi.SqliteUtils.SqliteStepStorage.ClearMillingStepLuggages*"></a>
<h3 id="Hi_MongoUtils_MongoServer_CheckMongoHealth" data-uid="Hi.MongoUtils.MongoServer.CheckMongoHealth">
CheckMongoHealth()
<h3 id="Hi_SqliteUtils_SqliteStepStorage_ClearMillingStepLuggages" data-uid="Hi.SqliteUtils.SqliteStepStorage.ClearMillingStepLuggages">
ClearMillingStepLuggages()
</h3>
<div class="markdown level1 summary"><p>執行MongoDB健康檢查,確認進程存活且可響應連接</p>
<div class="markdown level1 summary"><p>Deletes all milling step luggages from the database.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool CheckMongoHealth()</code></pre>
<pre><code class="lang-csharp hljs">public void ClearMillingStepLuggages()</code></pre>
</div>
<a id="Hi_SqliteUtils_SqliteStepStorage_CountMillingStepLuggages_" data-uid="Hi.SqliteUtils.SqliteStepStorage.CountMillingStepLuggages*"></a>
<h3 id="Hi_SqliteUtils_SqliteStepStorage_CountMillingStepLuggages" data-uid="Hi.SqliteUtils.SqliteStepStorage.CountMillingStepLuggages">
CountMillingStepLuggages()
</h3>
<div class="markdown level1 summary"><p>Gets the count of milling step luggages in the database.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int CountMillingStepLuggages()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>如果MongoDB運行正常則返回true</p>
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The count of records.</p>
</dd>
</dl>
@@ -319,14 +382,14 @@ If not explicitly set, it will be automatically created.</p>
<a id="Hi_MongoUtils_MongoServer_Dispose_" data-uid="Hi.MongoUtils.MongoServer.Dispose*"></a>
<a id="Hi_SqliteUtils_SqliteStepStorage_Dispose_" data-uid="Hi.SqliteUtils.SqliteStepStorage.Dispose*"></a>
<h3 id="Hi_MongoUtils_MongoServer_Dispose" data-uid="Hi.MongoUtils.MongoServer.Dispose">
<h3 id="Hi_SqliteUtils_SqliteStepStorage_Dispose" data-uid="Hi.SqliteUtils.SqliteStepStorage.Dispose">
Dispose()
</h3>
<div class="markdown level1 summary"><p>Stops the MongoDB instance and cleans up resources.</p>
<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>
@@ -346,14 +409,14 @@ If not explicitly set, it will be automatically created.</p>
<a id="Hi_MongoUtils_MongoServer_Dispose_" data-uid="Hi.MongoUtils.MongoServer.Dispose*"></a>
<a id="Hi_SqliteUtils_SqliteStepStorage_Dispose_" data-uid="Hi.SqliteUtils.SqliteStepStorage.Dispose*"></a>
<h3 id="Hi_MongoUtils_MongoServer_Dispose_System_Boolean_" data-uid="Hi.MongoUtils.MongoServer.Dispose(System.Boolean)">
<h3 id="Hi_SqliteUtils_SqliteStepStorage_Dispose_System_Boolean_" data-uid="Hi.SqliteUtils.SqliteStepStorage.Dispose(System.Boolean)">
Dispose(bool)
</h3>
<div class="markdown level1 summary"><p>Stops the MongoDB instance and cleans up resources.</p>
<div class="markdown level1 summary"><p>Releases the resources used by the storage.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -364,7 +427,7 @@ If not explicitly set, it will be automatically created.</p>
<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><p>Whether this method is being called from Dispose().</p>
<dd><p>Whether this method is being called from Dispose.</p>
</dd>
</dl>
@@ -379,125 +442,35 @@ If not explicitly set, it will be automatically created.</p>
<a id="Hi_MongoUtils_MongoServer_Finalize_" data-uid="Hi.MongoUtils.MongoServer.Finalize*"></a>
<a id="Hi_SqliteUtils_SqliteStepStorage_FindMillingStepLuggages_" data-uid="Hi.SqliteUtils.SqliteStepStorage.FindMillingStepLuggages*"></a>
<h3 id="Hi_MongoUtils_MongoServer_Finalize" data-uid="Hi.MongoUtils.MongoServer.Finalize">
~MongoServer()
<h3 id="Hi_SqliteUtils_SqliteStepStorage_FindMillingStepLuggages_System_Int32_System_Int32_" data-uid="Hi.SqliteUtils.SqliteStepStorage.FindMillingStepLuggages(System.Int32,System.Int32)">
FindMillingStepLuggages(int, int)
</h3>
<div class="markdown level1 summary"><p>Finalizer to ensure resources are cleaned up.</p>
<div class="markdown level1 summary"><p>Finds milling step luggages within the specified index range.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected ~MongoServer()</code></pre>
</div>
<a id="Hi_MongoUtils_MongoServer_GetMongoProcessId_" data-uid="Hi.MongoUtils.MongoServer.GetMongoProcessId*"></a>
<h3 id="Hi_MongoUtils_MongoServer_GetMongoProcessId" data-uid="Hi.MongoUtils.MongoServer.GetMongoProcessId">
GetMongoProcessId()
</h3>
<div class="markdown level1 summary"><p>獲取MongoDB進程ID</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int? GetMongoProcessId()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a>?</dt>
<dd><p>MongoDB進程ID,如果進程不存在則返回null</p>
</dd>
</dl>
<a id="Hi_MongoUtils_MongoServer_IsMongoProcessRunning_" data-uid="Hi.MongoUtils.MongoServer.IsMongoProcessRunning*"></a>
<h3 id="Hi_MongoUtils_MongoServer_IsMongoProcessRunning" data-uid="Hi.MongoUtils.MongoServer.IsMongoProcessRunning">
IsMongoProcessRunning()
</h3>
<div class="markdown level1 summary"><p>檢查MongoDB進程是否仍在運行</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool IsMongoProcessRunning()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>如果MongoDB進程仍在運行則返回true</p>
</dd>
</dl>
<a id="Hi_MongoUtils_MongoServer_Run_" data-uid="Hi.MongoUtils.MongoServer.Run*"></a>
<h3 id="Hi_MongoUtils_MongoServer_Run_Hi_MongoUtils_MongoRunnerOptions_" data-uid="Hi.MongoUtils.MongoServer.Run(Hi.MongoUtils.MongoRunnerOptions)">
Run(MongoRunnerOptions)
</h3>
<div class="markdown level1 summary"><p>Runs a MongoDB instance with the specified options.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static MongoServer Run(MongoRunnerOptions options = null)</code></pre>
<pre><code class="lang-csharp hljs">public List&lt;MillingStepLuggage&gt; FindMillingStepLuggages(int beginIndex, int endIndex)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>options</code> <a class="xref" href="Hi.MongoUtils.MongoRunnerOptions.html">MongoRunnerOptions</a></dt>
<dd><p>The MongoDB runner options.</p>
<dt><code>beginIndex</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The beginning index (inclusive).</p>
</dd>
<dt><code>endIndex</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The ending index (exclusive).</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.MongoUtils.MongoServer.html">MongoServer</a></dt>
<dd><p>A MongoDB runner instance.</p>
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.MillingSteps.MillingStepLuggage.html">MillingStepLuggage</a>&gt;</dt>
<dd><p>A list of milling step luggages.</p>
</dd>
</dl>
@@ -508,16 +481,70 @@ If not explicitly set, it will be automatically created.</p>
<h4 class="section">Exceptions</h4>
<a id="Hi_SqliteUtils_SqliteStepStorage_InsertMillingStepLuggages_" data-uid="Hi.SqliteUtils.SqliteStepStorage.InsertMillingStepLuggages*"></a>
<h3 id="Hi_SqliteUtils_SqliteStepStorage_InsertMillingStepLuggages_System_Collections_Generic_IEnumerable_Hi_MillingSteps_MillingStepLuggage__" data-uid="Hi.SqliteUtils.SqliteStepStorage.InsertMillingStepLuggages(System.Collections.Generic.IEnumerable{Hi.MillingSteps.MillingStepLuggage})">
InsertMillingStepLuggages(IEnumerable&lt;MillingStepLuggage&gt;)
</h3>
<div class="markdown level1 summary"><p>Inserts multiple milling step luggages into the database.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void InsertMillingStepLuggages(IEnumerable&lt;MillingStepLuggage&gt; items)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.timeoutexception">TimeoutException</a></dt>
<dd><p>Thrown when connecting to MongoDB times out.</p>
<dt><code>items</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;<a class="xref" href="Hi.MillingSteps.MillingStepLuggage.html">MillingStepLuggage</a>&gt;</dt>
<dd><p>The items to insert.</p>
</dd>
</dl>
<a id="Hi_SqliteUtils_SqliteStepStorage_Reset_" data-uid="Hi.SqliteUtils.SqliteStepStorage.Reset*"></a>
<h3 id="Hi_SqliteUtils_SqliteStepStorage_Reset" data-uid="Hi.SqliteUtils.SqliteStepStorage.Reset">
Reset()
</h3>
<div class="markdown level1 summary"><p>Resets the database by clearing all data.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Reset()</code></pre>
</div>
</article>
<div class="contribution d-print-none">
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,162 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Namespace Hi.SqliteUtils | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Namespace Hi.SqliteUtils | 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 &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<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="Hi.SqliteUtils">
<h1 id="Hi_SqliteUtils" data-uid="Hi.SqliteUtils" class="text-break">Namespace Hi.SqliteUtils</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="Hi.SqliteUtils.SqliteIdentityRole.html">SqliteIdentityRole</a></dt>
<dd><p>Base class for SQLite-based identity roles.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteIdentityStorage.html">SqliteIdentityStorage</a></dt>
<dd><p>SQLite-based storage for ASP.NET Core Identity.
Replaces MongoDB-based identity storage.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.html">SqliteIdentityStorage.RoleRow</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.html">SqliteIdentityStorage.UserRow</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteIdentityUser.html">SqliteIdentityUser</a></dt>
<dd><p>Base class for SQLite-based identity users.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteRoleStore-1.html">SqliteRoleStore&lt;TRole&gt;</a></dt>
<dd><p>SQLite-based role store for ASP.NET Core Identity.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteStepStorage.html">SqliteStepStorage</a></dt>
<dd><p>SQLite-based storage for milling step data.
Replaces MongoDB collections for MillingStepLuggage and Slice data.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteUserStore-1.html">SqliteUserStore&lt;TUser&gt;</a></dt>
<dd><p>SQLite-based user store for ASP.NET Core Identity.</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>
+34 -18
View File
@@ -1219,9 +1219,6 @@
<li>
<a href="Hi.Machining.MatRelationUtil.html" name="" title="MatRelationUtil">MatRelationUtil</a>
</li>
<li>
<a href="Hi.Machining.MotionUtil.html" name="" title="MotionUtil">MotionUtil</a>
</li>
<li>
<a href="Hi.Machining.Sweptable.html" name="" title="Sweptable">Sweptable</a>
</li>
@@ -1485,7 +1482,7 @@
<a href="Hi.Mech.Topo.Branch.html" name="" title="Branch">Branch</a>
</li>
<li>
<a href="Hi.Mech.Topo.DirectionBranchPack.html" name="" title="DirectionBranchPack">DirectionBranchPack</a>
<a href="Hi.Mech.Topo.DirectionBranchEntry.html" name="" title="DirectionBranchEntry">DirectionBranchEntry</a>
</li>
<li>
<a href="Hi.Mech.Topo.DirectionBranchPackUtil.html" name="" title="DirectionBranchPackUtil">DirectionBranchPackUtil</a>
@@ -2006,17 +2003,11 @@
</li>
<li>
<span class="expand-stub"></span>
<a href="Hi.MongoUtils.html" name="" title="Hi.MongoUtils">Hi.MongoUtils</a>
<a href="Hi.Motion.html" name="" title="Hi.Motion">Hi.Motion</a>
<ul class="nav level2">
<li>
<a href="Hi.MongoUtils.IMongoRunner.html" name="" title="IMongoRunner">IMongoRunner</a>
</li>
<li>
<a href="Hi.MongoUtils.MongoRunnerOptions.html" name="" title="MongoRunnerOptions">MongoRunnerOptions</a>
</li>
<li>
<a href="Hi.MongoUtils.MongoServer.html" name="" title="MongoServer">MongoServer</a>
<a href="Hi.Motion.MotionUtil.html" name="" title="MotionUtil">MotionUtil</a>
</li>
</ul>
</li>
@@ -3007,12 +2998,6 @@
<li>
<a href="Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html" name="" title="ReflectedXyzabcChain">ReflectedXyzabcChain</a>
</li>
<li>
<a href="Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.html" name="" title="SimpleChainCoordinateConverter">SimpleChainCoordinateConverter</a>
</li>
<li>
<a href="Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.html" name="" title="XyzabcChainMillingCoordinateConverter">XyzabcChainMillingCoordinateConverter</a>
</li>
<li>
<a href="Hi.Numerical.Xyzabc.XyzabcSolver.html" name="" title="XyzabcSolver">XyzabcSolver</a>
</li>
@@ -3236,6 +3221,37 @@
</li>
</ul>
</li>
<li>
<span class="expand-stub"></span>
<a href="Hi.SqliteUtils.html" name="" title="Hi.SqliteUtils">Hi.SqliteUtils</a>
<ul class="nav level2">
<li>
<a href="Hi.SqliteUtils.SqliteIdentityRole.html" name="" title="SqliteIdentityRole">SqliteIdentityRole</a>
</li>
<li>
<a href="Hi.SqliteUtils.SqliteIdentityStorage.html" name="" title="SqliteIdentityStorage">SqliteIdentityStorage</a>
</li>
<li>
<a href="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.html" name="" title="SqliteIdentityStorage.RoleRow">SqliteIdentityStorage.RoleRow</a>
</li>
<li>
<a href="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.html" name="" title="SqliteIdentityStorage.UserRow">SqliteIdentityStorage.UserRow</a>
</li>
<li>
<a href="Hi.SqliteUtils.SqliteIdentityUser.html" name="" title="SqliteIdentityUser">SqliteIdentityUser</a>
</li>
<li>
<a href="Hi.SqliteUtils.SqliteRoleStore-1.html" name="" title="SqliteRoleStore&lt;TRole&gt;">SqliteRoleStore&lt;TRole&gt;</a>
</li>
<li>
<a href="Hi.SqliteUtils.SqliteStepStorage.html" name="" title="SqliteStepStorage">SqliteStepStorage</a>
</li>
<li>
<a href="Hi.SqliteUtils.SqliteUserStore-1.html" name="" title="SqliteUserStore&lt;TUser&gt;">SqliteUserStore&lt;TUser&gt;</a>
</li>
</ul>
</li>
<li>
<span class="expand-stub"></span>
<a href="Hi.Test.html" name="" title="Hi.Test">Hi.Test</a>
File diff suppressed because one or more lines are too long
@@ -165,7 +165,7 @@ Use <a class="xref" href="../../../api/Hi.Common.XmlUtils.IMakeXmlSource.html">I
<h2 id="editor-panel-mode-ratio-button">Editor Panel Mode Ratio Button</h2>
<p>The Editor Panel switched by the Editor Panel Mode Ratio Button.</p>
<p>The BaseDirectory and RelFile properties should exist. Use the RelFile property if the object's host has the corresponding property like XXXFile.</p>
<p>The Apply action should be well-set. Include <a class="xref" href="../../../api/Hi.Common.XmlUtils.SetFileDelegate.html">SetFileDelegate</a> from <a class="xref" href="../../../api/Hi.Common.XmlUtils.XFactory.html">XFactory</a>.<a class="xref" href="../../../api/Hi.Common.XmlUtils.XFactory.html#Hi_Common_XmlUtils_XFactory_Gen__1_System_Xml_Linq_XElement_System_String_Hi_Common_XmlUtils_SetFileDelegate_Hi_Common_XmlUtils_GenMode_System_Object___">Gen&lt;T&gt;(XElement, string, SetFileDelegate, GenMode, params object[])</a> function.
<p>The Apply action should be well-set. Include <a class="xref" href="../../../api/Hi.Common.XmlUtils.SetFileDelegate.html">SetFileDelegate</a> from <a class="xref" href="../../../api/Hi.Common.XmlUtils.XFactory.html#Hi_Common_XmlUtils_XFactory_Gen_">Gen</a> function.
The last argument should also be delivered by the host. So there must exist an property to pass the argument.</p>
<h3 id="xml-editor-panel-layout">XML Editor Panel Layout</h3>
<ul>
@@ -119,10 +119,7 @@
</code></pre>
</li>
<li><p>In the program file, setting the HiNC application initialization and finalization.</p>
<pre><code class="lang-csharp" name="SampleCode">using Hi.Disp;
using Hi.HiNcKits;
using Hi.Licenses;
using Hi.MongoUtils;
<pre><code class="lang-csharp" name="SampleCode">using Hi.HiNcKits;
using System;
namespace Sample
File diff suppressed because one or more lines are too long
+168 -102
View File
@@ -5190,20 +5190,6 @@
"Title": "Hi.Machining.MatRelationUtil",
"Summary": "<p sourcefile=\"api/Hi.Machining.MatRelationUtil.yml\" sourcestartlinenumber=\"1\">Utility methods for determining relationships between matrices.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.Machining.MotionUtil.yml",
"output": {
".html": {
"relative_path": "api/Hi.Machining.MotionUtil.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.Machining.MotionUtil",
"Summary": "<p sourcefile=\"api/Hi.Machining.MotionUtil.yml\" sourcestartlinenumber=\"1\">Cutter location utility.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.Machining.Sweptable.yml",
@@ -6172,17 +6158,17 @@
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.Mech.Topo.DirectionBranchPack.yml",
"source_relative_path": "api/Hi.Mech.Topo.DirectionBranchEntry.yml",
"output": {
".html": {
"relative_path": "api/Hi.Mech.Topo.DirectionBranchPack.html"
"relative_path": "api/Hi.Mech.Topo.DirectionBranchEntry.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.Mech.Topo.DirectionBranchPack",
"Summary": "<p sourcefile=\"api/Hi.Mech.Topo.DirectionBranchPack.yml\" sourcestartlinenumber=\"1\">A data pack contains <xref href=\"Hi.Mech.Topo.Branch\" data-throw-if-not-resolved=\"false\"></xref> and a boolean <xref href=\"Hi.Mech.Topo.DirectionBranchPack.isForward\" data-throw-if-not-resolved=\"false\"></xref>.</p>\n"
"Title": "Hi.Mech.Topo.DirectionBranchEntry",
"Summary": "<p sourcefile=\"api/Hi.Mech.Topo.DirectionBranchEntry.yml\" sourcestartlinenumber=\"1\">A data pack contains <xref href=\"Hi.Mech.Topo.Branch\" data-throw-if-not-resolved=\"false\"></xref> and a boolean <xref href=\"Hi.Mech.Topo.DirectionBranchEntry.isForward\" data-throw-if-not-resolved=\"false\"></xref>.</p>\n"
},
{
"type": "ManagedReference",
@@ -8354,62 +8340,6 @@
"Title": "Hi.MillingSteps",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.MongoUtils.IMongoRunner.yml",
"output": {
".html": {
"relative_path": "api/Hi.MongoUtils.IMongoRunner.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.MongoUtils.IMongoRunner",
"Summary": "<p sourcefile=\"api/Hi.MongoUtils.IMongoRunner.yml\" sourcestartlinenumber=\"1\">Interface for MongoDB runner implementations that manage MongoDB instances.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.MongoUtils.MongoRunnerOptions.yml",
"output": {
".html": {
"relative_path": "api/Hi.MongoUtils.MongoRunnerOptions.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.MongoUtils.MongoRunnerOptions",
"Summary": "<p sourcefile=\"api/Hi.MongoUtils.MongoRunnerOptions.yml\" sourcestartlinenumber=\"1\">Options for configuring a MongoDB runner instance.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.MongoUtils.MongoServer.yml",
"output": {
".html": {
"relative_path": "api/Hi.MongoUtils.MongoServer.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.MongoUtils.MongoServer",
"Summary": "<p sourcefile=\"api/Hi.MongoUtils.MongoServer.yml\" sourcestartlinenumber=\"1\">A MongoDB runner that manages MongoDB processes.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.MongoUtils.yml",
"output": {
".html": {
"relative_path": "api/Hi.MongoUtils.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.MongoUtils",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.Motion.MatValves.ClMachiningValve.yml",
@@ -8480,6 +8410,34 @@
"Title": "Hi.Motion.MatValves",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.Motion.MotionUtil.yml",
"output": {
".html": {
"relative_path": "api/Hi.Motion.MotionUtil.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.Motion.MotionUtil",
"Summary": "<p sourcefile=\"api/Hi.Motion.MotionUtil.yml\" sourcestartlinenumber=\"1\">Cutter location utility.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.Motion.yml",
"output": {
".html": {
"relative_path": "api/Hi.Motion.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.Motion",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.Native.StopSource.yml",
@@ -12456,34 +12414,6 @@
"Title": "Hi.Numerical.Xyzabc.ReflectedXyzabcChain",
"Summary": "<p sourcefile=\"api/Hi.Numerical.Xyzabc.ReflectedXyzabcChain.yml\" sourcestartlinenumber=\"1\">Cloned <xref href=\"Hi.Numerical.Xyzabc.CodeXyzabcChain\" data-throw-if-not-resolved=\"false\"></xref>.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.yml",
"output": {
".html": {
"relative_path": "api/Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter",
"Summary": "<p sourcefile=\"api/Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.yml\" sourcestartlinenumber=\"1\">Provides coordinate conversion functionality for a simple chain configuration.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.yml",
"output": {
".html": {
"relative_path": "api/Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter",
"Summary": "<p sourcefile=\"api/Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.yml\" sourcestartlinenumber=\"1\">Provides coordinate conversion functionality for XYZABC chain milling operations.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.Numerical.Xyzabc.XyzabcSolver.yml",
@@ -13450,6 +13380,132 @@
"Title": "Hi.ShellCommands",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.SqliteUtils.SqliteIdentityRole.yml",
"output": {
".html": {
"relative_path": "api/Hi.SqliteUtils.SqliteIdentityRole.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.SqliteUtils.SqliteIdentityRole",
"Summary": "<p sourcefile=\"api/Hi.SqliteUtils.SqliteIdentityRole.yml\" sourcestartlinenumber=\"1\">Base class for SQLite-based identity roles.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.yml",
"output": {
".html": {
"relative_path": "api/Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.SqliteUtils.SqliteIdentityStorage.RoleRow",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.SqliteUtils.SqliteIdentityStorage.UserRow.yml",
"output": {
".html": {
"relative_path": "api/Hi.SqliteUtils.SqliteIdentityStorage.UserRow.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.SqliteUtils.SqliteIdentityStorage.UserRow",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.SqliteUtils.SqliteIdentityStorage.yml",
"output": {
".html": {
"relative_path": "api/Hi.SqliteUtils.SqliteIdentityStorage.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.SqliteUtils.SqliteIdentityStorage",
"Summary": "<p sourcefile=\"api/Hi.SqliteUtils.SqliteIdentityStorage.yml\" sourcestartlinenumber=\"1\">SQLite-based storage for ASP.NET Core Identity.\nReplaces MongoDB-based identity storage.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.SqliteUtils.SqliteIdentityUser.yml",
"output": {
".html": {
"relative_path": "api/Hi.SqliteUtils.SqliteIdentityUser.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.SqliteUtils.SqliteIdentityUser",
"Summary": "<p sourcefile=\"api/Hi.SqliteUtils.SqliteIdentityUser.yml\" sourcestartlinenumber=\"1\">Base class for SQLite-based identity users.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.SqliteUtils.SqliteRoleStore-1.yml",
"output": {
".html": {
"relative_path": "api/Hi.SqliteUtils.SqliteRoleStore-1.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.SqliteUtils.SqliteRoleStore<TRole>",
"Summary": "<p sourcefile=\"api/Hi.SqliteUtils.SqliteRoleStore-1.yml\" sourcestartlinenumber=\"1\">SQLite-based role store for ASP.NET Core Identity.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.SqliteUtils.SqliteStepStorage.yml",
"output": {
".html": {
"relative_path": "api/Hi.SqliteUtils.SqliteStepStorage.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.SqliteUtils.SqliteStepStorage",
"Summary": "<p sourcefile=\"api/Hi.SqliteUtils.SqliteStepStorage.yml\" sourcestartlinenumber=\"1\">SQLite-based storage for milling step data.\nReplaces MongoDB collections for MillingStepLuggage and Slice data.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.SqliteUtils.SqliteUserStore-1.yml",
"output": {
".html": {
"relative_path": "api/Hi.SqliteUtils.SqliteUserStore-1.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.SqliteUtils.SqliteUserStore<TUser>",
"Summary": "<p sourcefile=\"api/Hi.SqliteUtils.SqliteUserStore-1.yml\" sourcestartlinenumber=\"1\">SQLite-based user store for ASP.NET Core Identity.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.SqliteUtils.yml",
"output": {
".html": {
"relative_path": "api/Hi.SqliteUtils.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "Hi.SqliteUtils",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/Hi.Test.TestCollision.yml",
@@ -15512,6 +15568,16 @@
},
"version": ""
},
{
"type": "Conceptual",
"source_relative_path": "user-guide/zh-Hant/concepts/step.md",
"output": {
".html": {
"relative_path": "user-guide/zh-Hant/concepts/step.html"
}
},
"version": ""
},
{
"type": "Conceptual",
"source_relative_path": "user-guide/zh-Hant/controllers/heidenhain-support.md",
@@ -154,7 +154,6 @@ Handles common initialization and cleanup tasks for visualization examples.</p>
<pre><code class="lang-csharp" name="SampleCode">using Hi.Disp;
using Hi.HiNcKits;
using Hi.Licenses;
using Hi.MongoUtils;
using Hi.WpfPlus.Disp;
using System.Windows;
@@ -152,10 +152,7 @@ Shows the basic setup of display engine, MongoDB server, licensing, and other co
<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.HiNcKits;
using Hi.Licenses;
using Hi.MongoUtils;
<pre><code class="lang-csharp" name="SampleCode">using Hi.HiNcKits;
using System;
namespace Sample
@@ -0,0 +1,125 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>仿真步(Step | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="仿真步(Step | 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 &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<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="Concept-Step">
<h1 id="仿真步step">仿真步(Step</h1>
<h2 id="定義">定義</h2>
<p><strong>步(Step</strong> 指仿真中的單次運算單位。在切削過程中,預設為主軸一轉為一步,可透過<a class="xref" href="../script/Resolution/index.html#加工運動解析度">仿真解析度</a>修改。</p>
<h2 id="步資訊的時間意義">步資訊的時間意義</h2>
<p>步資訊包含了兩步之間時間區段的資料(即從上一步到這一步之間的資料)。由於這是一個時間區段而非瞬間,資訊中許多項目為該時間段的簡化資料。</p>
<h2 id="相關頁面">相關頁面</h2>
<ul>
<li><a class="xref" href="../output/simulation-step-output.html">仿真步輸出資訊</a>:步的完整輸出欄位說明</li>
<li><a href="../script/StepVariables/index.html">加工步變數</a>:腳本中存取步資訊的方式</li>
<li><a class="xref" href="../script/Resolution/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>
@@ -88,18 +88,50 @@
<h1 id="nc優化">NC優化</h1>
<p>可同時參考閱讀腳本指令<a class="xref" href="../script/NcOptimization/index.html">NC優化</a></p>
<h2 id="優化目標">優化目標</h2>
<p>優化是期望將加工中的物理量盡可能等於目標量。</p>
<p>由於優化進給採用保守策略,優化後的NC碼的物理量會盡可能<strong>等於或小於</strong>目標量。</p>
<h3 id="優化進給率的決定因素">優化進給率的決定因素</h3>
<p>優化進給率由以下兩者決定:</p>
<ol>
<li><strong>個別<a class="xref" href="../concepts/step.html"></a>的物理量限制</strong>:各步基於目標力、降伏應力、主軸扭力等計算的進給率限制</li>
<li><strong>步間的平滑化</strong>:加減速限制、延伸長度等交互影響</li>
</ol>
<h2 id="優化後模擬結果的差異">優化後模擬結果的差異</h2>
<p>進給率更改後的模擬,插補點與更改前不同,會造成:</p>
<ol>
<li>不同的模擬網格誤差</li>
<li>表粗等級的表面形貌更改</li>
</ol>
<p>所以優化後的模擬物理量不一定與目標量相等或以下,也有可能比目標量稍高。</p>
<p>插補點密度在圓角轉角處對表面形貌的影響較直線大,所以這種情況在圓角轉角可能更明顯。</p>
<div class="TIP">
<h5>Tip</h5>
<p>關於轉角處優化進給率異常偏低的現象,請參閱<a href="../theory-and-technique/corner-behavior/index.html">轉角進給率優化</a></p>
</div>
<h2 id="速度平滑化">速度平滑化</h2>
<p>平滑範圍會中止於巨集指令或無法解譯路徑的行指令。</p>
<p><em>速度平滑化</em>會根據當行指令行經路徑長度做加減速限制。
所以<em>速度平滑化</em><em>可重新插補</em>的區域有效;
但是對不可重新插補的區域,雖然仍有加減速限制,但可能因為單行行經路徑過長,使得實際應用上難以發揮作用。</p>
<h2 id="幾何誤差的影響">幾何誤差的影響</h2>
<p>目前的NC優化是基於理想的幾何模型,如果工件為鑄件,或有工件安裝誤差,則需以保守方式設定較大的工件幾何於系統內,避免系統將有切削區域誤判為無切削區域,從而造成撞刀。</p>
<p>目前的NC優化是基於理想的幾何模型,如果工件為鑄件,或有工件安裝誤差,則需以保守方式設定較大的工件幾何於系統內,避免系統將有切削區域誤判為無切削區域,從而造成撞刀。</p>
<h2 id="斷刀解決方案">斷刀解決方案</h2>
<p>更改加工路徑降低切寬深 或 以HiNC優化功能調整進給率,將<strong>降伏應力比</strong><strong>主軸最大扭矩比</strong><strong>主軸最大功率比</strong>降至100%以下。</p>
<h2 id="熱崩刃解決方案">熱崩刃解決方案</h2>
<p>在解決斷刀問題的前提下,降低轉速,讓刀刃有充足時間散熱。</p>
<p>注意冷卻液是否對準刀刃影響甚大。</p>
<h2 id="追蹤個別步的物理量限制">追蹤個別步的物理量限制</h2>
<p>如需了解個別步的進給率是被哪個物理量所限制,可以先將平滑化相關設定為不作用,然後啟用日誌:</p>
<pre><code class="lang-csharp">OptMaxAcceleration_mmds2 = double.PositiveInfinity;
OptFeedrateAssignmentRatio = 0;
OptExtendedPreDistance_mm = 0;
OptExtendedPostDistance_mm = 0;
EnableIndividualStepAdjustmentLog = true;
EmbeddedLogMode = NcOptimizationEmbeddedLogMode.FullLog;
</code></pre>
<p>執行優化後,檢視 <code>.IndependentStepAdjustment.log</code> 檔案,即可查看各步階的獨立優化計算結果,了解是哪個物理量限制了進給率。</p>
<p>日誌檔案的詳細欄位說明請參閱腳本指令<a class="xref" href="../script/NcOptimization/index.html">NC優化</a>中的<a href="../script/NcOptimization/index.html#%E5%84%AA%E5%8C%96%E9%81%8E%E7%A8%8B%E6%97%A5%E8%AA%8C%E6%AA%94">優化過程日誌檔</a>章節。</p>
</article>
@@ -91,9 +91,8 @@
<p>完整欄位與即時最新對照請見 <a class="xref" href="../../../api/Hi.MachiningSteps.MachiningStep.html">MachiningStep</a></p>
<p>若需要評估是否有斷刀風險,亦可參考「<a href="../availability/index.html">評估製程可加工性</a>」。</p>
</blockquote>
<p>步(Step)指仿真中的單次運算,在切削過程中預設為主軸一轉(可透過 <a class="xref" href="../script/Resolution/index.html#加工運動解析度">仿真解析度</a> 修改)</p>
<p>本頁彙整模擬每一步(Step)的主要輸出資訊,涵蓋來源行、運動學、載荷、力/力矩、功率、熱與磨耗等,協助快速理解當步的加工狀態</p>
<p>步資訊包含了兩步之間時間的資料(即從上一步到這一步之間的資料),所以資訊中許多項目為該時間段的簡化資料,依照簡化方式會出現的常見前綴命名有平均數(Avg)、極值(Min,Max)、極值差(Delta)、絕對值最大值(MaxAbs)等。</p>
<p>本頁彙整模擬每一<a class="xref" href="../concepts/step.html">步(Step</a>的主要輸出資訊,涵蓋來源行、運動學、載荷、力/力矩、功率、熱與磨耗等,協助快速理解當步的加工狀態</p>
<p>步資訊包含了兩步之間時間的資料(即從上一步到這一步之間的資料),所以資訊中許多項目為該時間段的簡化資料,依照簡化方式會出現的常見前綴命名有平均數(Avg)、極值(Min,Max)、極值差(Delta)、絕對值最大值(MaxAbs)等</p>
<h2 id="基本來源資訊">基本來源資訊</h2>
<ul>
<li>FileNo / LineNo / FilePath / LineText / FlagsText:對應來源 NC 指令的檔案/行資訊與標記。</li>
@@ -88,7 +88,7 @@
<h1 id="nc優化">NC優化</h1>
<p>組態在NC仿真前設定,然後執行<strong>輸出優化NC檔</strong>指令。</p>
<p>可同時參考閱讀說明章節<a class="xref" href="../../optimization/index.html">NC優化</a></p>
<p>可同時參考閱讀說明章節<a class="xref" href="../../optimization/index.html">NC優化</a><a href="../../theory-and-technique/corner-behavior/index.html">轉角進給率優化</a></p>
<h2 id="組態">組態</h2>
<div class="NOTE">
<h5>Note</h5>
@@ -243,7 +243,7 @@ N0170 X-4.125 Y45.875
<p>優化過程提供兩種日誌功能,方便分析與除錯。</p>
<h3 id="優化過程日誌檔">優化過程日誌檔</h3>
<p><a class="xref" href="../../../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_EnableIndividualStepAdjustmentLog_">EnableIndividualStepAdjustmentLog</a><small>(API)</small>:啟用優化過程日誌檔輸出。預設為真。</p>
<p>啟用後,優化過程會為每個NC檔輸出一個 <code>.flatproc.log</code> 檔案,記錄各步階的優化條件經<a class="xref" href="../../../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptExtendedPreDistance_mm">OptExtendedPreDistance_mm</a><small>(API)</small><a class="xref" href="../../../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptExtendedPostDistance_mm">OptExtendedPostDistance_mm</a><small>(API)</small>展開後獨立優化計算的資訊(不包含步階間的交互關係,如加減速)。</p>
<p>啟用後,優化過程會為每個NC檔輸出一個 <code>.IndependentStepAdjustment.log</code> 檔案,記錄各步階的優化條件經<a class="xref" href="../../../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptExtendedPreDistance_mm">OptExtendedPreDistance_mm</a><small>(API)</small><a class="xref" href="../../../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptExtendedPostDistance_mm">OptExtendedPostDistance_mm</a><small>(API)</small>展開後獨立優化計算的資訊(不包含步階間的交互關係,如加減速)。</p>
<p>日誌檔案內容依步階順序輸出(即使平行計算時也會保持順序),每行包含:</p>
<ul>
<li>原始NC行位置與步階索引</li>
@@ -258,6 +258,7 @@ N0170 X-4.125 Y45.875
</ul>
</li>
</ul>
<p>大部分值採用數值法計算,不一定能在條件限制內求解。最終依據保守策略,取保守值作為輸出,並取所有輸出中的最小值作為優化進給。</p>
<h3 id="嵌入式日誌註解">嵌入式日誌註解</h3>
<p><a class="xref" href="../../../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_EmbeddedLogMode_">EmbeddedLogMode</a><small>(API)</small>:設定嵌入式日誌模式。預設為<a class="xref" href="../../../../api/Hi.NcOpt.NcOptimizationEmbeddedLogMode.html#Hi_NcOpt_NcOptimizationEmbeddedLogMode_SimpleLog">SimpleLog</a><small>(API)</small></p>
<p>可用模式:</p>
@@ -87,6 +87,7 @@
<article data-uid="">
<h1 id="轉角的nc優化後進給率比經驗上可行的進給率還低">轉角的NC優化後進給率比經驗上可行的進給率還低</h1>
<p>可同時參考閱讀<a class="xref" href="../../optimization/index.html">NC優化</a>及腳本指令<a class="xref" href="../../script/NcOptimization/index.html">NC優化</a></p>
<h2 id="現象說明">現象說明</h2>
<p>在進行NC進給率優化時,轉角處常會出現大幅度的進給率降低,有時甚至比經驗上可行的進給率還要低。這個現象讓使用者感到困惑:明明實際加工時轉角處不需要降那麼多,為什麼優化結果會這樣?</p>
<h2 id="控制器的轉角降速行為">控制器的轉角降速行為</h2>
@@ -144,6 +145,8 @@
<li>如果按照經驗值設定,實際加工時控制器也會自行降速到類似的數值</li>
</ol>
<p>理解這個現象後,可以更合理地評估優化結果,並在必要時調整轉角策略或機台參數。</p>
<h2 id="追蹤個別步的物理量限制">追蹤個別步的物理量限制</h2>
<p>如需了解個別步的進給率是被哪個物理量所限制,請參閱說明章節<a class="xref" href="../../optimization/index.html">NC優化</a>中的<a href="../../optimization/index.html#%E8%BF%BD%E8%B9%A4%E5%80%8B%E5%88%A5%E6%AD%A5%E7%9A%84%E7%89%A9%E7%90%86%E9%87%8F%E9%99%90%E5%88%B6">追蹤個別步的物理量限制</a></p>
</article>
@@ -177,6 +177,9 @@
</li>
</ul>
</li>
<li>
<a href="concepts/step.html" name="" title="仿真步">仿真步</a>
</li>
<li>
<span class="expand-stub"></span>
<a>輸出</a>
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff