diff --git a/App/Hi.Wpf.dll b/App/Hi.Wpf.dll index bb5b144..2cde1cd 100644 Binary files a/App/Hi.Wpf.dll and b/App/Hi.Wpf.dll differ diff --git a/App/HiCbtr.dll b/App/HiCbtr.dll index ff123cc..264c3d6 100644 Binary files a/App/HiCbtr.dll and b/App/HiCbtr.dll differ diff --git a/App/HiDisp.dll b/App/HiDisp.dll index a9e0486..196cfa5 100644 Binary files a/App/HiDisp.dll and b/App/HiDisp.dll differ diff --git a/App/HiGeom.dll b/App/HiGeom.dll index 9e60c2f..252d389 100644 Binary files a/App/HiGeom.dll and b/App/HiGeom.dll differ diff --git a/App/HiLicense.dll b/App/HiLicense.dll index acaadb4..743e72c 100644 Binary files a/App/HiLicense.dll and b/App/HiLicense.dll differ diff --git a/App/HiMech.dll b/App/HiMech.dll index 0271d42..43e8daa 100644 Binary files a/App/HiMech.dll and b/App/HiMech.dll differ diff --git a/App/HiNC-2025-win-desktop.deps.json b/App/HiNC-2025-win-desktop.deps.json index 231df17..364d01e 100644 --- a/App/HiNC-2025-win-desktop.deps.json +++ b/App/HiNC-2025-win-desktop.deps.json @@ -11,12 +11,8 @@ "dependencies": { "AvalonEdit": "6.3.0.90", "FontAwesome.Sharp": "6.3.0", - "Hi.Wpf": "3.1.63", - "HiNc": "3.1.84", - "Microsoft.Extensions.Configuration.Json": "9.0.0", - "Microsoft.Extensions.DependencyInjection": "9.0.0", - "Microsoft.Extensions.Hosting": "9.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.0", + "Hi.Wpf": "3.1.65", + "HiNc": "3.1.86", "runtimepack.Microsoft.NETCore.App.Runtime.win-x64": "9.0.11", "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64": "9.0.11", "runtimepack.Microsoft.AspNetCore.App.Runtime.win-x64": "9.0.11" @@ -1511,9 +1507,6 @@ } }, "DnsClient/1.6.1": { - "dependencies": { - "Microsoft.Win32.Registry": "5.0.0" - }, "runtime": { "lib/net5.0/DnsClient.dll": { "assemblyVersion": "1.6.1.0", @@ -1540,8 +1533,7 @@ "Grpc.AspNetCore/2.66.0": { "dependencies": { "Google.Protobuf": "3.28.3", - "Grpc.AspNetCore.Server.ClientFactory": "2.66.0", - "Grpc.Tools": "2.66.0" + "Grpc.AspNetCore.Server.ClientFactory": "2.66.0" } }, "Grpc.AspNetCore.Server/2.66.0": { @@ -1577,8 +1569,7 @@ }, "Grpc.Net.Client/2.66.0": { "dependencies": { - "Grpc.Net.Common": "2.66.0", - "Microsoft.Extensions.Logging.Abstractions": "9.0.0" + "Grpc.Net.Common": "2.66.0" }, "runtime": { "lib/net8.0/Grpc.Net.Client.dll": { @@ -1589,8 +1580,7 @@ }, "Grpc.Net.ClientFactory/2.66.0": { "dependencies": { - "Grpc.Net.Client": "2.66.0", - "Microsoft.Extensions.Http": "6.0.0" + "Grpc.Net.Client": "2.66.0" }, "runtime": { "lib/net8.0/Grpc.Net.ClientFactory.dll": { @@ -1610,40 +1600,39 @@ } } }, - "Grpc.Tools/2.66.0": {}, - "Hi.Wpf/3.1.63": { + "Hi.Wpf/3.1.65": { "dependencies": { - "HiDisp": "3.1.68" + "HiDisp": "3.1.70" }, "runtime": { "lib/net9.0-windows7.0/Hi.Wpf.dll": { - "assemblyVersion": "3.1.63.0", - "fileVersion": "3.1.63.0" + "assemblyVersion": "3.1.65.0", + "fileVersion": "3.1.65.0" } } }, - "HiCbtr/3.1.68": { + "HiCbtr/3.1.70": { "dependencies": { - "HiDisp": "3.1.68" + "HiDisp": "3.1.70" }, "runtime": { "lib/net9.0/HiCbtr.dll": { - "assemblyVersion": "3.1.68.0", - "fileVersion": "3.1.68.0" + "assemblyVersion": "3.1.70.0", + "fileVersion": "3.1.70.0" } } }, - "HiDisp/3.1.68": { + "HiDisp/3.1.70": { "dependencies": { - "HiGeom": "3.1.63", + "HiGeom": "3.1.65", "System.Configuration.ConfigurationManager": "10.0.0", "System.Drawing.Common": "10.0.0", "System.Resources.Extensions": "10.0.0" }, "runtime": { "lib/net9.0/HiDisp.dll": { - "assemblyVersion": "3.1.68.0", - "fileVersion": "3.1.68.0" + "assemblyVersion": "3.1.70.0", + "fileVersion": "3.1.70.0" } }, "native": { @@ -1658,19 +1647,19 @@ } } }, - "HiGeom/3.1.63": { + "HiGeom/3.1.65": { "dependencies": { "Google.Protobuf": "3.28.3", "Grpc.AspNetCore": "2.66.0", "Grpc.Net.Client": "2.66.0", "MathNet.Numerics": "5.0.0", - "Microsoft.CodeAnalysis.Scripting.Common": "4.14.0", + "Microsoft.CodeAnalysis.Scripting.Common": "5.0.0", "MongoDB.Driver": "3.4.2" }, "runtime": { "lib/net9.0/HiGeom.dll": { - "assemblyVersion": "3.1.63.0", - "fileVersion": "3.1.63.0" + "assemblyVersion": "3.1.65.0", + "fileVersion": "3.1.65.0" } }, "resources": { @@ -1682,27 +1671,27 @@ } } }, - "HiLicense/3.1.63": { + "HiLicense/3.1.65": { "dependencies": { - "HiGeom": "3.1.63" + "HiGeom": "3.1.65" }, "runtime": { "lib/net9.0/HiLicense.dll": { - "assemblyVersion": "3.1.63.0", - "fileVersion": "3.1.63.0" + "assemblyVersion": "3.1.65.0", + "fileVersion": "3.1.65.0" } } }, - "HiMech/3.1.75": { + "HiMech/3.1.77": { "dependencies": { "CommandLineParser": "2.9.1", - "HiCbtr": "3.1.68", - "Microsoft.CodeAnalysis.CSharp.Scripting": "4.14.0" + "HiCbtr": "3.1.70", + "Microsoft.CodeAnalysis.CSharp.Scripting": "5.0.0" }, "runtime": { "lib/net9.0/HiMech.dll": { - "assemblyVersion": "3.1.75.0", - "fileVersion": "3.1.75.0" + "assemblyVersion": "3.1.77.0", + "fileVersion": "3.1.77.0" } }, "resources": { @@ -1717,20 +1706,20 @@ } } }, - "HiNc/3.1.84": { + "HiNc/3.1.86": { "dependencies": { "Google.Protobuf": "3.28.3", "Grpc.AspNetCore": "2.66.0", "Grpc.Net.Client": "2.66.0", - "HiLicense": "3.1.63", - "HiMech": "3.1.75", - "HiUniNc": "3.1.72", + "HiLicense": "3.1.65", + "HiMech": "3.1.77", + "HiUniNc": "3.1.74", "System.IO.Pipelines": "10.0.0" }, "runtime": { "lib/net9.0/HiNc.dll": { - "assemblyVersion": "3.1.84.0", - "fileVersion": "3.1.84.0" + "assemblyVersion": "3.1.86.0", + "fileVersion": "3.1.86.0" } }, "resources": { @@ -1742,14 +1731,14 @@ } } }, - "HiUniNc/3.1.72": { + "HiUniNc/3.1.74": { "dependencies": { - "HiMech": "3.1.75" + "HiMech": "3.1.77" }, "runtime": { "lib/net9.0/HiUniNc.dll": { - "assemblyVersion": "3.1.72.0", - "fileVersion": "3.1.72.0" + "assemblyVersion": "3.1.74.0", + "fileVersion": "3.1.74.0" } } }, @@ -1761,17 +1750,11 @@ } } }, - "Microsoft.CodeAnalysis.Analyzers/3.11.0": {}, - "Microsoft.CodeAnalysis.Common/4.14.0": { - "dependencies": { - "Microsoft.CodeAnalysis.Analyzers": "3.11.0", - "System.Collections.Immutable": "10.0.0", - "System.Reflection.Metadata": "10.0.0" - }, + "Microsoft.CodeAnalysis.Common/5.0.0": { "runtime": { "lib/net9.0/Microsoft.CodeAnalysis.dll": { - "assemblyVersion": "4.14.0.0", - "fileVersion": "4.1400.25.26210" + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" } }, "resources": { @@ -1816,17 +1799,14 @@ } } }, - "Microsoft.CodeAnalysis.CSharp/4.14.0": { + "Microsoft.CodeAnalysis.CSharp/5.0.0": { "dependencies": { - "Microsoft.CodeAnalysis.Analyzers": "3.11.0", - "Microsoft.CodeAnalysis.Common": "4.14.0", - "System.Collections.Immutable": "10.0.0", - "System.Reflection.Metadata": "10.0.0" + "Microsoft.CodeAnalysis.Common": "5.0.0" }, "runtime": { "lib/net9.0/Microsoft.CodeAnalysis.CSharp.dll": { - "assemblyVersion": "4.14.0.0", - "fileVersion": "4.1400.25.26210" + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" } }, "resources": { @@ -1871,20 +1851,16 @@ } } }, - "Microsoft.CodeAnalysis.CSharp.Scripting/4.14.0": { + "Microsoft.CodeAnalysis.CSharp.Scripting/5.0.0": { "dependencies": { - "Microsoft.CSharp": "4.7.0", - "Microsoft.CodeAnalysis.Analyzers": "3.11.0", - "Microsoft.CodeAnalysis.CSharp": "4.14.0", - "Microsoft.CodeAnalysis.Common": "4.14.0", - "Microsoft.CodeAnalysis.Scripting.Common": "4.14.0", - "System.Collections.Immutable": "10.0.0", - "System.Reflection.Metadata": "10.0.0" + "Microsoft.CodeAnalysis.CSharp": "5.0.0", + "Microsoft.CodeAnalysis.Common": "5.0.0", + "Microsoft.CodeAnalysis.Scripting.Common": "5.0.0" }, "runtime": { "lib/net9.0/Microsoft.CodeAnalysis.CSharp.Scripting.dll": { - "assemblyVersion": "4.14.0.0", - "fileVersion": "4.1400.25.26210" + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" } }, "resources": { @@ -1929,17 +1905,14 @@ } } }, - "Microsoft.CodeAnalysis.Scripting.Common/4.14.0": { + "Microsoft.CodeAnalysis.Scripting.Common/5.0.0": { "dependencies": { - "Microsoft.CodeAnalysis.Analyzers": "3.11.0", - "Microsoft.CodeAnalysis.Common": "4.14.0", - "System.Collections.Immutable": "10.0.0", - "System.Reflection.Metadata": "10.0.0" + "Microsoft.CodeAnalysis.Common": "5.0.0" }, "runtime": { "lib/net9.0/Microsoft.CodeAnalysis.Scripting.dll": { - "assemblyVersion": "4.14.0.0", - "fileVersion": "4.1400.25.26210" + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" } }, "resources": { @@ -1984,216 +1957,6 @@ } } }, - "Microsoft.CSharp/4.7.0": {}, - "Microsoft.Extensions.Configuration/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "9.0.0", - "Microsoft.Extensions.Primitives": "9.0.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "9.0.0" - } - }, - "Microsoft.Extensions.Configuration.Binder/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "9.0.0" - } - }, - "Microsoft.Extensions.Configuration.CommandLine/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration": "9.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "9.0.0" - } - }, - "Microsoft.Extensions.Configuration.EnvironmentVariables/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration": "9.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "9.0.0" - } - }, - "Microsoft.Extensions.Configuration.FileExtensions/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration": "9.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "9.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "9.0.0", - "Microsoft.Extensions.FileProviders.Physical": "9.0.0", - "Microsoft.Extensions.Primitives": "9.0.0" - } - }, - "Microsoft.Extensions.Configuration.Json/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration": "9.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "9.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "9.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "9.0.0" - } - }, - "Microsoft.Extensions.Configuration.UserSecrets/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "9.0.0", - "Microsoft.Extensions.Configuration.Json": "9.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "9.0.0", - "Microsoft.Extensions.FileProviders.Physical": "9.0.0" - } - }, - "Microsoft.Extensions.DependencyInjection/9.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/9.0.0": {}, - "Microsoft.Extensions.Diagnostics/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration": "9.0.0", - "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.0" - } - }, - "Microsoft.Extensions.Diagnostics.Abstractions/9.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0", - "Microsoft.Extensions.Options": "9.0.0" - } - }, - "Microsoft.Extensions.FileProviders.Abstractions/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "9.0.0" - } - }, - "Microsoft.Extensions.FileProviders.Physical/9.0.0": { - "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "9.0.0", - "Microsoft.Extensions.FileSystemGlobbing": "9.0.0", - "Microsoft.Extensions.Primitives": "9.0.0" - } - }, - "Microsoft.Extensions.FileSystemGlobbing/9.0.0": {}, - "Microsoft.Extensions.Hosting/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration": "9.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "9.0.0", - "Microsoft.Extensions.Configuration.Binder": "9.0.0", - "Microsoft.Extensions.Configuration.CommandLine": "9.0.0", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "9.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "9.0.0", - "Microsoft.Extensions.Configuration.Json": "9.0.0", - "Microsoft.Extensions.Configuration.UserSecrets": "9.0.0", - "Microsoft.Extensions.DependencyInjection": "9.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0", - "Microsoft.Extensions.Diagnostics": "9.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "9.0.0", - "Microsoft.Extensions.FileProviders.Physical": "9.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "9.0.0", - "Microsoft.Extensions.Logging": "9.0.0", - "Microsoft.Extensions.Logging.Abstractions": "9.0.0", - "Microsoft.Extensions.Logging.Configuration": "9.0.0", - "Microsoft.Extensions.Logging.Console": "9.0.0", - "Microsoft.Extensions.Logging.Debug": "9.0.0", - "Microsoft.Extensions.Logging.EventLog": "9.0.0", - "Microsoft.Extensions.Logging.EventSource": "9.0.0", - "Microsoft.Extensions.Options": "9.0.0" - } - }, - "Microsoft.Extensions.Hosting.Abstractions/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "9.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0", - "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "9.0.0", - "Microsoft.Extensions.Logging.Abstractions": "9.0.0" - } - }, - "Microsoft.Extensions.Http/6.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0", - "Microsoft.Extensions.Logging": "9.0.0", - "Microsoft.Extensions.Logging.Abstractions": "9.0.0", - "Microsoft.Extensions.Options": "9.0.0" - } - }, - "Microsoft.Extensions.Logging/9.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "9.0.0", - "Microsoft.Extensions.Logging.Abstractions": "9.0.0", - "Microsoft.Extensions.Options": "9.0.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions/9.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0" - } - }, - "Microsoft.Extensions.Logging.Configuration/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration": "9.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "9.0.0", - "Microsoft.Extensions.Configuration.Binder": "9.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0", - "Microsoft.Extensions.Logging": "9.0.0", - "Microsoft.Extensions.Logging.Abstractions": "9.0.0", - "Microsoft.Extensions.Options": "9.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.0" - } - }, - "Microsoft.Extensions.Logging.Console/9.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0", - "Microsoft.Extensions.Logging": "9.0.0", - "Microsoft.Extensions.Logging.Abstractions": "9.0.0", - "Microsoft.Extensions.Logging.Configuration": "9.0.0", - "Microsoft.Extensions.Options": "9.0.0" - } - }, - "Microsoft.Extensions.Logging.Debug/9.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0", - "Microsoft.Extensions.Logging": "9.0.0", - "Microsoft.Extensions.Logging.Abstractions": "9.0.0" - } - }, - "Microsoft.Extensions.Logging.EventLog/9.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0", - "Microsoft.Extensions.Logging": "9.0.0", - "Microsoft.Extensions.Logging.Abstractions": "9.0.0", - "Microsoft.Extensions.Options": "9.0.0", - "System.Diagnostics.EventLog": "10.0.0" - } - }, - "Microsoft.Extensions.Logging.EventSource/9.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0", - "Microsoft.Extensions.Logging": "9.0.0", - "Microsoft.Extensions.Logging.Abstractions": "9.0.0", - "Microsoft.Extensions.Options": "9.0.0", - "Microsoft.Extensions.Primitives": "9.0.0" - } - }, - "Microsoft.Extensions.Options/9.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0", - "Microsoft.Extensions.Primitives": "9.0.0" - } - }, - "Microsoft.Extensions.Options.ConfigurationExtensions/9.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "9.0.0", - "Microsoft.Extensions.Configuration.Binder": "9.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0", - "Microsoft.Extensions.Options": "9.0.0", - "Microsoft.Extensions.Primitives": "9.0.0" - } - }, - "Microsoft.Extensions.Primitives/9.0.0": {}, - "Microsoft.NETCore.Platforms/5.0.0": {}, - "Microsoft.Win32.Registry/5.0.0": { - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, "Microsoft.Win32.SystemEvents/10.0.0": { "runtime": { "runtimes/win/lib/net9.0/Microsoft.Win32.SystemEvents.dll": { @@ -2203,10 +1966,6 @@ } }, "MongoDB.Bson/3.4.2": { - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "5.0.0" - }, "runtime": { "lib/net6.0/MongoDB.Bson.dll": { "assemblyVersion": "3.4.2.0", @@ -2217,11 +1976,9 @@ "MongoDB.Driver/3.4.2": { "dependencies": { "DnsClient": "1.6.1", - "Microsoft.Extensions.Logging.Abstractions": "9.0.0", "MongoDB.Bson": "3.4.2", "SharpCompress": "0.30.1", "Snappier": "1.0.0", - "System.Buffers": "4.5.1", "ZstdSharp.Port": "0.7.3" }, "runtime": { @@ -2247,7 +2004,6 @@ } } }, - "System.Buffers/4.5.1": {}, "System.Collections.Immutable/10.0.0": { "runtime": { "lib/net9.0/System.Collections.Immutable.dll": { @@ -2318,7 +2074,6 @@ } } }, - "System.Memory/4.5.5": {}, "System.Reflection.Metadata/10.0.0": { "dependencies": { "System.Collections.Immutable": "10.0.0" @@ -2341,13 +2096,6 @@ } } }, - "System.Runtime.CompilerServices.Unsafe/5.0.0": {}, - "System.Security.AccessControl/5.0.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, "System.Security.Cryptography.ProtectedData/10.0.0": { "runtime": { "lib/net9.0/System.Security.Cryptography.ProtectedData.dll": { @@ -2356,7 +2104,6 @@ } } }, - "System.Security.Principal.Windows/5.0.0": {}, "ZstdSharp.Port/0.7.3": { "runtime": { "lib/net7.0/ZstdSharp.dll": { @@ -2472,68 +2219,61 @@ "path": "grpc.net.common/2.66.0", "hashPath": "grpc.net.common.2.66.0.nupkg.sha512" }, - "Grpc.Tools/2.66.0": { + "Hi.Wpf/3.1.65": { "type": "package", "serviceable": true, - "sha512": "sha512-URTltx2E0aTGQqVW+H09AZiGR/qyQ3naHPymSG1/Ytgm8bPdjSltnsIFanbxb7rXxdYwGzLFGy82R82M1UktXg==", - "path": "grpc.tools/2.66.0", - "hashPath": "grpc.tools.2.66.0.nupkg.sha512" + "sha512": "sha512-8SIDG+mpmKmt9d+F6+X12IgFM+7ZSojkh0ji/n2fgKKERHNc4/miIKEYdJ/SirYFHV+aMhmssrlYdmS/DCBNww==", + "path": "hi.wpf/3.1.65", + "hashPath": "hi.wpf.3.1.65.nupkg.sha512" }, - "Hi.Wpf/3.1.63": { + "HiCbtr/3.1.70": { "type": "package", "serviceable": true, - "sha512": "sha512-9Zi553KzgSLJq6s3dh18ce8lFsJjH6CmgPKoqQ17Sea08JV2e7JoUIRCAb+81AmN9pX83LtemNB6grHpNrM/Pw==", - "path": "hi.wpf/3.1.63", - "hashPath": "hi.wpf.3.1.63.nupkg.sha512" + "sha512": "sha512-xiZ7lk/UQVJIMzbwJsZOY6px/zZN9XbnJmNdgzcJFo4tM0gdPQhCrROTZ6AIbMD4/jgMfTwIWgXOD9s+Gf9ivw==", + "path": "hicbtr/3.1.70", + "hashPath": "hicbtr.3.1.70.nupkg.sha512" }, - "HiCbtr/3.1.68": { + "HiDisp/3.1.70": { "type": "package", "serviceable": true, - "sha512": "sha512-pZP27TuU78fXtxIQ5AY/HFP1JwvD8vUV58PhNYRdxAqz+LMlMXfUWWksmhNN7OQerBDR34x//0ZP/d/eSK1q6w==", - "path": "hicbtr/3.1.68", - "hashPath": "hicbtr.3.1.68.nupkg.sha512" + "sha512": "sha512-ldquz1EpuiZDMdDM6qNQT2sSk0Og1KoKytZ9CcWyE2GomjuLOFA/HOhxi1Pe8PBHsA2AH3jehbI/G4l5QtujUg==", + "path": "hidisp/3.1.70", + "hashPath": "hidisp.3.1.70.nupkg.sha512" }, - "HiDisp/3.1.68": { + "HiGeom/3.1.65": { "type": "package", "serviceable": true, - "sha512": "sha512-2VfnaW9FOF2JIyT2a+sqw8fOFREBwtIOTnSOtxlz1w+NnIMHKl9LfaJ41JbhEcZ2xYTVmYD5LAMG266CRrszQg==", - "path": "hidisp/3.1.68", - "hashPath": "hidisp.3.1.68.nupkg.sha512" + "sha512": "sha512-0upPzxgNfvQ1PhLm94pCDJ7/Czr0sWfbijxpbzaKEYXkQWTVsFZY8KGCdC3XpKqypyNgAUl4PfNDHNpsDZ8o7g==", + "path": "higeom/3.1.65", + "hashPath": "higeom.3.1.65.nupkg.sha512" }, - "HiGeom/3.1.63": { + "HiLicense/3.1.65": { "type": "package", "serviceable": true, - "sha512": "sha512-0gBEYbJb5apr8Dsx+76ZAaorEKrcZdxUr2Fi+flhiD7C50oGYvrNuN73GOMwk7T/FqF84UR3h86gls4n8yyFJQ==", - "path": "higeom/3.1.63", - "hashPath": "higeom.3.1.63.nupkg.sha512" + "sha512": "sha512-6vEKfxyuN9vPRvWwCSrlh/M5GRUZCK1Azy3qarBRhNDqLLOig0L1/lmZZbaQ9Fh5Vo5AlAjIxfSUYG1NkK7qhA==", + "path": "hilicense/3.1.65", + "hashPath": "hilicense.3.1.65.nupkg.sha512" }, - "HiLicense/3.1.63": { + "HiMech/3.1.77": { "type": "package", "serviceable": true, - "sha512": "sha512-HHCKrA4EqjKfxT8BSFqudXF8AfuQ/PfC3LtoCo5c+0ObhXf+4wtjOZOrvW6nvwnAY64EYRU3XOQ/dEeq1Q/ySA==", - "path": "hilicense/3.1.63", - "hashPath": "hilicense.3.1.63.nupkg.sha512" + "sha512": "sha512-Ai5/vrYkN48Wcl2Mqv4amu+ikWd3NgjdtT/P0UbXRNGiJKcRmH81A0yAg3kokfGL3qZhHQCMAOQndc51+Nhc3A==", + "path": "himech/3.1.77", + "hashPath": "himech.3.1.77.nupkg.sha512" }, - "HiMech/3.1.75": { + "HiNc/3.1.86": { "type": "package", "serviceable": true, - "sha512": "sha512-h++3+zbjAlAmseq/VIxqQzrZBX3kElPVNXPD57V6gPbMwlIY4ve7F7jYwyB7RZ780m4Ocn78qIgYz54SrikZLg==", - "path": "himech/3.1.75", - "hashPath": "himech.3.1.75.nupkg.sha512" + "sha512": "sha512-TN/T2rV9x6jwrKQIhBxUzErMBgKVZlCtD5873MJ+uBZhqUbIGJSCVFjeeEusOqMh+kiy0JSYP4z2iST1bEZkRQ==", + "path": "hinc/3.1.86", + "hashPath": "hinc.3.1.86.nupkg.sha512" }, - "HiNc/3.1.84": { + "HiUniNc/3.1.74": { "type": "package", "serviceable": true, - "sha512": "sha512-p9aSYbtK5qZCrKs7tHM/2RqzVS7O3EvxFCOc+hSuRf36ZdrtR9mWYF+hzssZrwwyRXVamqjn292Wb0kGTx1cRw==", - "path": "hinc/3.1.84", - "hashPath": "hinc.3.1.84.nupkg.sha512" - }, - "HiUniNc/3.1.72": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LQ6tVZ6qrrfTb1/inoYi163+tVGZYAGwBcn+xwA3n9SJZz5EE/BV3Yuo2ad6n0y+qQjw48YWSJebhIUE7CTpUA==", - "path": "hiuninc/3.1.72", - "hashPath": "hiuninc.3.1.72.nupkg.sha512" + "sha512": "sha512-X+ad8OLhfyFIRzPyhuG5KIFSP7ToHDy6pc2VzeLMjroq/EdfD+E5KBb8y7OoPSM+09OaSeS1NWHoeApXY7qbqA==", + "path": "hiuninc/3.1.74", + "hashPath": "hiuninc.3.1.74.nupkg.sha512" }, "MathNet.Numerics/5.0.0": { "type": "package", @@ -2542,257 +2282,33 @@ "path": "mathnet.numerics/5.0.0", "hashPath": "mathnet.numerics.5.0.0.nupkg.sha512" }, - "Microsoft.CodeAnalysis.Analyzers/3.11.0": { + "Microsoft.CodeAnalysis.Common/5.0.0": { "type": "package", "serviceable": true, - "sha512": "sha512-v/EW3UE8/lbEYHoC2Qq7AR/DnmvpgdtAMndfQNmpuIMx/Mto8L5JnuCfdBYtgvalQOtfNCnxFejxuRrryvUTsg==", - "path": "microsoft.codeanalysis.analyzers/3.11.0", - "hashPath": "microsoft.codeanalysis.analyzers.3.11.0.nupkg.sha512" + "sha512": "sha512-ZXRAdvH6GiDeHRyd3q/km8Z44RoM6FBWHd+gen/la81mVnAdHTEsEkO5J0TCNXBymAcx5UYKt5TvgKBhaLJEow==", + "path": "microsoft.codeanalysis.common/5.0.0", + "hashPath": "microsoft.codeanalysis.common.5.0.0.nupkg.sha512" }, - "Microsoft.CodeAnalysis.Common/4.14.0": { + "Microsoft.CodeAnalysis.CSharp/5.0.0": { "type": "package", "serviceable": true, - "sha512": "sha512-PC3tuwZYnC+idaPuoC/AZpEdwrtX7qFpmnrfQkgobGIWiYmGi5MCRtl5mx6QrfMGQpK78X2lfIEoZDLg/qnuHg==", - "path": "microsoft.codeanalysis.common/4.14.0", - "hashPath": "microsoft.codeanalysis.common.4.14.0.nupkg.sha512" + "sha512": "sha512-5DSyJ9bk+ATuDy7fp2Zt0mJStDVKbBoiz1DyfAwSa+k4H4IwykAUcV3URelw5b8/iVbfSaOwkwmPUZH6opZKCw==", + "path": "microsoft.codeanalysis.csharp/5.0.0", + "hashPath": "microsoft.codeanalysis.csharp.5.0.0.nupkg.sha512" }, - "Microsoft.CodeAnalysis.CSharp/4.14.0": { + "Microsoft.CodeAnalysis.CSharp.Scripting/5.0.0": { "type": "package", "serviceable": true, - "sha512": "sha512-568a6wcTivauIhbeWcCwfWwIn7UV7MeHEBvFB2uzGIpM2OhJ4eM/FZ8KS0yhPoNxnSpjGzz7x7CIjTxhslojQA==", - "path": "microsoft.codeanalysis.csharp/4.14.0", - "hashPath": "microsoft.codeanalysis.csharp.4.14.0.nupkg.sha512" + "sha512": "sha512-1sGloRYbG3743ut/+vuXy9/WaRQTm7mDtp71rBaVSmKpFntvo5Hcro1ubg6/3SeeLtiFYJl7V3Dk0Fo3CGlnHA==", + "path": "microsoft.codeanalysis.csharp.scripting/5.0.0", + "hashPath": "microsoft.codeanalysis.csharp.scripting.5.0.0.nupkg.sha512" }, - "Microsoft.CodeAnalysis.CSharp.Scripting/4.14.0": { + "Microsoft.CodeAnalysis.Scripting.Common/5.0.0": { "type": "package", "serviceable": true, - "sha512": "sha512-Ji6L9o7JY7tVMthoqInsksPLDE0tfAvJURC9Xe038N4FyXH2wKS4K/sG/bDbdJoK1oFIOLtyPEe2POJ+/AeGZg==", - "path": "microsoft.codeanalysis.csharp.scripting/4.14.0", - "hashPath": "microsoft.codeanalysis.csharp.scripting.4.14.0.nupkg.sha512" - }, - "Microsoft.CodeAnalysis.Scripting.Common/4.14.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-YRFoYZQU4VPlB+Xwwtj8gIHXxMyuhGXyj207IWHcsSNaJtW83My0FGv6jtN9gC/HkxgjdMYJORPjBwUx3+FVjQ==", - "path": "microsoft.codeanalysis.scripting.common/4.14.0", - "hashPath": "microsoft.codeanalysis.scripting.common.4.14.0.nupkg.sha512" - }, - "Microsoft.CSharp/4.7.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==", - "path": "microsoft.csharp/4.7.0", - "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-YIMO9T3JL8MeEXgVozKt2v79hquo/EFtnY0vgxmLnUvk1Rei/halI7kOWZL2RBeV9FMGzgM9LZA8CVaNwFMaNA==", - "path": "microsoft.extensions.configuration/9.0.0", - "hashPath": "microsoft.extensions.configuration.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.Abstractions/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lqvd7W3FGKUO1+ZoUEMaZ5XDJeWvjpy2/M/ptCGz3tXLD4HWVaSzjufsAsjemasBEg+2SxXVtYVvGt5r2nKDlg==", - "path": "microsoft.extensions.configuration.abstractions/9.0.0", - "hashPath": "microsoft.extensions.configuration.abstractions.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.Binder/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RiScL99DcyngY9zJA2ROrri7Br8tn5N4hP4YNvGdTN/bvg1A3dwvDOxHnNZ3Im7x2SJ5i4LkX1uPiR/MfSFBLQ==", - "path": "microsoft.extensions.configuration.binder/9.0.0", - "hashPath": "microsoft.extensions.configuration.binder.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.CommandLine/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-qD+hdkBtR9Ps7AxfhTJCnoVakkadHgHlD1WRN0QHGHod+SDuca1ao1kF4G2rmpAz2AEKrE2N2vE8CCCZ+ILnNw==", - "path": "microsoft.extensions.configuration.commandline/9.0.0", - "hashPath": "microsoft.extensions.configuration.commandline.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.EnvironmentVariables/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-v5R638eNMxksfXb7MFnkPwLPp+Ym4W/SIGNuoe8qFVVyvygQD5DdLusybmYSJEr9zc1UzWzim/ATKeIOVvOFDg==", - "path": "microsoft.extensions.configuration.environmentvariables/9.0.0", - "hashPath": "microsoft.extensions.configuration.environmentvariables.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.FileExtensions/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4EK93Jcd2lQG4GY6PAw8jGss0ZzFP0vPc1J85mES5fKNuDTqgFXHba9onBw2s18fs3I4vdo2AWyfD1mPAxWSQQ==", - "path": "microsoft.extensions.configuration.fileextensions/9.0.0", - "hashPath": "microsoft.extensions.configuration.fileextensions.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.Json/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WiTK0LrnsqmedrbzwL7f4ZUo+/wByqy2eKab39I380i2rd8ImfCRMrtkqJVGDmfqlkP/YzhckVOwPc5MPrSNpg==", - "path": "microsoft.extensions.configuration.json/9.0.0", - "hashPath": "microsoft.extensions.configuration.json.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.UserSecrets/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FShWw8OysquwV7wQHYkkz0VWsJSo6ETUu4h7tJRMtnG0uR+tzKOldhcO8xB1pGSOI3Ng6v3N1Q94YO8Rzq1P6A==", - "path": "microsoft.extensions.configuration.usersecrets/9.0.0", - "hashPath": "microsoft.extensions.configuration.usersecrets.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MCPrg7v3QgNMr0vX4vzRXvkNGgLg8vKWX0nKCWUxu2uPyMsaRgiRc1tHBnbTcfJMhMKj2slE/j2M9oGkd25DNw==", - "path": "microsoft.extensions.dependencyinjection/9.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+6f2qv2a3dLwd5w6JanPIPs47CxRbnk+ZocMJUhv9NxP88VlOcJYZs9jY+MYSjxvady08bUZn6qgiNh7DadGgg==", - "path": "microsoft.extensions.dependencyinjection.abstractions/9.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Diagnostics/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0CF9ZrNw5RAlRfbZuVIvzzhP8QeWqHiUmMBU/2H7Nmit8/vwP3/SbHeEctth7D4Gz2fBnEbokPc1NU8/j/1ZLw==", - "path": "microsoft.extensions.diagnostics/9.0.0", - "hashPath": "microsoft.extensions.diagnostics.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Diagnostics.Abstractions/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1K8P7XzuzX8W8pmXcZjcrqS6x5eSSdvhQohmcpgiQNY/HlDAlnrhR9dvlURfFz428A+RTCJpUyB+aKTA6AgVcQ==", - "path": "microsoft.extensions.diagnostics.abstractions/9.0.0", - "hashPath": "microsoft.extensions.diagnostics.abstractions.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.FileProviders.Abstractions/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-uK439QzYR0q2emLVtYzwyK3x+T5bTY4yWsd/k/ZUS9LR6Sflp8MIdhGXW8kQCd86dQD4tLqvcbLkku8qHY263Q==", - "path": "microsoft.extensions.fileproviders.abstractions/9.0.0", - "hashPath": "microsoft.extensions.fileproviders.abstractions.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.FileProviders.Physical/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3+ZUSpOSmie+o8NnLIRqCxSh65XL/ExU7JYnFOg58awDRlY3lVpZ9A369jkoZL1rpsq7LDhEfkn2ghhGaY1y5Q==", - "path": "microsoft.extensions.fileproviders.physical/9.0.0", - "hashPath": "microsoft.extensions.fileproviders.physical.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.FileSystemGlobbing/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-jGFKZiXs2HNseK3NK/rfwHNNovER71jSj4BD1a/649ml9+h6oEtYd0GSALZDNW8jZ2Rh+oAeadOa6sagYW1F2A==", - "path": "microsoft.extensions.filesystemglobbing/9.0.0", - "hashPath": "microsoft.extensions.filesystemglobbing.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Hosting/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-wNmQWRCa83HYbpxQ3wH7xBn8oyGjONSj1k8svzrFUFyJMfg/Ja/g0NfI0p85wxlUxBh97A6ypmL8X5vVUA5y2Q==", - "path": "microsoft.extensions.hosting/9.0.0", - "hashPath": "microsoft.extensions.hosting.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Hosting.Abstractions/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-yUKJgu81ExjvqbNWqZKshBbLntZMbMVz/P7Way2SBx7bMqA08Mfdc9O7hWDKAiSp+zPUGT6LKcSCQIPeDK+CCw==", - "path": "microsoft.extensions.hosting.abstractions/9.0.0", - "hashPath": "microsoft.extensions.hosting.abstractions.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Http/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-15+pa2G0bAMHbHewaQIdr/y6ag2H3yh4rd9hTXavtWDzQBkvpe2RMqFg8BxDpcQWssmjmBApGPcw93QRz6YcMg==", - "path": "microsoft.extensions.http/6.0.0", - "hashPath": "microsoft.extensions.http.6.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-crjWyORoug0kK7RSNJBTeSE6VX8IQgLf3nUpTB9m62bPXp/tzbnOsnbe8TXEG0AASNaKZddnpHKw7fET8E++Pg==", - "path": "microsoft.extensions.logging/9.0.0", - "hashPath": "microsoft.extensions.logging.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Abstractions/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-g0UfujELzlLbHoVG8kPKVBaW470Ewi+jnptGS9KUi6jcb+k2StujtK3m26DFSGGwQ/+bVgZfsWqNzlP6YOejvw==", - "path": "microsoft.extensions.logging.abstractions/9.0.0", - "hashPath": "microsoft.extensions.logging.abstractions.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Configuration/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-H05HiqaNmg6GjH34ocYE9Wm1twm3Oz2aXZko8GTwGBzM7op2brpAA8pJ5yyD1OpS1mXUtModBYOlcZ/wXeWsSg==", - "path": "microsoft.extensions.logging.configuration/9.0.0", - "hashPath": "microsoft.extensions.logging.configuration.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Console/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-yDZ4zsjl7N0K+R/1QTNpXBd79Kaf4qNLHtjk4NaG82UtNg2Z6etJywwv6OarOv3Rp7ocU7uIaRY4CrzHRO/d3w==", - "path": "microsoft.extensions.logging.console/9.0.0", - "hashPath": "microsoft.extensions.logging.console.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Debug/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4wGlHsrLhYjLw4sFkfRixu2w4DK7dv60OjbvgbLGhUJk0eUPxYHhnszZ/P18nnAkfrPryvtOJ3ZTVev0kpqM6A==", - "path": "microsoft.extensions.logging.debug/9.0.0", - "hashPath": "microsoft.extensions.logging.debug.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.EventLog/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/B8I5bScondnLMNULA3PBu/7Gvmv/P7L83j7gVrmLh6R+HCgHqUNIwVvzCok4ZjIXN2KxrsONHjFYwoBK5EJgQ==", - "path": "microsoft.extensions.logging.eventlog/9.0.0", - "hashPath": "microsoft.extensions.logging.eventlog.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.EventSource/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zvSjdOAb3HW3aJPM5jf+PR9UoIkoci9id80RXmBgrDEozWI0GDw8tdmpyZgZSwFDvGCwHFodFLNQaeH8879rlA==", - "path": "microsoft.extensions.logging.eventsource/9.0.0", - "hashPath": "microsoft.extensions.logging.eventsource.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Options/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-y2146b3jrPI3Q0lokKXdKLpmXqakYbDIPDV6r3M8SqvSf45WwOTzkyfDpxnZXJsJQEpAsAqjUq5Pu8RCJMjubg==", - "path": "microsoft.extensions.options/9.0.0", - "hashPath": "microsoft.extensions.options.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Options.ConfigurationExtensions/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Ob3FXsXkcSMQmGZi7qP07EQ39kZpSBlTcAZLbJLdI4FIf0Jug8biv2HTavWmnTirchctPlq9bl/26CXtQRguzA==", - "path": "microsoft.extensions.options.configurationextensions/9.0.0", - "hashPath": "microsoft.extensions.options.configurationextensions.9.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/9.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-N3qEBzmLMYiASUlKxxFIISP4AiwuPTHF5uCh+2CWSwwzAJiIYx0kBJsS30cp1nvhSySFAVi30jecD307jV+8Kg==", - "path": "microsoft.extensions.primitives/9.0.0", - "hashPath": "microsoft.extensions.primitives.9.0.0.nupkg.sha512" - }, - "Microsoft.NETCore.Platforms/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==", - "path": "microsoft.netcore.platforms/5.0.0", - "hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512" - }, - "Microsoft.Win32.Registry/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "path": "microsoft.win32.registry/5.0.0", - "hashPath": "microsoft.win32.registry.5.0.0.nupkg.sha512" + "sha512": "sha512-XTulByMNxqXGCgMeODUoG2h4oK4/nLv1BcawRVcjv+UZHMpoaymtdaq3cJqlNrEvYEcbU48g5swJ3RhY1m3fBg==", + "path": "microsoft.codeanalysis.scripting.common/5.0.0", + "hashPath": "microsoft.codeanalysis.scripting.common.5.0.0.nupkg.sha512" }, "Microsoft.Win32.SystemEvents/10.0.0": { "type": "package", @@ -2829,13 +2345,6 @@ "path": "snappier/1.0.0", "hashPath": "snappier.1.0.0.nupkg.sha512" }, - "System.Buffers/4.5.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==", - "path": "system.buffers/4.5.1", - "hashPath": "system.buffers.4.5.1.nupkg.sha512" - }, "System.Collections.Immutable/10.0.0": { "type": "package", "serviceable": true, @@ -2878,13 +2387,6 @@ "path": "system.io.pipelines/10.0.0", "hashPath": "system.io.pipelines.10.0.0.nupkg.sha512" }, - "System.Memory/4.5.5": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", - "path": "system.memory/4.5.5", - "hashPath": "system.memory.4.5.5.nupkg.sha512" - }, "System.Reflection.Metadata/10.0.0": { "type": "package", "serviceable": true, @@ -2899,20 +2401,6 @@ "path": "system.resources.extensions/10.0.0", "hashPath": "system.resources.extensions.10.0.0.nupkg.sha512" }, - "System.Runtime.CompilerServices.Unsafe/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==", - "path": "system.runtime.compilerservices.unsafe/5.0.0", - "hashPath": "system.runtime.compilerservices.unsafe.5.0.0.nupkg.sha512" - }, - "System.Security.AccessControl/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "path": "system.security.accesscontrol/5.0.0", - "hashPath": "system.security.accesscontrol.5.0.0.nupkg.sha512" - }, "System.Security.Cryptography.ProtectedData/10.0.0": { "type": "package", "serviceable": true, @@ -2920,13 +2408,6 @@ "path": "system.security.cryptography.protecteddata/10.0.0", "hashPath": "system.security.cryptography.protecteddata.10.0.0.nupkg.sha512" }, - "System.Security.Principal.Windows/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==", - "path": "system.security.principal.windows/5.0.0", - "hashPath": "system.security.principal.windows.5.0.0.nupkg.sha512" - }, "ZstdSharp.Port/0.7.3": { "type": "package", "serviceable": true, diff --git a/App/HiNC-2025-win-desktop.dll b/App/HiNC-2025-win-desktop.dll index d3066a1..eb067e7 100644 Binary files a/App/HiNC-2025-win-desktop.dll and b/App/HiNC-2025-win-desktop.dll differ diff --git a/App/HiNC-2025-win-desktop.pdb b/App/HiNC-2025-win-desktop.pdb index 04c9076..beac5f0 100644 Binary files a/App/HiNC-2025-win-desktop.pdb and b/App/HiNC-2025-win-desktop.pdb differ diff --git a/App/HiNc.dll b/App/HiNc.dll index 098a379..6d65d48 100644 Binary files a/App/HiNc.dll and b/App/HiNc.dll differ diff --git a/App/HiUniNc.dll b/App/HiUniNc.dll index 9751407..5b93cc7 100644 Binary files a/App/HiUniNc.dll and b/App/HiUniNc.dll differ diff --git a/App/Microsoft.CodeAnalysis.CSharp.Scripting.dll b/App/Microsoft.CodeAnalysis.CSharp.Scripting.dll index 84af17d..ec6ffbf 100644 Binary files a/App/Microsoft.CodeAnalysis.CSharp.Scripting.dll and b/App/Microsoft.CodeAnalysis.CSharp.Scripting.dll differ diff --git a/App/Microsoft.CodeAnalysis.CSharp.dll b/App/Microsoft.CodeAnalysis.CSharp.dll index 5ad16cb..dc1f35d 100644 Binary files a/App/Microsoft.CodeAnalysis.CSharp.dll and b/App/Microsoft.CodeAnalysis.CSharp.dll differ diff --git a/App/Microsoft.CodeAnalysis.Scripting.dll b/App/Microsoft.CodeAnalysis.Scripting.dll index 5d830a8..8d0876e 100644 Binary files a/App/Microsoft.CodeAnalysis.Scripting.dll and b/App/Microsoft.CodeAnalysis.Scripting.dll differ diff --git a/App/Microsoft.CodeAnalysis.dll b/App/Microsoft.CodeAnalysis.dll index 58d70e0..f54bd93 100644 Binary files a/App/Microsoft.CodeAnalysis.dll and b/App/Microsoft.CodeAnalysis.dll differ diff --git a/App/core.dll b/App/core.dll index 8f18096..9349d61 100644 Binary files a/App/core.dll and b/App/core.dll differ diff --git a/App/cs/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll b/App/cs/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll index 1197bb5..5026d91 100644 Binary files a/App/cs/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll and b/App/cs/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll differ diff --git a/App/cs/Microsoft.CodeAnalysis.CSharp.resources.dll b/App/cs/Microsoft.CodeAnalysis.CSharp.resources.dll index fbb9d8c..de0032e 100644 Binary files a/App/cs/Microsoft.CodeAnalysis.CSharp.resources.dll and b/App/cs/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/App/cs/Microsoft.CodeAnalysis.Scripting.resources.dll b/App/cs/Microsoft.CodeAnalysis.Scripting.resources.dll index cbe0d20..f5dae0b 100644 Binary files a/App/cs/Microsoft.CodeAnalysis.Scripting.resources.dll and b/App/cs/Microsoft.CodeAnalysis.Scripting.resources.dll differ diff --git a/App/cs/Microsoft.CodeAnalysis.resources.dll b/App/cs/Microsoft.CodeAnalysis.resources.dll index c16401c..fe7a8c8 100644 Binary files a/App/cs/Microsoft.CodeAnalysis.resources.dll and b/App/cs/Microsoft.CodeAnalysis.resources.dll differ diff --git a/App/de/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll b/App/de/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll index b02d910..87e10b0 100644 Binary files a/App/de/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll and b/App/de/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll differ diff --git a/App/de/Microsoft.CodeAnalysis.CSharp.resources.dll b/App/de/Microsoft.CodeAnalysis.CSharp.resources.dll index 8229839..3bef0e7 100644 Binary files a/App/de/Microsoft.CodeAnalysis.CSharp.resources.dll and b/App/de/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/App/de/Microsoft.CodeAnalysis.Scripting.resources.dll b/App/de/Microsoft.CodeAnalysis.Scripting.resources.dll index dba279a..1ac21c1 100644 Binary files a/App/de/Microsoft.CodeAnalysis.Scripting.resources.dll and b/App/de/Microsoft.CodeAnalysis.Scripting.resources.dll differ diff --git a/App/de/Microsoft.CodeAnalysis.resources.dll b/App/de/Microsoft.CodeAnalysis.resources.dll index a3ab03d..71227fc 100644 Binary files a/App/de/Microsoft.CodeAnalysis.resources.dll and b/App/de/Microsoft.CodeAnalysis.resources.dll differ diff --git a/App/en/HiGeom.resources.dll b/App/en/HiGeom.resources.dll index 0e93499..1474eeb 100644 Binary files a/App/en/HiGeom.resources.dll and b/App/en/HiGeom.resources.dll differ diff --git a/App/en/HiMech.resources.dll b/App/en/HiMech.resources.dll index 08754cc..f412656 100644 Binary files a/App/en/HiMech.resources.dll and b/App/en/HiMech.resources.dll differ diff --git a/App/es/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll b/App/es/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll index 178405a..ce491fd 100644 Binary files a/App/es/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll and b/App/es/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll differ diff --git a/App/es/Microsoft.CodeAnalysis.CSharp.resources.dll b/App/es/Microsoft.CodeAnalysis.CSharp.resources.dll index 92fede6..7b14221 100644 Binary files a/App/es/Microsoft.CodeAnalysis.CSharp.resources.dll and b/App/es/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/App/es/Microsoft.CodeAnalysis.Scripting.resources.dll b/App/es/Microsoft.CodeAnalysis.Scripting.resources.dll index 76b20fd..eabc7a9 100644 Binary files a/App/es/Microsoft.CodeAnalysis.Scripting.resources.dll and b/App/es/Microsoft.CodeAnalysis.Scripting.resources.dll differ diff --git a/App/es/Microsoft.CodeAnalysis.resources.dll b/App/es/Microsoft.CodeAnalysis.resources.dll index 3255be3..ffe4e81 100644 Binary files a/App/es/Microsoft.CodeAnalysis.resources.dll and b/App/es/Microsoft.CodeAnalysis.resources.dll differ diff --git a/App/fr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll b/App/fr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll index 91e50e4..bdf9041 100644 Binary files a/App/fr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll and b/App/fr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll differ diff --git a/App/fr/Microsoft.CodeAnalysis.CSharp.resources.dll b/App/fr/Microsoft.CodeAnalysis.CSharp.resources.dll index f42ab22..35b8d36 100644 Binary files a/App/fr/Microsoft.CodeAnalysis.CSharp.resources.dll and b/App/fr/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/App/fr/Microsoft.CodeAnalysis.Scripting.resources.dll b/App/fr/Microsoft.CodeAnalysis.Scripting.resources.dll index c32a3a7..6224d3d 100644 Binary files a/App/fr/Microsoft.CodeAnalysis.Scripting.resources.dll and b/App/fr/Microsoft.CodeAnalysis.Scripting.resources.dll differ diff --git a/App/fr/Microsoft.CodeAnalysis.resources.dll b/App/fr/Microsoft.CodeAnalysis.resources.dll index 9c222a0..2870de8 100644 Binary files a/App/fr/Microsoft.CodeAnalysis.resources.dll and b/App/fr/Microsoft.CodeAnalysis.resources.dll differ diff --git a/App/it/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll b/App/it/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll index 7446762..b824665 100644 Binary files a/App/it/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll and b/App/it/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll differ diff --git a/App/it/Microsoft.CodeAnalysis.CSharp.resources.dll b/App/it/Microsoft.CodeAnalysis.CSharp.resources.dll index c907e89..4f5ea19 100644 Binary files a/App/it/Microsoft.CodeAnalysis.CSharp.resources.dll and b/App/it/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/App/it/Microsoft.CodeAnalysis.Scripting.resources.dll b/App/it/Microsoft.CodeAnalysis.Scripting.resources.dll index 7a3da8b..a128ff1 100644 Binary files a/App/it/Microsoft.CodeAnalysis.Scripting.resources.dll and b/App/it/Microsoft.CodeAnalysis.Scripting.resources.dll differ diff --git a/App/it/Microsoft.CodeAnalysis.resources.dll b/App/it/Microsoft.CodeAnalysis.resources.dll index f71f4de..738856c 100644 Binary files a/App/it/Microsoft.CodeAnalysis.resources.dll and b/App/it/Microsoft.CodeAnalysis.resources.dll differ diff --git a/App/ja/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll b/App/ja/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll index d07ff2c..db113c0 100644 Binary files a/App/ja/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll and b/App/ja/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll differ diff --git a/App/ja/Microsoft.CodeAnalysis.CSharp.resources.dll b/App/ja/Microsoft.CodeAnalysis.CSharp.resources.dll index f71989e..8d5c43a 100644 Binary files a/App/ja/Microsoft.CodeAnalysis.CSharp.resources.dll and b/App/ja/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/App/ja/Microsoft.CodeAnalysis.Scripting.resources.dll b/App/ja/Microsoft.CodeAnalysis.Scripting.resources.dll index 4022a3a..c8b03b8 100644 Binary files a/App/ja/Microsoft.CodeAnalysis.Scripting.resources.dll and b/App/ja/Microsoft.CodeAnalysis.Scripting.resources.dll differ diff --git a/App/ja/Microsoft.CodeAnalysis.resources.dll b/App/ja/Microsoft.CodeAnalysis.resources.dll index 52af814..7400f4a 100644 Binary files a/App/ja/Microsoft.CodeAnalysis.resources.dll and b/App/ja/Microsoft.CodeAnalysis.resources.dll differ diff --git a/App/ko/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll b/App/ko/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll index f5fe1a7..87b7088 100644 Binary files a/App/ko/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll and b/App/ko/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll differ diff --git a/App/ko/Microsoft.CodeAnalysis.CSharp.resources.dll b/App/ko/Microsoft.CodeAnalysis.CSharp.resources.dll index 3f4420a..7305396 100644 Binary files a/App/ko/Microsoft.CodeAnalysis.CSharp.resources.dll and b/App/ko/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/App/ko/Microsoft.CodeAnalysis.Scripting.resources.dll b/App/ko/Microsoft.CodeAnalysis.Scripting.resources.dll index af1f325..7e0e174 100644 Binary files a/App/ko/Microsoft.CodeAnalysis.Scripting.resources.dll and b/App/ko/Microsoft.CodeAnalysis.Scripting.resources.dll differ diff --git a/App/ko/Microsoft.CodeAnalysis.resources.dll b/App/ko/Microsoft.CodeAnalysis.resources.dll index 889da69..9f8ffe3 100644 Binary files a/App/ko/Microsoft.CodeAnalysis.resources.dll and b/App/ko/Microsoft.CodeAnalysis.resources.dll differ diff --git a/App/pl/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll b/App/pl/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll index 42602e2..93476d2 100644 Binary files a/App/pl/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll and b/App/pl/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll differ diff --git a/App/pl/Microsoft.CodeAnalysis.CSharp.resources.dll b/App/pl/Microsoft.CodeAnalysis.CSharp.resources.dll index f6ee255..89c6efc 100644 Binary files a/App/pl/Microsoft.CodeAnalysis.CSharp.resources.dll and b/App/pl/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/App/pl/Microsoft.CodeAnalysis.Scripting.resources.dll b/App/pl/Microsoft.CodeAnalysis.Scripting.resources.dll index c1f4292..a1d9ec3 100644 Binary files a/App/pl/Microsoft.CodeAnalysis.Scripting.resources.dll and b/App/pl/Microsoft.CodeAnalysis.Scripting.resources.dll differ diff --git a/App/pl/Microsoft.CodeAnalysis.resources.dll b/App/pl/Microsoft.CodeAnalysis.resources.dll index 356b64a..9db06d4 100644 Binary files a/App/pl/Microsoft.CodeAnalysis.resources.dll and b/App/pl/Microsoft.CodeAnalysis.resources.dll differ diff --git a/App/pt-BR/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll b/App/pt-BR/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll index a443c07..e75f09f 100644 Binary files a/App/pt-BR/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll and b/App/pt-BR/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll differ diff --git a/App/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll b/App/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll index 855b11a..a263248 100644 Binary files a/App/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll and b/App/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/App/pt-BR/Microsoft.CodeAnalysis.Scripting.resources.dll b/App/pt-BR/Microsoft.CodeAnalysis.Scripting.resources.dll index a534aa5..5280b0d 100644 Binary files a/App/pt-BR/Microsoft.CodeAnalysis.Scripting.resources.dll and b/App/pt-BR/Microsoft.CodeAnalysis.Scripting.resources.dll differ diff --git a/App/pt-BR/Microsoft.CodeAnalysis.resources.dll b/App/pt-BR/Microsoft.CodeAnalysis.resources.dll index e064beb..8b9f7ce 100644 Binary files a/App/pt-BR/Microsoft.CodeAnalysis.resources.dll and b/App/pt-BR/Microsoft.CodeAnalysis.resources.dll differ diff --git a/App/ru/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll b/App/ru/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll index b2e1238..33a7463 100644 Binary files a/App/ru/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll and b/App/ru/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll differ diff --git a/App/ru/Microsoft.CodeAnalysis.CSharp.resources.dll b/App/ru/Microsoft.CodeAnalysis.CSharp.resources.dll index 171d38e..6feb49f 100644 Binary files a/App/ru/Microsoft.CodeAnalysis.CSharp.resources.dll and b/App/ru/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/App/ru/Microsoft.CodeAnalysis.Scripting.resources.dll b/App/ru/Microsoft.CodeAnalysis.Scripting.resources.dll index da2d035..5004e0d 100644 Binary files a/App/ru/Microsoft.CodeAnalysis.Scripting.resources.dll and b/App/ru/Microsoft.CodeAnalysis.Scripting.resources.dll differ diff --git a/App/ru/Microsoft.CodeAnalysis.resources.dll b/App/ru/Microsoft.CodeAnalysis.resources.dll index 5a93bd4..b5e3f64 100644 Binary files a/App/ru/Microsoft.CodeAnalysis.resources.dll and b/App/ru/Microsoft.CodeAnalysis.resources.dll differ diff --git a/App/tr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll b/App/tr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll index 19923a1..3e0a242 100644 Binary files a/App/tr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll and b/App/tr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll differ diff --git a/App/tr/Microsoft.CodeAnalysis.CSharp.resources.dll b/App/tr/Microsoft.CodeAnalysis.CSharp.resources.dll index 1c74b2d..6697523 100644 Binary files a/App/tr/Microsoft.CodeAnalysis.CSharp.resources.dll and b/App/tr/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/App/tr/Microsoft.CodeAnalysis.Scripting.resources.dll b/App/tr/Microsoft.CodeAnalysis.Scripting.resources.dll index c133051..506eb95 100644 Binary files a/App/tr/Microsoft.CodeAnalysis.Scripting.resources.dll and b/App/tr/Microsoft.CodeAnalysis.Scripting.resources.dll differ diff --git a/App/tr/Microsoft.CodeAnalysis.resources.dll b/App/tr/Microsoft.CodeAnalysis.resources.dll index 06464b4..e5f35c2 100644 Binary files a/App/tr/Microsoft.CodeAnalysis.resources.dll and b/App/tr/Microsoft.CodeAnalysis.resources.dll differ diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Cbtr.Substraction.html b/App/wwwroot/HiAPI-docsite/api/Hi.Cbtr.Substraction.html index 6774889..4233acc 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Cbtr.Substraction.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Cbtr.Substraction.html @@ -103,7 +103,7 @@ Class Substraction
[BsonIgnoreExtraElements]
-public class Substraction : IWriteBin, IExpandToBox3d
+public class Substraction : IWriteBin, IDisplayee, IExpandToBox3d
@@ -121,6 +121,7 @@ public class Substraction : IWriteBin, IExpandToBox3d
Implements
IWriteBin
+
IDisplayee
IExpandToBox3d
@@ -167,6 +168,9 @@ public class Substraction : IWriteBin, IExpandToBox3d
MillingRemovalUtil.GetContoursOnToolRunningCoordinate(Substraction, MachineMotionStep)
+
+ DispUtil.Display(IDisplayee, Bind, Mat4d) +
ColorUtil.GetGloomyColor(object, double, double)
@@ -293,7 +297,7 @@ public class Substraction : IWriteBin, IExpandToBox3d -

Gets or sets the contact contours.

+

Gets or sets the contact contours on workpiece coordinate.

@@ -533,6 +537,39 @@ public int StepIndex { get; set; } + + +

+ Display(Bind) + +

+ +

Display function called in DispEngine rendering loop.

+
+
+ +
+
public void Display(Bind bind)
+
+ +

Parameters

+
+
bind Bind
+

Bind with DispEngine. See Bind.

+
+
+ + + + + + + + + + + +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Cbtr.UnmanagedSubstraction.html b/App/wwwroot/HiAPI-docsite/api/Hi.Cbtr.UnmanagedSubstraction.html index 9852449..95a85c7 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Cbtr.UnmanagedSubstraction.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Cbtr.UnmanagedSubstraction.html @@ -391,42 +391,6 @@ Class UnmanagedSubstraction - - -

- DisplayContours(List<List<Vec3d>>, Bind) - -

- -

Displays contours in a visualization binding.

-
-
- -
-
public static void DisplayContours(List<List<Vec3d>> contours, Bind bind)
-
- -

Parameters

-
-
contours List<List<Vec3d>>
-

The list of contours to display, where each contour is a list of 3D points.

-
-
bind Bind
-

The binding to display the contours in.

-
-
- - - - - - - - - - - -

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.BinarySearchResult.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.BinarySearchResult.html index 2229c96..fc2e8a5 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.BinarySearchResult.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.BinarySearchResult.html @@ -151,11 +151,11 @@ Enum BinarySearchResult
FoundCeil = 8
-

Indicates that a value greater than or equal to the target was found.

+

Indicates that a value greater than to the target was found.

FoundFloor = 4
-

Indicates that a value less than or equal to the target was found.

+

Indicates that a value less than to the target was found.

NotExisted = 1
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.SortedListUtil.SeekDirection.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.SortedListUtil.SeekDirection.html new file mode 100644 index 0000000..6c92a1c --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.SortedListUtil.SeekDirection.html @@ -0,0 +1,183 @@ + + + + + Enum SortedListUtil.SeekDirection | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + + +

+Enum SortedListUtil.SeekDirection +

+ +
+
Namespace
Hi.Common.Collections
+
Assembly
HiGeom.dll
+
+ +
+
+ +
+
public enum SortedListUtil.SeekDirection
+
+ + + + + + + + +
+
Extension Methods
+
+ + + + + + + + +
+ +

Fields +

+
+
Backward = 2
+ +
+
Forward = 1
+ +
+
Free = 0
+ +
+
+ + + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.SortedListUtil.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.SortedListUtil.html index ffd0be4..8c7e8da 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.SortedListUtil.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.SortedListUtil.html @@ -155,18 +155,18 @@ Class SortedListUtil -

- GetByMethod<TKey, V>(SortedList<TKey, V>, TKey, SearchMethod, out BinarySearchResult) +

+ GetByMethod<TKey, V>(SortedList<TKey, V>, TKey, SearchMethod, out V, int, int)

Get value by searchMethod. -If result is NotExisted, return the default value of V.

+If return value is NotExisted, resultValue will be the default value of V.

-
public static V GetByMethod<TKey, V>(this SortedList<TKey, V> src, TKey key, SortedListUtil.SearchMethod searchMethod, out BinarySearchResult result) where TKey : IComparable<TKey>
+
public static BinarySearchResult GetByMethod<TKey, V>(this SortedList<TKey, V> src, TKey key, SortedListUtil.SearchMethod searchMethod, out V resultValue, int beginIndex = 0, int endIndex = -1) where TKey : IComparable<TKey>

Parameters

@@ -180,15 +180,21 @@ If result is SortedListUtil.SearchMethod

search method

-
result BinarySearchResult
-

result

+
resultValue V
+

searched value

+
+
beginIndex int
+

The starting index for the search range (inclusive). Default is 0.

+
+
endIndex int
+

The ending index for the search range (exclusive). Default is -1, which means the end of the list.

Returns

-
V
-

searched value

+
BinarySearchResult
+

search result

@@ -211,10 +217,10 @@ If result is + -

- GetCeilIndex<TKey, V>(SortedList<TKey, V>, TKey, out BinarySearchResult) +

+ GetCeilListIndex<TKey, V>(SortedList<TKey, V>, TKey, out int, int, int)

@@ -223,7 +229,7 @@ If result is
-
public static int GetCeilIndex<TKey, V>(this SortedList<TKey, V> src, TKey key, out BinarySearchResult result) where TKey : IComparable<TKey>
+
public static BinarySearchResult GetCeilListIndex<TKey, V>(this SortedList<TKey, V> src, TKey key, out int resultListIndex, int beginListIndex = 0, int endListIndex = -1) where TKey : IComparable<TKey>

Parameters

@@ -234,15 +240,19 @@ If result is
TKey

The key to search for.

-
result BinarySearchResult
-

When this method returns, contains a value indicating whether an exact match was found, a ceiling value was found, or no suitable element exists.

+
resultListIndex int
+

When this method returns, contains the index of the ceiling element if found; otherwise, -1.

+
beginListIndex int
+
+
endListIndex int
+

Returns

-
int
-

The index of the ceiling element if found; otherwise, -1.

+
BinarySearchResult
+

A value indicating whether an exact match was found, a ceiling value was found, or no suitable element exists.

@@ -267,18 +277,69 @@ If result is -

- GetCeil<TKey, V>(SortedList<TKey, V>, TKey, out BinarySearchResult) +

+ GetCeil<TKey, V>(SortedList<TKey, V>, TKey, out V, int, int) + +

+ +
+
+ +
+
public static BinarySearchResult GetCeil<TKey, V>(this SortedList<TKey, V> src, TKey key, out V resultValue, int beginIndex = 0, int endIndex = -1) where TKey : IComparable<TKey>
+
+ +

Parameters

+
+
src SortedList<TKey, V>
+
+
key TKey
+
+
resultValue V
+
+
beginIndex int
+
+
endIndex int
+
+
+ +

Returns

+
+
BinarySearchResult
+
+
+ +

Type Parameters

+
+
TKey
+
+
V
+
+
+ + + + + + + + + + + + +

+ GetCeil<TKey, V>(SortedList<TKey, V>, TKey, out V, out int, int, int)

Get ceil value by key. -If result is NotExisted, return the default value of V.

+If return value is NotExisted, resultValue will be the default value of V.

-
public static V GetCeil<TKey, V>(this SortedList<TKey, V> src, TKey key, out BinarySearchResult result) where TKey : IComparable<TKey>
+
public static BinarySearchResult GetCeil<TKey, V>(this SortedList<TKey, V> src, TKey key, out V resultValue, out int ceilIndex, int beginIndex = 0, int endIndex = -1) where TKey : IComparable<TKey>

Parameters

@@ -289,15 +350,23 @@ If result is TKey

key

-
result BinarySearchResult
-

result

+
resultValue V
+

ceil value

+
+
ceilIndex int
+
+
beginIndex int
+

The starting index for the search range (inclusive). Default is 0.

+
+
endIndex int
+

The ending index for the search range (exclusive). Default is -1, which means the end of the list.

Returns

-
V
-

ceil value

+
BinarySearchResult
+

search result

@@ -322,8 +391,8 @@ If result is -

- GetEnumerableByKeyBoundary<TKey, V>(SortedList<TKey, V>, TKey, bool, TKey, bool) +

+ GetEnumerableByKeyBoundary<TKey, V>(SortedList<TKey, V>, TKey, bool, TKey, bool, int, int)

@@ -332,7 +401,7 @@ If result is
-
public static IEnumerable<KeyValuePair<TKey, V>> GetEnumerableByKeyBoundary<TKey, V>(this SortedList<TKey, V> src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil) where TKey : IComparable<TKey>
+
public static IEnumerable<KeyValuePair<TKey, V>> GetEnumerableByKeyBoundary<TKey, V>(this SortedList<TKey, V> src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil, int beginIndex = 0, int endIndex = -1) where TKey : IComparable<TKey>

Parameters

@@ -351,6 +420,12 @@ If result is
bool

Whether to include the ceiling value of the ending key.

+
+
beginIndex int
+

The starting index for the search range (inclusive). Default is 0.

+
+
endIndex int
+

The ending index for the search range (exclusive). Default is -1, which means the end of the list.

@@ -380,10 +455,118 @@ If result is + -

- GetFloorIndex<TKey, V>(SortedList<TKey, V>, TKey, out BinarySearchResult) +

+ GetFloorBySeek<TKey, V>(SortedList<TKey, V>, TKey, out V, out int, int, SeekDirection) + +

+ +
+
+ +
+
public static BinarySearchResult GetFloorBySeek<TKey, V>(this SortedList<TKey, V> src, TKey key, out V floorValue, out int floorListIndex, int startListIndex, SortedListUtil.SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable<TKey>
+
+ +

Parameters

+
+
src SortedList<TKey, V>
+
+
key TKey
+
+
floorValue V
+
+
floorListIndex int
+
+
startListIndex int
+
+
seekDirection SortedListUtil.SeekDirection
+
+
+ +

Returns

+
+
BinarySearchResult
+
+
+ +

Type Parameters

+
+
TKey
+
+
V
+
+
+ + + + + + + + + + + + +

+ GetFloorListIndexBySeek<TKey, V>(SortedList<TKey, V>, TKey, out int, int, SeekDirection) + +

+ +
+
+ +
+
public static BinarySearchResult GetFloorListIndexBySeek<TKey, V>(this SortedList<TKey, V> src, TKey key, out int floorListIndex, int startListIndex, SortedListUtil.SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable<TKey>
+
+ +

Parameters

+
+
src SortedList<TKey, V>
+
+
key TKey
+
+
floorListIndex int
+
+
startListIndex int
+
+
seekDirection SortedListUtil.SeekDirection
+
+
+ +

Returns

+
+
BinarySearchResult
+
+
+ +

Type Parameters

+
+
TKey
+
+
V
+
+
+ + + + + + +

Remarks

+

The Free seek direction does not loss additional performance. +The seek direction only effect the resulting value by the startListIndex bound.

+
+ + + + + + +

+ GetFloorListIndex<TKey, V>(SortedList<TKey, V>, TKey, out int, int, int)

@@ -392,7 +575,7 @@ If result is
-
public static int GetFloorIndex<TKey, V>(this SortedList<TKey, V> src, TKey key, out BinarySearchResult result) where TKey : IComparable<TKey>
+
public static BinarySearchResult GetFloorListIndex<TKey, V>(this SortedList<TKey, V> src, TKey key, out int resultListIndex, int beginListIndex = 0, int endListIndex = -1) where TKey : IComparable<TKey>

Parameters

@@ -403,15 +586,19 @@ If result is
TKey

The key to search for.

-
result BinarySearchResult
-

When this method returns, contains a value indicating whether an exact match was found, a floor value was found, or no suitable element exists.

+
resultListIndex int
+

When this method returns, contains the index of the floor element if found; otherwise, -1.

+
beginListIndex int
+
+
endListIndex int
+

Returns

-
int
-

The index of the floor element if found; otherwise, -1.

+
BinarySearchResult
+

A value indicating whether an exact match was found, a floor value was found, or no suitable element exists.

@@ -436,18 +623,18 @@ If result is -

- GetFloor<TKey, V>(SortedList<TKey, V>, TKey, out BinarySearchResult) +

+ GetFloor<TKey, V>(SortedList<TKey, V>, TKey, out V, int, int)

Get floor value by key. -If result is NotExisted, return the default value of V.

+If return value is NotExisted, resultValue will be the default value of V.

-
public static V GetFloor<TKey, V>(this SortedList<TKey, V> src, TKey key, out BinarySearchResult result) where TKey : IComparable<TKey>
+
public static BinarySearchResult GetFloor<TKey, V>(this SortedList<TKey, V> src, TKey key, out V resultValue, int beginIndex = 0, int endIndex = -1) where TKey : IComparable<TKey>

Parameters

@@ -458,15 +645,21 @@ If result is TKey

key

-
result BinarySearchResult
-

result

+
resultValue V
+

floor value

+
+
beginIndex int
+

The starting index for the search range (inclusive). Default is 0.

+
+
endIndex int
+

The ending index for the search range (exclusive). Default is -1, which means the end of the list.

Returns

-
V
-

floor value

+
BinarySearchResult
+

search result

@@ -489,10 +682,128 @@ If result is + +

+ GetFloor<TKey, V>(SortedList<TKey, V>, TKey, out V, out int, int, int) + +

+ +

Get floor value by key. +If return value is NotExisted, resultValue will be the default value of V.

+
+
+ +
+
public static BinarySearchResult GetFloor<TKey, V>(this SortedList<TKey, V> src, TKey key, out V resultValue, out int floorIndex, int beginIndex = 0, int endIndex = -1) where TKey : IComparable<TKey>
+
+ +

Parameters

+
+
src SortedList<TKey, V>
+

source

+
+
key TKey
+

key

+
+
resultValue V
+

floor value

+
+
floorIndex int
+
+
beginIndex int
+

The starting index for the search range (inclusive). Default is 0.

+
+
endIndex int
+

The ending index for the search range (exclusive). Default is -1, which means the end of the list.

+
+
+ +

Returns

+
+
BinarySearchResult
+

search result

+
+
+ +

Type Parameters

+
+
TKey
+

Key type

+
+
V
+

Value type

+
+
+ + + + + + + + + + + + +

+ GetIndexRangeByKeyBoundary<TKey, V>(SortedList<TKey, V>, TKey, bool, TKey, bool, int, int) + +

+ +
+
+ +
+
public static Range<int> GetIndexRangeByKeyBoundary<TKey, V>(this SortedList<TKey, V> src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil, int beginListIndex = 0, int endListIndex = -1) where TKey : IComparable<TKey>
+
+ +

Parameters

+
+
src SortedList<TKey, V>
+
+
begin TKey
+
+
isIncludingBeginFloor bool
+
+
end TKey
+
+
isIncludingEndCeil bool
+
+
beginListIndex int
+
+
endListIndex int
+
+
+ +

Returns

+
+
Range<int>
+
+
+ +

Type Parameters

+
+
TKey
+
+
V
+
+
+ + + + + + + + + + -

- GetNearestIndex<V>(SortedList<double, V>, double, out BinarySearchResult) +

+ GetNearestIndex<V>(SortedList<double, V>, double, out int, int, int)

@@ -501,7 +812,7 @@ If result is
-
public static int GetNearestIndex<V>(this SortedList<double, V> src, double key, out BinarySearchResult result)
+
public static BinarySearchResult GetNearestIndex<V>(this SortedList<double, V> src, double key, out int resultIndex, int beginIndex = 0, int endIndex = -1)

Parameters

@@ -512,15 +823,21 @@ If result is
double

The key to search for.

-
result BinarySearchResult
-

When this method returns, contains a value indicating whether an exact match was found, or the nearest floor/ceiling value.

+
resultIndex int
+

When this method returns, contains the index of the nearest element if found; otherwise, -1.

+
+
beginIndex int
+

The starting index for the search range (inclusive). Default is 0.

+
+
endIndex int
+

The ending index for the search range (exclusive). Default is -1, which means the end of the list.

Returns

-
int
-

The index of the nearest element if found; otherwise, -1.

+
BinarySearchResult
+

A value indicating whether an exact match was found, or the nearest floor/ceiling value.

@@ -542,8 +859,8 @@ If result is -

- GetNearestKey<V>(SortedList<double, V>, double, out BinarySearchResult) +

+ GetNearestKey<V>(SortedList<double, V>, double, out double, int, int)

@@ -552,7 +869,7 @@ If result is
-
public static double GetNearestKey<V>(this SortedList<double, V> src, double key, out BinarySearchResult result)
+
public static BinarySearchResult GetNearestKey<V>(this SortedList<double, V> src, double key, out double resultKey, int beginIndex = 0, int endIndex = -1)

Parameters

@@ -563,15 +880,21 @@ If result is
double

The key to search for.

-
result BinarySearchResult
-

When this method returns, contains a value indicating whether an exact match was found, or the nearest floor/ceiling value.

+
resultKey double
+

When this method returns, contains the nearest key if found; otherwise, NaN.

+
+
beginIndex int
+

The starting index for the search range (inclusive). Default is 0.

+
+
endIndex int
+

The ending index for the search range (exclusive). Default is -1, which means the end of the list.

Returns

-
double
-

The nearest key if found; otherwise, NaN.

+
BinarySearchResult
+

A value indicating whether an exact match was found, or the nearest floor/ceiling value.

@@ -593,8 +916,8 @@ If result is -

- GetNearestValue<V>(SortedList<double, V>, double, out BinarySearchResult) +

+ GetNearestValue<V>(SortedList<double, V>, double, out V, int, int)

@@ -603,7 +926,7 @@ If result is
-
public static V GetNearestValue<V>(this SortedList<double, V> src, double key, out BinarySearchResult result)
+
public static BinarySearchResult GetNearestValue<V>(this SortedList<double, V> src, double key, out V resultValue, int beginIndex = 0, int endIndex = -1)

Parameters

@@ -614,15 +937,21 @@ If result is
double

The key to search for.

-
result BinarySearchResult
-

When this method returns, contains a value indicating whether an exact match was found, or the nearest floor/ceiling value.

+
resultValue V
+

When this method returns, contains the value corresponding to the nearest key if found; otherwise, the default value for the type.

+
+
beginIndex int
+

The starting index for the search range (inclusive). Default is 0.

+
+
endIndex int
+

The ending index for the search range (exclusive). Default is -1, which means the end of the list.

Returns

-
V
-

The value corresponding to the nearest key if found; otherwise, the default value for the type.

+
BinarySearchResult
+

A value indicating whether an exact match was found, or the nearest floor/ceiling value.

@@ -644,8 +973,8 @@ If result is -

- GetSortedListByKeyBoundary<TKey, V>(SortedList<TKey, V>, TKey, bool, TKey, bool) +

+ GetSortedListByKeyBoundary<TKey, V>(SortedList<TKey, V>, TKey, bool, TKey, bool, int, int)

@@ -654,7 +983,7 @@ If result is
-
public static SortedList<TKey, V> GetSortedListByKeyBoundary<TKey, V>(this SortedList<TKey, V> src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil) where TKey : IComparable<TKey>
+
public static SortedList<TKey, V> GetSortedListByKeyBoundary<TKey, V>(this SortedList<TKey, V> src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil, int beginIndex = 0, int endIndex = -1) where TKey : IComparable<TKey>

Parameters

@@ -673,6 +1002,12 @@ If result is
bool

Whether to include the ceiling value of the ending key.

+
+
beginIndex int
+

The starting index for the search range (inclusive). Default is 0.

+
+
endIndex int
+

The ending index for the search range (exclusive). Default is -1, which means the end of the list.

@@ -704,8 +1039,8 @@ If result is -

- GetValuesByKeyBoundary<TKey, V>(SortedList<TKey, V>, TKey, bool, TKey, bool) +

+ GetValuesByKeyBoundary<TKey, V>(SortedList<TKey, V>, TKey, bool, TKey, bool, int, int)

@@ -714,7 +1049,7 @@ If result is
-
public static List<V> GetValuesByKeyBoundary<TKey, V>(this SortedList<TKey, V> src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil) where TKey : IComparable<TKey>
+
public static List<V> GetValuesByKeyBoundary<TKey, V>(this SortedList<TKey, V> src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil, int beginIndex = 0, int endIndex = -1) where TKey : IComparable<TKey>

Parameters

@@ -733,6 +1068,12 @@ If result is
bool

Whether to include the ceiling value of the ending key.

+
+
beginIndex int
+

The starting index for the search range (inclusive). Default is 0.

+
+
endIndex int
+

The ending index for the search range (exclusive). Default is -1, which means the end of the list.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.html index 07d032a..70d5c6a 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.html @@ -147,6 +147,10 @@ Enums

Specifies the search method to use when looking for values in a sorted list.

+
+
SortedListUtil.SeekDirection
+
+
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.FileLines.IndexedFileLine.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.FileLines.IndexedFileLine.html index 28ccbfe..e55b657 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.FileLines.IndexedFileLine.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.FileLines.IndexedFileLine.html @@ -784,6 +784,37 @@ Start on 0.

+ + +

+ ToHumanString() + +

+ +
+
+ +
+
public string ToHumanString()
+
+ + +

Returns

+
+
string
+
+
+ + + + + + + + + + +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.IndexSegment.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.IndexSegment.html index a93618b..b97de0d 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.IndexSegment.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.IndexSegment.html @@ -6,7 +6,7 @@ - + @@ -97,8 +97,8 @@ Class IndexSegment
Assembly
HiGeom.dll
-

Represents a segment of indices with a beginning and ending point. -Used for defining ranges of data in collections or arrays.

+

Represents a segment of indices with a beginning (inclusive) and ending (exclusive> point. +Used for defining segment of data in collections or arrays.

@@ -772,12 +772,12 @@ Used for defining ranges of data in collections or arrays.

-

Gets an index segment from a list of data items based on the specified indices.

+

Gets an index segment from a list of data items by the specific group index.

-
public static IndexSegment GetIndexSegment<TData>(IList<TData> steps, int cacheStepIndex, int keyStepIndex, Func<TData, int?> dataToKeyIndexFunc)
+
public static IndexSegment GetIndexSegment<TData>(IList<TData> steps, int startListIndex, int targetGroupIndex, Func<TData, int?> dataToGroupIndexFunc)

Parameters

@@ -785,14 +785,14 @@ Used for defining ranges of data in collections or arrays.

steps IList<TData>

The list of data items.

-
cacheStepIndex int
-

The cache step index.

+
startListIndex int
+

The start step index for seeking.

-
keyStepIndex int
-

The key step index.

+
targetGroupIndex int
+

The target segment key.

-
dataToKeyIndexFunc Func<TData, int?>
-

A function that extracts an index from a data item.

+
dataToGroupIndexFunc Func<TData, int?>
+

A function that extracts a segmentkey from a data item.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.IMessageKit.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.IMessageHost.html similarity index 85% rename from App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.IMessageKit.html rename to App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.IMessageHost.html index f1ec7bb..53eaaa1 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.IMessageKit.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.IMessageHost.html @@ -2,9 +2,9 @@ - Interface IMessageKit | HiAPI-C# 2025 + Interface IMessageHost | HiAPI-C# 2025 - + @@ -84,12 +84,12 @@
-
+
-

-Interface IMessageKit +

+Interface IMessageHost

@@ -102,7 +102,7 @@ Interface IMessageKit
-
public interface IMessageKit
+
public interface IMessageHost
@@ -125,25 +125,25 @@ Interface IMessageKit InvokeUtil.SelfInvoke<TSrc, TDst>(TSrc, Func<TSrc, TDst>)
- MessageHostUtil.AddError(IMessageKit, string, params string[]) + MessageHostUtil.AddError(IMessageHost, string, params string[])
- MessageHostUtil.AddException(IMessageKit, Exception, params string[]) + MessageHostUtil.AddException(IMessageHost, Exception, params string[])
- MessageHostUtil.AddInfo(IMessageKit, string, params string[]) + MessageHostUtil.AddInfo(IMessageHost, string, params string[])
- MessageHostUtil.AddMessage(IMessageKit, string, params string[]) + MessageHostUtil.AddMessage(IMessageHost, string, params string[])
- MessageHostUtil.AddProgress(IMessageKit, string, params string[]) + MessageHostUtil.AddProgress(IMessageHost, string, params string[])
- MessageHostUtil.AddSuccess(IMessageKit, string, params string[]) + MessageHostUtil.AddSuccess(IMessageHost, string, params string[])
- MessageHostUtil.AddWarning(IMessageKit, string, params string[]) + MessageHostUtil.AddWarning(IMessageHost, string, params string[])
ColorUtil.GetGloomyColor(object, double, double) @@ -167,9 +167,9 @@ Interface IMessageKit - + -

+

Add(object)

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.MessageKit.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.MessageHost.html similarity index 79% rename from App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.MessageKit.html rename to App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.MessageHost.html index 97e77fb..daa4d63 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.MessageKit.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.MessageHost.html @@ -2,9 +2,9 @@ - Class MessageKit | HiAPI-C# 2025 + Class MessageHost | HiAPI-C# 2025 - + @@ -84,12 +84,12 @@
-
+
-

-Class MessageKit +

+Class MessageHost

@@ -102,7 +102,7 @@ Class MessageKit
-
public class MessageKit : IMessageKit
+
public class MessageHost : IMessageHost
@@ -112,14 +112,14 @@ Class MessageKit
Inheritance
-
MessageKit
+
MessageHost
Implements
- +
@@ -154,25 +154,25 @@ Class MessageKit
Extension Methods
DuplicateUtil.TryDuplicate<TSelf>(TSelf, params object[]) @@ -205,9 +205,9 @@ Class MessageKit - + -

+

Default

@@ -217,7 +217,7 @@ Class MessageKit
-
public static MessageKit Default { get; set; }
+
public static MessageHost Default { get; set; }
@@ -226,7 +226,7 @@ Class MessageKit

Property Value

-
MessageKit
+
MessageHost
@@ -241,9 +241,9 @@ Class MessageKit - + -

+

Add(object)

@@ -280,9 +280,9 @@ Class MessageKit - + -

+

AddError(string)

@@ -314,9 +314,9 @@ Apply ExceptionUtil. + -

+

AddException(Exception)

@@ -347,9 +347,9 @@ Apply ExceptionUtil. + -

+

AddInfo(string)

@@ -380,9 +380,9 @@ Apply ExceptionUtil. + -

+

AddMessage(string)

@@ -413,9 +413,9 @@ Apply ExceptionUtil. + -

+

AddProgress(string)

@@ -446,9 +446,9 @@ Apply ExceptionUtil. + -

+

AddSuccess(string)

@@ -479,9 +479,9 @@ Apply ExceptionUtil. + -

+

AddWarning(string)

@@ -512,9 +512,9 @@ Apply ExceptionUtil. + -

+

Default_OnAdding(object)

@@ -556,7 +556,7 @@ Apply ExceptionUtil. +

OnAdding

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.MessageHostUtil.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.MessageHostUtil.html index f4eead8..7037bb4 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.MessageHostUtil.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.MessageHostUtil.html @@ -97,7 +97,7 @@ Class MessageHostUtil
Assembly
HiGeom.dll
-

Utility methods for working with IMessageKit implementations.

+

Utility methods for working with IMessageHost implementations.

@@ -155,8 +155,8 @@ Class MessageHostUtil -

- AddError(IMessageKit, string, params string[]) +

+ AddError(IMessageHost, string, params string[])

@@ -165,12 +165,12 @@ Class MessageHostUtil
-
public static object AddError(this IMessageKit host, string message, params string[] otherTags)
+
public static object AddError(this IMessageHost host, string message, params string[] otherTags)

Parameters

-
host IMessageKit
+
host IMessageHost

The message host

message string
@@ -200,8 +200,8 @@ Class MessageHostUtil -

- AddException(IMessageKit, Exception, params string[]) +

+ AddException(IMessageHost, Exception, params string[])

@@ -210,12 +210,12 @@ Class MessageHostUtil
-
public static object AddException(this IMessageKit host, Exception exception, params string[] otherTags)
+
public static object AddException(this IMessageHost host, Exception exception, params string[] otherTags)

Parameters

-
host IMessageKit
+
host IMessageHost

The message host

exception Exception
@@ -245,8 +245,8 @@ Class MessageHostUtil -

- AddInfo(IMessageKit, string, params string[]) +

+ AddInfo(IMessageHost, string, params string[])

@@ -255,12 +255,12 @@ Class MessageHostUtil
-
public static object AddInfo(this IMessageKit host, string message, params string[] otherTags)
+
public static object AddInfo(this IMessageHost host, string message, params string[] otherTags)

Parameters

-
host IMessageKit
+
host IMessageHost

The message host

message string
@@ -290,8 +290,8 @@ Class MessageHostUtil -

- AddMessage(IMessageKit, string, params string[]) +

+ AddMessage(IMessageHost, string, params string[])

@@ -300,12 +300,12 @@ Class MessageHostUtil
-
public static object AddMessage(this IMessageKit host, string msg, params string[] tags)
+
public static object AddMessage(this IMessageHost host, string msg, params string[] tags)

Parameters

-
host IMessageKit
+
host IMessageHost

The message host

msg string
@@ -335,8 +335,8 @@ Class MessageHostUtil -

- AddProgress(IMessageKit, string, params string[]) +

+ AddProgress(IMessageHost, string, params string[])

@@ -345,12 +345,12 @@ Class MessageHostUtil
-
public static object AddProgress(this IMessageKit host, string message, params string[] otherTags)
+
public static object AddProgress(this IMessageHost host, string message, params string[] otherTags)

Parameters

-
host IMessageKit
+
host IMessageHost

The message host

message string
@@ -380,8 +380,8 @@ Class MessageHostUtil -

- AddSuccess(IMessageKit, string, params string[]) +

+ AddSuccess(IMessageHost, string, params string[])

@@ -390,12 +390,12 @@ Class MessageHostUtil
-
public static object AddSuccess(this IMessageKit host, string message, params string[] otherTags)
+
public static object AddSuccess(this IMessageHost host, string message, params string[] otherTags)

Parameters

-
host IMessageKit
+
host IMessageHost

The message host

message string
@@ -425,8 +425,8 @@ Class MessageHostUtil -

- AddWarning(IMessageKit, string, params string[]) +

+ AddWarning(IMessageHost, string, params string[])

@@ -435,12 +435,12 @@ Class MessageHostUtil
-
public static object AddWarning(this IMessageKit host, string message, params string[] otherTags)
+
public static object AddWarning(this IMessageHost host, string message, params string[] otherTags)

Parameters

-
host IMessageKit
+
host IMessageHost

The message host

message string
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.html index abd7eb2..609c3f3 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Messages.html @@ -100,13 +100,13 @@ Classes
-
MessageHostUtil
-

Utility methods for working with IMessageKit implementations.

+
MessageHost
+

Provides utility methods for handling messages.

-
MessageKit
-

Provides utility methods for handling messages.

+
MessageHostUtil
+

Utility methods for working with IMessageHost implementations.

@@ -118,7 +118,7 @@ Classes Interfaces
-
IMessageKit
+
IMessageHost

Interface for objects that can host and manage messages.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.PacePlayee.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.PacePlayee.html index 1a13c86..e96e152 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.PacePlayee.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.PacePlayee.html @@ -221,7 +221,8 @@ Class PacePlayee -

Waits for the player to signal the next pace.

+

A pausable mark for the playing process. +The function enables Pause() to take effect.

@@ -237,6 +238,9 @@ Class PacePlayee +

Remarks

+

Waits for the player to signal the next pace.

+
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html index ca572f2..ac960a7 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html @@ -324,10 +324,10 @@ The writing data is buffered and processed on a separate task to improve perform - + -

- WaitAll() +

+ Wait()

@@ -336,7 +336,7 @@ The writing data is buffered and processed on a separate task to improve perform
-
public void WaitAll()
+
public void Wait()
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.PathUtils.PathUtil.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.PathUtils.PathUtil.html index 6cb7fa4..46825ae 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.PathUtils.PathUtil.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.PathUtils.PathUtil.html @@ -482,22 +482,22 @@ Class PathUtil
-
public static string GetPathByTemplate(string templatePath, string replacedPathKeyword, string replacedNameKeyword, string replacingPath)
+
public static string GetPathByTemplate(string templatePath, string replacingPath, string replacedPathKeyword, string replacedNameKeyword)

Parameters

templatePath string

The template path containing keywords to be replaced

+
+
replacingPath string
+

The path to use as replacement

replacedPathKeyword string

The path keyword to be replaced in the template

replacedNameKeyword string

The name keyword to be replaced in the template

-
-
replacingPath string
-

The path to use as replacement

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.html index e1b79ed..ea33838 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.html @@ -164,8 +164,8 @@ If the execution time is over the
IndexSegment
-

Represents a segment of indices with a beginning and ending point. -Used for defining ranges of data in collections or arrays.

+

Represents a segment of indices with a beginning (inclusive) and ending (exclusive> point. +Used for defining segment of data in collections or arrays.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.CutterLocations.ClStrips.ClStrip.html b/App/wwwroot/HiAPI-docsite/api/Hi.CutterLocations.ClStrips.ClStrip.html index d504409..e35dfa7 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.CutterLocations.ClStrips.ClStrip.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.CutterLocations.ClStrips.ClStrip.html @@ -1052,7 +1052,8 @@ A value of -1 indicates that the display should follow the end of the strip.

-

Sets the display range for the cutter location strip.

+

Sets the display range for the cutter location strip. +This method sets both the beginning and ending positions of the display range.

@@ -1063,16 +1064,16 @@ A value of -1 indicates that the display should follow the end of the strip.

Parameters

beginIndex int
-

The beginning index of the display range.

+

The beginning index of the display range. Will be clamped to [0, StripPoses.Count - 1].

endIndex int
-

The ending index of the display range.

+

The ending index of the display range. A value of -1 indicates that the display should follow the end of the strip. Values greater than or equal to StripPoses.Count will be converted to -1. Will be clamped to [-1, StripPoses.Count].

caller object
-

The caller object that requests the display range change.

+

The caller object that requests the display range change. Used for event notifications.

lowestLength int
-

The minimum length of the display range. Default is 2.

+

The minimum length of the display range. Currently not used in the implementation. Default is 2.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Box3d.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Box3d.html index c0715a8..0d38739 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Box3d.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Box3d.html @@ -1620,6 +1620,42 @@ The Ctor keeps Min + +

+ Expand(IEnumerable<Vec3d>) + +

+ +
+
+ +
+
public Box3d Expand(IEnumerable<Vec3d> ps)
+
+ +

Parameters

+
+
ps IEnumerable<Vec3d>
+
+
+ +

Returns

+
+
Box3d
+
+
+ + + + + + + + + + +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.BinarySolverUtil.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.BinarySolverUtil.html index d5deb7b..4ccd880 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.BinarySolverUtil.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.BinarySolverUtil.html @@ -166,7 +166,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini
-
public static IEnumerable<BinarySolvingStatus> CenterSplitionSolve(Func<double, double> func, Range<double> xBoundary, Vec2d x0y0, double yTarget, double convergenceLimit, Func<double, bool> isYAcceptableFunc, int maxIteration = 12)
+
public static IEnumerable<BinarySolvingEntry> CenterSplitionSolve(Func<double, double> func, Range<double> xBoundary, Vec2d x0y0, double yTarget, double convergenceLimit, Func<double, bool> isYAcceptableFunc, int maxIteration = 12)

Parameters

@@ -196,7 +196,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini

Returns

-
IEnumerable<BinarySolvingStatus>
+
IEnumerable<BinarySolvingEntry>

A sequence of solving status objects showing the progress of the solution

@@ -223,7 +223,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini
-
public static IEnumerable<BinarySolvingStatus> CenterSplitionSolve(Func<double, double> func, Range<double> xBoundary, double x0, double yTarget, double convergenceLimit, Func<double, bool> isYAcceptableFunc, int maxIteration = 12)
+
public static IEnumerable<BinarySolvingEntry> CenterSplitionSolve(Func<double, double> func, Range<double> xBoundary, double x0, double yTarget, double convergenceLimit, Func<double, bool> isYAcceptableFunc, int maxIteration = 12)

Parameters

@@ -253,7 +253,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini

Returns

-
IEnumerable<BinarySolvingStatus>
+
IEnumerable<BinarySolvingEntry>

A sequence of solving status objects showing the progress of the solution

@@ -280,7 +280,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini
-
public static IEnumerable<BinarySolvingStatus> CenterSplitionSolve(Func<double, double> func, Range<double> xBoundary, double yTarget, double convergenceLimit, Func<double, bool> isYAcceptableFunc, int maxIteration = 12)
+
public static IEnumerable<BinarySolvingEntry> CenterSplitionSolve(Func<double, double> func, Range<double> xBoundary, double yTarget, double convergenceLimit, Func<double, bool> isYAcceptableFunc, int maxIteration = 12)

Parameters

@@ -307,7 +307,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini

Returns

-
IEnumerable<BinarySolvingStatus>
+
IEnumerable<BinarySolvingEntry>

A sequence of solving status objects showing the progress of the solution

@@ -334,7 +334,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini
-
public static IEnumerable<BinarySolvingStatus> CenterSplitionSolve(Func<double, double> func, double x0, double y0, double xBoundary, double yTarget, double convergenceLimit, Func<double, bool> isYAcceptableFunc, int maxIteration = 12)
+
public static IEnumerable<BinarySolvingEntry> CenterSplitionSolve(Func<double, double> func, double x0, double y0, double xBoundary, double yTarget, double convergenceLimit, Func<double, bool> isYAcceptableFunc, int maxIteration = 12)

Parameters

@@ -367,7 +367,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini

Returns

-
IEnumerable<BinarySolvingStatus>
+
IEnumerable<BinarySolvingEntry>

A sequence of solving status objects showing the progress of the solution

@@ -394,7 +394,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini
-
public static IEnumerable<BinarySolvingStatus> CenterSplitionSolveWithY1(Func<double, double> func, double x0, double y0, double x1, double y1, double yTarget, double convergenceLimit, Func<double, bool> isYAcceptableFunc, int maxIteration = 12)
+
public static IEnumerable<BinarySolvingEntry> CenterSplitionSolveWithY1(Func<double, double> func, double x0, double y0, double x1, double y1, double yTarget, double convergenceLimit, Func<double, bool> isYAcceptableFunc, int maxIteration = 12)

Parameters

@@ -430,7 +430,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini

Returns

-
IEnumerable<BinarySolvingStatus>
+
IEnumerable<BinarySolvingEntry>

A sequence of solving status objects showing the progress of the solution

@@ -457,7 +457,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini
-
public static IEnumerable<BinarySolvingStatus> SlopeSolve(Func<double, double> func, double x0, double y0, double x1, double yTarget, double convergenceLimit, int maxIteration = 12)
+
public static IEnumerable<BinarySolvingEntry> SlopeSolve(Func<double, double> func, double x0, double y0, double x1, double yTarget, double convergenceLimit, int maxIteration = 12)

Parameters

@@ -487,7 +487,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini

Returns

-
IEnumerable<BinarySolvingStatus>
+
IEnumerable<BinarySolvingEntry>

A sequence of solving status objects showing the progress of the solution

@@ -514,7 +514,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini
-
public static IEnumerable<BinarySolvingStatus> SlopeSolveWithY1(Func<double, double> func, double x0, double y0, double x1, double y1, double yTarget, double convergenceLimit, int maxIteration = 12)
+
public static IEnumerable<BinarySolvingEntry> SlopeSolveWithY1(Func<double, double> func, double x0, double y0, double x1, double y1, double yTarget, double convergenceLimit, int maxIteration = 12)

Parameters

@@ -547,7 +547,7 @@ The algorithm intelligently chooses the optimal boundary points based on the ini

Returns

-
IEnumerable<BinarySolvingStatus>
+
IEnumerable<BinarySolvingEntry>

A sequence of solving status objects showing the progress of the solution

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.BinarySolvingStatus.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.BinarySolvingEntry.html similarity index 78% rename from App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.BinarySolvingStatus.html rename to App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.BinarySolvingEntry.html index 0b26388..9076af5 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.BinarySolvingStatus.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.BinarySolvingEntry.html @@ -2,9 +2,9 @@ - Class BinarySolvingStatus | HiAPI-C# 2025 + Class BinarySolvingEntry | HiAPI-C# 2025 - + @@ -84,12 +84,12 @@
-
+
-

-Class BinarySolvingStatus +

+Class BinarySolvingEntry

@@ -103,7 +103,7 @@ Contains information about the current state of the solver including best soluti
-
public class BinarySolvingStatus
+
public class BinarySolvingEntry
@@ -113,7 +113,7 @@ Contains information about the current state of the solver including best soluti
Inheritance
-
BinarySolvingStatus
+
BinarySolvingEntry
@@ -176,24 +176,24 @@ Contains information about the current state of the solver including best soluti - + -

- BinarySolvingStatus(SolvingResultStatus, int, double, double, double, double, double, double) +

+ BinarySolvingEntry(SolvingStatus, int, double, double, double, double, double, double)

-

Initializes a new instance of the BinarySolvingStatus class.

+

Initializes a new instance of the BinarySolvingEntry class.

-
public BinarySolvingStatus(SolvingResultStatus solvingResultStatus, int iteration, double bestX, double bestY, double minBias, double workingX, double workingY, double bias)
+
public BinarySolvingEntry(SolvingStatus solvingResultStatus, int iteration, double bestX, double bestY, double minBias, double workingX, double workingY, double bias)

Parameters

-
solvingResultStatus SolvingResultStatus
+
solvingResultStatus SolvingStatus

The current status of the solving process

iteration int
@@ -234,9 +234,9 @@ Contains information about the current state of the solver including best soluti - + -

+

BestX

@@ -266,9 +266,9 @@ Contains information about the current state of the solver including best soluti - + -

+

BestY

@@ -298,9 +298,9 @@ Contains information about the current state of the solver including best soluti - + -

+

Bias

@@ -330,9 +330,9 @@ Contains information about the current state of the solver including best soluti - + -

+

Iteration

@@ -362,9 +362,9 @@ Contains information about the current state of the solver including best soluti - + -

+

MinBias

@@ -394,10 +394,10 @@ Contains information about the current state of the solver including best soluti - + -

- SolvingResultStatus +

+ SolvingStatus

@@ -406,7 +406,7 @@ Contains information about the current state of the solver including best soluti
-
public SolvingResultStatus SolvingResultStatus { get; set; }
+
public SolvingStatus SolvingStatus { get; set; }
@@ -415,7 +415,7 @@ Contains information about the current state of the solver including best soluti

Property Value

-
SolvingResultStatus
+
SolvingStatus
@@ -426,9 +426,9 @@ Contains information about the current state of the solver including best soluti - + -

+

WorkingX

@@ -458,9 +458,9 @@ Contains information about the current state of the solver including best soluti - + -

+

WorkingY

@@ -494,9 +494,9 @@ Contains information about the current state of the solver including best soluti - + -

+

ToString()

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.NumericalSolver.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.NumericalSolver.html index c6168b6..c22d9a4 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.NumericalSolver.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.NumericalSolver.html @@ -611,7 +611,7 @@ Class NumericalSolver
-
public SolvingResultStatus Solve(double[] paras, double[] targets, out double minBias, out double[,] jacob)
+
public SolvingStatus Solve(double[] paras, double[] targets, out double minBias, out double[,] jacob)

Parameters

@@ -632,7 +632,7 @@ Class NumericalSolver

Returns

-
SolvingResultStatus
+
SolvingStatus

The status of the solving process

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.SolvingResult.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.SolvingResult.html index 51fe0ed..6d4ab49 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.SolvingResult.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.SolvingResult.html @@ -181,8 +181,8 @@ Contains detailed information about the solution including parameters, biases, a -

- SolvingResult(SolvingResultStatus, double[], double[], double, int, int, double[], double[,]) +

+ SolvingResult(SolvingStatus, double[], double[], double, int, int, double[], double[,])

@@ -191,12 +191,12 @@ Contains detailed information about the solution including parameters, biases, a
-
public SolvingResult(SolvingResultStatus solvingResultStatus, double[] workingParas, double[] biases, double convergence, int iteration, int continuousSlowMomentumIteration, double[] paraCompensationOnNext, double[,] jacob)
+
public SolvingResult(SolvingStatus solvingResultStatus, double[] workingParas, double[] biases, double convergence, int iteration, int continuousSlowMomentumIteration, double[] paraCompensationOnNext, double[,] jacob)

Parameters

-
solvingResultStatus SolvingResultStatus
+
solvingResultStatus SolvingStatus

The status of the solving process

workingParas double[]
@@ -434,7 +434,7 @@ Contains detailed information about the solution including parameters, biases, a
-
public SolvingResultStatus solvingResultStatus
+
public SolvingStatus solvingResultStatus
@@ -442,7 +442,7 @@ Contains detailed information about the solution including parameters, biases, a

Field Value

-
SolvingResultStatus
+
SolvingStatus
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.SolvingResultStatus.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.SolvingStatus.html similarity index 88% rename from App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.SolvingResultStatus.html rename to App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.SolvingStatus.html index 7f0da3e..db18716 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.SolvingResultStatus.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.SolvingStatus.html @@ -2,9 +2,9 @@ - Enum SolvingResultStatus | HiAPI-C# 2025 + Enum SolvingStatus | HiAPI-C# 2025 - + @@ -84,13 +84,13 @@
-
+
-

-Enum SolvingResultStatus +

+Enum SolvingStatus

@@ -103,7 +103,7 @@ Enum SolvingResultStatus
-
public enum SolvingResultStatus
+
public enum SolvingStatus
@@ -145,23 +145,23 @@ Enum SolvingResultStatus

Fields

-
Iterating = 4
+
Iterating = 4

Currently in the process of iterating.

-
NotCal = 0
+
NotCal = 0

Not calculated yet.

-
OverIteration = 3
+
OverIteration = 3

Exceeded maximum number of iterations.

-
Singular = 2
+
Singular = 2

Singular condition encountered during solving.

-
Solved = 1
+
Solved = 1

Successfully solved.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.html index b8f00f1..ea3fe9b 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Solvers.html @@ -100,7 +100,7 @@ Classes
-
BinarySolvingStatus
+
BinarySolvingEntry

Represents the status of a binary solving process. Contains information about the current state of the solver including best solutions and error metrics.

@@ -131,7 +131,7 @@ Contains detailed information about the solution including parameters, biases, a Enums
-
SolvingResultStatus
+
SolvingStatus

Enumeration of possible statuses for solving results.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningVolumeRemovalProc.html b/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningVolumeRemovalProc.html index b86c995..090e356 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningVolumeRemovalProc.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningVolumeRemovalProc.html @@ -407,48 +407,6 @@ There is no performance gain from that parameter.

- - -

- StepSubstract(GeomBoolCache, Workpiece) - -

- -

Performs volume subtraction using the provided geometric boolean cache on the workpiece.

-
-
- -
-
public static Substraction StepSubstract(GeomBoolCache geomBoolCache, Workpiece workpiece)
-
- -

Parameters

-
-
geomBoolCache GeomBoolCache
-

The geometric boolean cache containing the operation data.

-
-
workpiece Workpiece
-

The workpiece to perform subtraction on.

-
-
- -

Returns

-
-
Substraction
-

The result of the subtraction operation, or null if the operation cannot be performed.

-
-
- - - - - - - - - - -

Events

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningSession.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningSession.html index 6cf4364..0d22124 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningSession.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningSession.html @@ -340,10 +340,10 @@ and managing session state.

- + -

- StepIndexToNcOptOptionList +

+ StepIndexToNcOptOptionSortedList

@@ -354,7 +354,7 @@ Takes effect during internal optimization process.

-
public SortedList<int, NcOptOption> StepIndexToNcOptOptionList { get; set; }
+
public SortedList<int, NcOptOption> StepIndexToNcOptOptionSortedList { get; set; }
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeApi.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeApi.html index 4d8dc66..50a5360 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeApi.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeApi.html @@ -1008,6 +1008,38 @@ public bool OptEnableFeedrate { get; set; } + + +

+ OptEnableFirstSituProcLog + +

+ +
+
+ +
+
[JsAce]
+public static bool OptEnableFirstSituProcLog { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + +

@@ -1074,6 +1106,38 @@ public bool OptEnableInterpolation { get; set; } + + +

+ OptEnableNcEmbeddedLog + +

+ +
+
+ +
+
[JsAce]
+public static bool OptEnableNcEmbeddedLog { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + +

@@ -1761,7 +1825,7 @@ public double OptYieldingUtilizationFactor { get; set; }

Property Value

-
ScriptOptions
+
ScriptOptions
@@ -2084,7 +2148,8 @@ milling step() has not triggered yet.

-

Begins a new machining session.

+

Begins a new machining session. +Not for end user.

@@ -2240,7 +2305,8 @@ public void EndPreserve() -

Ends the current machining session.

+

Ends the current machining session. +Not for end user.

@@ -2720,7 +2786,8 @@ public void OptimizeToFiles(string relFileTemplate = "Output/Opt-[NcName]&q -

Controls the pace of machining operations during execution.

+

A pausable mark for the playing process. +The function enables Pause() to take effect.

@@ -2737,6 +2804,9 @@ public void Pace() +

Remarks

+

Waits for the player to signal the next pace.

+
@@ -3304,7 +3374,8 @@ public void ResetRuntime() -

Runs NC code directly from a string.

+

Runs NC code directly from a string. +Not for end user.

@@ -3347,7 +3418,8 @@ public IEnumerable<Action> RunNc(string ncText, string fileNameAlternative -

Runs an NC file with the specified relative path.

+

Runs an NC file with the specified relative path. +Not for end user.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeController.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeController.html index 0d337fb..4a5e756 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeController.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeController.html @@ -2319,7 +2319,7 @@ public int ParaTemplateDimension { get; set; }

Property Value

-
ScriptOptions
+
ScriptOptions
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.SessionMessageHost.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.SessionMessageHost.html index 6d4611d..7cf6ddd 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.SessionMessageHost.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.SessionMessageHost.html @@ -102,7 +102,7 @@ Class SessionMessageHost
-
public class SessionMessageHost : IMessageKit
+
public class SessionMessageHost : IMessageHost
@@ -119,7 +119,7 @@ Class SessionMessageHost
Implements
- +
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.MachineMotionStep.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.MachineMotionStep.html index fbd07a9..598cdac 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.MachineMotionStep.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.MachineMotionStep.html @@ -290,7 +290,8 @@ Note that the spindle information is only for milling behavior.

-

The work time at the end of the step.

+

The work time at the end of the step. +The value is StepBeginTime + StepDuration.

@@ -1668,6 +1669,37 @@ Note that the spindle information is only for milling behavior.

+ + +

+ GetSpindleSpeed_cycleds() + +

+ +
+
+ +
+
public double GetSpindleSpeed_cycleds()
+
+ + +

Returns

+
+
double
+
+
+ + + + + + + + + + +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.MachiningStep.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.MachiningStep.html index 5b3819d..ab2e3f1 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.MachiningStep.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.MachiningStep.html @@ -6,7 +6,7 @@ - + @@ -97,7 +97,8 @@ Class MachiningStep
Assembly
HiMech.dll

-

Represents a machining step enriched with physics, mapping and source metadata.

+

Represents a machining step enriched with physics, mapping and source metadata. +The duration-based step property is based on the duration from previous-step to current-step.

@@ -2828,7 +2829,8 @@ public Vec3d MoveOnProgramCoordinate { get; } -

Gets the moving length in mm.

+

Gets the moving length in mm. +From previous-step to current-step.

@@ -3984,6 +3986,37 @@ public SpindleDirection GetSpindleDirection() + + +

+ GetSpindleSpeed_cycleds() + +

+ +
+
+ +
+
public double GetSpindleSpeed_cycleds()
+
+ + +

Returns

+
+
double
+
+
+ + + + + + + + + + +

@@ -4025,7 +4058,7 @@ public SpindleDirection GetSpindleDirection()

Update NcOptOption for this step only. -Unlike the modification within the script (script command in NC code or RuntimeApi), the setting is not applied to the further step.

+It should not be mixed with the StepBuilt event and NC inline script since the concurent process may break the logics.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.html index 5761a41..16bcdc5 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.html @@ -102,7 +102,8 @@ Note that the spindle information is only for milling behavior.

MachiningStep
-

Represents a machining step enriched with physics, mapping and source metadata.

+

Represents a machining step enriched with physics, mapping and source metadata. +The duration-based step property is based on the duration from previous-step to current-step.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.CsvNcStep.html b/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.CsvNcStep.html index 63f93b4..8b39330 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.CsvNcStep.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.CsvNcStep.html @@ -494,8 +494,8 @@ Class CsvNcStep -

- BuildByFile(ClStrip, string, string, IMessageKit, StepInterpoationMode) +

+ BuildByFile(ClStrip, string, string, IMessageHost, StepInterpoationMode)

@@ -504,7 +504,7 @@ Class CsvNcStep
-
public static void BuildByFile(ClStrip clStrip, string baseDirectory, string relPath, IMessageKit messageHost, CsvNcStep.StepInterpoationMode stepInterpoationMode)
+
public static void BuildByFile(ClStrip clStrip, string baseDirectory, string relPath, IMessageHost messageHost, CsvNcStep.StepInterpoationMode stepInterpoationMode)

Parameters

@@ -518,7 +518,7 @@ Class CsvNcStep
relPath string

The relative path to the CSV file.

-
messageHost IMessageKit
+
messageHost IMessageHost

The message host for logging.

stepInterpoationMode CsvNcStep.StepInterpoationMode
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MillingForces.Training.MillingTraining.html b/App/wwwroot/HiAPI-docsite/api/Hi.MillingForces.Training.MillingTraining.html index 5b21c62..2be3a93 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MillingForces.Training.MillingTraining.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MillingForces.Training.MillingTraining.html @@ -319,8 +319,8 @@ Class MillingTraining -

- Convert(ICuttingPara, ICuttingPara, GeneralApt, double, double, IMessageKit, CancellationToken) +

+ Convert(ICuttingPara, ICuttingPara, GeneralApt, double, double, IMessageHost, CancellationToken)

@@ -329,7 +329,7 @@ Class MillingTraining
-
public static ICuttingPara Convert(ICuttingPara src, ICuttingPara dstTemplate, GeneralApt apt, double helixAngle_rad, double radialRakeAngle_rad, IMessageKit messageHost, CancellationToken cancellationToken)
+
public static ICuttingPara Convert(ICuttingPara src, ICuttingPara dstTemplate, GeneralApt apt, double helixAngle_rad, double radialRakeAngle_rad, IMessageHost messageHost, CancellationToken cancellationToken)

Parameters

@@ -349,7 +349,7 @@ Class MillingTraining
radialRakeAngle_rad double

Radial rake angle in radians

-
messageHost IMessageKit
+
messageHost IMessageHost

Message host for logging

cancellationToken CancellationToken
@@ -376,8 +376,8 @@ Class MillingTraining -

- Convert(LocalProfileMillingPara, double, double, IMessageKit, CancellationToken) +

+ Convert(LocalProfileMillingPara, double, double, IMessageHost, CancellationToken)

@@ -386,7 +386,7 @@ Class MillingTraining
-
public static RakeFaceCuttingPara2d Convert(LocalProfileMillingPara src, double helixAngle_rad, double radialRakeAngle_rad, IMessageKit messageHost, CancellationToken cancellationToken)
+
public static RakeFaceCuttingPara2d Convert(LocalProfileMillingPara src, double helixAngle_rad, double radialRakeAngle_rad, IMessageHost messageHost, CancellationToken cancellationToken)

Parameters

@@ -400,7 +400,7 @@ Class MillingTraining
radialRakeAngle_rad double

Radial rake angle in radians

-
messageHost IMessageKit
+
messageHost IMessageHost

Message host for logging

cancellationToken CancellationToken
@@ -427,8 +427,8 @@ Class MillingTraining -

- GatherAndGetUpdate(ConcurrentDictionary<int, List<ITimeShot>>, ClStrip, ICuttingPara, SampleFlag, double, IMessageKit, CancellationToken) +

+ GatherAndGetUpdate(ConcurrentDictionary<int, List<ITimeShot>>, ClStrip, ICuttingPara, SampleFlag, double, IMessageHost, CancellationToken)

@@ -437,7 +437,7 @@ Class MillingTraining
-
public static ICuttingPara GatherAndGetUpdate(ConcurrentDictionary<int, List<ITimeShot>> stepToTimeShotListDictionary, ClStrip clStrip, ICuttingPara anchorPara, SampleFlag sampleFlags, double outlierRatio, IMessageKit messageHost, CancellationToken cancellationToken)
+
public static ICuttingPara GatherAndGetUpdate(ConcurrentDictionary<int, List<ITimeShot>> stepToTimeShotListDictionary, ClStrip clStrip, ICuttingPara anchorPara, SampleFlag sampleFlags, double outlierRatio, IMessageHost messageHost, CancellationToken cancellationToken)

Parameters

@@ -457,7 +457,7 @@ Class MillingTraining
outlierRatio double

Ratio of outliers to exclude

-
messageHost IMessageKit
+
messageHost IMessageHost

Message host for logging

cancellationToken CancellationToken
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MillingSteps.MillingInstance.html b/App/wwwroot/HiAPI-docsite/api/Hi.MillingSteps.MillingInstance.html index 4893b07..9851059 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MillingSteps.MillingInstance.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MillingSteps.MillingInstance.html @@ -259,7 +259,10 @@ The object is part of data in the

Radial Width.

+

Radial Width. +The value may not equal to the bounding box. +It has filtered by plural method. +The value is for human viewing.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcOpt.NcOptProc.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcOpt.NcOptProc.html index 7abb889..cdebc15 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcOpt.NcOptProc.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcOpt.NcOptProc.html @@ -292,6 +292,70 @@ Class NcOptProc +
+ +

+ EnableFirstSituProcLog + +

+ +

Enable create log file for first (independent) situ process.

+
+
+ +
+
public static bool EnableFirstSituProcLog { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ EnableNcEmbeddedLog + +

+ +

Enable embedded log to optimized NC file.

+
+
+ +
+
public static bool EnableNcEmbeddedLog { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + +

@@ -381,8 +445,8 @@ Since the folder can be moving with the configuration file.

-

- Optimize(ICuttingPara, MachiningSession, LinkedList<NcLine>, NcEnv, List<MachiningStep>, MachiningToolHouse, IMessageKit, CancellationToken, string) +

+ Optimize(ICuttingPara, MachiningSession, LinkedList<NcLine>, NcEnv, List<MachiningStep>, MachiningToolHouse, IMessageHost, CancellationToken, string, string)

@@ -391,7 +455,7 @@ Since the folder can be moving with the configuration file.

-
public IEnumerable<(NcLine SrcNcLine, NcLine OptNcLine)> Optimize(ICuttingPara millingPara, MachiningSession machiningSession, LinkedList<NcLine> srcNcLines, NcEnv ncEnv, List<MachiningStep> millingSteps, MachiningToolHouse millingToolHouse, IMessageKit messageHost, CancellationToken cancellationToken, string relFileTemplate)
+
public IEnumerable<(NcLine SrcNcLine, NcLine OptNcLine)> Optimize(ICuttingPara millingPara, MachiningSession machiningSession, LinkedList<NcLine> srcNcLines, NcEnv ncEnv, List<MachiningStep> machiningSteps, MachiningToolHouse millingToolHouse, IMessageHost messageHost, CancellationToken cancellationToken, string baseDirectory, string relFileTemplate)

Parameters

@@ -408,18 +472,20 @@ Since the folder can be moving with the configuration file.

ncEnv NcEnv

The NC environment settings

-
millingSteps List<MachiningStep>
+
machiningSteps List<MachiningStep>

The list of milling steps

millingToolHouse MachiningToolHouse

The machining tool house

-
messageHost IMessageKit
+
messageHost IMessageHost

The message host for logging

cancellationToken CancellationToken

Cancellation token to cancel the operation

+
baseDirectory string
+
relFileTemplate string

The relative file template for output

@@ -444,8 +510,8 @@ Since the folder can be moving with the configuration file.

-

- OptimizeToFiles(ICuttingPara, MachiningSession, LinkedList<NcLine>, NcEnv, MachiningToolHouse, ClStrip, string, IMessageKit, CancellationToken, string) +

+ OptimizeToFiles(ICuttingPara, MachiningSession, LinkedList<NcLine>, NcEnv, MachiningToolHouse, ClStrip, string, IMessageHost, CancellationToken, string)

@@ -454,7 +520,7 @@ Since the folder can be moving with the configuration file.

-
public void OptimizeToFiles(ICuttingPara millingPara, MachiningSession machiningSession, LinkedList<NcLine> ncLines, NcEnv ncEnv, MachiningToolHouse millingToolHouse, ClStrip clStrip, string baseDirectory, IMessageKit messageHost, CancellationToken cancellationToken, string relFileTemplate = "Output/Opt-[NcName]")
+
public void OptimizeToFiles(ICuttingPara millingPara, MachiningSession machiningSession, LinkedList<NcLine> ncLines, NcEnv ncEnv, MachiningToolHouse millingToolHouse, ClStrip clStrip, string baseDirectory, IMessageHost messageHost, CancellationToken cancellationToken, string relFileTemplate = "Output/Opt-[NcName]")

Parameters

@@ -480,7 +546,7 @@ Since the folder can be moving with the configuration file.

baseDirectory string

The base directory for output files

-
messageHost IMessageKit
+
messageHost IMessageHost

The message host for logging

cancellationToken CancellationToken
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunner.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunner.html new file mode 100644 index 0000000..f71cccd --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunner.html @@ -0,0 +1,473 @@ + + + + + Class CsvRunner | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class CsvRunner +

+ +
+
Namespace
Hi.Numerical.FilePlayers
+
Assembly
HiNc.dll
+
+ +

Provides functionality for running and processing csv lines.

+
+
+ +
+
public class CsvRunner : IControlRunner
+
+ + + + +
+
Inheritance
+
+ +
CsvRunner
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ +
+
Extension Methods
+
+ + + + + + + +
+ + + + + +

Constructors +

+ + + + +

+ CsvRunner(PacePlayer, SessionMessageHost) + +

+ +
+
+ +
+
public CsvRunner(PacePlayer pacePlayer, SessionMessageHost sessionMessageHost)
+
+ +

Parameters

+
+
pacePlayer PacePlayer
+
+
sessionMessageHost SessionMessageHost
+
+
+ + + + + + + + + + + + +

Properties +

+ + + + +

+ Config + +

+ +

Configuration for CSV Runner.

+
+
+ +
+
public CsvRunnerConfig Config { get; set; }
+
+ + + + + +

Property Value

+
+
CsvRunnerConfig
+
+
+ + + + + + + + + + +

+ PacePlayer + +

+ +
+
+ +
+
public PacePlayer PacePlayer { get; }
+
+ + + + + +

Property Value

+
+
PacePlayer
+
+
+ + + + + + + + + + +

+ SessionMessageHost + +

+ +

External Hosted.

+
+
+ +
+
public SessionMessageHost SessionMessageHost { get; set; }
+
+ + + + + +

Property Value

+
+
SessionMessageHost
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Reset() + +

+ +

Reset runtime data.

+
+
+ +
+
public void Reset()
+
+ + + + + + + + + + + + + + + +

+ ResetFileIndex() + +

+ +

Resets the file index to zero.

+
+
+ +
+
public void ResetFileIndex()
+
+ + + + + + + + + + + + + + + +

+ RunControlLines(string, IEnumerable<string>, CancellationToken) + +

+ +

Runs raw Control lines and yields source control line and Act pairs.

+
+
+ +
+
public IEnumerable<SourceCommandActEntry> RunControlLines(string relFilePath, IEnumerable<string> lines, CancellationToken cancellationToken)
+
+ +

Parameters

+
+
relFilePath string
+

The relative path of the control file

+
+
lines IEnumerable<string>
+

The enumerable collection of command (control code) lines

+
+
cancellationToken CancellationToken
+

Cancellation token to cancel the operation

+
+
+ +

Returns

+
+
IEnumerable<SourceCommandActEntry>
+

Enumerable of source control line and Act pairs

+
+
+ + + + + + + + + + + + + +

+ RunToLineEnd() + +

+ +

Set EnumerablePlayer before use the function.

+
+
+ +
+
public void RunToLineEnd()
+
+ + + + + + + + + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.html index 8a0c5f7..4e5b83c 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.html @@ -94,6 +94,11 @@

Classes

+
+
CsvRunner
+

Provides functionality for running and processing csv lines.

+
+
CsvRunnerConfig

Configuration class for CSV Runner.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcEnv.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcEnv.html index 3e9fc4a..610e42e 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcEnv.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcEnv.html @@ -1384,8 +1384,8 @@ Set to NaN if tooling motion not apply the axis motion.

-

- CheckStrokeLimit(DVec3d, IMessageKit) +

+ CheckStrokeLimit(DVec3d, IMessageHost)

@@ -1394,7 +1394,7 @@ Set to NaN if tooling motion not apply the axis motion.

-
public bool CheckStrokeLimit(DVec3d mcXyzabc_mm_rad, IMessageKit messageKit)
+
public bool CheckStrokeLimit(DVec3d mcXyzabc_mm_rad, IMessageHost messageKit)

Parameters

@@ -1402,7 +1402,7 @@ Set to NaN if tooling motion not apply the axis motion.

mcXyzabc_mm_rad DVec3d

Machine coordinates in mm and radians.

-
messageKit IMessageKit
+
messageKit IMessageHost

Message kit for error reporting.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcFlagUtil.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcFlagUtil.html index c502e8d..3f960ac 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcFlagUtil.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcFlagUtil.html @@ -155,8 +155,8 @@ Class NcFlagUtil -

- GetCompensationHeight(BitArray, int, MillingToolOffsetTable, CncBrand, IMessageKit) +

+ GetCompensationHeight(BitArray, int, MillingToolOffsetTable, CncBrand, IMessageHost)

@@ -165,7 +165,7 @@ Class NcFlagUtil
-
public static double GetCompensationHeight(this BitArray ncFlagBitArray, int H, MillingToolOffsetTable millingToolOffsetTable, CncBrand cncBrand, IMessageKit messageHost)
+
public static double GetCompensationHeight(this BitArray ncFlagBitArray, int H, MillingToolOffsetTable millingToolOffsetTable, CncBrand cncBrand, IMessageHost messageHost)

Parameters

@@ -182,7 +182,7 @@ Class NcFlagUtil
cncBrand CncBrand

CNC brand

-
messageHost IMessageKit
+
messageHost IMessageHost

Message host for warnings

@@ -206,8 +206,8 @@ Class NcFlagUtil -

- GetCompensationRadius(BitArray, int, MillingToolOffsetTable, CncBrand, IMessageKit) +

+ GetCompensationRadius(BitArray, int, MillingToolOffsetTable, CncBrand, IMessageHost)

@@ -216,7 +216,7 @@ Class NcFlagUtil
-
public static double GetCompensationRadius(this BitArray ncFlagBitArray, int D, MillingToolOffsetTable millingToolOffsetTable, CncBrand cncBrand, IMessageKit messageHost)
+
public static double GetCompensationRadius(this BitArray ncFlagBitArray, int D, MillingToolOffsetTable millingToolOffsetTable, CncBrand cncBrand, IMessageHost messageHost)

Parameters

@@ -233,7 +233,7 @@ Class NcFlagUtil
cncBrand CncBrand

The CNC controller brand.

-
messageHost IMessageKit
+
messageHost IMessageHost

The message host for reporting warnings or errors.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcLine.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcLine.html index e1d260d..da02f63 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcLine.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcLine.html @@ -197,8 +197,8 @@ Class NcLine -

- NcLine(NcEnv, IndexedFileLine, NcLine, out NcNoteCache, IMessageKit) +

+ NcLine(NcEnv, IndexedFileLine, NcLine, out NcNoteCache, IMessageHost)

@@ -207,7 +207,7 @@ Class NcLine
-
public NcLine(NcEnv ncEnv, IndexedFileLine fileLine, NcLine preNcLine, out NcNoteCache ncLineCache, IMessageKit messageHost)
+
public NcLine(NcEnv ncEnv, IndexedFileLine fileLine, NcLine preNcLine, out NcNoteCache ncLineCache, IMessageHost messageHost)

Parameters

@@ -225,7 +225,7 @@ If previous NcLine is not nu
ncLineCache NcNoteCache

Output NC note cache

-
messageHost IMessageKit
+
messageHost IMessageHost

Message host for warnings

@@ -243,8 +243,8 @@ If previous NcLine is not nu -

- NcLine(NcEnv, IMessageKit) +

+ NcLine(NcEnv, IMessageHost)

@@ -253,14 +253,14 @@ If previous NcLine is not nu
-
public NcLine(NcEnv ncEnv, IMessageKit messageHost)
+
public NcLine(NcEnv ncEnv, IMessageHost messageHost)

Parameters

ncEnv NcEnv
-
messageHost IMessageKit
+
messageHost IMessageHost
@@ -2058,8 +2058,8 @@ So be care that do not change the NC XYZ if not needed.

-

- GetCompensationHeight(NcEnv, IMessageKit) +

+ GetCompensationHeight(NcEnv, IMessageHost)

@@ -2068,7 +2068,7 @@ So be care that do not change the NC XYZ if not needed.

-
public double GetCompensationHeight(NcEnv ncEnv, IMessageKit messageHost)
+
public double GetCompensationHeight(NcEnv ncEnv, IMessageHost messageHost)

Parameters

@@ -2076,7 +2076,7 @@ So be care that do not change the NC XYZ if not needed.

ncEnv NcEnv

NC environment

-
messageHost IMessageKit
+
messageHost IMessageHost

Message host for warnings

@@ -2100,8 +2100,8 @@ So be care that do not change the NC XYZ if not needed.

-

- GetCompensationRadius(CncBrand, MillingToolOffsetTable, IMessageKit) +

+ GetCompensationRadius(CncBrand, MillingToolOffsetTable, IMessageHost)

@@ -2110,7 +2110,7 @@ So be care that do not change the NC XYZ if not needed.

-
public double GetCompensationRadius(CncBrand cncBrand, MillingToolOffsetTable millingToolOffsetTable, IMessageKit messageHost)
+
public double GetCompensationRadius(CncBrand cncBrand, MillingToolOffsetTable millingToolOffsetTable, IMessageHost messageHost)

Parameters

@@ -2121,7 +2121,7 @@ So be care that do not change the NC XYZ if not needed.

millingToolOffsetTable MillingToolOffsetTable

Milling tool offset table

-
messageHost IMessageKit
+
messageHost IMessageHost

Message host for warnings

@@ -2250,8 +2250,8 @@ So be care that do not change the NC XYZ if not needed.

-

- GetMcByProgramPos(Vec3d, NcEnv, NcNoteCache, IMessageKit, out Vec3d) +

+ GetMcByProgramPos(Vec3d, NcEnv, NcNoteCache, IMessageHost, out Vec3d)

@@ -2260,7 +2260,7 @@ So be care that do not change the NC XYZ if not needed.

-
public DVec3d GetMcByProgramPos(Vec3d programPos, NcEnv ncEnv, NcNoteCache ncLineCache, IMessageKit messageHost, out Vec3d programXyz)
+
public DVec3d GetMcByProgramPos(Vec3d programPos, NcEnv ncEnv, NcNoteCache ncLineCache, IMessageHost messageHost, out Vec3d programXyz)

Parameters

@@ -2271,7 +2271,7 @@ So be care that do not change the NC XYZ if not needed.

ncLineCache NcNoteCache
-
messageHost IMessageKit
+
messageHost IMessageHost
programXyz Vec3d
@@ -2295,8 +2295,8 @@ So be care that do not change the NC XYZ if not needed.

-

- GetProgramXyzabc(NcEnv, DVec3d, out bool?, IMessageKit) +

+ GetProgramXyzabc(NcEnv, DVec3d, out bool?, IMessageHost)

@@ -2305,7 +2305,7 @@ So be care that do not change the NC XYZ if not needed.

-
public DVec3d GetProgramXyzabc(NcEnv ncEnv, DVec3d mcXyzabc, out bool? isG68p2Successed, IMessageKit messageHost)
+
public DVec3d GetProgramXyzabc(NcEnv ncEnv, DVec3d mcXyzabc, out bool? isG68p2Successed, IMessageHost messageHost)

Parameters

@@ -2319,7 +2319,7 @@ So be care that do not change the NC XYZ if not needed.

isG68p2Successed bool?

Output parameter indicating whether G68.2 coordinate conversion was successful.

-
messageHost IMessageKit
+
messageHost IMessageHost

The message host for logging.

@@ -2455,8 +2455,8 @@ So be care that do not change the NC XYZ if not needed.

-

- RebuildByMc(NcEnv, DVec3d, NcNoteCache, IMessageKit) +

+ RebuildByMc(NcEnv, DVec3d, NcNoteCache, IMessageHost)

@@ -2465,7 +2465,7 @@ So be care that do not change the NC XYZ if not needed.

-
public void RebuildByMc(NcEnv ncEnv, DVec3d mc, NcNoteCache ncLineCache, IMessageKit messageHost)
+
public void RebuildByMc(NcEnv ncEnv, DVec3d mc, NcNoteCache ncLineCache, IMessageHost messageHost)

Parameters

@@ -2479,7 +2479,7 @@ So be care that do not change the NC XYZ if not needed.

ncLineCache NcNoteCache

NC line cache.

-
messageHost IMessageKit
+
messageHost IMessageHost

Message host for logging and reporting.

@@ -2497,8 +2497,8 @@ So be care that do not change the NC XYZ if not needed.

-

- RebuildByProgramXyz(NcEnv, Vec3d, NcNoteCache, IMessageKit) +

+ RebuildByProgramXyz(NcEnv, Vec3d, NcNoteCache, IMessageHost)

@@ -2507,7 +2507,7 @@ So be care that do not change the NC XYZ if not needed.

-
public void RebuildByProgramXyz(NcEnv ncEnv, Vec3d programXyz, NcNoteCache ncNoteCache, IMessageKit messageHost)
+
public void RebuildByProgramXyz(NcEnv ncEnv, Vec3d programXyz, NcNoteCache ncNoteCache, IMessageHost messageHost)

Parameters

@@ -2521,7 +2521,7 @@ So be care that do not change the NC XYZ if not needed.

ncNoteCache NcNoteCache

NC note cache.

-
messageHost IMessageKit
+
messageHost IMessageHost

Message host for logging and reporting.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcProc.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcProc.html index d246455..0b48caa 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcProc.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.NcProc.html @@ -155,8 +155,8 @@ Class NcProc -

- GetActs(NcEnv, SeqPair<NcLine>, IMessageKit) +

+ GetActs(NcEnv, SeqPair<NcLine>, IMessageHost)

@@ -165,7 +165,7 @@ Class NcProc
-
public static IEnumerable<IAct> GetActs(NcEnv ncEnv, SeqPair<NcLine> ncLineSeq, IMessageKit messageHost)
+
public static IEnumerable<IAct> GetActs(NcEnv ncEnv, SeqPair<NcLine> ncLineSeq, IMessageHost messageHost)

Parameters

@@ -176,7 +176,7 @@ Class NcProc
ncLineSeq SeqPair<NcLine>

The sequence pair of NcLines

-
messageHost IMessageKit
+
messageHost IMessageHost

The message host for logging

@@ -200,8 +200,8 @@ Class NcProc -

- GetActs(NcEnv, NcLine, NcLine, IMessageKit) +

+ GetActs(NcEnv, NcLine, NcLine, IMessageHost)

@@ -210,7 +210,7 @@ Class NcProc
-
public static IEnumerable<IAct> GetActs(NcEnv ncEnv, NcLine preNcLine, NcLine curNcLine, IMessageKit messageHost)
+
public static IEnumerable<IAct> GetActs(NcEnv ncEnv, NcLine preNcLine, NcLine curNcLine, IMessageHost messageHost)

Parameters

@@ -224,7 +224,7 @@ Class NcProc
curNcLine NcLine

The current NcLine

-
messageHost IMessageKit
+
messageHost IMessageHost

The message host for logging

@@ -248,8 +248,8 @@ Class NcProc -

- GetActs(NcEnv, LinkedListNode<NcLine>, IMessageKit) +

+ GetActs(NcEnv, LinkedListNode<NcLine>, IMessageHost)

@@ -258,7 +258,7 @@ Class NcProc
-
public static IEnumerable<IAct> GetActs(NcEnv ncEnv, LinkedListNode<NcLine> ncLineNode, IMessageKit messageHost)
+
public static IEnumerable<IAct> GetActs(NcEnv ncEnv, LinkedListNode<NcLine> ncLineNode, IMessageHost messageHost)

Parameters

@@ -269,7 +269,7 @@ Class NcProc
ncLineNode LinkedListNode<NcLine>

The linked list node containing the NcLine

-
messageHost IMessageKit
+
messageHost IMessageHost

The message host for logging

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.RadiusCompensationBuf.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.RadiusCompensationBuf.html index 70efa0e..90fe5b7 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.RadiusCompensationBuf.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.RadiusCompensationBuf.html @@ -405,8 +405,8 @@ Program Pos can be Cartesian XYZ or Polar Coordinate Interpolation Mode (G12.1) -

- ResolveRadiusCompensation(LinkedListNode<NcLine>, NcEnv, NcNoteCache, IMessageKit) +

+ ResolveRadiusCompensation(LinkedListNode<NcLine>, NcEnv, NcNoteCache, IMessageHost)

@@ -415,7 +415,7 @@ Program Pos can be Cartesian XYZ or Polar Coordinate Interpolation Mode (G12.1)
-
public static bool ResolveRadiusCompensation(LinkedListNode<NcLine> srcNode, NcEnv ncEnv, NcNoteCache ncLineCache, IMessageKit messageHost)
+
public static bool ResolveRadiusCompensation(LinkedListNode<NcLine> srcNode, NcEnv ncEnv, NcNoteCache ncLineCache, IMessageHost messageHost)

Parameters

@@ -429,7 +429,7 @@ Program Pos can be Cartesian XYZ or Polar Coordinate Interpolation Mode (G12.1)
ncLineCache NcNoteCache

The NC line cache for storing messages.

-
messageHost IMessageKit
+
messageHost IMessageHost

The message host for reporting issues.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.ScriptApiUtils.ICsScriptApi.html b/App/wwwroot/HiAPI-docsite/api/Hi.ScriptApiUtils.ICsScriptApi.html index 19b2752..51f8677 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.ScriptApiUtils.ICsScriptApi.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.ScriptApiUtils.ICsScriptApi.html @@ -199,7 +199,7 @@ Interface ICsScriptApi

Property Value

-
ScriptOptions
+
ScriptOptions
diff --git a/App/wwwroot/HiAPI-docsite/api/toc.html b/App/wwwroot/HiAPI-docsite/api/toc.html index 7dfce5b..e09b43d 100644 --- a/App/wwwroot/HiAPI-docsite/api/toc.html +++ b/App/wwwroot/HiAPI-docsite/api/toc.html @@ -409,6 +409,9 @@
  • SortedListUtil.SearchMethod
  • +
  • + SortedListUtil.SeekDirection +
  • SynList<T>
  • @@ -503,7 +506,7 @@ BootstrapTheme
  • - IMessageKit + IMessageHost
  • MessageBoardUtil @@ -512,10 +515,10 @@ MessageFlag
  • - MessageHostUtil + MessageHost
  • - MessageKit + MessageHostUtil
  • MultiTagMessage @@ -1038,7 +1041,7 @@ BinarySolverUtil
  • - BinarySolvingStatus + BinarySolvingEntry
  • DeepSolvingStatus @@ -1059,7 +1062,7 @@ SolvingResult
  • - SolvingResultStatus + SolvingStatus
  • SolvingTerm @@ -2614,6 +2617,9 @@ Hi.Numerical.FilePlayers
  • Handle Message and Exception

    -

    If message is well-managed, apply MessageKit to show the message; if the message is Exception, apply ExceptionUtil.ShowException(Exception, object) to show the exception for detail treatment. The messages are shown in Message Section on Main Panel.

    +

    If message is well-managed, apply <xref:Hi.Common.Messages.MessageKit> to show the message; if the message is Exception, apply ExceptionUtil.ShowException(Exception, object) to show the exception for detail treatment. The messages are shown in Message Section on Main Panel.

    For examples of message and exception handling patterns:

    1. Normal message handling:
    -
    MessageKit.AddMessage("Operation completed successfully.");
    -MessageKit.AddWarning("Please check your input.");
    +
    MessageHost.AddMessage("Operation completed successfully.");
    +MessageHost.AddWarning("Please check your input.");
     
    1. Exception handling in synchronous code:
    2. @@ -125,7 +125,7 @@ catch (Exception ex)

      The examples are in project Hi.Sample. See this page for git repository.

      Loose Manner

      Run Skippable Rapid Calling Synchronous Action in Loose Manner.

      -

      Some synchronous action may be calling rapidly but only the last call has to be effective (or it is endurable to loss some previous action call). Define a LooseRunner and apply LooseRunner.<xref:Hi.Common.LooseRunner.TryRun(System.Action{System.Threading.CancellationToken})> to run the action.

      +

      Some synchronous action may be calling rapidly but only the last call has to be effective (or it is endurable to loss some previous action call). Define a LooseRunner and apply TryRun to run the action.

      Dispose the LooseRunner on owner disposing to ensure the tryrun action is well-managed.

      GUI File Path Assignment

      See GUI File Path Assignment.

      diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/main-panel.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/main-panel.html index 910487a..9792f78 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/main-panel.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/main-panel.html @@ -156,11 +156,11 @@ Users can refresh the log content or download the current day's log file for off

      The Project Menu Managing MachiningProject.

      To New (create), Save and Save As the MachiningProject, See DemoBuildGeomOnlyMachiningProject for the example.

      To Load MachiningProject, See DemoUseMachiningProject for the example.

      -

      Show message for the actions result (successed or has exception) by MessageKit.

      +

      Show message for the actions result (successed or has exception) by <xref:Hi.Common.Messages.MessageKit>.

      Tip
      -

      Recommmand using static function of MessageKit to do the job. -Read document of MessageKit to ensure the proper usage.

      +

      Recommmand using static function of <xref:Hi.Common.Messages.MessageKit> to do the job. +Read document of <xref:Hi.Common.Messages.MessageKit> to ensure the proper usage.

      On project loaded (Navigation Menu/Project/Load MenuItem) , set the Player.Panel.RenderingCanvas.DispEngine to SetViewToIsometricView().

      diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/message-section-on-main-panel.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/message-section-on-main-panel.html index 0950621..822ee44 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/message-section-on-main-panel.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/message-section-on-main-panel.html @@ -87,8 +87,8 @@

      Message Section on Main Panel

      -

      Initialize MessageKit.Default with Message Section

      -

      To show and save the message on Brief Message Text Field, add event to Default.OnAdding.

      +

      Initialize <xref:Hi.Common.Messages.MessageKit>.<xref:Hi.Common.Messages.MessageKit.Default> with Message Section

      +

      To show and save the message on Brief Message Text Field, add event to <xref:Hi.Common.Messages.MessageKit.Default>.<xref:Hi.Common.Messages.MessageKit.OnAdding>.

      The event contains:

      • update the text content of Brief Message Text Field
      • @@ -98,7 +98,7 @@
        Tip
        • Handle the situation that logs over one day.
        • -
        • Check if passing argument of OnAdding is Exception. If the it is Exception, update text content by Exception.Message but log to file with the full Exception information.
        • +
        • Check if passing argument of <xref:Hi.Common.Messages.MessageKit.OnAdding> is Exception. If the it is Exception, update text content by Exception.Message but log to file with the full Exception information.
        • Consider MessageFlag to set the behavior of Message Section. For example, apply alert style if passing argument is exception. The Info (and the other flags that the priority lower than it) should only record in the logs but not shows in the Message Section.
    diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/widget/vec3d/index.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/widget/vec3d/index.html index a22e5ba..16184ba 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/widget/vec3d/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/widget/vec3d/index.html @@ -301,7 +301,7 @@ namespace HiNC_2025_win_desktop.Geom } catch (Exception ex) { - MessageKit.AddError(string.Format(Application.Current.FindResource("Vec3d_Update_Error").ToString(), ex.Message)); + MessageHost.AddError(string.Format(Application.Current.FindResource("Vec3d_Update_Error").ToString(), ex.Message)); ex.ShowException(this); } finally @@ -392,7 +392,7 @@ namespace HiNC_2025_win_desktop.Geom } catch (Exception ex) { - MessageKit.AddError(string.Format(Application.Current.FindResource("Vec3d_Update_Error").ToString(), ex.Message)); + MessageHost.AddError(string.Format(Application.Current.FindResource("Vec3d_Update_Error").ToString(), ex.Message)); ex.ShowException(this); } finally @@ -549,7 +549,7 @@ namespace HiNC_2025_win_desktop.Geom catch (Exception ex) { // 记录异常但不中断用户操作 - MessageKit.AddError(string.Format(Application.Current.FindResource("Vec3d_Update_Error").ToString(), ex.Message)); + MessageHost.AddError(string.Format(Application.Current.FindResource("Vec3d_Update_Error").ToString(), ex.Message)); ex.ShowException(this); } finally diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/release-note/index.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/release-note/index.html index eaddb01..c9f4e32 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/release-note/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/release-note/index.html @@ -87,6 +87,16 @@

    Release Note

    +

    HiNc Packages Version 3.1.84

    +
      +
    • Optimize memory usage by shrinking map-size of clStripPos
    • +
    • Fix design pattern of cutting parameter training module (MillingTraining)
    • +
    • Add LoadCuttingParaByFile function to load cutting parameters from file
    • +
    • Improve CsvRunner actual time parsing: automatically calculate step duration from actual time when duration is not provided
    • +
    • Enhance message handling in RuntimeApi by unifying SessionMessageHost usage
    • +
    • Improve optimization performance with better task scheduling
    • +
    • Various performance improvements and bug fixes
    • +

    HiNc Packages Version 3.1.75

    • Add actual time tracking functionality (ActualTime)
    • diff --git a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Common.DemoMessageAndExceptionHandling.html b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Common.DemoMessageAndExceptionHandling.html index 90e9acb..7c17f1f 100644 --- a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Common.DemoMessageAndExceptionHandling.html +++ b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Common.DemoMessageAndExceptionHandling.html @@ -171,8 +171,8 @@ namespace Sample.Common internal static void DemoNormalMessages() { #region Normal_Messages - MessageKit.AddMessage("Operation completed successfully."); - MessageKit.AddWarning("Please check your input."); + MessageHost.AddMessage("Operation completed successfully."); + MessageHost.AddWarning("Please check your input."); #endregion } /// <summary> diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/cutter.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/cutter.html index 0010e5f..c970954 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/cutter.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/cutter.html @@ -96,6 +96,25 @@
    • 自由減法 切割刀、放電加工模具。
    +

    銑削刀具描述參數

    +
      +
    • 材料:刀柄材料、刀身材料、(多層)鍍膜材料及厚度。
    • +
    • 刃旋轉包絡形:可使用簡化參數 (APT) 或自訂 ZR 表。
    • +
    • 簡化(屈服等效)刃中心旋轉包絡形: +
        +
      • 刃旋轉包絡形的實體空間比率。
      • +
      • 自訂 ZR 表。
      • +
      +
    • +
    • 夾持端(不可切削區)形狀:自訂 ZR 表。
    • +
    • 每刃形狀(含側刃、底刃): +
        +
      • 簡化參數:螺旋角度位置、前角、離隙角。
      • +
      • 自訂每 Z 值:螺旋角度位置、前角、離隙角、半徑長。
      • +
      +
    • +
    • 刃磨半徑(Hone Radius)、刀具重量、刀片重量及(熱傳等效)厚度。
    • +

    離隙角

    HiNC的離隙角設定為第一離隙角。用來計算刀緣磨耗寬度(Flank Wear, VB)。

    刀身重量

    diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/demo-real-insert-cutter-origin.png b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/demo-real-insert-cutter-origin.png new file mode 100644 index 0000000..4b572e9 Binary files /dev/null and b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/demo-real-insert-cutter-origin.png differ diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/demo-real-insert-cutter.png b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/demo-real-insert-cutter.png index 4b572e9..5c00690 100644 Binary files a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/demo-real-insert-cutter.png and b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/demo-real-insert-cutter.png differ diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/index.html index 06b4889..55d46d0 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/index.html @@ -88,7 +88,7 @@

    刀片式刃雕

    刀片式刀具可以建立在虛擬環境中,見以下範例。

    -

    demo-real-insert-cutter

    +

    demo-real-insert-cutter

    demo-virtual-insert-cutter

    diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/insert-cut-mark.png b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/insert-cut-mark.png new file mode 100644 index 0000000..c17a9ee Binary files /dev/null and b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/milling-tool/insert-cutter/insert-cut-mark.png differ diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/ActOperations/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/ActOperations/index.html new file mode 100644 index 0000000..898ede7 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/ActOperations/index.html @@ -0,0 +1,182 @@ + + + + + 動作操作 | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    +

    動作操作

    + +

    RuntimeApi(API) 提供了多個方法來執行特定的加工動作。

    +

    PlayAct

    +

    PlayAct(API) 執行一個動作物件,並在執行過程中控制步調。

    +
    +
    Note
    +

    指令格式

    +
    PlayAct(<動作物件>, <來源指令>, <取消令牌>);
    +
    +
    +
    +
    Tip
    +

    指令範例

    +
    // 執行自訂動作
    +var act = new CustomAct();
    +PlayAct(act);
    +
    +
    +

    PlayToolingTeleport

    +

    PlayToolingTeleport(API) 執行刀具傳送操作,將指定刀具傳送到新位置。

    +
    +
    Note
    +

    指令格式

    +
    PlayToolingTeleport(<刀具ID>);
    +
    +
    +
    +
    Tip
    +

    指令範例

    +
    // 傳送刀具1
    +PlayToolingTeleport(1);
    +
    +
    +

    PlayClTeleport

    +

    PlayClTeleport(API) 執行刀具位置(CL)傳送操作,將刀具傳送到指定的位置和方向。

    +
    +
    Note
    +

    指令格式

    +
    PlayClTeleport(<X>, <Y>, <Z>, <I>, <J>, <K>);
    +
    +
    +
    +
    Tip
    +

    指令範例

    +
    // 傳送刀具到指定位置和方向
    +PlayClTeleport(10.0, 20.0, 30.0, 0.0, 0.0, 1.0);
    +
    +
    +

    參數說明

    +

    PlayToolingTeleport

    +
      +
    • <刀具ID>: 要傳送的刀具編號
    • +
    +

    PlayClTeleport

    +
      +
    • <X>, <Y>, <Z>: 刀具位置座標(單位:mm)
    • +
    • <I>, <J>, <K>: 刀具方向向量
    • +
    +

    使用場景

    +
      +
    • PlayAct: 用於執行自訂的動作物件
    • +
    • PlayToolingTeleport: 用於快速移動刀具到新位置
    • +
    • PlayClTeleport: 用於精確控制刀具的位置和方向
    • +
    +
    +
    Note
    +

    這些操作通常用於特殊情況或測試場景。在正常加工流程中,通常使用 執行NC檔執行NC碼字串 來執行NC碼。

    +
    + +
    + +
    +
    + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Collision/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Collision/index.html index 49f0c70..3c94bca 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Collision/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Collision/index.html @@ -84,12 +84,12 @@ -
    +

    碰撞檢測

    Note
    diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Doc-Task/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Doc-Task/index.html index ae27f5c..114cce2 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Doc-Task/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Doc-Task/index.html @@ -84,7 +84,7 @@
    -
    +

    腳本

    任務(Task)頁面會依照順序執行腳本,頁面排版順序為由左至右,再由上至下。

    @@ -94,7 +94,7 @@

    語法與功能

    腳本 (Script) 中的標題 (Title) 的功能僅為註記,無其他功能,腳本的內容與標題不一定要匹配。

    -

    腳本使用原生C#語言。

    +

    腳本使用原生C#語言,可直接引用RuntimeApi(API)的成員屬性及成員函數。

    Note

    基本 C# 語法

    diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Events/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Events/index.html new file mode 100644 index 0000000..7f341d6 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Events/index.html @@ -0,0 +1,170 @@ + + + + + 事件處理 | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    +

    事件處理

    + +

    RuntimeApi(API) 提供了多個事件,允許在加工過程中執行自訂邏輯。

    +

    MachiningStepBuilt

    +

    MachiningStepBuilt(API) 當加工步階建立時觸發的事件。可用於在每個步階建立時進行配置或修改。

    +
    +
    Note
    +

    指令格式

    +
    MachiningStepBuilt += (preStep, curStep) => {
    +    // 自訂邏輯
    +};
    +
    +
    +
    +
    Tip
    +

    指令範例

    +
    // 在每個步階建立時記錄資訊
    +MachiningStepBuilt += (preStep, curStep) => {
    +    if (curStep != null)
    +    {
    +        Message($"Step created: ToolId={curStep.ToolId}, Feedrate={curStep.Feedrate_mmdmin}");
    +    }
    +};
    +
    +PlayNcFile("NC/file1.nc");
    +
    +

    相關 API:Message(API)執行NC檔

    +
    +

    MachiningStepSelected

    +

    MachiningStepSelected(API) 當加工步階被選取時觸發的事件。

    +
    +
    Note
    +

    指令格式

    +
    MachiningStepSelected += (millingStep) => {
    +    // 自訂邏輯
    +};
    +
    +
    +
    +
    Tip
    +

    指令範例

    +
    // 當步階被選取時執行特定操作
    +MachiningStepSelected += (step) => {
    +    if (step != null && step.ToolId == 1)
    +    {
    +        ProgressMessage($"Tool 1 step selected at line {step.LineNo}");
    +    }
    +};
    +
    +

    相關 API:ProgressMessage(API)

    +
    +

    事件清除

    +

    事件會在呼叫 ResetRuntime(API) 時自動清除。

    +
    +
    Note
    +

    事件處理器會在腳本執行期間保持有效,直到明確清除或重置運行時。

    +
    + +
    + +
    +
    + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/FlyPiece/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/FlyPiece/index.html index 732db60..76b7ff9 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/FlyPiece/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/FlyPiece/index.html @@ -84,10 +84,10 @@
    -
    +

    移除離料

    -

    在五軸切削過程中可能出現懸浮留料,使用RemoveFlyPiece指令清除。

    +

    在五軸切削過程中可能出現懸浮留料,使用RemoveFlyPiece(API)指令清除。

    Note

    指令格式

    diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/GeomDiff/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/GeomDiff/index.html index 8c7eb80..feaf37f 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/GeomDiff/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/GeomDiff/index.html @@ -84,10 +84,10 @@
    -
    +

    幾何比對

    -

    幾何比對指令 Diff 用於比對工件目標形狀(Target Shape)與仿真後形狀。

    +

    幾何比對指令 Diff(API) 用於比對工件目標形狀(Target Shape)與仿真後形狀。

    Note

    指令格式

    diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/LoadCuttingPara/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/LoadCuttingPara/index.html new file mode 100644 index 0000000..ee5459b --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/LoadCuttingPara/index.html @@ -0,0 +1,144 @@ + + + + + 載入切削參數 | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    +

    載入切削參數

    + +

    LoadCuttingParaByFile(API) 從檔案載入切削參數到工件。

    +

    切削參數為計算銑削力的必須參數。可以使用訓練與校正銑削係數訓練或校正銑削係數,然後使用本指令載入到工件中。

    +

    指令格式

    +
    LoadCuttingParaByFile(<檔案路徑>);
    +
    +

    參數說明

    +
      +
    • <檔案路徑>: 切削參數檔案的路徑(相對於專案目錄)
    • +
    +

    指令範例

    +
    // 載入已訓練的切削參數
    +LoadCuttingParaByFile("StainlessSteel.mp");
    +
    +// 在訓練後立即載入
    +TrainMillingPara(Fx|Fy|Fz, "StainlessSteel.mp");
    +LoadCuttingParaByFile("StainlessSteel.mp");
    +PlayNcFile("NC/file1.nc");
    +
    +

    注意事項

    +
      +
    • 載入前必須先設定工件(Workpiece),否則會顯示錯誤訊息
    • +
    • 載入成功後會顯示成功訊息,並更新工件的切削參數
    • +
    • 切削參數檔案路徑會自動儲存到工件的CuttingParaFile屬性中
    • +
    +

    參考

    + + +
    + +
    +
    + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Mapping/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Mapping/index.html index 27f1460..d5991de 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Mapping/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Mapping/index.html @@ -84,7 +84,7 @@
    -
    +

    資料映射

    資料映射指,將外部資料對應於仿真路徑,使得仿真步(仿真步輸出資訊(Simulation Step Output))可以索引外部資料。

    @@ -94,25 +94,58 @@

    依據資料大小、應用情境不同,資料映射有多種形式。 資料映射可以一對一與一對多。

    以資料量區分,仿真步對應外部資料可以一對一與一對多。

    -

    一對一的資料映射方式見執行CSV檔,適用控制器資料。執行CSV檔可以與一對多的資料映射協同使用。

    -

    一對多的形式則由本章節說明,適用智慧刀把、加速規、測力計等高採樣率資料,齊資料量皆數十倍於仿真步數量。

    +

    一對一映射

    +

    一對一映射指每個仿真步對應一個外部資料點,資料量與仿真步數量相同或相近。

    +

    一對一的資料映射方式:

    + +

    一對多映射

    +

    一對多映射指每個仿真步對應多個外部資料點,外部資料量遠大於仿真步數量(通常數十倍以上)。

    +

    一對多的形式適用智慧刀把、加速規、測力計等高採樣率資料。

    一對多的資料映射可以直接對應真實加工時間全局映射,也可以對指定數控路徑及時間局部映射

    -

    一對多的資料映射的格式見外部資料檔案格式

    -

    對應真實加工時間全局映射

    -

    需使用執行CSV檔作為前置,以獲取真實加工時間,csv檔案中須包含ActualTime欄位(ActualTime)。然後使用MapByActualTime(MapByActualTime)映射外部資料。

    +

    一對一映射

    +

    PlayCsvFile

    +

    執行CSV檔 可以與一對多的資料映射協同使用,詳見 執行CSV檔

    +

    ReadCsvByTimeInterpolation

    +

    ReadCsvByTimeInterpolation(API) 讀取CSV檔案並使用時間插值將資料映射到加工步階。每個仿真步對應一個外部資料點(透過時間插值計算)。

    +
    +
    Note
    +

    指令格式

    +
    ReadCsvByTimeInterpolation(<CSV檔案路徑>);
    +
    +
    +
    +
    Tip
    +

    指令範例

    +
    // 讀取CSV檔案並映射到步階
    +PlayNcFile("NC/file1.nc");
    +ReadCsvByTimeInterpolation("Data/sensor.csv");
    +
    +
    +
    +
    Note
    +

    此方法使用時間插值方式將CSV資料映射到加工步階,適用於需要將外部感測器資料對應到仿真步階的場景。每個仿真步會對應一個透過時間插值計算的外部資料點。

    +
    +

    一對多映射

    +

    對應真實加工時間全局映射

    +

    需使用執行CSV檔作為前置,以獲取真實加工時間,csv檔案中須包含ActualTime欄位(ActualTime(API))。然後使用MapByActualTime(API)映射外部資料。

    +

    此方法為一對多映射,每個仿真步會對應多個外部資料點。

    Note

    指令格式

    MapByActualTime(<檔案名>);
     
    -

    指定數控路徑及時間局部映射

    +

    指定數控路徑及時間局部映射

    資料映射需設定:指定輸入資料、指定NC路徑。

    +

    此方法為一對多映射,每個仿真步會對應多個外部資料點。

    Mapping Overview Example
    資料映射圖例
    -

    指定輸入資料

    +

    指定輸入資料

    Note

    指令格式

    @@ -137,7 +170,7 @@ AddTimeDataByFile( "lineB", "Mapping/sensor1.csv", "18: PlayNcFile("NC/file1.nc")
    -

    指定NC路徑

    +

    指定NC路徑

    Note

    指令格式

    @@ -282,6 +315,36 @@ X25. F10 (;@LineSelection("lineB", FirstTouch, null, LastTouch, null); ...
    +

    其他設置

    +

    自動映射設定

    +

    EnableAutoMapOnSelectionEnd(API) 設定是否在選擇結束時自動執行映射。

    +
    +
    Note
    +

    指令格式

    +
    EnableAutoMapOnSelectionEnd = true; // 或 false
    +
    +
    +
    +
    Tip
    +

    指令範例

    +
    // 啟用自動映射
    +EnableAutoMapOnSelectionEnd = true;
    +BeginSelection("region1");
    +// ... NC 代碼 ...
    +EndSelection("region1"); // 自動執行映射
    +
    +// 停用自動映射
    +EnableAutoMapOnSelectionEnd = false;
    +BeginSelection("region2");
    +// ... NC 代碼 ...
    +EndSelection("region2"); // 不自動執行映射
    +Map("region2"); // 手動執行映射
    +
    +
    +
    +
    Note
    +

    預設值為 true。當設為 true 時,EndSelection 會自動執行對應的 Map 操作。

    +
    diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Mapping/indexx.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Mapping/indexx.html deleted file mode 100644 index 7dac018..0000000 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Mapping/indexx.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - 資料映射 | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    -
    -
    -
    Table of Contents
    - -
    -
    - -
    -
    -
    - -
    -
    - - - -
    - -
    -

    資料映射

    - -

    外部資料包含智慧刀把、動力計,可依時間線性映射至指定刀具路徑及加工區域。

    -

    映射資料可用於檢視加工狀態、訓練銑削係數、校正銑削係數。

    -

    所以資料映射需指定映射之兩部:指定輸入資料、指定NC路徑。

    -
    - Mapping Overview Example -
    資料映射圖例
    -
    -

    指定輸入資料

    -
    -
    Note
    -

    指令格式

    -
    AddTimeDataByFile(<映射名>, <輸入檔案路徑>, <映射起點時間>, <映射終點時間>);
    -
    -
    -

    <映射名>為自訂之標記名稱,對應於指定NC路徑中的映射名。

    -

    時間資料格式為<時>:<分>:<秒>.<小數點後秒>;其餘資料格式為實數。

    -

    注意映射資料不會因撥放器重置而被清空。可以使用ClearTimeMappingData指令清空。

    -
    -
    Note
    -

    指令格式

    -
    ClearTimeMappingData();
    -
    -
    -
    -
    Tip
    -

    指令範例

    -
    ClearTimeMappingData();
    -AddTimeDataByFile( "lineA", "Mapping/sensor1.csv", "18:25:51.7100", "18:26:12.9910");
    -AddTimeDataByFile( "lineB", "Mapping/sensor1.csv", "18:26:30.5750", "18:27:12.2880");
    -PlayNcFile("NC/file1.nc")
    -
    -
    -

    輸入檔案格式為csv,須包含時間資訊,其餘資訊可選擇包含或不包含。

    -

    csv檔案需有標題列,欄位標題需用特定指示詞標示。 -部分欄位指示詞為方便性是多擇一。

    -
      -
    • 時間: -
        -
      • TimeTag
      • -
      • Timetag
      • -
      • Time
      • -
      • t
      • -
      -
    • -
    • 動力計: -
        -
      • X方向力: -
          -
        • Fx
        • -
        • Workpiece.Fx
        • -
        -
      • -
      • Y方向力: -
          -
        • Fy
        • -
        • Workpiece.Fy
        • -
        -
      • -
      • Z方向力: -
          -
        • Fz
        • -
        • Workpiece.Fz
        • -
        -
      • -
      -
    • -
    • 智慧刀把: -
        -
      • X方向力矩: -
          -
        • Mx
        • -
        • Spindle.Mx
        • -
        -
      • -
      • Y方向力矩: -
          -
        • My
        • -
        • Spindle.My
        • -
        -
      • -
      • Z方向力矩: -
          -
        • Mz
        • -
        • Spindle.Mz
        • -
        -
      • -
      -
    • -
    • 加速規(可選): -
        -
      • Ax
      • -
      • Ay
      • -
      • Az
      • -
      -
    • -
    -

    欄位可以包含其他外部資訊,如下例之CH1CH2

    -
    -
    Tip
    -

    檔案範例

    -
    TimeTag,CH1,CH2,Mx,My,Mz
    -18:23:54.703,-0.00398,-0.00034,-0.02923,0.10733,0.00409
    -18:23:54.704,-0.00194,0.00285,0.04155,-0.04457,0.00448
    -...
    -
    -
    -

    指定NC路徑

    -
    -
    Note
    -

    指令格式

    -
    //範圍(多行)資料映射
    -BeginSelection(<映射名>, <起點映射錨點旗標>, <起點偏置物件>);
    -EndSelection(<映射名>, <終點映射錨點旗標>, <終點偏置物件>);
    -//單行資料映射
    -LineSelection(<映射名>, <起點映射錨點旗標>, <起點偏置物件>, <終點映射錨點旗標>, <終點偏置物件>);
    -
    -
    -

    <映射名>為自訂之標記名稱,對應於指定輸入資料中的映射名。

    -
      -
    • 可以使用BeginSelectionEndSelection作範圍(多行)資料映射: -
        -
      • BeginSelection設置映射起點。
      • -
      • EndSelection設置映射終點。
      • -
      -
    • -
    • 或是使用LineSelection作單行資料映射。
    • -
    -

    <映射錨點旗標>可以使用:

    -
      -
    • LineBegin -以該行運動起點為映射錨點。
    • -
    • LineEnd -以該行運動終點為映射錨點。
    • -
    • FirstTouch -以該行第一次接觸工件的位置為映射錨點。
    • -
    • LastTouch -以該行最後接觸工件的位置為映射錨點。
    • -
    -
    -

    markRegionOnTouch.png

    -
    -

    <偏置物件>是相對於錨點的偏移,可以使用:

    -
      -
    • null -無偏移。
    • -
    • ShiftTime_s -單位秒。正值為往後時間;負值為往前時間。
    • -
    • ShiftDistance_mm -單位mm。正值為往後位移;負值為往前位移。
    • -
    -

    指定NC路徑命令需在NC碼註解中執行,前置;@符號。

    -
    -
    Tip
    -

    NC檔案範例

    -
    ...
    -G00 G90 X-6. Y10.  
    -G17 G01 Z-1. F600.
    -S50 M03
    -X13. F20 ;@LineSelection("lineA", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1));
    -X25. F10 ;@LineSelection("lineB", FirstTouch, null, LastTouch, null);
    -...
    -
    -
    -
    -
    Tip
    -

    NC檔案範例2

    -

    如果控制器不支援;符號作為註解,如FANUC控制器,則需將其引入註解範圍內。

    -
    ...
    -G00 G90 X-6. Y10.  
    -G17 G01 Z-1. F600.
    -S50 M03
    -X13. F20 (;@LineSelection("lineA", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1));)
    -X25. F10 (;@LineSelection("lineB", FirstTouch, null, LastTouch, null);)
    -...
    -
    -
    - -
    - -
    -
    - - - -
    - -
    - -
    -
    - -
    - - - - diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Messages/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Messages/index.html new file mode 100644 index 0000000..d5eb3bb --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Messages/index.html @@ -0,0 +1,223 @@ + + + + + 訊息處理 | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    +

    訊息處理

    + +

    RuntimeApi(API) 提供了多個方法來顯示和管理訊息。

    +

    Message

    +

    Message(API) 顯示一般訊息。

    +
    +
    Note
    +

    指令格式

    +
    Message(<訊息字串>);
    +
    +
    +
    +
    Tip
    +

    指令範例

    +
    Message("開始執行NC檔案");
    +PlayNcFile("NC/file1.nc");
    +Message("NC檔案執行完成");
    +
    +
    +

    ProgressMessage

    +

    ProgressMessage(API) 顯示進度訊息。

    +
    +
    Note
    +

    指令格式

    +
    ProgressMessage(<訊息字串>);
    +
    +
    +
    +
    Tip
    +

    指令範例

    +
    ProgressMessage("正在載入工件...");
    +ReadRuntimeGeom("Cache/workpiece.wct");
    +ProgressMessage("工件載入完成");
    +
    +

    相關指令:程序幾何

    +
    +

    WarningMessage

    +

    WarningMessage(API) 顯示警告訊息。

    +
    +
    Note
    +

    指令格式

    +
    WarningMessage(<訊息字串>);
    +
    +
    +
    +
    Tip
    +

    指令範例

    +
    if (StepCount == 0)
    +{
    +    WarningMessage("沒有執行任何步階");
    +}
    +
    +
    +

    ErrorMessage

    +

    ErrorMessage(API) 顯示錯誤訊息。

    +
    +
    Note
    +

    指令格式

    +
    ErrorMessage(<訊息字串>);
    +
    +
    +
    +
    Tip
    +

    指令範例

    +
    if (Workpiece == null)
    +{
    +    ErrorMessage("工件不存在");
    +    return;
    +}
    +
    +
    +

    AppendMessagesToFile

    +

    AppendMessagesToFile(API) 將訊息附加到檔案,可選擇性地依標籤過濾。

    +
    +
    Note
    +

    指令格式

    +
    AppendMessagesToFile(<目標檔案路徑>, <標籤1>, <標籤2>, ...);
    +
    +
    +
    +
    Tip
    +

    指令範例

    +
    PlayNcFile("NC/file1.nc");
    +
    +// 將所有訊息寫入檔案
    +AppendMessagesToFile("Output/messages.txt");
    +
    +// 只將帶有特定標籤的訊息寫入檔案
    +AppendMessagesToFile("Output/errors.txt", "Error", "Warning");
    +
    +
    +

    SessionMessageHost

    +

    SessionMessageHost(API) 取得會話訊息主機物件,用於進階訊息操作。

    +
    +
    Note
    +

    指令格式

    +
    var messageHost = SessionMessageHost;
    +
    +
    +

    訊息類型

    +
      +
    • Message: 一般資訊訊息
    • +
    • ProgressMessage: 進度相關訊息(通常顯示在進度列)
    • +
    • WarningMessage: 警告訊息(不會中斷執行)
    • +
    • ErrorMessage: 錯誤訊息(可能影響執行)
    • +
    +
    +
    Note
    +

    所有訊息都會記錄在會話訊息主機中,可以在介面中查看,也可以使用 AppendMessagesToFile 匯出到檔案。

    +
    + +
    + +
    +
    + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/MillingTraining/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/MillingTraining/index.html index 8bfce93..1cd53f5 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/MillingTraining/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/MillingTraining/index.html @@ -84,13 +84,13 @@ -
    +

    訓練與校正銑削係數

    銑削係數為計算銑削力的必須參數。

    訓練與校正銑削係數需先完成資料映射

    -

    TrainMillingPara訓練銑削係數,不需先設定工件銑削係數,輸出的新係數也與原工件銑削係數無關。

    -

    ReTrainMillingPara校正銑削係數,需基於已設定之工件銑削係數,才可輸出校正後係數。校正時原係數的權重10%、從資訊映射而得的樣本權重90%。

    +

    TrainMillingPara(API)訓練銑削係數,不需先設定工件銑削係數,輸出的新係數也與原工件銑削係數無關。

    +

    ReTrainMillingPara(API)校正銑削係數,需基於已設定之工件銑削係數,才可輸出校正後係數。校正時原係數的權重10%、從資訊映射而得的樣本權重90%。

    Note

    指令格式

    diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/NcOptimization/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/NcOptimization/index.html index 3d8a306..15ece9b 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/NcOptimization/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/NcOptimization/index.html @@ -108,39 +108,39 @@ OptPreferedForce_N = <實數>;
      -
    • OptEnableFeedrate:啟用順序式(Sequential)進給率優化。

      +
    • OptEnableFeedrate(API):啟用順序式(Sequential)進給率優化。

      順序式係指該功能從下指令開始作用。與其相對的設定在刀具端,刀具端也能設定進給率優化,但是在裝刀時才會發揮作用。

      -

      OptEnableFeedrate與所有其他啟用進給率優化的指令需同時為真,進給率優化才會啟用。 +

      OptEnableFeedrate(API)與所有其他啟用進給率優化的指令需同時為真,進給率優化才會啟用。 即與刀具設定端必須同時為真(true),進給率優化才會啟用。

      -

      OptEnableFeedrate預設值為真。

      +

      OptEnableFeedrate(API)預設值為真。

    • -
    • OptEnableInterpolation:優化程序用重新插補。

      +
    • OptEnableInterpolation(API):優化程序用重新插補。

    重新插捕後NC碼會增加,可以更好地控制加減速。

    -

    當優化程序用重新插補並且進給率變化超過進給賦值倍率時,系統會依據OptMaxAcceleration_mmds2插入附帶進給率指令的NC碼。

    +

    當優化程序用重新插補並且進給率變化超過進給賦值倍率時,系統會依據OptMaxAcceleration_mmds2(API)插入附帶進給率指令的NC碼。

    進給賦值倍率越小,插補點越密集。進給賦值倍率越大,則偏離優化標的的程度越大。

    在改進給賦值倍率的同時也要對應加大安全係數。 進給賦值倍率若是0.01,就是1%,每變更1%進給率就會給個新的插補點。 如果改大,比方說10%,可能會變成該處理論值應該是F100,可是優化後卻是F110,所以要配合安全係數修改。

    沒有切到工件的NC路徑,為無切削區域。優化後該路徑將採用無切削區域進給率。

    有切到工件的NC路徑,為有切削區域。有切削區域的最大最小進給的設定通常依據經驗法則。

    @@ -148,15 +148,15 @@ OptPreferedForce_N = <實數>;
    優化程序中的有切削區域等效計算的長度
      -
    • OptSpindlePowerSafetyFactor:主軸功率安全係數。

      +
    • OptSpindlePowerSafetyFactor(API):主軸功率安全係數。

      於優化後的NC碼,主軸功率將盡可能趨近於目標值。

      設為0則忽略此限制。

    • -
    • OptSpindleTorqueSafetyFactor:主軸扭力安全係數。

      +
    • OptSpindleTorqueSafetyFactor(API):主軸扭力安全係數。

      優化後的NC碼,主軸扭力將盡可能趨近於目標值。

      設為0則忽略此限制。

    • -
    • OptThermalYieldSafetyFactor:刀刃熱降伏安全係數。

      +
    • OptThermalYieldSafetyFactor(API):刀刃熱降伏安全係數。

      刀刃表面溫度超過一定值時,刀刃表面會因溫差產生的壓力造成塑性變形。

      優化後的NC碼,刀刃表面度將盡可能趨近於目標值。

      設為0則忽略此限制。

      @@ -168,19 +168,19 @@ OptPreferedForce_N = <實數>;

      目標值 = 100% / 安全係數

        -
      • OptPreferedForce_N:優化程中的目標力。單位N。 +
      • OptPreferedForce_N(API):優化程中的目標力。單位N。 在符合所有限制的條件下,優化程序中的加工路徑產生的力會盡可能的趨近目標力。

      限制的優先序

      在有切削區域中:

      -

      進給率的直接限制 優先於 加減速限制(OptMaxAcceleration_mmds2) 優先於 基於物理特性算出的限制

      +

      進給率的直接限制 優先於 加減速限制(OptMaxAcceleration_mmds2(API)) 優先於 基於物理特性算出的限制

      • 進給率的直接限制 包含

        • 腳本指令
        • 刀具設定 @@ -195,10 +195,10 @@ OptPreferedForce_N = <實數>;
          • 腳本指令
          • 刀具設定 @@ -212,7 +212,7 @@ OptPreferedForce_N = <實數>;

            若同級項目中的限制有衝突,則採取其中的最低進給率。

            NC碼中的優化腳本指令

            於指定NC行不啟用優化

            -

            在執行 Preserve() 的NC行中,不啟用優化。

            +

            在執行 Preserve(API)() 的NC行中,不啟用優化。

            Tip

            指令範例

            @@ -225,7 +225,7 @@ N0150 G01 X-3.068 Y40.776

            於指定NC範圍不啟用優化

            -

            使用BeginPreserve()的NC行及EndPreserve()的NC行及包含的NC範圍,不啟用優化。

            +

            使用BeginPreserve(API)()的NC行及EndPreserve(API)()的NC行及包含的NC範圍,不啟用優化。

            Tip

            指令範例

            @@ -240,7 +240,7 @@ N0170 X-4.125 Y45.875

            輸出優化NC檔

            -

            使用 OptimizeToFiles 方法輸出優化後的NC檔。

            +

            使用 OptimizeToFiles(API) 方法輸出優化後的NC檔。

            Note

            指令格式

            diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Physics/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Physics/index.html new file mode 100644 index 0000000..efd77b0 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Physics/index.html @@ -0,0 +1,224 @@ + + + + + 物理仿真設定 | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            + +
            + +
            +
            +
            +
            +
            Table of Contents
            + +
            +
            + +
            +
            +
            + +
            +
            + + + +
            + +
            +

            物理仿真設定

            + +

            RuntimeApi(API) 提供了多個屬性來配置物理仿真的行為。

            +

            EnablePhysics

            +

            EnablePhysics(API) 啟用或停用銑削力評估。

            +
            +
            Note
            +

            指令格式

            +
            EnablePhysics = true; // 或 false
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 啟用物理仿真
            +EnablePhysics = true;
            +PlayNcFile("NC/file1.nc");
            +
            +// 停用物理仿真(僅幾何仿真)
            +EnablePhysics = false;
            +PlayNcFile("NC/file2.nc");
            +
            +
            +

            EnableWearEffect

            +

            EnableWearEffect(API) 啟用或停用刀具磨耗效應。

            +
            +
            Note
            +

            指令格式

            +
            EnableWearEffect = true; // 或 false
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 啟用磨耗效應
            +EnableWearEffect = true;
            +PlayNcFile("NC/file1.nc");
            +
            +// 停用磨耗效應
            +EnableWearEffect = false;
            +PlayNcFile("NC/file2.nc");
            +
            +
            +

            MillingForceCycleDivisionNum

            +

            MillingForceCycleDivisionNum(API) 設定銑削力計算的每轉分割數。

            +
            +
            Note
            +

            指令格式

            +
            MillingForceCycleDivisionNum = <分割數>;
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 設定每轉分割數為360(每度一個計算點)
            +MillingForceCycleDivisionNum = 360;
            +
            +// 此設定應在執行 TrainMillingPara 之前設定
            +PlayNcFile("NC/file1.nc");
            +TrainMillingPara(Fx|Fy|Fz, "output.mp");
            +
            +
            +
            +
            Note
            +

            此屬性應在執行 TrainMillingPara(API) 之前設定,以確保訓練過程使用正確的分割數。

            +
            +

            InitSpindleTemperature_C

            +

            InitSpindleTemperature_C(API) 設定初始主軸溫度(攝氏度)。

            +
            +
            Note
            +

            指令格式

            +
            InitSpindleTemperature_C = <溫度>;
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 設定初始主軸溫度為25度
            +InitSpindleTemperature_C = 25.0;
            +PlayNcFile("NC/file1.nc");
            +
            +
            +

            EnablePauseOnFailure

            +

            EnablePauseOnFailure(API) 啟用或停用在失敗時暫停執行。

            +
            +
            Note
            +

            指令格式

            +
            EnablePauseOnFailure = true; // 或 false
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 啟用失敗時暫停
            +EnablePauseOnFailure = true;
            +EnableCollisionDetection = true;
            +PlayNcFile("NC/file1.nc"); // 如果發生碰撞,會暫停執行
            +
            +
            +

            使用建議

            +
              +
            • EnablePhysics: 需要計算銑削力時啟用,會增加計算時間
            • +
            • EnableWearEffect: 需要模擬刀具磨耗時啟用
            • +
            • MillingForceCycleDivisionNum: 數值越大,計算越精確但速度越慢
            • +
            • InitSpindleTemperature_C: 用於熱仿真,影響刀具溫度計算
            • +
            • EnablePauseOnFailure: 用於除錯,當發生錯誤(如碰撞)時暫停執行
            • +
            +
            +
            Note
            +

            物理仿真會增加計算時間,但可以提供更準確的加工力、溫度等資訊。

            +
            + +
            + +
            +
            + + + +
            + +
            + +
            +
            + +
            + + + + diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayCsvFile/play-csv-file.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayCsvFile/play-csv-file.html index 206860e..286dab3 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayCsvFile/play-csv-file.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayCsvFile/play-csv-file.html @@ -88,7 +88,7 @@

            執行CSV檔

            以CSV格式檔案驅動仿真。

            -

            執行NC檔指令為 PlayCsvFile ,<檔案路徑> 的根目錄為專案目錄。

            +

            執行NC檔指令為 PlayCsvFile(API),<檔案路徑> 的根目錄為專案目錄。

            指令格式:

            PlayCsvFile(<檔案路徑>);
             
            @@ -115,11 +115,12 @@

            時間欄位

            • 實際加工時間 ActualTime -如已有StepDuration,本欄位可略過,系統將自動計算步時長。
            • +如已有StepDuration,本欄位可略過,系統將自動計算步時長。 +如僅有ActualTime而無StepDuration,系統會自動從連續的實際時間計算步時長。
            • 步時長 StepDuration 如已有ActualTime,本欄位可略過。
            -

            實際加工時間與步時長欄位可同時存在。

            +

            實際加工時間與步時長欄位可同時存在。系統會優先使用StepDuration,若無則從ActualTime自動計算。

            自訂欄位

            其他資料如感測器、事後分析資料等也可放入CSV檔中,系統支援該資料的工件顏色梯度圖、時間序列圖、點選追蹤功能。

            diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayNc/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayNc/index.html new file mode 100644 index 0000000..5aea4ec --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayNc/index.html @@ -0,0 +1,147 @@ + + + + + 執行NC碼字串 | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            + +
            + +
            +
            +
            +
            +
            Table of Contents
            + +
            +
            + +
            +
            +
            + +
            +
            + + + +
            + +
            +

            執行NC碼字串

            + +

            PlayNc(API) 允許直接執行NC碼字串,無需從檔案讀取。

            +
            +
            Note
            +

            指令格式

            +
            PlayNc(<NC碼字串>, <檔案名稱替代>);
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            PlayNc("G01 X10 Y20 F100", "Direct Command");
            +
            +
            +

            參數說明

            +
              +
            • <NC碼字串>: 要執行的NC碼內容
            • +
            • <檔案名稱替代>: 在日誌中顯示的名稱(可選,預設為 "–")
            • +
            +
            +
            Tip
            +

            動態生成NC碼範例

            +
            double x = 10.0;
            +double y = 20.0;
            +double feedrate = 100.0;
            +PlayNc($"G01 X{x} Y{y} F{feedrate}", "Generated Command");
            +
            +
            +

            與 PlayNcFile 的差異

            +
              +
            • 執行NC檔: 從檔案讀取並執行NC碼
            • +
            • PlayNc(API): 直接執行字串形式的NC碼
            • +
            + +
            + +
            +
            + + + +
            + +
            + +
            +
            + +
            + + + + diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayNcFile/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayNcFile/index.html index ca8602d..12cd35b 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayNcFile/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayNcFile/index.html @@ -84,10 +84,10 @@
            -
            +

            執行NC檔

            -

            執行NC檔指令為 PlayNcFile ,<檔案路徑> 的根目錄為專案目錄。

            +

            執行NC檔指令為 PlayNcFile(API),<檔案路徑> 的根目錄為專案目錄。

            Note

            指令格式

            diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayerControl/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayerControl/index.html new file mode 100644 index 0000000..84df068 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/PlayerControl/index.html @@ -0,0 +1,178 @@ + + + + + 播放器控制 | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            + +
            + +
            +
            +
            +
            +
            Table of Contents
            + +
            +
            + +
            +
            +
            + +
            +
            + + + +
            + +
            +

            播放器控制

            + +

            RuntimeApi(API) 提供了多個方法來控制加工模擬的播放器行為。

            +

            Pace

            +

            Pace(API) 是播放過程中的可暫停標記點。此函數使 Pause(API) 能夠生效。執行時會等待播放器發出下一個步調信號。

            +
            +
            Note
            +

            指令格式

            +
            Pace();
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 在執行NC檔案時插入可暫停標記點
            +var actions = RunNcFile("NC/file1.nc");
            +foreach (var action in actions)
            +{
            +    action();
            +    Pace(); // 插入可暫停標記點,使 Pause() 能夠在此處生效
            +}
            +
            +

            相關 API:RunNcFile(API)

            +
            +

            Pause

            +

            Pause(API) 暫停播放器執行。

            +
            +
            Note
            +

            指令格式

            +
            Pause();
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            PlayNcFile("NC/file1.nc");
            +// 在某個條件下暫停
            +if (someCondition)
            +{
            +    Pause();
            +}
            +
            +
            +

            Reset

            +

            Reset(API) 重置播放器狀態。

            +
            +
            Note
            +

            指令格式

            +
            Reset();
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 重置播放器並重新開始
            +Reset();
            +PlayNcFile("NC/file1.nc");
            +
            +
            +

            使用場景

            +
              +
            • Pace: 用於在執行過程中插入可暫停標記點,使 Pause(API) 能夠生效,例如與 RunNcFile(API)RunNc(API) 配合使用
            • +
            • Pause: 用於在特定條件下暫停執行
            • +
            • Reset: 用於重置播放器狀態,準備重新執行
            • +
            + +
            + +
            +
            + + + +
            + +
            + +
            +
            + +
            + + + + diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Properties/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Properties/index.html new file mode 100644 index 0000000..2dfd2ba --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Properties/index.html @@ -0,0 +1,164 @@ + + + + + 屬性設定 | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            + +
            + +
            +
            +
            +
            +
            Table of Contents
            + +
            +
            + +
            +
            +
            + +
            +
            + + + +
            + +
            +

            屬性設定

            + +

            RuntimeApi(API) 提供了多個屬性用於配置加工參數和行為。

            +

            系統屬性

            +

            Global

            +

            Global(API) 全域變數字典,用於在腳本執行期間儲存和共享資料。

            +
            +
            Note
            +

            指令格式

            +
            Global["key"] = value;
            +var value = Global["key"];
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 儲存全域變數
            +Global["workpieceMaterial"] = "Steel";
            +Global["cuttingSpeed"] = 100.0;
            +
            +// 讀取全域變數
            +var material = Global["workpieceMaterial"];
            +
            +
            +

            MachiningSession

            +

            MachiningSession(API) 取得當前的加工會話物件。

            +
            +
            Note
            +

            指令格式

            +
            var session = MachiningSession;
            +
            +
            +

            工件與夾具

            +

            Workpiece

            +

            Workpiece(API) 取得或設定工件物件。

            +
            +
            Note
            +

            指令格式

            +
            var workpiece = Workpiece;
            +Workpiece = newWorkpiece;
            +
            +
            +

            Fixture

            +

            Fixture(API) 取得或設定夾具物件。

            +
            +
            Note
            +

            指令格式

            +
            var fixture = Fixture;
            +Fixture = newFixture;
            +
            +
            + +
            + +
            +
            + + + +
            + +
            + +
            +
            + +
            + + + + diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Resolution/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Resolution/index.html index 8c901a8..4a2d4ee 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Resolution/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/Resolution/index.html @@ -89,6 +89,7 @@

            仿真解析度可分為程序幾何實體解析度、程序幾何的顯示解析度加工運動解析度

            程序幾何實體解析度

            +

            MachiningResolution_mm(API) 設定程序幾何實體解析度。

            Note

            指令格式

            @@ -106,6 +107,7 @@

            工件實體解析度越高,切削時計算量越大、仿真速度越慢。

            工件實體解析度每增加一倍,需要至多8倍的材料移除演算時間與RAM記憶體空間。

            工件顯示暫存組態

            +

            DispCache_Mb(API) 設定工件顯示暫存組態。

            Note

            指令格式

            @@ -123,7 +125,7 @@

            數值設置越大,顯示延遲越長,建議數值不超過1000Mb。

            加工運動解析度

            -

            加工運動解析度(Machining Motion Resolution)決定仿真的每步間隔。 +

            MachiningMotionResolution(API) 設定加工運動解析度,決定仿真的每步間隔。 有以下項目可選擇,預設值為每刃進給

            • 每轉進給(Feed Per Cycle) diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/RuntimeGeom/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/RuntimeGeom/index.html index 7b51b7a..70e8c36 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/RuntimeGeom/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/RuntimeGeom/index.html @@ -84,7 +84,7 @@
            -
            +

            程序幾何

            程序幾何(RuntimeGeom)是工件幾何在HiNC仿真運作期間的資料格式,由大小不一的正立方線架構網格組成。

            @@ -97,8 +97,8 @@
            程序幾何的正立方線架構網格

            讀寫程序幾何

            -

            ReadRuntimeGeomWriteRuntimeGeom可以讀寫程序幾何至檔案。

            -

            WriteRuntimeGeomToStl可以將程序幾何轉換為STL並寫入檔案。

            +

            ReadRuntimeGeom(API)WriteRuntimeGeom(API)可以讀寫程序幾何至檔案。

            +

            WriteRuntimeGeomToStl(API)可以將程序幾何轉換為STL並寫入檔案。

            Note

            指令格式

            diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/RuntimeManagement/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/RuntimeManagement/index.html new file mode 100644 index 0000000..b9dada9 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/RuntimeManagement/index.html @@ -0,0 +1,152 @@ + + + + + 運行時管理 | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            + +
            + +
            +
            +
            +
            +
            Table of Contents
            + +
            +
            + +
            +
            +
            + +
            +
            + + + +
            + +
            +

            運行時管理

            + +

            RuntimeApi(API) 提供了多個方法來管理加工仿真的運行時狀態。

            +

            ResetRuntime

            +

            ResetRuntime(API) 清除內部緩衝區和運行時狀態。

            +
            +
            Note
            +

            指令格式

            +
            ResetRuntime();
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 執行第一個NC檔案
            +PlayNcFile("NC/file1.nc");
            +WriteStepFiles("Output/file1.step.csv");
            +
            +// 重置運行時狀態
            +ResetRuntime();
            +
            +// 執行第二個NC檔案(從乾淨狀態開始)
            +PlayNcFile("NC/file2.nc");
            +WriteStepFiles("Output/file2.step.csv");
            +
            +
            +
            +
            Note
            +

            ResetRuntime() 會清除:

            +
              +
            • 事件處理器(MachiningStepBuiltMachiningStepSelected
            • +
            • 內部緩衝區
            • +
            • 運行時狀態
            • +
            +
            +

            使用場景

            +
              +
            • ResetRuntime: 用於在多個NC檔案之間重置狀態,確保每個檔案從乾淨狀態開始執行
            • +
            + +
            + +
            +
            + + + +
            + +
            + +
            +
            + +
            + + + + diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/StepVariables/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/StepVariables/index.html new file mode 100644 index 0000000..5e489d7 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/StepVariables/index.html @@ -0,0 +1,220 @@ + + + + + 步階變數 | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            + +
            + +
            +
            +
            +
            +
            Table of Contents
            + +
            +
            + +
            +
            +
            + +
            +
            + + + +
            + +
            +

            步階變數

            + +

            RuntimeApi(API) 提供了多個方法來處理和存取加工步階的變數。

            +

            預設步階輸出資訊

            +

            每個加工步階都包含豐富的預設輸出資訊,涵蓋來源行、運動學、載荷、力/力矩、功率、熱與磨耗等。

            +

            完整的預設步階輸出資訊說明,請參考 仿真步輸出資訊(Simulation Step Output)

            +
            +
            Tip
            +

            存取預設步階資訊範例

            +
            PlayNcFile("NC/file1.nc");
            +
            +// 取得步階並存取預設資訊
            +var step = GetMillingStep(100); // 見下方「存取步階資訊」
            +if (step != null)
            +{
            +    // 存取預設的步階資訊
            +    Message($"ToolId: {step.ToolId}");
            +    Message($"Feedrate: {step.Feedrate_mmdmin} mm/min");
            +    Message($"ChipVolume: {step.ChipVolume_mm3} mm³");
            +    Message($"MaxAbsForce: {step.MaxAbsForce_N} N");
            +}
            +
            +
            +

            註冊步階變數

            +

            除了預設的步階輸出資訊外,您可以使用 RegisterStepVariable(API) 註冊自訂的步階變數,用於追蹤特定的計算結果或資料。

            +

            RegisterStepVariable

            +

            RegisterStepVariable(API) 註冊一個步階變數,用於在執行過程中追蹤特定資料。

            +
            +
            Note
            +

            指令格式

            +
            RegisterStepVariable(<鍵值>, <名稱>, <單位>, <格式字串>, <變數函數>);
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 註冊一個計算切削體積的步階變數
            +RegisterStepVariable(
            +    "ChipVolume",
            +    "Chip Volume",
            +    "mm3",
            +    "F2",
            +    (step) => step.ChipVolume_mm3
            +);
            +
            +PlayNcFile("NC/file1.nc");
            +
            +
            +

            參數說明

            +
              +
            • <鍵值>: 變數的唯一識別碼
            • +
            • <名稱>: 變數的顯示名稱
            • +
            • <單位>: 變數的物理單位(可為 null)
            • +
            • <格式字串>: 數值格式化字串(可為 null)
            • +
            • <變數函數>: 從步階計算變數值的函數(可為 null)
            • +
            +
            +
            Note
            +

            註冊的步階變數可以在輸出檔案(如 輸出步資料檔案)中使用,並在介面中顯示。

            +
            +

            存取步階資訊

            +

            GetMillingStep

            +

            GetMillingStep(API) 取得指定索引的加工步階。

            +
            +
            Note
            +

            指令格式

            +
            var step = GetMillingStep(<步階索引>);
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            PlayNcFile("NC/file1.nc");
            +
            +// 取得第100個步階
            +var step = GetMillingStep(100);
            +if (step != null)
            +{
            +    Message($"Step 100: ToolId={step.ToolId}, Feedrate={step.Feedrate_mmdmin}");
            +}
            +
            +
            +

            StepCount

            +

            StepCount(API) 取得總步階數量。

            +
            +
            Note
            +

            指令格式

            +
            var count = StepCount;
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            PlayNcFile("NC/file1.nc");
            +
            +// 取得總步階數
            +var totalSteps = StepCount;
            +Message($"Total steps: {totalSteps}");
            +
            +// 遍歷所有步階
            +for (int i = 0; i < StepCount; i++)
            +{
            +    var step = GetMillingStep(i);
            +    // 處理步階...
            +}
            +
            +
            + +
            + +
            +
            + + + +
            + +
            + +
            +
            + +
            + + + + diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/ToolSetup/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/ToolSetup/index.html new file mode 100644 index 0000000..ca6c4f0 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/ToolSetup/index.html @@ -0,0 +1,197 @@ + + + + + 刀具與智慧刀把設置 | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            + +
            + +
            +
            +
            +
            +
            Table of Contents
            + +
            +
            + +
            +
            +
            + +
            +
            + + + +
            + +
            +

            刀具與智慧刀把設置

            + +

            RuntimeApi(API) 提供了多個方法來設定和查詢刀具安裝參數及智慧刀把觀察位置。

            +

            刀具輪廓偏移角度

            +

            GetUniformContourTrayShiftAngle_deg

            +

            GetUniformContourTrayShiftAngle_deg(API) 取得指定刀具的輪廓偏移角度(度)。此角度用於調整刀具安裝時的初始角度位置。

            +
            +
            Note
            +

            指令格式

            +
            var angle = GetUniformContourTrayShiftAngle_deg(<刀具ID>);
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 查詢刀具1的輪廓偏移角度
            +var angle = GetUniformContourTrayShiftAngle_deg(1);
            +Message($"刀具1的輪廓偏移角度: {angle} 度");
            +
            +
            +

            SetUniformContourTrayShiftAngle_deg

            +

            SetUniformContourTrayShiftAngle_deg(API) 設定指定刀具的輪廓偏移角度(度)。當刀具安裝角度與預設值不同時,可使用此方法調整。

            +
            +
            Note
            +

            指令格式

            +
            SetUniformContourTrayShiftAngle_deg(<刀具ID>, <角度>);
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 設定刀具1的輪廓偏移角度為10度
            +SetUniformContourTrayShiftAngle_deg(1, 10.0);
            +PlayNcFile("NC/file1.nc");
            +
            +
            +

            智慧刀把觀察高度

            +

            GetStickMachiningToolObservationHeight_mm

            +

            GetStickMachiningToolObservationHeight_mm(API) 取得指定智慧刀把的觀察高度(毫米)。觀察高度是指智慧刀把感測器相對於安裝錨點的高度位置。

            +
            +
            Note
            +

            指令格式

            +
            var height = GetStickMachiningToolObservationHeight_mm(<刀具ID>);
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 查詢智慧刀把1的觀察高度
            +var height = GetStickMachiningToolObservationHeight_mm(1);
            +Message($"智慧刀把1的觀察高度: {height} 毫米");
            +
            +
            +

            SetStickMachiningToolObservationHeight_mm

            +

            SetStickMachiningToolObservationHeight_mm(API) 設定指定智慧刀把的觀察高度(毫米)。當智慧刀把安裝位置與預設值不同時,可使用此方法調整觀察高度。

            +
            +
            Note
            +

            指令格式

            +
            SetStickMachiningToolObservationHeight_mm(<刀具ID>, <高度>);
            +
            +
            +
            +
            Tip
            +

            指令範例

            +
            // 設定智慧刀把1的觀察高度為50毫米
            +SetStickMachiningToolObservationHeight_mm(1, 50.0);
            +PlayNcFile("NC/file1.nc");
            +
            +
            +

            使用說明

            +

            這些設置功能用於:

            +
              +
            • 刀具安裝角度調整:當刀具實際安裝角度與刀具檔案中的預設角度不同時,可透過設定輪廓偏移角度來校正
            • +
            • 智慧刀把安裝位置調整:當智慧刀把的感測器安裝高度與預設值不同時,可透過設定觀察高度來校正
            • +
            • 動態配置:在腳本執行過程中根據實際安裝情況動態調整參數
            • +
            +
            +
            Note
            +

            這些參數通常應在刀具設定檔案中配置。只有在需要根據實際安裝情況動態調整時,才使用這些腳本指令。

            +
            +
            +
            Warning
            +

            如果指定的刀具不存在或不是支援的類型(如非銑刀或非智慧刀把),這些方法會拋出異常。

            +
            + +
            + +
            +
            + + + +
            + +
            + +
            +
            + +
            + + + + diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/WriteShotFiles/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/WriteShotFiles/index.html index 32a2158..a3ddbe1 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/WriteShotFiles/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/WriteShotFiles/index.html @@ -84,9 +84,10 @@
            -
            +

            輸出波形資料檔案

            +

            WriteShotFiles(API) 輸出波形資料檔案。

            Note

            指令格式

            diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/WriteStepFiles/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/WriteStepFiles/index.html index 4f00b72..a0127b7 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/WriteStepFiles/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/WriteStepFiles/index.html @@ -87,6 +87,7 @@

            輸出步資料檔案

            +

            WriteStepFiles(API) 輸出步資料檔案。

            Note

            指令格式

            diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/index.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/index.html new file mode 100644 index 0000000..d90c5e0 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/script/index.html @@ -0,0 +1,183 @@ + + + + + 腳本命令 | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            + +
            + +
            +
            +
            +
            +
            Table of Contents
            + +
            +
            + +
            +
            +
            + +
            +
            + + + +
            + +
            +

            腳本命令

            + +

            腳本命令是 HiNC 中執行加工仿真的核心功能。腳本使用 C# 語言編寫,可以直接調用 RuntimeApi(API) 的成員屬性和成員函數。

            +

            快速開始

            +

            如果您是第一次使用腳本功能,建議先閱讀:

            +
              +
            1. 文件任務 - 了解腳本的基本語法、執行順序和檔案路徑樣板
            2. +
            3. 執行NC檔案 - 學習如何執行 NC 檔案進行仿真
            4. +
            +

            命令分類

            +

            執行與控制

            + +

            事件與訊息

            + +

            屬性與變數

            + +

            動作與操作

            + +

            幾何

            +
              +
            • 解析度 - 設定仿真解析度(實體解析度、顯示解析度、加工運動解析度)
            • +
            • 碰撞檢測 - 啟用碰撞檢測功能
            • +
            • 幾何差異 - 比對工件目標形狀與仿真後形狀
            • +
            +

            物理

            + +

            外部資料與模型訓練

            +
              +
            • 映射 - 將外部資料對應於仿真路徑
            • +
            • 銑削訓練 - 訓練與校正銑削係數
            • +
            +

            優化

            +
              +
            • NC優化 - NC 碼優化設定與輸出
            • +
            +

            輸出

            + +

            工具設定

            + +

            相關資源

            + + +
            + +
            +
            + + + +
            + +
            + +
            +
            + +
            + + + + diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.html index 99754aa..6cc3e88 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.html @@ -97,12 +97,42 @@
          • - 腳本命令 + 腳本命令
          • diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.json b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.json index 3345ba2..8669462 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.json +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.json @@ -1,2 +1,2 @@ -{"items":[{"name":"HiNC 使用說明","href":"index.html","topicHref":"index.html"},{"name":"使用者條款","href":"license/index.html","topicHref":"license/index.html"},{"name":"HiNC啟用","items":[{"name":"Windows系統啟用","href":"startup/windows.html","topicHref":"startup/windows.html"},{"name":"單機多站配置","href":"startup/multi-station.html","topicHref":"startup/multi-station.html"},{"name":"多主機授權設置","href":"startup/delegate-auth.html","topicHref":"startup/delegate-auth.html"},{"name":"教學視頻","href":"startup/tutorial.html","topicHref":"startup/tutorial.html"}]},{"name":"系統","items":[{"name":"檔案總管","href":"system/file-explorer.html","topicHref":"system/file-explorer.html"}]},{"name":"設備","items":[{"name":"錨點","href":"mech/anchor.html","topicHref":"mech/anchor.html"},{"name":"工具機建置","href":"equipment/build-machine-tool.html","topicHref":"equipment/build-machine-tool.html"},{"name":"冷卻液","href":"equipment/coolant.html","topicHref":"equipment/coolant.html"}]},{"name":"控制器","items":[{"name":"海德漢支援","href":"controllers/heidenhain-support.html","topicHref":"controllers/heidenhain-support.html"},{"name":"通用NC碼支援","href":"controllers/iso-nc-support.html","topicHref":"controllers/iso-nc-support.html"}]},{"name":"加工工具","items":[{"name":"銑刀","href":"milling-tool/cutter.html","topicHref":"milling-tool/cutter.html"},{"name":"APT工具","href":"milling-tool/apt.html","topicHref":"milling-tool/apt.html"},{"name":"刀片式刃雕","href":"milling-tool/insert-cutter/index.html","topicHref":"milling-tool/insert-cutter/index.html"},{"name":"智慧刀把","href":"milling-tool/smart-tool-holder.html","topicHref":"milling-tool/smart-tool-holder.html"}]},{"name":"腳本命令","items":[{"name":"文件任務","href":"script/Doc-Task/index.html","topicHref":"script/Doc-Task/index.html"},{"name":"碰撞檢測","href":"script/Collision/index.html","topicHref":"script/Collision/index.html"},{"name":"離料","href":"script/FlyPiece/index.html","topicHref":"script/FlyPiece/index.html"},{"name":"幾何差異","href":"script/GeomDiff/index.html","topicHref":"script/GeomDiff/index.html"},{"name":"映射","href":"script/Mapping/index.html","topicHref":"script/Mapping/index.html"},{"name":"銑削訓練","href":"script/MillingTraining/index.html","topicHref":"script/MillingTraining/index.html"},{"name":"NC優化","href":"script/NcOptimization/index.html","topicHref":"script/NcOptimization/index.html"},{"name":"解析度","href":"script/Resolution/index.html","topicHref":"script/Resolution/index.html"},{"name":"執行NC檔案","href":"script/PlayNcFile/index.html","topicHref":"script/PlayNcFile/index.html"},{"name":"執行CSV檔案","href":"script/PlayCsvFile/play-csv-file.html","topicHref":"script/PlayCsvFile/play-csv-file.html"},{"name":"運行時幾何","href":"script/RuntimeGeom/index.html","topicHref":"script/RuntimeGeom/index.html"},{"name":"輸出Shot檔案","href":"script/WriteShotFiles/index.html","topicHref":"script/WriteShotFiles/index.html"},{"name":"輸出Step檔案","href":"script/WriteStepFiles/index.html","topicHref":"script/WriteStepFiles/index.html"}]},{"name":"輸出","items":[{"name":"模擬步階輸出資訊","href":"output/simulation-step-output.html","topicHref":"output/simulation-step-output.html"}]},{"name":"優化","items":[{"name":"NC優化","href":"optimization/index.html","topicHref":"optimization/index.html"}]},{"name":"理論與技術","items":[{"name":"銑削物理座標系","href":"theory-and-technique/milling-physics-coordinates.html","topicHref":"theory-and-technique/milling-physics-coordinates.html"},{"name":"評估製程可加工性","href":"availability/index.html","topicHref":"availability/index.html"},{"name":"刀具壽命與磨耗","href":"technique/wear.html","topicHref":"technique/wear.html"},{"name":"第一離隙角避讓","href":"technique/relief-face-avoidance/index.html","topicHref":"technique/relief-face-avoidance/index.html"}]}]} +{"items":[{"name":"HiNC 使用說明","href":"index.html","topicHref":"index.html"},{"name":"使用者條款","href":"license/index.html","topicHref":"license/index.html"},{"name":"HiNC啟用","items":[{"name":"Windows系統啟用","href":"startup/windows.html","topicHref":"startup/windows.html"},{"name":"單機多站配置","href":"startup/multi-station.html","topicHref":"startup/multi-station.html"},{"name":"多主機授權設置","href":"startup/delegate-auth.html","topicHref":"startup/delegate-auth.html"},{"name":"教學視頻","href":"startup/tutorial.html","topicHref":"startup/tutorial.html"}]},{"name":"系統","items":[{"name":"檔案總管","href":"system/file-explorer.html","topicHref":"system/file-explorer.html"}]},{"name":"設備","items":[{"name":"錨點","href":"mech/anchor.html","topicHref":"mech/anchor.html"},{"name":"工具機建置","href":"equipment/build-machine-tool.html","topicHref":"equipment/build-machine-tool.html"},{"name":"冷卻液","href":"equipment/coolant.html","topicHref":"equipment/coolant.html"}]},{"name":"控制器","items":[{"name":"海德漢支援","href":"controllers/heidenhain-support.html","topicHref":"controllers/heidenhain-support.html"},{"name":"通用NC碼支援","href":"controllers/iso-nc-support.html","topicHref":"controllers/iso-nc-support.html"}]},{"name":"加工工具","items":[{"name":"銑刀","href":"milling-tool/cutter.html","topicHref":"milling-tool/cutter.html"},{"name":"APT工具","href":"milling-tool/apt.html","topicHref":"milling-tool/apt.html"},{"name":"刀片式刃雕","href":"milling-tool/insert-cutter/index.html","topicHref":"milling-tool/insert-cutter/index.html"},{"name":"智慧刀把","href":"milling-tool/smart-tool-holder.html","topicHref":"milling-tool/smart-tool-holder.html"}]},{"name":"腳本命令","href":"script/index.html","topicHref":"script/index.html","items":[{"name":"文件任務","href":"script/Doc-Task/index.html","topicHref":"script/Doc-Task/index.html"},{"name":"執行NC檔案","href":"script/PlayNcFile/index.html","topicHref":"script/PlayNcFile/index.html"},{"name":"執行NC碼字串","href":"script/PlayNc/index.html","topicHref":"script/PlayNc/index.html"},{"name":"執行CSV檔案","href":"script/PlayCsvFile/play-csv-file.html","topicHref":"script/PlayCsvFile/play-csv-file.html"},{"name":"播放器控制","href":"script/PlayerControl/index.html","topicHref":"script/PlayerControl/index.html"},{"name":"事件處理","href":"script/Events/index.html","topicHref":"script/Events/index.html"},{"name":"屬性設定","href":"script/Properties/index.html","topicHref":"script/Properties/index.html"},{"name":"動作操作","href":"script/ActOperations/index.html","topicHref":"script/ActOperations/index.html"},{"name":"步階變數","href":"script/StepVariables/index.html","topicHref":"script/StepVariables/index.html"},{"name":"訊息處理","href":"script/Messages/index.html","topicHref":"script/Messages/index.html"},{"name":"運行時管理","href":"script/RuntimeManagement/index.html","topicHref":"script/RuntimeManagement/index.html"},{"name":"碰撞檢測","href":"script/Collision/index.html","topicHref":"script/Collision/index.html"},{"name":"離料","href":"script/FlyPiece/index.html","topicHref":"script/FlyPiece/index.html"},{"name":"幾何差異","href":"script/GeomDiff/index.html","topicHref":"script/GeomDiff/index.html"},{"name":"映射","href":"script/Mapping/index.html","topicHref":"script/Mapping/index.html"},{"name":"銑削訓練","href":"script/MillingTraining/index.html","topicHref":"script/MillingTraining/index.html"},{"name":"載入切削參數","href":"script/LoadCuttingPara/index.html","topicHref":"script/LoadCuttingPara/index.html"},{"name":"物理仿真設定","href":"script/Physics/index.html","topicHref":"script/Physics/index.html"},{"name":"NC優化","href":"script/NcOptimization/index.html","topicHref":"script/NcOptimization/index.html"},{"name":"解析度","href":"script/Resolution/index.html","topicHref":"script/Resolution/index.html"},{"name":"運行時幾何","href":"script/RuntimeGeom/index.html","topicHref":"script/RuntimeGeom/index.html"},{"name":"輸出Shot檔案","href":"script/WriteShotFiles/index.html","topicHref":"script/WriteShotFiles/index.html"},{"name":"輸出Step檔案","href":"script/WriteStepFiles/index.html","topicHref":"script/WriteStepFiles/index.html"},{"name":"刀具與智慧刀把設置","href":"script/ToolSetup/index.html","topicHref":"script/ToolSetup/index.html"}]},{"name":"輸出","items":[{"name":"模擬步階輸出資訊","href":"output/simulation-step-output.html","topicHref":"output/simulation-step-output.html"}]},{"name":"優化","items":[{"name":"NC優化","href":"optimization/index.html","topicHref":"optimization/index.html"}]},{"name":"理論與技術","items":[{"name":"銑削物理座標系","href":"theory-and-technique/milling-physics-coordinates.html","topicHref":"theory-and-technique/milling-physics-coordinates.html"},{"name":"評估製程可加工性","href":"availability/index.html","topicHref":"availability/index.html"},{"name":"刀具壽命與磨耗","href":"technique/wear.html","topicHref":"technique/wear.html"},{"name":"第一離隙角避讓","href":"technique/relief-face-avoidance/index.html","topicHref":"technique/relief-face-avoidance/index.html"}]}]} diff --git a/App/wwwroot/HiAPI-docsite/index.json b/App/wwwroot/HiAPI-docsite/index.json index feec6b1..d0ab732 100644 --- a/App/wwwroot/HiAPI-docsite/index.json +++ b/App/wwwroot/HiAPI-docsite/index.json @@ -62,7 +62,7 @@ "api/Hi.Cbtr.Substraction.html": { "href": "api/Hi.Cbtr.Substraction.html", "title": "Class Substraction | HiAPI-C# 2025", - "summary": "Class Substraction Namespace Hi.Cbtr Assembly HiCbtr.dll Represents the result of a volume subtraction operation. [BsonIgnoreExtraElements] public class Substraction : IWriteBin, IExpandToBox3d Inheritance object Substraction Implements IWriteBin IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MillingRemovalUtil.GetContoursOnToolRunningCoordinate(Substraction, MachineMotionStep) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Substraction() Ctor. for Entity Framework. public Substraction() Substraction(UnmanagedSubstraction) Initializes a new instance of the Substraction class from an unmanaged substraction. public Substraction(UnmanagedSubstraction unmanagedSubstraction) Parameters unmanagedSubstraction UnmanagedSubstraction The unmanaged substraction to copy data from. Substraction(BinaryReader) Initializes a new instance of the Substraction class from a binary reader. public Substraction(BinaryReader reader) Parameters reader BinaryReader The binary reader to read data from. Properties ContactContours Gets or sets the contact contours. [BsonIgnore] public List> ContactContours { get; } Property Value List> ContactContoursArea Gets the area of the contact contours. [BsonElement] public double ContactContoursArea { get; init; } Property Value double ContactContoursByteArray Gets or sets the byte array representation of the contact contours. [BsonIgnore] public byte[] ContactContoursByteArray { get; set; } Property Value byte[] IsTouched Gets a value indicating whether the cutter and workpiece touched. [BsonElement] public bool IsTouched { get; init; } Property Value bool StepIndex Step index. For database saving. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] [BsonId] public int StepIndex { get; set; } Property Value int Methods ContactContoursReadBin(BinaryReader) Reads contact contours from a binary reader. public static List> ContactContoursReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from. Returns List> A list of contact contour lists. ContactContoursWriteBin(List>, BinaryWriter) Writes contact contours to a binary writer. public static void ContactContoursWriteBin(List> contactContours, BinaryWriter writer) Parameters contactContours List> The contact contours to write. writer BinaryWriter The binary writer to write to. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box WriteBin(BinaryWriter) Writes the object's data to a binary stream. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to" + "summary": "Class Substraction Namespace Hi.Cbtr Assembly HiCbtr.dll Represents the result of a volume subtraction operation. [BsonIgnoreExtraElements] public class Substraction : IWriteBin, IDisplayee, IExpandToBox3d Inheritance object Substraction Implements IWriteBin IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MillingRemovalUtil.GetContoursOnToolRunningCoordinate(Substraction, MachineMotionStep) DispUtil.Display(IDisplayee, Bind, Mat4d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Substraction() Ctor. for Entity Framework. public Substraction() Substraction(UnmanagedSubstraction) Initializes a new instance of the Substraction class from an unmanaged substraction. public Substraction(UnmanagedSubstraction unmanagedSubstraction) Parameters unmanagedSubstraction UnmanagedSubstraction The unmanaged substraction to copy data from. Substraction(BinaryReader) Initializes a new instance of the Substraction class from a binary reader. public Substraction(BinaryReader reader) Parameters reader BinaryReader The binary reader to read data from. Properties ContactContours Gets or sets the contact contours on workpiece coordinate. [BsonIgnore] public List> ContactContours { get; } Property Value List> ContactContoursArea Gets the area of the contact contours. [BsonElement] public double ContactContoursArea { get; init; } Property Value double ContactContoursByteArray Gets or sets the byte array representation of the contact contours. [BsonIgnore] public byte[] ContactContoursByteArray { get; set; } Property Value byte[] IsTouched Gets a value indicating whether the cutter and workpiece touched. [BsonElement] public bool IsTouched { get; init; } Property Value bool StepIndex Step index. For database saving. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] [BsonId] public int StepIndex { get; set; } Property Value int Methods ContactContoursReadBin(BinaryReader) Reads contact contours from a binary reader. public static List> ContactContoursReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from. Returns List> A list of contact contour lists. ContactContoursWriteBin(List>, BinaryWriter) Writes contact contours to a binary writer. public static void ContactContoursWriteBin(List> contactContours, BinaryWriter writer) Parameters contactContours List> The contact contours to write. writer BinaryWriter The binary writer to write to. Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box WriteBin(BinaryWriter) Writes the object's data to a binary stream. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to" }, "api/Hi.Cbtr.UnhighlightablePickable.html": { "href": "api/Hi.Cbtr.UnhighlightablePickable.html", @@ -72,7 +72,7 @@ "api/Hi.Cbtr.UnmanagedSubstraction.html": { "href": "api/Hi.Cbtr.UnmanagedSubstraction.html", "title": "Class UnmanagedSubstraction | HiAPI-C# 2025", - "summary": "Class UnmanagedSubstraction Namespace Hi.Cbtr Assembly HiCbtr.dll Data about the removing behavior of CubeTree. public class UnmanagedSubstraction : IDisplayee, IExpandToBox3d, IDisposable Inheritance object UnmanagedSubstraction Implements IDisplayee IExpandToBox3d IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) DispUtil.Display(IDisplayee, Bind, Mat4d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields preserveCount The count of preservations to prevent disposal. public int preserveCount Field Value int Properties ContactContours Contact contours. Each contour is composed by 3~12 points. public List> ContactContours { get; } Property Value List> ContactContoursArea Gets the area of the contact contours. public double ContactContoursArea { get; } Property Value double IsTouched Is the cutter and workpiece touched. public bool IsTouched { get; } Property Value bool Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. DisplayContours(Bind) Display ContactContours by lines. public void DisplayContours(Bind bind) Parameters bind Bind bind DisplayContours(List>, Bind) Displays contours in a visualization binding. public static void DisplayContours(List> contours, Bind bind) Parameters contours List> The list of contours to display, where each contour is a list of 3D points. bind Bind The binding to display the contours in. Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box ~UnmanagedSubstraction() protected ~UnmanagedSubstraction() PreserveBegin() Preserve the object from arising Dispose(). Add preserve count for 1. public void PreserveBegin() See Also PreserveEnd() PreserveEnd() Minus preserve count for 1. If preserve count is eqaul or lower than 0, call Dispose(). public void PreserveEnd() See Also PreserveBegin()" + "summary": "Class UnmanagedSubstraction Namespace Hi.Cbtr Assembly HiCbtr.dll Data about the removing behavior of CubeTree. public class UnmanagedSubstraction : IDisplayee, IExpandToBox3d, IDisposable Inheritance object UnmanagedSubstraction Implements IDisplayee IExpandToBox3d IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) DispUtil.Display(IDisplayee, Bind, Mat4d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields preserveCount The count of preservations to prevent disposal. public int preserveCount Field Value int Properties ContactContours Contact contours. Each contour is composed by 3~12 points. public List> ContactContours { get; } Property Value List> ContactContoursArea Gets the area of the contact contours. public double ContactContoursArea { get; } Property Value double IsTouched Is the cutter and workpiece touched. public bool IsTouched { get; } Property Value bool Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. DisplayContours(Bind) Display ContactContours by lines. public void DisplayContours(Bind bind) Parameters bind Bind bind Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box ~UnmanagedSubstraction() protected ~UnmanagedSubstraction() PreserveBegin() Preserve the object from arising Dispose(). Add preserve count for 1. public void PreserveBegin() See Also PreserveEnd() PreserveEnd() Minus preserve count for 1. If preserve count is eqaul or lower than 0, call Dispose(). public void PreserveEnd() See Also PreserveBegin()" }, "api/Hi.Cbtr.html": { "href": "api/Hi.Cbtr.html", @@ -312,7 +312,7 @@ "api/Hi.Common.BinarySearchResult.html": { "href": "api/Hi.Common.BinarySearchResult.html", "title": "Enum BinarySearchResult | HiAPI-C# 2025", - "summary": "Enum BinarySearchResult Namespace Hi.Common Assembly HiGeom.dll Represents the result of a binary search operation. public enum BinarySearchResult Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields CriticalFound = 2 Indicates that an exact match was found. FoundCeil = 8 Indicates that a value greater than or equal to the target was found. FoundFloor = 4 Indicates that a value less than or equal to the target was found. NotExisted = 1 Indicates that the target value does not exist in the collection." + "summary": "Enum BinarySearchResult Namespace Hi.Common Assembly HiGeom.dll Represents the result of a binary search operation. public enum BinarySearchResult Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields CriticalFound = 2 Indicates that an exact match was found. FoundCeil = 8 Indicates that a value greater than to the target was found. FoundFloor = 4 Indicates that a value less than to the target was found. NotExisted = 1 Indicates that the target value does not exist in the collection." }, "api/Hi.Common.BitUtil.html": { "href": "api/Hi.Common.BitUtil.html", @@ -369,10 +369,15 @@ "title": "Enum SortedListUtil.SearchMethod | HiAPI-C# 2025", "summary": "Enum SortedListUtil.SearchMethod Namespace Hi.Common.Collections Assembly HiGeom.dll Specifies the search method to use when looking for values in a sorted list. public enum SortedListUtil.SearchMethod Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields Ceil = 1 Find the smallest element greater than or equal to the key. Floor = 0 Find the largest element less than or equal to the key." }, + "api/Hi.Common.Collections.SortedListUtil.SeekDirection.html": { + "href": "api/Hi.Common.Collections.SortedListUtil.SeekDirection.html", + "title": "Enum SortedListUtil.SeekDirection | HiAPI-C# 2025", + "summary": "Enum SortedListUtil.SeekDirection Namespace Hi.Common.Collections Assembly HiGeom.dll public enum SortedListUtil.SeekDirection Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields Backward = 2 Forward = 1 Free = 0" + }, "api/Hi.Common.Collections.SortedListUtil.html": { "href": "api/Hi.Common.Collections.SortedListUtil.html", "title": "Class SortedListUtil | HiAPI-C# 2025", - "summary": "Class SortedListUtil Namespace Hi.Common.Collections Assembly HiGeom.dll Utility class providing extension methods for SortedList operations. public static class SortedListUtil Inheritance object SortedListUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetByMethod(SortedList, TKey, SearchMethod, out BinarySearchResult) Get value by searchMethod. If result is NotExisted, return the default value of V. public static V GetByMethod(this SortedList src, TKey key, SortedListUtil.SearchMethod searchMethod, out BinarySearchResult result) where TKey : IComparable Parameters src SortedList source key TKey key searchMethod SortedListUtil.SearchMethod search method result BinarySearchResult result Returns V searched value Type Parameters TKey Key type V Value type GetCeilIndex(SortedList, TKey, out BinarySearchResult) Gets the index of the element in a sorted list that has a key greater than or equal to a specified key. public static int GetCeilIndex(this SortedList src, TKey key, out BinarySearchResult result) where TKey : IComparable Parameters src SortedList The source sorted list. key TKey The key to search for. result BinarySearchResult When this method returns, contains a value indicating whether an exact match was found, a ceiling value was found, or no suitable element exists. Returns int The index of the ceiling element if found; otherwise, -1. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetCeil(SortedList, TKey, out BinarySearchResult) Get ceil value by key. If result is NotExisted, return the default value of V. public static V GetCeil(this SortedList src, TKey key, out BinarySearchResult result) where TKey : IComparable Parameters src SortedList source key TKey key result BinarySearchResult result Returns V ceil value Type Parameters TKey Key type V Value type GetEnumerableByKeyBoundary(SortedList, TKey, bool, TKey, bool) Gets a sequence of key-value pairs from a sorted list within a specified key range. public static IEnumerable> GetEnumerableByKeyBoundary(this SortedList src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil) where TKey : IComparable Parameters src SortedList The source sorted list. begin TKey The beginning key of the range. isIncludingBeginFloor bool Whether to include the floor value of the beginning key. end TKey The ending key of the range. isIncludingEndCeil bool Whether to include the ceiling value of the ending key. Returns IEnumerable> A sequence of key-value pairs within the specified range. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetFloorIndex(SortedList, TKey, out BinarySearchResult) Gets the index of the element in a sorted list that has a key less than or equal to a specified key. public static int GetFloorIndex(this SortedList src, TKey key, out BinarySearchResult result) where TKey : IComparable Parameters src SortedList The source sorted list. key TKey The key to search for. result BinarySearchResult When this method returns, contains a value indicating whether an exact match was found, a floor value was found, or no suitable element exists. Returns int The index of the floor element if found; otherwise, -1. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetFloor(SortedList, TKey, out BinarySearchResult) Get floor value by key. If result is NotExisted, return the default value of V. public static V GetFloor(this SortedList src, TKey key, out BinarySearchResult result) where TKey : IComparable Parameters src SortedList source key TKey key result BinarySearchResult result Returns V floor value Type Parameters TKey Key type V Value type GetNearestIndex(SortedList, double, out BinarySearchResult) Gets the index of the element in a sorted list that has a key nearest to a specified key. public static int GetNearestIndex(this SortedList src, double key, out BinarySearchResult result) Parameters src SortedList The source sorted list. key double The key to search for. result BinarySearchResult When this method returns, contains a value indicating whether an exact match was found, or the nearest floor/ceiling value. Returns int The index of the nearest element if found; otherwise, -1. Type Parameters V The type of values in the sorted list. GetNearestKey(SortedList, double, out BinarySearchResult) Gets the key in a sorted list that is nearest to a specified key. public static double GetNearestKey(this SortedList src, double key, out BinarySearchResult result) Parameters src SortedList The source sorted list. key double The key to search for. result BinarySearchResult When this method returns, contains a value indicating whether an exact match was found, or the nearest floor/ceiling value. Returns double The nearest key if found; otherwise, NaN. Type Parameters V The type of values in the sorted list. GetNearestValue(SortedList, double, out BinarySearchResult) Gets the value in a sorted list that corresponds to the key nearest to a specified key. public static V GetNearestValue(this SortedList src, double key, out BinarySearchResult result) Parameters src SortedList The source sorted list. key double The key to search for. result BinarySearchResult When this method returns, contains a value indicating whether an exact match was found, or the nearest floor/ceiling value. Returns V The value corresponding to the nearest key if found; otherwise, the default value for the type. Type Parameters V The type of values in the sorted list. GetSortedListByKeyBoundary(SortedList, TKey, bool, TKey, bool) Creates a new sorted list containing key-value pairs from a source sorted list within a specified key range. public static SortedList GetSortedListByKeyBoundary(this SortedList src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil) where TKey : IComparable Parameters src SortedList The source sorted list. begin TKey The beginning key of the range. isIncludingBeginFloor bool Whether to include the floor value of the beginning key. end TKey The ending key of the range. isIncludingEndCeil bool Whether to include the ceiling value of the ending key. Returns SortedList A new sorted list containing key-value pairs within the specified range. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetValuesByKeyBoundary(SortedList, TKey, bool, TKey, bool) Gets a list of values from a sorted list within a specified key range. public static List GetValuesByKeyBoundary(this SortedList src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil) where TKey : IComparable Parameters src SortedList The source sorted list. begin TKey The beginning key of the range. isIncludingBeginFloor bool Whether to include the floor value of the beginning key. end TKey The ending key of the range. isIncludingEndCeil bool Whether to include the ceiling value of the ending key. Returns List A list of values within the specified range. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. ToSortedList(List, Func) Converts a list of values to a sorted list using a key selector function. public static SortedList ToSortedList(this List src, Func keyFunc) where TKey : IComparable Parameters src List The source list of values. keyFunc Func A function to extract a key from each value. Returns SortedList A sorted list containing the values from the source list, keyed by the extracted keys. Type Parameters TKey The type of keys in the resulting sorted list. TValue The type of values in the list and the resulting sorted list." + "summary": "Class SortedListUtil Namespace Hi.Common.Collections Assembly HiGeom.dll Utility class providing extension methods for SortedList operations. public static class SortedListUtil Inheritance object SortedListUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetByMethod(SortedList, TKey, SearchMethod, out V, int, int) Get value by searchMethod. If return value is NotExisted, resultValue will be the default value of V. public static BinarySearchResult GetByMethod(this SortedList src, TKey key, SortedListUtil.SearchMethod searchMethod, out V resultValue, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList source key TKey key searchMethod SortedListUtil.SearchMethod search method resultValue V searched value beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns BinarySearchResult search result Type Parameters TKey Key type V Value type GetCeilListIndex(SortedList, TKey, out int, int, int) Gets the index of the element in a sorted list that has a key greater than or equal to a specified key. public static BinarySearchResult GetCeilListIndex(this SortedList src, TKey key, out int resultListIndex, int beginListIndex = 0, int endListIndex = -1) where TKey : IComparable Parameters src SortedList The source sorted list. key TKey The key to search for. resultListIndex int When this method returns, contains the index of the ceiling element if found; otherwise, -1. beginListIndex int endListIndex int Returns BinarySearchResult A value indicating whether an exact match was found, a ceiling value was found, or no suitable element exists. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetCeil(SortedList, TKey, out V, int, int) public static BinarySearchResult GetCeil(this SortedList src, TKey key, out V resultValue, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList key TKey resultValue V beginIndex int endIndex int Returns BinarySearchResult Type Parameters TKey V GetCeil(SortedList, TKey, out V, out int, int, int) Get ceil value by key. If return value is NotExisted, resultValue will be the default value of V. public static BinarySearchResult GetCeil(this SortedList src, TKey key, out V resultValue, out int ceilIndex, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList source key TKey key resultValue V ceil value ceilIndex int beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns BinarySearchResult search result Type Parameters TKey Key type V Value type GetEnumerableByKeyBoundary(SortedList, TKey, bool, TKey, bool, int, int) Gets a sequence of key-value pairs from a sorted list within a specified key range. public static IEnumerable> GetEnumerableByKeyBoundary(this SortedList src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList The source sorted list. begin TKey The beginning key of the range. isIncludingBeginFloor bool Whether to include the floor value of the beginning key. end TKey The ending key of the range. isIncludingEndCeil bool Whether to include the ceiling value of the ending key. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns IEnumerable> A sequence of key-value pairs within the specified range. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetFloorBySeek(SortedList, TKey, out V, out int, int, SeekDirection) public static BinarySearchResult GetFloorBySeek(this SortedList src, TKey key, out V floorValue, out int floorListIndex, int startListIndex, SortedListUtil.SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src SortedList key TKey floorValue V floorListIndex int startListIndex int seekDirection SortedListUtil.SeekDirection Returns BinarySearchResult Type Parameters TKey V GetFloorListIndexBySeek(SortedList, TKey, out int, int, SeekDirection) public static BinarySearchResult GetFloorListIndexBySeek(this SortedList src, TKey key, out int floorListIndex, int startListIndex, SortedListUtil.SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src SortedList key TKey floorListIndex int startListIndex int seekDirection SortedListUtil.SeekDirection Returns BinarySearchResult Type Parameters TKey V Remarks The Free seek direction does not loss additional performance. The seek direction only effect the resulting value by the startListIndex bound. GetFloorListIndex(SortedList, TKey, out int, int, int) Gets the index of the element in a sorted list that has a key less than or equal to a specified key. public static BinarySearchResult GetFloorListIndex(this SortedList src, TKey key, out int resultListIndex, int beginListIndex = 0, int endListIndex = -1) where TKey : IComparable Parameters src SortedList The source sorted list. key TKey The key to search for. resultListIndex int When this method returns, contains the index of the floor element if found; otherwise, -1. beginListIndex int endListIndex int Returns BinarySearchResult A value indicating whether an exact match was found, a floor value was found, or no suitable element exists. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetFloor(SortedList, TKey, out V, int, int) Get floor value by key. If return value is NotExisted, resultValue will be the default value of V. public static BinarySearchResult GetFloor(this SortedList src, TKey key, out V resultValue, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList source key TKey key resultValue V floor value beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns BinarySearchResult search result Type Parameters TKey Key type V Value type GetFloor(SortedList, TKey, out V, out int, int, int) Get floor value by key. If return value is NotExisted, resultValue will be the default value of V. public static BinarySearchResult GetFloor(this SortedList src, TKey key, out V resultValue, out int floorIndex, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList source key TKey key resultValue V floor value floorIndex int beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns BinarySearchResult search result Type Parameters TKey Key type V Value type GetIndexRangeByKeyBoundary(SortedList, TKey, bool, TKey, bool, int, int) public static Range GetIndexRangeByKeyBoundary(this SortedList src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil, int beginListIndex = 0, int endListIndex = -1) where TKey : IComparable Parameters src SortedList begin TKey isIncludingBeginFloor bool end TKey isIncludingEndCeil bool beginListIndex int endListIndex int Returns Range Type Parameters TKey V GetNearestIndex(SortedList, double, out int, int, int) Gets the index of the element in a sorted list that has a key nearest to a specified key. public static BinarySearchResult GetNearestIndex(this SortedList src, double key, out int resultIndex, int beginIndex = 0, int endIndex = -1) Parameters src SortedList The source sorted list. key double The key to search for. resultIndex int When this method returns, contains the index of the nearest element if found; otherwise, -1. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns BinarySearchResult A value indicating whether an exact match was found, or the nearest floor/ceiling value. Type Parameters V The type of values in the sorted list. GetNearestKey(SortedList, double, out double, int, int) Gets the key in a sorted list that is nearest to a specified key. public static BinarySearchResult GetNearestKey(this SortedList src, double key, out double resultKey, int beginIndex = 0, int endIndex = -1) Parameters src SortedList The source sorted list. key double The key to search for. resultKey double When this method returns, contains the nearest key if found; otherwise, NaN. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns BinarySearchResult A value indicating whether an exact match was found, or the nearest floor/ceiling value. Type Parameters V The type of values in the sorted list. GetNearestValue(SortedList, double, out V, int, int) Gets the value in a sorted list that corresponds to the key nearest to a specified key. public static BinarySearchResult GetNearestValue(this SortedList src, double key, out V resultValue, int beginIndex = 0, int endIndex = -1) Parameters src SortedList The source sorted list. key double The key to search for. resultValue V When this method returns, contains the value corresponding to the nearest key if found; otherwise, the default value for the type. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns BinarySearchResult A value indicating whether an exact match was found, or the nearest floor/ceiling value. Type Parameters V The type of values in the sorted list. GetSortedListByKeyBoundary(SortedList, TKey, bool, TKey, bool, int, int) Creates a new sorted list containing key-value pairs from a source sorted list within a specified key range. public static SortedList GetSortedListByKeyBoundary(this SortedList src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList The source sorted list. begin TKey The beginning key of the range. isIncludingBeginFloor bool Whether to include the floor value of the beginning key. end TKey The ending key of the range. isIncludingEndCeil bool Whether to include the ceiling value of the ending key. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns SortedList A new sorted list containing key-value pairs within the specified range. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetValuesByKeyBoundary(SortedList, TKey, bool, TKey, bool, int, int) Gets a list of values from a sorted list within a specified key range. public static List GetValuesByKeyBoundary(this SortedList src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList The source sorted list. begin TKey The beginning key of the range. isIncludingBeginFloor bool Whether to include the floor value of the beginning key. end TKey The ending key of the range. isIncludingEndCeil bool Whether to include the ceiling value of the ending key. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns List A list of values within the specified range. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. ToSortedList(List, Func) Converts a list of values to a sorted list using a key selector function. public static SortedList ToSortedList(this List src, Func keyFunc) where TKey : IComparable Parameters src List The source list of values. keyFunc Func A function to extract a key from each value. Returns SortedList A sorted list containing the values from the source list, keyed by the extracted keys. Type Parameters TKey The type of keys in the resulting sorted list. TValue The type of values in the list and the resulting sorted list." }, "api/Hi.Common.Collections.SynList-1.html": { "href": "api/Hi.Common.Collections.SynList-1.html", @@ -382,7 +387,7 @@ "api/Hi.Common.Collections.html": { "href": "api/Hi.Common.Collections.html", "title": "Namespace Hi.Common.Collections | HiAPI-C# 2025", - "summary": "Namespace Hi.Common.Collections Classes DictionaryUtil Utility class providing extension methods for dictionary operations. EnumerableUtil Utility class providing extension methods for enumerable collections. FixedSizeConcurrentLinkedListUtil Utility of Fixed Size Concurrent LinkedList. ListIndexBasedEnumerable Provides an enumerable wrapper for a list that iterates over a specified range of indices. ListIndexBasedIEnumerator Provides an enumerator that iterates over a specified range of indices in a list. ListUtil Provides utility methods for working with lists and collections. SortedListUtil Utility class providing extension methods for SortedList operations. SynList Thread-safe List. Enums ListUtil.OuterPolationMode Defines the mode for handling values outside the range of a collection during interpolation. SortedListUtil.SearchMethod Specifies the search method to use when looking for values in a sorted list." + "summary": "Namespace Hi.Common.Collections Classes DictionaryUtil Utility class providing extension methods for dictionary operations. EnumerableUtil Utility class providing extension methods for enumerable collections. FixedSizeConcurrentLinkedListUtil Utility of Fixed Size Concurrent LinkedList. ListIndexBasedEnumerable Provides an enumerable wrapper for a list that iterates over a specified range of indices. ListIndexBasedIEnumerator Provides an enumerator that iterates over a specified range of indices in a list. ListUtil Provides utility methods for working with lists and collections. SortedListUtil Utility class providing extension methods for SortedList operations. SynList Thread-safe List. Enums ListUtil.OuterPolationMode Defines the mode for handling values outside the range of a collection during interpolation. SortedListUtil.SearchMethod Specifies the search method to use when looking for values in a sorted list. SortedListUtil.SeekDirection" }, "api/Hi.Common.ConcurrentTimeCounter.html": { "href": "api/Hi.Common.ConcurrentTimeCounter.html", @@ -537,7 +542,7 @@ "api/Hi.Common.FileLines.IndexedFileLine.html": { "href": "api/Hi.Common.FileLines.IndexedFileLine.html", "title": "Class IndexedFileLine | HiAPI-C# 2025", - "summary": "Class IndexedFileLine Namespace Hi.Common.FileLines Assembly HiGeom.dll Represents a line of text from a file with associated file and line information. public class IndexedFileLine : IIndexedFileLine, IFileLine, IFileLineIndex, IGetIndexedFileLine, IGetFileLineIndex Inheritance object IndexedFileLine Implements IIndexedFileLine IFileLine IFileLineIndex IGetIndexedFileLine IGetFileLineIndex Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods FileLineUtil.GetFileNo(IFileLineIndex) FileLineUtil.GetLineNo(IFileLineIndex) FileLineUtil.MixedIndex(IFileLineIndex) FileLineUtil.MixedIndex(IGetFileLineIndex) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors IndexedFileLine() Initializes a new instance of the IndexedFileLine class. public IndexedFileLine() IndexedFileLine(IIndexedFileLine) Initializes a new instance of the IndexedFileLine class by copying from an IIndexedFileLine. public IndexedFileLine(IIndexedFileLine src) Parameters src IIndexedFileLine The source IIndexedFileLine to copy from. IndexedFileLine(IndexedFileLine) Initializes a new instance of the IndexedFileLine class by copying another instance. public IndexedFileLine(IndexedFileLine src) Parameters src IndexedFileLine The source IndexedFileLine to copy from. IndexedFileLine(int, string, int, string) Initializes a new instance of the IndexedFileLine class with the specified file information and line content. public IndexedFileLine(int fileIndex, string filePath, int lineIndex, string line) Parameters fileIndex int The zero-based index of the file. filePath string The path of the file. lineIndex int The zero-based index of the line within the file. line string The content of the line. Properties FileIndex File Index. Start on 0. public int FileIndex { get; set; } Property Value int FileNo FileIndex+1. public int FileNo { get; set; } Property Value int FilePath File path. public string FilePath { get; set; } Property Value string Line The line. public string Line { get; set; } Property Value string LineIndex Line Index. Start on 0. public int LineIndex { get; set; } Property Value int LineNo LineIndex+1. public int LineNo { get; set; } Property Value int Methods Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. Remarks Checks the equalty of FileIndex and LineIndex. GetFileLine() public IFileLine GetFileLine() Returns IFileLine GetFileLineIndex() Get FileLineIndex. public FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. Remarks The hashcode is composed of FileIndex and LineIndex. GetIndexedFileLine() Gets the file line associated with this object. public IndexedFileLine GetIndexedFileLine() Returns IndexedFileLine The file line object. ReadFile(int, string) Read file to IndexedFileLines. public static IEnumerable ReadFile(int fileIndex, string filePath) Parameters fileIndex int file number. If only one file in the scenerio, assign zero is prefered. filePath string file path Returns IEnumerable IndexedFileLines ReadFiles(List) Read files to IndexedFileLines. public static IEnumerable ReadFiles(List files) Parameters files List files Returns IEnumerable IndexedFileLines ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." + "summary": "Class IndexedFileLine Namespace Hi.Common.FileLines Assembly HiGeom.dll Represents a line of text from a file with associated file and line information. public class IndexedFileLine : IIndexedFileLine, IFileLine, IFileLineIndex, IGetIndexedFileLine, IGetFileLineIndex Inheritance object IndexedFileLine Implements IIndexedFileLine IFileLine IFileLineIndex IGetIndexedFileLine IGetFileLineIndex Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods FileLineUtil.GetFileNo(IFileLineIndex) FileLineUtil.GetLineNo(IFileLineIndex) FileLineUtil.MixedIndex(IFileLineIndex) FileLineUtil.MixedIndex(IGetFileLineIndex) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors IndexedFileLine() Initializes a new instance of the IndexedFileLine class. public IndexedFileLine() IndexedFileLine(IIndexedFileLine) Initializes a new instance of the IndexedFileLine class by copying from an IIndexedFileLine. public IndexedFileLine(IIndexedFileLine src) Parameters src IIndexedFileLine The source IIndexedFileLine to copy from. IndexedFileLine(IndexedFileLine) Initializes a new instance of the IndexedFileLine class by copying another instance. public IndexedFileLine(IndexedFileLine src) Parameters src IndexedFileLine The source IndexedFileLine to copy from. IndexedFileLine(int, string, int, string) Initializes a new instance of the IndexedFileLine class with the specified file information and line content. public IndexedFileLine(int fileIndex, string filePath, int lineIndex, string line) Parameters fileIndex int The zero-based index of the file. filePath string The path of the file. lineIndex int The zero-based index of the line within the file. line string The content of the line. Properties FileIndex File Index. Start on 0. public int FileIndex { get; set; } Property Value int FileNo FileIndex+1. public int FileNo { get; set; } Property Value int FilePath File path. public string FilePath { get; set; } Property Value string Line The line. public string Line { get; set; } Property Value string LineIndex Line Index. Start on 0. public int LineIndex { get; set; } Property Value int LineNo LineIndex+1. public int LineNo { get; set; } Property Value int Methods Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. Remarks Checks the equalty of FileIndex and LineIndex. GetFileLine() public IFileLine GetFileLine() Returns IFileLine GetFileLineIndex() Get FileLineIndex. public FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. Remarks The hashcode is composed of FileIndex and LineIndex. GetIndexedFileLine() Gets the file line associated with this object. public IndexedFileLine GetIndexedFileLine() Returns IndexedFileLine The file line object. ReadFile(int, string) Read file to IndexedFileLines. public static IEnumerable ReadFile(int fileIndex, string filePath) Parameters fileIndex int file number. If only one file in the scenerio, assign zero is prefered. filePath string file path Returns IEnumerable IndexedFileLines ReadFiles(List) Read files to IndexedFileLines. public static IEnumerable ReadFiles(List files) Parameters files List files Returns IEnumerable IndexedFileLines ToHumanString() public string ToHumanString() Returns string ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Common.FileLines.LineBeginEventArgs.html": { "href": "api/Hi.Common.FileLines.LineBeginEventArgs.html", @@ -617,7 +622,7 @@ "api/Hi.Common.IndexSegment.html": { "href": "api/Hi.Common.IndexSegment.html", "title": "Class IndexSegment | HiAPI-C# 2025", - "summary": "Class IndexSegment Namespace Hi.Common Assembly HiGeom.dll Represents a segment of indices with a beginning and ending point. Used for defining ranges of data in collections or arrays. public class IndexSegment : IEquatable, IMakeXmlSource Inheritance object IndexSegment Implements IEquatable IMakeXmlSource Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) XmlUtil.MakeXmlSourceFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceWithRebaseFile(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors IndexSegment() Initializes a new instance of the IndexSegment class. public IndexSegment() IndexSegment(IndexSegment) Initializes a new instance of the IndexSegment class by copying another instance. public IndexSegment(IndexSegment src) Parameters src IndexSegment The source index segment to copy from. IndexSegment(int, int) Initializes a new instance of the IndexSegment class with the specified begin and end indices. public IndexSegment(int begin, int end) Parameters begin int The beginning index (inclusive). end int The ending index (exclusive). IndexSegment(XElement) Initializes a new instance of the IndexSegment class from an XML element. public IndexSegment(XElement src) Parameters src XElement The XML element containing the index segment data. Fields XName The XML element name used for serialization. public static string XName Field Value string begin Begin index. Inclusive. public int begin Field Value int end End index. Exclusive. public int end Field Value int Properties Begin Gets or sets the beginning index of the segment (inclusive). public int Begin { get; set; } Property Value int End Gets or sets the ending index of the segment (exclusive). public int End { get; set; } Property Value int Length Gets the length of the segment (End - Begin). public int Length { get; } Property Value int Methods Any() Determines whether this index segment contains any indices. public bool Any() Returns bool true if the segment contains any indices; otherwise, false. Contains(int) Determines whether this index segment contains the specified index. public bool Contains(int index) Parameters index int The index to check. Returns bool true if the index is within the segment; otherwise, false. Enumerate() Enumerates all indices within this segment. public IEnumerable Enumerate() Returns IEnumerable An enumerable collection of all indices within the segment. Equals(IndexSegment) Determines whether the specified index segment is equal to the current index segment. public bool Equals(IndexSegment other) Parameters other IndexSegment The index segment to compare with the current index segment. Returns bool true if the specified index segment is equal to the current index segment; otherwise, false. Equals(object) Determines whether the specified object is equal to the current index segment. public override bool Equals(object obj) Parameters obj object The object to compare with the current index segment. Returns bool true if the specified object is equal to the current index segment; otherwise, false. Expand(int) Expands this index segment to include the specified value if needed. public void Expand(int v) Parameters v int The value to include in the segment. GetHashCode() Returns a hash code for this index segment. public override int GetHashCode() Returns int A hash code for the current index segment. GetIndexSegment(IList, int, int, Func) Gets an index segment from a list of data items based on the specified indices. public static IndexSegment GetIndexSegment(IList steps, int cacheStepIndex, int keyStepIndex, Func dataToKeyIndexFunc) Parameters steps IList The list of data items. cacheStepIndex int The cache step index. keyStepIndex int The key step index. dataToKeyIndexFunc Func A function that extracts an index from a data item. Returns IndexSegment An index segment representing the range of indices. Type Parameters TData The type of data items. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. ToString() Returns a string representation of this index segment. public override string ToString() Returns string A string representation of the current index segment." + "summary": "Class IndexSegment Namespace Hi.Common Assembly HiGeom.dll Represents a segment of indices with a beginning (inclusive) and ending (exclusive> point. Used for defining segment of data in collections or arrays. public class IndexSegment : IEquatable, IMakeXmlSource Inheritance object IndexSegment Implements IEquatable IMakeXmlSource Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) XmlUtil.MakeXmlSourceFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceWithRebaseFile(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors IndexSegment() Initializes a new instance of the IndexSegment class. public IndexSegment() IndexSegment(IndexSegment) Initializes a new instance of the IndexSegment class by copying another instance. public IndexSegment(IndexSegment src) Parameters src IndexSegment The source index segment to copy from. IndexSegment(int, int) Initializes a new instance of the IndexSegment class with the specified begin and end indices. public IndexSegment(int begin, int end) Parameters begin int The beginning index (inclusive). end int The ending index (exclusive). IndexSegment(XElement) Initializes a new instance of the IndexSegment class from an XML element. public IndexSegment(XElement src) Parameters src XElement The XML element containing the index segment data. Fields XName The XML element name used for serialization. public static string XName Field Value string begin Begin index. Inclusive. public int begin Field Value int end End index. Exclusive. public int end Field Value int Properties Begin Gets or sets the beginning index of the segment (inclusive). public int Begin { get; set; } Property Value int End Gets or sets the ending index of the segment (exclusive). public int End { get; set; } Property Value int Length Gets the length of the segment (End - Begin). public int Length { get; } Property Value int Methods Any() Determines whether this index segment contains any indices. public bool Any() Returns bool true if the segment contains any indices; otherwise, false. Contains(int) Determines whether this index segment contains the specified index. public bool Contains(int index) Parameters index int The index to check. Returns bool true if the index is within the segment; otherwise, false. Enumerate() Enumerates all indices within this segment. public IEnumerable Enumerate() Returns IEnumerable An enumerable collection of all indices within the segment. Equals(IndexSegment) Determines whether the specified index segment is equal to the current index segment. public bool Equals(IndexSegment other) Parameters other IndexSegment The index segment to compare with the current index segment. Returns bool true if the specified index segment is equal to the current index segment; otherwise, false. Equals(object) Determines whether the specified object is equal to the current index segment. public override bool Equals(object obj) Parameters obj object The object to compare with the current index segment. Returns bool true if the specified object is equal to the current index segment; otherwise, false. Expand(int) Expands this index segment to include the specified value if needed. public void Expand(int v) Parameters v int The value to include in the segment. GetHashCode() Returns a hash code for this index segment. public override int GetHashCode() Returns int A hash code for the current index segment. GetIndexSegment(IList, int, int, Func) Gets an index segment from a list of data items by the specific group index. public static IndexSegment GetIndexSegment(IList steps, int startListIndex, int targetGroupIndex, Func dataToGroupIndexFunc) Parameters steps IList The list of data items. startListIndex int The start step index for seeking. targetGroupIndex int The target segment key. dataToGroupIndexFunc Func A function that extracts a segmentkey from a data item. Returns IndexSegment An index segment representing the range of indices. Type Parameters TData The type of data items. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. ToString() Returns a string representation of this index segment. public override string ToString() Returns string A string representation of the current index segment." }, "api/Hi.Common.IntegerKeyDictionaryConverter-1.html": { "href": "api/Hi.Common.IntegerKeyDictionaryConverter-1.html", @@ -669,10 +674,10 @@ "title": "Enum BootstrapTheme | HiAPI-C# 2025", "summary": "Enum BootstrapTheme Namespace Hi.Common.Messages Assembly HiGeom.dll Bootstrap theme colors for UI styling. public enum BootstrapTheme Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields danger = 5 Danger theme color (typically red). dark = 7 Dark theme color (typically black or very dark gray). info = 3 Information theme color (typically light blue). light = 6 Light theme color (typically white or very light gray). primary = 0 Primary theme color (typically blue). secondary = 1 Secondary theme color (typically gray). success = 2 Success theme color (typically green). warning = 4 Warning theme color (typically yellow)." }, - "api/Hi.Common.Messages.IMessageKit.html": { - "href": "api/Hi.Common.Messages.IMessageKit.html", - "title": "Interface IMessageKit | HiAPI-C# 2025", - "summary": "Interface IMessageKit Namespace Hi.Common.Messages Assembly HiGeom.dll Interface for objects that can host and manage messages. public interface IMessageKit Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MessageHostUtil.AddError(IMessageKit, string, params string[]) MessageHostUtil.AddException(IMessageKit, Exception, params string[]) MessageHostUtil.AddInfo(IMessageKit, string, params string[]) MessageHostUtil.AddMessage(IMessageKit, string, params string[]) MessageHostUtil.AddProgress(IMessageKit, string, params string[]) MessageHostUtil.AddSuccess(IMessageKit, string, params string[]) MessageHostUtil.AddWarning(IMessageKit, string, params string[]) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods Add(object) Adds a new message entry to the host. object Add(object entry) Parameters entry object The message entry to add Returns object The added entry or a result object" + "api/Hi.Common.Messages.IMessageHost.html": { + "href": "api/Hi.Common.Messages.IMessageHost.html", + "title": "Interface IMessageHost | HiAPI-C# 2025", + "summary": "Interface IMessageHost Namespace Hi.Common.Messages Assembly HiGeom.dll Interface for objects that can host and manage messages. public interface IMessageHost Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MessageHostUtil.AddError(IMessageHost, string, params string[]) MessageHostUtil.AddException(IMessageHost, Exception, params string[]) MessageHostUtil.AddInfo(IMessageHost, string, params string[]) MessageHostUtil.AddMessage(IMessageHost, string, params string[]) MessageHostUtil.AddProgress(IMessageHost, string, params string[]) MessageHostUtil.AddSuccess(IMessageHost, string, params string[]) MessageHostUtil.AddWarning(IMessageHost, string, params string[]) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods Add(object) Adds a new message entry to the host. object Add(object entry) Parameters entry object The message entry to add Returns object The added entry or a result object" }, "api/Hi.Common.Messages.MessageBoardUtil.html": { "href": "api/Hi.Common.Messages.MessageBoardUtil.html", @@ -684,15 +689,15 @@ "title": "Enum MessageFlag | HiAPI-C# 2025", "summary": "Enum MessageFlag Namespace Hi.Common.Messages Assembly HiGeom.dll Enumeration of common message types used for system notifications. public enum MessageFlag Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields Error = 1 General error messages. For exception which is consciously handled. Exception = 0 System error messages. For exception which is not consciously handled. Info = 7 System behavior that end user not need to know. The message make help to tracing end user behavior. Message = 6 Something else from the upper flags to tell the end user. Progress = 4 Progress update messages. Success = 5 Progress complete on success messages. Warning = 2 Warning messages." }, + "api/Hi.Common.Messages.MessageHost.html": { + "href": "api/Hi.Common.Messages.MessageHost.html", + "title": "Class MessageHost | HiAPI-C# 2025", + "summary": "Class MessageHost Namespace Hi.Common.Messages Assembly HiGeom.dll Provides utility methods for handling messages. public class MessageHost : IMessageHost Inheritance object MessageHost Implements IMessageHost Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods MessageHostUtil.AddError(IMessageHost, string, params string[]) MessageHostUtil.AddException(IMessageHost, Exception, params string[]) MessageHostUtil.AddInfo(IMessageHost, string, params string[]) MessageHostUtil.AddMessage(IMessageHost, string, params string[]) MessageHostUtil.AddProgress(IMessageHost, string, params string[]) MessageHostUtil.AddSuccess(IMessageHost, string, params string[]) MessageHostUtil.AddWarning(IMessageHost, string, params string[]) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Default Gets the default MessageKit instance. public static MessageHost Default { get; set; } Property Value MessageHost Methods Add(object) Adds a new message entry to the host. public object Add(object entry) Parameters entry object The message entry to add Returns object The added entry or a result object AddError(string) Adds an error message to the default message kit. Apply ExceptionUtil.ShowException(Exception, object) if the error message comes from exception for better treatment. public static void AddError(string message) Parameters message string The message to write. AddException(Exception) Adds an exception to the default message kit. public static void AddException(Exception exception) Parameters exception Exception The exception to add. AddInfo(string) Adds an info message to the default message kit. public static void AddInfo(string message) Parameters message string The message to write. AddMessage(string) Adds a plain message to the default message kit. public static void AddMessage(string message) Parameters message string The message to write. AddProgress(string) Adds a progress message to the default message kit. public static void AddProgress(string message) Parameters message string The message to write. AddSuccess(string) Adds a success message to the default message kit. public static void AddSuccess(string message) Parameters message string The message to write. AddWarning(string) Adds a warning message to the default message kit. public static void AddWarning(string message) Parameters message string The message to write. Default_OnAdding(object) Default handler for message adding. public static object Default_OnAdding(object arg) Parameters arg object The message argument to be processed. Returns object The processed message argument. Events OnAdding Event triggered when a message is being added. Allows transforming or intercepting the entry before it is written. public event Func OnAdding Event Type Func" + }, "api/Hi.Common.Messages.MessageHostUtil.html": { "href": "api/Hi.Common.Messages.MessageHostUtil.html", "title": "Class MessageHostUtil | HiAPI-C# 2025", - "summary": "Class MessageHostUtil Namespace Hi.Common.Messages Assembly HiGeom.dll Utility methods for working with IMessageKit implementations. public static class MessageHostUtil Inheritance object MessageHostUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods AddError(IMessageKit, string, params string[]) Adds an Error message to the message host. public static object AddError(this IMessageKit host, string message, params string[] otherTags) Parameters host IMessageKit The message host message string The message content otherTags string[] Additional tags to associate with the message Returns object The result of adding the message AddException(IMessageKit, Exception, params string[]) Adds an Exception message to the message host. public static object AddException(this IMessageKit host, Exception exception, params string[] otherTags) Parameters host IMessageKit The message host exception Exception The exception to log otherTags string[] Additional tags to associate with the message Returns object The result of adding the message AddInfo(IMessageKit, string, params string[]) Adds an Info message to the message host. public static object AddInfo(this IMessageKit host, string message, params string[] otherTags) Parameters host IMessageKit The message host message string The message content otherTags string[] Additional tags to associate with the message Returns object The result of adding the message AddMessage(IMessageKit, string, params string[]) Adds a message with the specified tags to the message host. public static object AddMessage(this IMessageKit host, string msg, params string[] tags) Parameters host IMessageKit The message host msg string The message content tags string[] The tags to associate with the message Returns object The result of adding the message AddProgress(IMessageKit, string, params string[]) Adds a Progress message to the message host. public static object AddProgress(this IMessageKit host, string message, params string[] otherTags) Parameters host IMessageKit The message host message string The message content otherTags string[] Additional tags to associate with the message Returns object The result of adding the message AddSuccess(IMessageKit, string, params string[]) Adds a Success message to the message host. public static object AddSuccess(this IMessageKit host, string message, params string[] otherTags) Parameters host IMessageKit The message host message string The message content otherTags string[] Additional tags to associate with the message Returns object The result of adding the message AddWarning(IMessageKit, string, params string[]) Adds a warning message to the message host. public static object AddWarning(this IMessageKit host, string message, params string[] otherTags) Parameters host IMessageKit The message host message string The message content otherTags string[] Additional tags to associate with the message Returns object The result of adding the message" - }, - "api/Hi.Common.Messages.MessageKit.html": { - "href": "api/Hi.Common.Messages.MessageKit.html", - "title": "Class MessageKit | HiAPI-C# 2025", - "summary": "Class MessageKit Namespace Hi.Common.Messages Assembly HiGeom.dll Provides utility methods for handling messages. public class MessageKit : IMessageKit Inheritance object MessageKit Implements IMessageKit Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods MessageHostUtil.AddError(IMessageKit, string, params string[]) MessageHostUtil.AddException(IMessageKit, Exception, params string[]) MessageHostUtil.AddInfo(IMessageKit, string, params string[]) MessageHostUtil.AddMessage(IMessageKit, string, params string[]) MessageHostUtil.AddProgress(IMessageKit, string, params string[]) MessageHostUtil.AddSuccess(IMessageKit, string, params string[]) MessageHostUtil.AddWarning(IMessageKit, string, params string[]) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Default Gets the default MessageKit instance. public static MessageKit Default { get; set; } Property Value MessageKit Methods Add(object) Adds a new message entry to the host. public object Add(object entry) Parameters entry object The message entry to add Returns object The added entry or a result object AddError(string) Adds an error message to the default message kit. Apply ExceptionUtil.ShowException(Exception, object) if the error message comes from exception for better treatment. public static void AddError(string message) Parameters message string The message to write. AddException(Exception) Adds an exception to the default message kit. public static void AddException(Exception exception) Parameters exception Exception The exception to add. AddInfo(string) Adds an info message to the default message kit. public static void AddInfo(string message) Parameters message string The message to write. AddMessage(string) Adds a plain message to the default message kit. public static void AddMessage(string message) Parameters message string The message to write. AddProgress(string) Adds a progress message to the default message kit. public static void AddProgress(string message) Parameters message string The message to write. AddSuccess(string) Adds a success message to the default message kit. public static void AddSuccess(string message) Parameters message string The message to write. AddWarning(string) Adds a warning message to the default message kit. public static void AddWarning(string message) Parameters message string The message to write. Default_OnAdding(object) Default handler for message adding. public static object Default_OnAdding(object arg) Parameters arg object The message argument to be processed. Returns object The processed message argument. Events OnAdding Event triggered when a message is being added. Allows transforming or intercepting the entry before it is written. public event Func OnAdding Event Type Func" + "summary": "Class MessageHostUtil Namespace Hi.Common.Messages Assembly HiGeom.dll Utility methods for working with IMessageHost implementations. public static class MessageHostUtil Inheritance object MessageHostUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods AddError(IMessageHost, string, params string[]) Adds an Error message to the message host. public static object AddError(this IMessageHost host, string message, params string[] otherTags) Parameters host IMessageHost The message host message string The message content otherTags string[] Additional tags to associate with the message Returns object The result of adding the message AddException(IMessageHost, Exception, params string[]) Adds an Exception message to the message host. public static object AddException(this IMessageHost host, Exception exception, params string[] otherTags) Parameters host IMessageHost The message host exception Exception The exception to log otherTags string[] Additional tags to associate with the message Returns object The result of adding the message AddInfo(IMessageHost, string, params string[]) Adds an Info message to the message host. public static object AddInfo(this IMessageHost host, string message, params string[] otherTags) Parameters host IMessageHost The message host message string The message content otherTags string[] Additional tags to associate with the message Returns object The result of adding the message AddMessage(IMessageHost, string, params string[]) Adds a message with the specified tags to the message host. public static object AddMessage(this IMessageHost host, string msg, params string[] tags) Parameters host IMessageHost The message host msg string The message content tags string[] The tags to associate with the message Returns object The result of adding the message AddProgress(IMessageHost, string, params string[]) Adds a Progress message to the message host. public static object AddProgress(this IMessageHost host, string message, params string[] otherTags) Parameters host IMessageHost The message host message string The message content otherTags string[] Additional tags to associate with the message Returns object The result of adding the message AddSuccess(IMessageHost, string, params string[]) Adds a Success message to the message host. public static object AddSuccess(this IMessageHost host, string message, params string[] otherTags) Parameters host IMessageHost The message host message string The message content otherTags string[] Additional tags to associate with the message Returns object The result of adding the message AddWarning(IMessageHost, string, params string[]) Adds a warning message to the message host. public static object AddWarning(this IMessageHost host, string message, params string[] otherTags) Parameters host IMessageHost The message host message string The message content otherTags string[] Additional tags to associate with the message Returns object The result of adding the message" }, "api/Hi.Common.Messages.MultiTagMessage.html": { "href": "api/Hi.Common.Messages.MultiTagMessage.html", @@ -707,7 +712,7 @@ "api/Hi.Common.Messages.html": { "href": "api/Hi.Common.Messages.html", "title": "Namespace Hi.Common.Messages | HiAPI-C# 2025", - "summary": "Namespace Hi.Common.Messages Classes MessageBoardUtil Utility class for displaying messages on a message board. MessageHostUtil Utility methods for working with IMessageKit implementations. MessageKit Provides utility methods for handling messages. MultiTagMessage Represents a message with multiple tags for categorization and filtering. Interfaces IMessageKit Interface for objects that can host and manage messages. Enums BootstrapTheme Bootstrap theme colors for UI styling. MessageFlag Enumeration of common message types used for system notifications. Delegates ShowMessageBoardDelegate Delegate for showing message board notifications." + "summary": "Namespace Hi.Common.Messages Classes MessageBoardUtil Utility class for displaying messages on a message board. MessageHost Provides utility methods for handling messages. MessageHostUtil Utility methods for working with IMessageHost implementations. MultiTagMessage Represents a message with multiple tags for categorization and filtering. Interfaces IMessageHost Interface for objects that can host and manage messages. Enums BootstrapTheme Bootstrap theme colors for UI styling. MessageFlag Enumeration of common message types used for system notifications. Delegates ShowMessageBoardDelegate Delegate for showing message board notifications." }, "api/Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html": { "href": "api/Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html", @@ -762,7 +767,7 @@ "api/Hi.Common.PacePlayee.html": { "href": "api/Hi.Common.PacePlayee.html", "title": "Class PacePlayee | HiAPI-C# 2025", - "summary": "Class PacePlayee Namespace Hi.Common Assembly HiGeom.dll Represents an entity that can be controlled by the pace player. public class PacePlayee Inheritance object PacePlayee Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Player Gets the player that controls this playee. public PacePlayer Player { get; } Property Value PacePlayer Methods Pace() Waits for the player to signal the next pace. public void Pace()" + "summary": "Class PacePlayee Namespace Hi.Common Assembly HiGeom.dll Represents an entity that can be controlled by the pace player. public class PacePlayee Inheritance object PacePlayee Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Player Gets the player that controls this playee. public PacePlayer Player { get; } Property Value PacePlayer Methods Pace() A pausable mark for the playing process. The function enables Pause() to take effect. public void Pace() Remarks Waits for the player to signal the next pace." }, "api/Hi.Common.PacePlayer.html": { "href": "api/Hi.Common.PacePlayer.html", @@ -782,7 +787,7 @@ "api/Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html": { "href": "api/Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html", "title": "Class ParallelBulkWriter | HiAPI-C# 2025", - "summary": "Class ParallelBulkWriter Namespace Hi.Common.ParallelBulkUtils Assembly HiGeom.dll Parallel bulk writer that efficiently processes and writes data in parallel. The writing data is buffered and processed on a separate task to improve performance. public class ParallelBulkWriter : IDisposable where TData : class Type Parameters TData The type of data to write. Inheritance object ParallelBulkWriter Implements IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ParallelBulkWriter(Action>, int) Initializes a new instance of the ParallelBulkWriter class. public ParallelBulkWriter(Action> addAllFunc, int writingBufferCap = 131072) Parameters addAllFunc Action> The function used to add all data items to the destination. writingBufferCap int The capacity of the writing buffer. Default is 1024 * 128. Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) Releases the unmanaged resources used by the ParallelBulkWriter and optionally releases the managed resources. protected virtual void Dispose(bool disposing) Parameters disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources. Enqueue(TData) Adds a data item to the writing buffer for processing. public void Enqueue(TData step) Parameters step TData The data item to add. WaitAll() Waits for all data items in the buffer to be processed. public void WaitAll()" + "summary": "Class ParallelBulkWriter Namespace Hi.Common.ParallelBulkUtils Assembly HiGeom.dll Parallel bulk writer that efficiently processes and writes data in parallel. The writing data is buffered and processed on a separate task to improve performance. public class ParallelBulkWriter : IDisposable where TData : class Type Parameters TData The type of data to write. Inheritance object ParallelBulkWriter Implements IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ParallelBulkWriter(Action>, int) Initializes a new instance of the ParallelBulkWriter class. public ParallelBulkWriter(Action> addAllFunc, int writingBufferCap = 131072) Parameters addAllFunc Action> The function used to add all data items to the destination. writingBufferCap int The capacity of the writing buffer. Default is 1024 * 128. Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) Releases the unmanaged resources used by the ParallelBulkWriter and optionally releases the managed resources. protected virtual void Dispose(bool disposing) Parameters disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources. Enqueue(TData) Adds a data item to the writing buffer for processing. public void Enqueue(TData step) Parameters step TData The data item to add. Wait() Waits for all data items in the buffer to be processed. public void Wait()" }, "api/Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html": { "href": "api/Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html", @@ -832,7 +837,7 @@ "api/Hi.Common.PathUtils.PathUtil.html": { "href": "api/Hi.Common.PathUtils.PathUtil.html", "title": "Class PathUtil | HiAPI-C# 2025", - "summary": "Class PathUtil Namespace Hi.Common.PathUtils Assembly HiGeom.dll Utility class for path manipulation and management. public static class PathUtil Inheritance object PathUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields DotAlterWord Constant used to replace dots in HTTP string parameters. public const string DotAlterWord = \"-(dot)-\" Field Value string Methods Combine(string, string) Combines a base path with a subpath, ensuring consistent directory separators. public static string Combine(string basePath, string subPath) Parameters basePath string The base path subPath string The subpath to append Returns string The combined path with forward slashes as directory separators, or null if basePath is null Combine(params string[]) Combines multiple path segments, ensuring consistent directory separators. public static string Combine(params string[] paths) Parameters paths string[] The path segments to combine Returns string The combined path with forward slashes as directory separators CombineWithFolderExtension(string, string) Combines a base directory with a relative file path, preserving the folder structure. public static string CombineWithFolderExtension(string baseDirectory, string relFile) Parameters baseDirectory string The base directory relFile string The relative file path Returns string The combined path with forward slashes as directory separators CombineWithoutExtension(params string[]) Combines multiple path segments and removes the file extension from the result. public static string CombineWithoutExtension(params string[] paths) Parameters paths string[] The path segments to combine Returns string The combined path without file extension, using forward slashes as directory separators GetCombinedDirectoryName(string, string) Gets the directory name from a combined base directory and relative file path. public static string GetCombinedDirectoryName(string baseDirectory, string relFile) Parameters baseDirectory string The base directory relFile string The relative file path Returns string The directory name of the combined path with forward slashes as directory separators GetDirectoryName(string) Gets the directory name of a path, ensuring consistent directory separators. public static string GetDirectoryName(string path) Parameters path string The path to get the directory name from Returns string The directory name with forward slashes as directory separators, or null if the path has no directory component GetParentIgnoreTailSlash(string) Gets the parent directory of a path, ignoring any trailing slashes. public static string GetParentIgnoreTailSlash(this string path) Parameters path string The path to get the parent of Returns string The parent directory path GetPathByTemplate(string, string, string, string) Generates a path by replacing keywords in a template path. public static string GetPathByTemplate(string templatePath, string replacedPathKeyword, string replacedNameKeyword, string replacingPath) Parameters templatePath string The template path containing keywords to be replaced replacedPathKeyword string The path keyword to be replaced in the template replacedNameKeyword string The name keyword to be replaced in the template replacingPath string The path to use as replacement Returns string The processed path with keywords replaced GetRelativePath(string, string) Gets the relative path from one path to another, ensuring consistent directory separators. public static string GetRelativePath(string relativeTo, string path) Parameters relativeTo string The path that is the reference point path string The path to which the relative path is calculated Returns string The relative path with forward slashes as directory separators GetRelativePathIfIsDescendant(string, string) Gets the relative path if the target path is a descendant of the reference path; otherwise, returns the original path. public static string GetRelativePathIfIsDescendant(string relativeTo, string path) Parameters relativeTo string The path that is the reference point path string The path to which the relative path is calculated Returns string The relative path if path is a descendant of relativeTo; otherwise, the original path. Forward slashes are used as directory separators in either case. IsDescendant(DirectoryInfo, string) Determines whether a path is a descendant of a specified directory. public static bool IsDescendant(this DirectoryInfo ascendentDirectory, string descendantPath) Parameters ascendentDirectory DirectoryInfo The potential ancestor directory descendantPath string The path to check Returns bool True if the path is a descendant of the directory; otherwise, false IsDescendant(string, string) Determines whether a path is a descendant of a specified directory. public static bool IsDescendant(string ascendentDirectory, string descendantPath) Parameters ascendentDirectory string The potential ancestor directory path descendantPath string The path to check Returns bool True if the path is a descendant of the directory; otherwise, false IsDescendantByRelPath(string, string) Determines whether a path is a descendant of a specified directory using relative path calculation. public static bool IsDescendantByRelPath(string ascendentDirectory, string descendantPath) Parameters ascendentDirectory string The potential ancestor directory path descendantPath string The path to check Returns bool True if the path is a descendant of the directory; otherwise, false RemoveTailSlashIfExisted(string) Removes the trailing slash or backslash from a path if it exists. public static string RemoveTailSlashIfExisted(this string path) Parameters path string The path to process Returns string The path without a trailing slash or backslash ReplaceDirectorySeparator(string) Replaces backslashes with forward slashes in a path string. public static string ReplaceDirectorySeparator(this string src) Parameters src string The source path string Returns string The path string with all backslashes replaced by forward slashes" + "summary": "Class PathUtil Namespace Hi.Common.PathUtils Assembly HiGeom.dll Utility class for path manipulation and management. public static class PathUtil Inheritance object PathUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields DotAlterWord Constant used to replace dots in HTTP string parameters. public const string DotAlterWord = \"-(dot)-\" Field Value string Methods Combine(string, string) Combines a base path with a subpath, ensuring consistent directory separators. public static string Combine(string basePath, string subPath) Parameters basePath string The base path subPath string The subpath to append Returns string The combined path with forward slashes as directory separators, or null if basePath is null Combine(params string[]) Combines multiple path segments, ensuring consistent directory separators. public static string Combine(params string[] paths) Parameters paths string[] The path segments to combine Returns string The combined path with forward slashes as directory separators CombineWithFolderExtension(string, string) Combines a base directory with a relative file path, preserving the folder structure. public static string CombineWithFolderExtension(string baseDirectory, string relFile) Parameters baseDirectory string The base directory relFile string The relative file path Returns string The combined path with forward slashes as directory separators CombineWithoutExtension(params string[]) Combines multiple path segments and removes the file extension from the result. public static string CombineWithoutExtension(params string[] paths) Parameters paths string[] The path segments to combine Returns string The combined path without file extension, using forward slashes as directory separators GetCombinedDirectoryName(string, string) Gets the directory name from a combined base directory and relative file path. public static string GetCombinedDirectoryName(string baseDirectory, string relFile) Parameters baseDirectory string The base directory relFile string The relative file path Returns string The directory name of the combined path with forward slashes as directory separators GetDirectoryName(string) Gets the directory name of a path, ensuring consistent directory separators. public static string GetDirectoryName(string path) Parameters path string The path to get the directory name from Returns string The directory name with forward slashes as directory separators, or null if the path has no directory component GetParentIgnoreTailSlash(string) Gets the parent directory of a path, ignoring any trailing slashes. public static string GetParentIgnoreTailSlash(this string path) Parameters path string The path to get the parent of Returns string The parent directory path GetPathByTemplate(string, string, string, string) Generates a path by replacing keywords in a template path. public static string GetPathByTemplate(string templatePath, string replacingPath, string replacedPathKeyword, string replacedNameKeyword) Parameters templatePath string The template path containing keywords to be replaced replacingPath string The path to use as replacement replacedPathKeyword string The path keyword to be replaced in the template replacedNameKeyword string The name keyword to be replaced in the template Returns string The processed path with keywords replaced GetRelativePath(string, string) Gets the relative path from one path to another, ensuring consistent directory separators. public static string GetRelativePath(string relativeTo, string path) Parameters relativeTo string The path that is the reference point path string The path to which the relative path is calculated Returns string The relative path with forward slashes as directory separators GetRelativePathIfIsDescendant(string, string) Gets the relative path if the target path is a descendant of the reference path; otherwise, returns the original path. public static string GetRelativePathIfIsDescendant(string relativeTo, string path) Parameters relativeTo string The path that is the reference point path string The path to which the relative path is calculated Returns string The relative path if path is a descendant of relativeTo; otherwise, the original path. Forward slashes are used as directory separators in either case. IsDescendant(DirectoryInfo, string) Determines whether a path is a descendant of a specified directory. public static bool IsDescendant(this DirectoryInfo ascendentDirectory, string descendantPath) Parameters ascendentDirectory DirectoryInfo The potential ancestor directory descendantPath string The path to check Returns bool True if the path is a descendant of the directory; otherwise, false IsDescendant(string, string) Determines whether a path is a descendant of a specified directory. public static bool IsDescendant(string ascendentDirectory, string descendantPath) Parameters ascendentDirectory string The potential ancestor directory path descendantPath string The path to check Returns bool True if the path is a descendant of the directory; otherwise, false IsDescendantByRelPath(string, string) Determines whether a path is a descendant of a specified directory using relative path calculation. public static bool IsDescendantByRelPath(string ascendentDirectory, string descendantPath) Parameters ascendentDirectory string The potential ancestor directory path descendantPath string The path to check Returns bool True if the path is a descendant of the directory; otherwise, false RemoveTailSlashIfExisted(string) Removes the trailing slash or backslash from a path if it exists. public static string RemoveTailSlashIfExisted(this string path) Parameters path string The path to process Returns string The path without a trailing slash or backslash ReplaceDirectorySeparator(string) Replaces backslashes with forward slashes in a path string. public static string ReplaceDirectorySeparator(this string src) Parameters src string The source path string Returns string The path string with all backslashes replaced by forward slashes" }, "api/Hi.Common.PathUtils.html": { "href": "api/Hi.Common.PathUtils.html", @@ -967,7 +972,7 @@ "api/Hi.Common.html": { "href": "api/Hi.Common.html", "title": "Namespace Hi.Common | HiAPI-C# 2025", - "summary": "Namespace Hi.Common Classes BinIoUtil Utility class for binary I/O operations. BitUtil Utility for bit control for integer. BlockingTimer Timer use one task and delay each event call. The delay time is Period, counted from the previous trigger to the nest trigger. The first function call does no intending delay. If the execution time is over the Period, no delay between the triggers. BytesUtil Utility class for byte array operations and memory size conversions. ConcurrentTimeCounter Thread-safe utility for measuring and tracking execution time across multiple tasks. ConsoleUtil Utility class for console window operations. CppLogUtil Internal Use Only. CultureUtil Utility class for managing culture and localization settings. DebugUtil Debug utility provides functions: pause process, count execution time and show the count. DuplicateUtil Utility methods for duplication operations. EnumUtil Utility class for enum operations. EnumerablePlayer Run enumerable with Pause(), Resume() and etc. functions. ExceptionUtil Provides utility methods for handling exceptions. IndexSegment Represents a segment of indices with a beginning and ending point. Used for defining ranges of data in collections or arrays. IntegerKeyDictionaryConverter Converts dictionaries with string keys to dictionaries with integer keys for more efficient storage and lookup. IntegerKeyDictionaryConverter Generic version of IntegerKeyDictionaryConverter that works with a specific value type. InternalException Exception that represents an internal error that should never occur during normal operation. Used to indicate programming errors or unexpected states that require developer attention. InvokeUtil Utility class for method invocation operations. JsonUtil Helper utilities for reading and writing JSON files. LooseRunner Provides a mechanism for running actions asynchronously in a loose manner. Only the most recent action is executed and previous pending actions are discarded. ManualUtil Utility class for handling manual and documentation files with culture support. MaskUtil Utility for bits masking. NameUtil Utility class for handling object names and display names. PacePlayee Represents an entity that can be controlled by the pace player. PacePlayer Controls the pace execution of a task. Pair Editable pair values. Range Range from Min to Max. ResourceUtil Utility class for working with resource managers and localized strings. RoutineBlocker Block the thread to the given delay from the previous block. RoutineBlocker0 Block the thread to the given delay from the previous block. SeqPairUtil Utility class for SeqPair operations. SeqPair Represents a sequence pair containing previous and current values. Used to track sequential state changes of a value. ServerFileExplorerConfig Configuration for server file explorer functionality. Slice Designed for mongo large bytes splision. StringLocalizer Provides localization functionality for strings using resource managers. StringUtil Utility for managing text. TaskUtil Utility class for Task-related operations. TimeCounter A utility counts the average/total time consume between the Bound(object) areas. The count of time consume for the given key starts at the first time (and the odd time) calling Bound(object); stops and accumulates at the second time (and the even time). Interfaces IAbstractNote Interface for objects that provide an abstract description or note. IBinaryIo Interface for binary input/output operations. Extends IWriteBin to provide both read and write capabilities. IClearCache Interface for objects that can clear their internal cache. IDuplicate Interface for objects that support deep cloning/duplication. IGetQuantityByKey Interface for retrieving a quantity value using a string key. IGetSelectionName Interface for objects that can provide a name for selection purposes. INameNote Interface for objects that have a name and note property. IPreferredFileName Interface for objects that can specify a preferred file name. Generally used to suggest a name when generating or saving files. ISourceFile Interface for objects that have a source file. IUpdateByContent Interface for objects that can update themselves based on their content. IUriGetter Interface for retrieving a URI string. IWriteBin Interface for writing binary data. Enums BinarySearchResult Represents the result of a binary search operation. Delegates CppLogUtil.LogDelegate Internal Use Only. LooseRunner.MergedCancellationTokenRun Delegate for actions that accept a merged cancellation token. The merged token combines the runner's disposal token with an optional external cancellation token." + "summary": "Namespace Hi.Common Classes BinIoUtil Utility class for binary I/O operations. BitUtil Utility for bit control for integer. BlockingTimer Timer use one task and delay each event call. The delay time is Period, counted from the previous trigger to the nest trigger. The first function call does no intending delay. If the execution time is over the Period, no delay between the triggers. BytesUtil Utility class for byte array operations and memory size conversions. ConcurrentTimeCounter Thread-safe utility for measuring and tracking execution time across multiple tasks. ConsoleUtil Utility class for console window operations. CppLogUtil Internal Use Only. CultureUtil Utility class for managing culture and localization settings. DebugUtil Debug utility provides functions: pause process, count execution time and show the count. DuplicateUtil Utility methods for duplication operations. EnumUtil Utility class for enum operations. EnumerablePlayer Run enumerable with Pause(), Resume() and etc. functions. ExceptionUtil Provides utility methods for handling exceptions. IndexSegment Represents a segment of indices with a beginning (inclusive) and ending (exclusive> point. Used for defining segment of data in collections or arrays. IntegerKeyDictionaryConverter Converts dictionaries with string keys to dictionaries with integer keys for more efficient storage and lookup. IntegerKeyDictionaryConverter Generic version of IntegerKeyDictionaryConverter that works with a specific value type. InternalException Exception that represents an internal error that should never occur during normal operation. Used to indicate programming errors or unexpected states that require developer attention. InvokeUtil Utility class for method invocation operations. JsonUtil Helper utilities for reading and writing JSON files. LooseRunner Provides a mechanism for running actions asynchronously in a loose manner. Only the most recent action is executed and previous pending actions are discarded. ManualUtil Utility class for handling manual and documentation files with culture support. MaskUtil Utility for bits masking. NameUtil Utility class for handling object names and display names. PacePlayee Represents an entity that can be controlled by the pace player. PacePlayer Controls the pace execution of a task. Pair Editable pair values. Range Range from Min to Max. ResourceUtil Utility class for working with resource managers and localized strings. RoutineBlocker Block the thread to the given delay from the previous block. RoutineBlocker0 Block the thread to the given delay from the previous block. SeqPairUtil Utility class for SeqPair operations. SeqPair Represents a sequence pair containing previous and current values. Used to track sequential state changes of a value. ServerFileExplorerConfig Configuration for server file explorer functionality. Slice Designed for mongo large bytes splision. StringLocalizer Provides localization functionality for strings using resource managers. StringUtil Utility for managing text. TaskUtil Utility class for Task-related operations. TimeCounter A utility counts the average/total time consume between the Bound(object) areas. The count of time consume for the given key starts at the first time (and the odd time) calling Bound(object); stops and accumulates at the second time (and the even time). Interfaces IAbstractNote Interface for objects that provide an abstract description or note. IBinaryIo Interface for binary input/output operations. Extends IWriteBin to provide both read and write capabilities. IClearCache Interface for objects that can clear their internal cache. IDuplicate Interface for objects that support deep cloning/duplication. IGetQuantityByKey Interface for retrieving a quantity value using a string key. IGetSelectionName Interface for objects that can provide a name for selection purposes. INameNote Interface for objects that have a name and note property. IPreferredFileName Interface for objects that can specify a preferred file name. Generally used to suggest a name when generating or saving files. ISourceFile Interface for objects that have a source file. IUpdateByContent Interface for objects that can update themselves based on their content. IUriGetter Interface for retrieving a URI string. IWriteBin Interface for writing binary data. Enums BinarySearchResult Represents the result of a binary search operation. Delegates CppLogUtil.LogDelegate Internal Use Only. LooseRunner.MergedCancellationTokenRun Delegate for actions that accept a merged cancellation token. The merged token combines the runner's disposal token with an optional external cancellation token." }, "api/Hi.CutterLocations.ClPath.ClCircleArc.html": { "href": "api/Hi.CutterLocations.ClPath.ClCircleArc.html", @@ -992,7 +997,7 @@ "api/Hi.CutterLocations.ClStrips.ClStrip.html": { "href": "api/Hi.CutterLocations.ClStrips.ClStrip.html", "title": "Class ClStrip | HiAPI-C# 2025", - "summary": "Class ClStrip Namespace Hi.CutterLocations.ClStrips Assembly HiMech.dll Represents a CL (Cutter Location) strip for 3D display. This class manages the display and interaction of cutter location points and lines. public class ClStrip : IDisplayee, IExpandToBox3d, IDisposable Inheritance object ClStrip Implements IDisplayee IExpandToBox3d IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) BoundSelectorUtil.GetStepRange(ClStrip, BoundSelectorPair) DispUtil.Display(IDisplayee, Bind, Mat4d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ClStrip(int) Initializes a new instance of the ClStrip class. public ClStrip(int cap = 2048) Parameters cap int The initial capacity of the strip Fields slice_distance The distance between slices for efficient rendering. public const int slice_distance = 8192 Field Value int Properties AbsDispEnd Gets the absolute display end position. If the display end is set to -1, returns the total number of positions. public int AbsDispEnd { get; } Property Value int CallRefreshDrawing internal use public bool CallRefreshDrawing { get; } Property Value bool IsKeepingDispAlive Keep the disp range to at least two dots while the stripe length enough. public bool IsKeepingDispAlive { get; set; } Property Value bool IsShowDot Gets or sets whether to display dots at each position. public bool IsShowDot { get; set; } Property Value bool StripPoses Gets the list of strip positions. Do not add or remove elements directly. public SynList StripPoses { get; } Property Value SynList StripPosesClearLock Gets the lock for thread-safe operations on strip positions. public ReaderWriterLockSlim StripPosesClearLock { get; } Property Value ReaderWriterLockSlim StripPosesCount Gets the thread-safe count of strip positions. public int StripPosesCount { get; } Property Value int Methods Add(object, DVec3d) Adds a new position to the strip. public ClStripPos Add(object state, DVec3d programCl) Parameters state object The state object associated with the position programCl DVec3d The cutter location Returns ClStripPos The newly created strip position Clear(object) Clears all strip positions and resets the display state. public void Clear(object sender) Parameters sender object The object that initiated this clear operation Display(Bind) Displays the strip. public void Display(Bind bind) Parameters bind Bind The binding context for display Dispose() Disposes of the resources used by this strip. public void Dispose() Dispose(bool) Disposes of the resources used by this strip. protected virtual void Dispose(bool disposing) Parameters disposing bool Whether this is being called from Dispose ExpandToBox3d(Box3d) Expands the given box to include all strip positions. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The box to expand GetDispBegin() Gets the current display begin position. public int GetDispBegin() Returns int The display begin position GetDispEnd() Gets the current display end position. A value of -1 indicates that the display should follow the end of the strip. public int GetDispEnd() Returns int The display end position GetEnteredPos() Gets the currently entered position. public ClStripPos GetEnteredPos() Returns ClStripPos The entered position GetFittingView(Mat4d, Mat4d) Gets a scaled fitting view based on the strip display range. public Mat4d GetFittingView(Mat4d sketchView, Mat4d clStripZeroToRoot = null) Parameters sketchView Mat4d The sketch view matrix clStripZeroToRoot Mat4d The transformation from strip zero to root Returns Mat4d The scaled fitting view matrix GetSelectedPos() Gets the currently selected position. public ClStripPos GetSelectedPos() Returns ClStripPos The selected position GetStripPos(int, bool) Gets a strip position by index. public ClStripPos GetStripPos(int index, bool isLocked = false) Parameters index int The index of the position isLocked bool Whether the strip positions are already locked Returns ClStripPos The strip position at the specified index RefreshDrawing() Marks the drawing for refresh. public void RefreshDrawing() RefreshDrawingInRendering(bool) internal use public void RefreshDrawingInRendering(bool isLocked) Parameters isLocked bool SetDispBegin(int, object) Sets the display begin position. public void SetDispBegin(int value, object caller) Parameters value int The new display begin position caller object The object that initiated this change SetDispEnd(int, object) Sets the display end position. A value of -1 indicates that the display should follow the end of the strip. public void SetDispEnd(int value, object caller) Parameters value int The new display end position caller object The object that initiated this change SetDispRange(int, int, object, int) Sets the display range for the cutter location strip. public void SetDispRange(int beginIndex, int endIndex, object caller, int lowestLength = 2) Parameters beginIndex int The beginning index of the display range. endIndex int The ending index of the display range. caller object The caller object that requests the display range change. lowestLength int The minimum length of the display range. Default is 2. SetEnteredPos(ClStripPos, object) Sets the currently entered position. public void SetEnteredPos(ClStripPos value, object sender) Parameters value ClStripPos The new entered position sender object The object that initiated this change SetSelectedPos(ClStripPos, object) Sets the currently selected position. public void SetSelectedPos(ClStripPos value, object sender) Parameters value ClStripPos The new selected position sender object The object that initiated this change ShrinkAttachmentMemory(CancellationToken?) Shrinks the attachment memory for all positions. public void ShrinkAttachmentMemory(CancellationToken? cancellationToken = null) Parameters cancellationToken CancellationToken? StripPosesThreadSafeSelect(Func) Thread-safe selection of strip positions. public List StripPosesThreadSafeSelect(Func func) Parameters func Func The function to transform each strip position Returns List A list of transformed strip positions Type Parameters T The type of the selected data Events AbsDispEndChanged Event raised when the absolute display end position changes. public event EventHandler AbsDispEndChanged Event Type EventHandler DispBeginChanged Event raised when the display begin position changes. public event EventHandler DispBeginChanged Event Type EventHandler DispEndChanged Event raised when the display end position changes. public event EventHandler DispEndChanged Event Type EventHandler DrawingRefreshing Event raised when the drawing is being refreshed. public event EventHandler DrawingRefreshing Event Type EventHandler MachiningStepSelected The same effecting position as PosSelected but with more convenient arguments for the end-user. public event Action MachiningStepSelected Event Type Action PosAdded Event raised when a new position is added to the strip. public event Action PosAdded Event Type Action PosEntered Event raised when the mouse enters a position. public event EventHandler PosEntered Event Type EventHandler PosSelected Event raised when a position is selected. public event EventHandler PosSelected Event Type EventHandler StaticPosSelected Static event raised when any position is selected. public static event EventHandler StaticPosSelected Event Type EventHandler" + "summary": "Class ClStrip Namespace Hi.CutterLocations.ClStrips Assembly HiMech.dll Represents a CL (Cutter Location) strip for 3D display. This class manages the display and interaction of cutter location points and lines. public class ClStrip : IDisplayee, IExpandToBox3d, IDisposable Inheritance object ClStrip Implements IDisplayee IExpandToBox3d IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) BoundSelectorUtil.GetStepRange(ClStrip, BoundSelectorPair) DispUtil.Display(IDisplayee, Bind, Mat4d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ClStrip(int) Initializes a new instance of the ClStrip class. public ClStrip(int cap = 2048) Parameters cap int The initial capacity of the strip Fields slice_distance The distance between slices for efficient rendering. public const int slice_distance = 8192 Field Value int Properties AbsDispEnd Gets the absolute display end position. If the display end is set to -1, returns the total number of positions. public int AbsDispEnd { get; } Property Value int CallRefreshDrawing internal use public bool CallRefreshDrawing { get; } Property Value bool IsKeepingDispAlive Keep the disp range to at least two dots while the stripe length enough. public bool IsKeepingDispAlive { get; set; } Property Value bool IsShowDot Gets or sets whether to display dots at each position. public bool IsShowDot { get; set; } Property Value bool StripPoses Gets the list of strip positions. Do not add or remove elements directly. public SynList StripPoses { get; } Property Value SynList StripPosesClearLock Gets the lock for thread-safe operations on strip positions. public ReaderWriterLockSlim StripPosesClearLock { get; } Property Value ReaderWriterLockSlim StripPosesCount Gets the thread-safe count of strip positions. public int StripPosesCount { get; } Property Value int Methods Add(object, DVec3d) Adds a new position to the strip. public ClStripPos Add(object state, DVec3d programCl) Parameters state object The state object associated with the position programCl DVec3d The cutter location Returns ClStripPos The newly created strip position Clear(object) Clears all strip positions and resets the display state. public void Clear(object sender) Parameters sender object The object that initiated this clear operation Display(Bind) Displays the strip. public void Display(Bind bind) Parameters bind Bind The binding context for display Dispose() Disposes of the resources used by this strip. public void Dispose() Dispose(bool) Disposes of the resources used by this strip. protected virtual void Dispose(bool disposing) Parameters disposing bool Whether this is being called from Dispose ExpandToBox3d(Box3d) Expands the given box to include all strip positions. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The box to expand GetDispBegin() Gets the current display begin position. public int GetDispBegin() Returns int The display begin position GetDispEnd() Gets the current display end position. A value of -1 indicates that the display should follow the end of the strip. public int GetDispEnd() Returns int The display end position GetEnteredPos() Gets the currently entered position. public ClStripPos GetEnteredPos() Returns ClStripPos The entered position GetFittingView(Mat4d, Mat4d) Gets a scaled fitting view based on the strip display range. public Mat4d GetFittingView(Mat4d sketchView, Mat4d clStripZeroToRoot = null) Parameters sketchView Mat4d The sketch view matrix clStripZeroToRoot Mat4d The transformation from strip zero to root Returns Mat4d The scaled fitting view matrix GetSelectedPos() Gets the currently selected position. public ClStripPos GetSelectedPos() Returns ClStripPos The selected position GetStripPos(int, bool) Gets a strip position by index. public ClStripPos GetStripPos(int index, bool isLocked = false) Parameters index int The index of the position isLocked bool Whether the strip positions are already locked Returns ClStripPos The strip position at the specified index RefreshDrawing() Marks the drawing for refresh. public void RefreshDrawing() RefreshDrawingInRendering(bool) internal use public void RefreshDrawingInRendering(bool isLocked) Parameters isLocked bool SetDispBegin(int, object) Sets the display begin position. public void SetDispBegin(int value, object caller) Parameters value int The new display begin position caller object The object that initiated this change SetDispEnd(int, object) Sets the display end position. A value of -1 indicates that the display should follow the end of the strip. public void SetDispEnd(int value, object caller) Parameters value int The new display end position caller object The object that initiated this change SetDispRange(int, int, object, int) Sets the display range for the cutter location strip. This method sets both the beginning and ending positions of the display range. public void SetDispRange(int beginIndex, int endIndex, object caller, int lowestLength = 2) Parameters beginIndex int The beginning index of the display range. Will be clamped to [0, StripPoses.Count - 1]. endIndex int The ending index of the display range. A value of -1 indicates that the display should follow the end of the strip. Values greater than or equal to StripPoses.Count will be converted to -1. Will be clamped to [-1, StripPoses.Count]. caller object The caller object that requests the display range change. Used for event notifications. lowestLength int The minimum length of the display range. Currently not used in the implementation. Default is 2. SetEnteredPos(ClStripPos, object) Sets the currently entered position. public void SetEnteredPos(ClStripPos value, object sender) Parameters value ClStripPos The new entered position sender object The object that initiated this change SetSelectedPos(ClStripPos, object) Sets the currently selected position. public void SetSelectedPos(ClStripPos value, object sender) Parameters value ClStripPos The new selected position sender object The object that initiated this change ShrinkAttachmentMemory(CancellationToken?) Shrinks the attachment memory for all positions. public void ShrinkAttachmentMemory(CancellationToken? cancellationToken = null) Parameters cancellationToken CancellationToken? StripPosesThreadSafeSelect(Func) Thread-safe selection of strip positions. public List StripPosesThreadSafeSelect(Func func) Parameters func Func The function to transform each strip position Returns List A list of transformed strip positions Type Parameters T The type of the selected data Events AbsDispEndChanged Event raised when the absolute display end position changes. public event EventHandler AbsDispEndChanged Event Type EventHandler DispBeginChanged Event raised when the display begin position changes. public event EventHandler DispBeginChanged Event Type EventHandler DispEndChanged Event raised when the display end position changes. public event EventHandler DispEndChanged Event Type EventHandler DrawingRefreshing Event raised when the drawing is being refreshed. public event EventHandler DrawingRefreshing Event Type EventHandler MachiningStepSelected The same effecting position as PosSelected but with more convenient arguments for the end-user. public event Action MachiningStepSelected Event Type Action PosAdded Event raised when a new position is added to the strip. public event Action PosAdded Event Type Action PosEntered Event raised when the mouse enters a position. public event EventHandler PosEntered Event Type EventHandler PosSelected Event raised when a position is selected. public event EventHandler PosSelected Event Type EventHandler StaticPosSelected Static event raised when any position is selected. public static event EventHandler StaticPosSelected Event Type EventHandler" }, "api/Hi.CutterLocations.ClStrips.ClStripPos.html": { "href": "api/Hi.CutterLocations.ClStrips.ClStripPos.html", @@ -1292,7 +1297,7 @@ "api/Hi.Geom.Box3d.html": { "href": "api/Hi.Geom.Box3d.html", "title": "Class Box3d | HiAPI-C# 2025", - "summary": "Class Box3d Namespace Hi.Geom Assembly HiGeom.dll Lightweight 3d box. An orthogonal box which the edges are all parallel with Cartesian Coordinate. The data contains in a Box3d is Min and Max. public class Box3d : IExpandToBox3d, IEquatable, IStlSource, IGetStl, IMakeXmlSource, IBinaryIo, IWriteBin, IDuplicate, IFormattable Inheritance object Box3d Implements IExpandToBox3d IEquatable IStlSource IGetStl IMakeXmlSource IBinaryIo IWriteBin IDuplicate IFormattable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) XmlUtil.MakeXmlSourceFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceWithRebaseFile(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) PairZrUtil.GetZrList(IGetStl) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Box3d() Ctor. public Box3d() Box3d(NoInit) Ctor. The Ctor keeps Min and Max to null. public Box3d(Box3d.NoInit noInit) Parameters noInit Box3d.NoInit Box3d(params IExpandToBox3d[]) Creates a box that encompasses all the provided expandable objects. public Box3d(params IExpandToBox3d[] src) Parameters src IExpandToBox3d[] Array of objects that can expand to a box Box3d(Vec3d, Vec3d) Ctor. public Box3d(Vec3d min, Vec3d max) Parameters min Vec3d Min max Vec3d Max Box3d(box3d) Ctor. public Box3d(box3d src) Parameters src box3d src Box3d(IEnumerable) Creates a box that encompasses all the provided expandable objects. public Box3d(IEnumerable src) Parameters src IEnumerable Collection of objects that can expand to a box Box3d(double, double, double, double, double, double) Creates a box with the specified minimum and maximum coordinates. public Box3d(double minx, double miny, double minz, double maxx, double maxy, double maxz) Parameters minx double Minimum X coordinate miny double Minimum Y coordinate minz double Minimum Z coordinate maxx double Maximum X coordinate maxy double Maximum Y coordinate maxz double Maximum Z coordinate Box3d(BinaryReader) Creates a box from binary data. public Box3d(BinaryReader reader) Parameters reader BinaryReader Binary reader to read the box data from Box3d(XElement) Ctor. public Box3d(XElement src) Parameters src XElement XML Properties BottomCenter Center of the bottom surface. public Vec3d BottomCenter { get; } Property Value Vec3d BottomView Gets a transformation matrix for viewing the box from the bottom. public Mat4d BottomView { get; } Property Value Mat4d Center Center public Vec3d Center { get; } Property Value Vec3d CenterUnitBox Generate a center unit box which min~max is (-0.5,-0.5,-0.5)~(0.5,0.5,0.5). public static Box3d CenterUnitBox { get; } Property Value Box3d DiagonalLength Diagonal length. public double DiagonalLength { get; } Property Value double Dim Dimension. public Vec3d Dim { get; } Property Value Vec3d FrontView Gets a transformation matrix for viewing the box from the front. public Mat4d FrontView { get; } Property Value Mat4d HasVolume Checks if the box has a positive volume (all dimensions are greater than zero). public bool HasVolume { get; } Property Value bool InfiniteBox Generate a infinite box which min~max is (-∞,-∞,-∞)~(∞,∞,∞). public static Box3d InfiniteBox { get; } Property Value Box3d IsAllNaN True if all components of Min and Max are NaN. public bool IsAllNaN { get; } Property Value bool IsFinite True if the box is finite. public bool IsFinite { get; } Property Value bool IsReversedPoleBox True if the box is ReversedPoleBox public bool IsReversedPoleBox { get; } Property Value bool IsometricView Gets a transformation matrix for viewing the box from an isometric perspective. public Mat4d IsometricView { get; } Property Value Mat4d LeftSideView Gets a transformation matrix for viewing the box from the left side. public Mat4d LeftSideView { get; } Property Value Mat4d Max Maximum point of the box. public Vec3d Max { get; set; } Property Value Vec3d Min Minimum point of the box. public Vec3d Min { get; set; } Property Value Vec3d NaN Generate a nan box which min~max is (nan,nan,nan)~(nan,nan,nan). public static Box3d NaN { get; } Property Value Box3d NativeByteSize Gets the native byte size of a Box3d (2 Vec3d objects). public static int NativeByteSize { get; } Property Value int RearView Gets a transformation matrix for viewing the box from the rear. public Mat4d RearView { get; } Property Value Mat4d ReversedPoleBox Generate a reversed pole box which min~max is (∞,∞,∞)~(-∞,-∞,-∞). public static Box3d ReversedPoleBox { get; } Property Value Box3d RightSideView Gets a transformation matrix for viewing the box from the right side. public Mat4d RightSideView { get; } Property Value Mat4d TopCenter Center of the top surface. public Vec3d TopCenter { get; } Property Value Vec3d TopView Gets a transformation matrix for viewing the box from the top. public Mat4d TopView { get; } Property Value Mat4d UnitBox Generate a unit box which min~max is (0,0,0)~(1,1,1). public static Box3d UnitBox { get; } Property Value Box3d Volume Gets the volume of the box. public double Volume { get; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string ZeroBox Generate a zero box which min~max is (0,0,0)~(0,0,0). public static Box3d ZeroBox { get; } Property Value Box3d Methods ApexAt(int) Get Apex at the box. public Vec3d ApexAt(int index) Parameters index int index 0~7. all of 8 apex. Returns Vec3d Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object Equals(Box3d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Box3d other) Parameters other Box3d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. Expand(Box3d) Expands this box to include another box. public Box3d Expand(Box3d src) Parameters src Box3d The box to include Returns Box3d This box after expansion Expand(Vec3d) Expands the box to include the specified point. public Box3d Expand(Vec3d p) Parameters p Vec3d Point to include in the box Returns Box3d This box after expansion ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetStl() Generate Stl. public Stl GetStl() Returns Stl stl GetTransformedBoundingBox(Mat4d) Get the bounding box of the transformed box. public Box3d GetTransformedBoundingBox(Mat4d mat) Parameters mat Mat4d matrix Returns Box3d GetTris(ICollection) Generates triangles representing the box's surfaces. public int GetTris(ICollection dst) Parameters dst ICollection Collection to add the triangles to Returns int The number of triangles added (12) IsOverlapped(Box3d) Is the box overlapped to otherBox. public bool IsOverlapped(Box3d otherBox) Parameters otherBox Box3d other box Returns bool is overlapped MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. MemberAt(int) Get member at the location. public Vec3d MemberAt(int iter) Parameters iter int iterator Returns Vec3d Minif iter is 0; otherwise, return Max ReadBin(BinaryReader) Reads box data from a binary reader. public void ReadBin(BinaryReader reader) Parameters reader BinaryReader Binary reader to read the box data from ScaleFromCenter(double) Scales the box from its center point. public Box3d ScaleFromCenter(double s) Parameters s double Scale factor Returns Box3d This box after scaling Set(Box3d) Copy the src. The Min and Max are kept the same object. Only the double values changed. public Box3d Set(Box3d src) Parameters src Box3d src Returns Box3d this Set(box3d) Copy the src. The Min and Max are kept the same object. Only the double values changed. public Box3d Set(box3d src) Parameters src box3d src Returns Box3d this Set(double, double, double, double, double, double) Sets the box coordinates to the specified values. public Box3d Set(double minx, double miny, double minz, double maxx, double maxy, double maxz) Parameters minx double Minimum X coordinate miny double Minimum Y coordinate minz double Minimum Z coordinate maxx double Maximum X coordinate maxy double Maximum Y coordinate maxz double Maximum Z coordinate Returns Box3d This box after modification SetToTransformedBoundingBox(Mat4d) Set the box to the bounding box of the matrix-transformed box. public Box3d SetToTransformedBoundingBox(Mat4d mat) Parameters mat Mat4d matrix Returns Box3d this ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToString(string, IFormatProvider) Returns a string representation of the box formatted according to the specified format. public string ToString(string format, IFormatProvider formatProvider) Parameters format string The format to use for each component formatProvider IFormatProvider The format provider to use Returns string A formatted string representation of the box Translate(Vec3d) Translate the box. public Box3d Translate(Vec3d vec) Parameters vec Vec3d translation vector Returns Box3d this WriteBin(BinaryWriter) Writes box data to a binary writer. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter Binary writer to write the box data to" + "summary": "Class Box3d Namespace Hi.Geom Assembly HiGeom.dll Lightweight 3d box. An orthogonal box which the edges are all parallel with Cartesian Coordinate. The data contains in a Box3d is Min and Max. public class Box3d : IExpandToBox3d, IEquatable, IStlSource, IGetStl, IMakeXmlSource, IBinaryIo, IWriteBin, IDuplicate, IFormattable Inheritance object Box3d Implements IExpandToBox3d IEquatable IStlSource IGetStl IMakeXmlSource IBinaryIo IWriteBin IDuplicate IFormattable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) XmlUtil.MakeXmlSourceFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceWithRebaseFile(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) PairZrUtil.GetZrList(IGetStl) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Box3d() Ctor. public Box3d() Box3d(NoInit) Ctor. The Ctor keeps Min and Max to null. public Box3d(Box3d.NoInit noInit) Parameters noInit Box3d.NoInit Box3d(params IExpandToBox3d[]) Creates a box that encompasses all the provided expandable objects. public Box3d(params IExpandToBox3d[] src) Parameters src IExpandToBox3d[] Array of objects that can expand to a box Box3d(Vec3d, Vec3d) Ctor. public Box3d(Vec3d min, Vec3d max) Parameters min Vec3d Min max Vec3d Max Box3d(box3d) Ctor. public Box3d(box3d src) Parameters src box3d src Box3d(IEnumerable) Creates a box that encompasses all the provided expandable objects. public Box3d(IEnumerable src) Parameters src IEnumerable Collection of objects that can expand to a box Box3d(double, double, double, double, double, double) Creates a box with the specified minimum and maximum coordinates. public Box3d(double minx, double miny, double minz, double maxx, double maxy, double maxz) Parameters minx double Minimum X coordinate miny double Minimum Y coordinate minz double Minimum Z coordinate maxx double Maximum X coordinate maxy double Maximum Y coordinate maxz double Maximum Z coordinate Box3d(BinaryReader) Creates a box from binary data. public Box3d(BinaryReader reader) Parameters reader BinaryReader Binary reader to read the box data from Box3d(XElement) Ctor. public Box3d(XElement src) Parameters src XElement XML Properties BottomCenter Center of the bottom surface. public Vec3d BottomCenter { get; } Property Value Vec3d BottomView Gets a transformation matrix for viewing the box from the bottom. public Mat4d BottomView { get; } Property Value Mat4d Center Center public Vec3d Center { get; } Property Value Vec3d CenterUnitBox Generate a center unit box which min~max is (-0.5,-0.5,-0.5)~(0.5,0.5,0.5). public static Box3d CenterUnitBox { get; } Property Value Box3d DiagonalLength Diagonal length. public double DiagonalLength { get; } Property Value double Dim Dimension. public Vec3d Dim { get; } Property Value Vec3d FrontView Gets a transformation matrix for viewing the box from the front. public Mat4d FrontView { get; } Property Value Mat4d HasVolume Checks if the box has a positive volume (all dimensions are greater than zero). public bool HasVolume { get; } Property Value bool InfiniteBox Generate a infinite box which min~max is (-∞,-∞,-∞)~(∞,∞,∞). public static Box3d InfiniteBox { get; } Property Value Box3d IsAllNaN True if all components of Min and Max are NaN. public bool IsAllNaN { get; } Property Value bool IsFinite True if the box is finite. public bool IsFinite { get; } Property Value bool IsReversedPoleBox True if the box is ReversedPoleBox public bool IsReversedPoleBox { get; } Property Value bool IsometricView Gets a transformation matrix for viewing the box from an isometric perspective. public Mat4d IsometricView { get; } Property Value Mat4d LeftSideView Gets a transformation matrix for viewing the box from the left side. public Mat4d LeftSideView { get; } Property Value Mat4d Max Maximum point of the box. public Vec3d Max { get; set; } Property Value Vec3d Min Minimum point of the box. public Vec3d Min { get; set; } Property Value Vec3d NaN Generate a nan box which min~max is (nan,nan,nan)~(nan,nan,nan). public static Box3d NaN { get; } Property Value Box3d NativeByteSize Gets the native byte size of a Box3d (2 Vec3d objects). public static int NativeByteSize { get; } Property Value int RearView Gets a transformation matrix for viewing the box from the rear. public Mat4d RearView { get; } Property Value Mat4d ReversedPoleBox Generate a reversed pole box which min~max is (∞,∞,∞)~(-∞,-∞,-∞). public static Box3d ReversedPoleBox { get; } Property Value Box3d RightSideView Gets a transformation matrix for viewing the box from the right side. public Mat4d RightSideView { get; } Property Value Mat4d TopCenter Center of the top surface. public Vec3d TopCenter { get; } Property Value Vec3d TopView Gets a transformation matrix for viewing the box from the top. public Mat4d TopView { get; } Property Value Mat4d UnitBox Generate a unit box which min~max is (0,0,0)~(1,1,1). public static Box3d UnitBox { get; } Property Value Box3d Volume Gets the volume of the box. public double Volume { get; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string ZeroBox Generate a zero box which min~max is (0,0,0)~(0,0,0). public static Box3d ZeroBox { get; } Property Value Box3d Methods ApexAt(int) Get Apex at the box. public Vec3d ApexAt(int index) Parameters index int index 0~7. all of 8 apex. Returns Vec3d Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object Equals(Box3d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Box3d other) Parameters other Box3d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. Expand(Box3d) Expands this box to include another box. public Box3d Expand(Box3d src) Parameters src Box3d The box to include Returns Box3d This box after expansion Expand(Vec3d) Expands the box to include the specified point. public Box3d Expand(Vec3d p) Parameters p Vec3d Point to include in the box Returns Box3d This box after expansion Expand(IEnumerable) public Box3d Expand(IEnumerable ps) Parameters ps IEnumerable Returns Box3d ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetStl() Generate Stl. public Stl GetStl() Returns Stl stl GetTransformedBoundingBox(Mat4d) Get the bounding box of the transformed box. public Box3d GetTransformedBoundingBox(Mat4d mat) Parameters mat Mat4d matrix Returns Box3d GetTris(ICollection) Generates triangles representing the box's surfaces. public int GetTris(ICollection dst) Parameters dst ICollection Collection to add the triangles to Returns int The number of triangles added (12) IsOverlapped(Box3d) Is the box overlapped to otherBox. public bool IsOverlapped(Box3d otherBox) Parameters otherBox Box3d other box Returns bool is overlapped MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. MemberAt(int) Get member at the location. public Vec3d MemberAt(int iter) Parameters iter int iterator Returns Vec3d Minif iter is 0; otherwise, return Max ReadBin(BinaryReader) Reads box data from a binary reader. public void ReadBin(BinaryReader reader) Parameters reader BinaryReader Binary reader to read the box data from ScaleFromCenter(double) Scales the box from its center point. public Box3d ScaleFromCenter(double s) Parameters s double Scale factor Returns Box3d This box after scaling Set(Box3d) Copy the src. The Min and Max are kept the same object. Only the double values changed. public Box3d Set(Box3d src) Parameters src Box3d src Returns Box3d this Set(box3d) Copy the src. The Min and Max are kept the same object. Only the double values changed. public Box3d Set(box3d src) Parameters src box3d src Returns Box3d this Set(double, double, double, double, double, double) Sets the box coordinates to the specified values. public Box3d Set(double minx, double miny, double minz, double maxx, double maxy, double maxz) Parameters minx double Minimum X coordinate miny double Minimum Y coordinate minz double Minimum Z coordinate maxx double Maximum X coordinate maxy double Maximum Y coordinate maxz double Maximum Z coordinate Returns Box3d This box after modification SetToTransformedBoundingBox(Mat4d) Set the box to the bounding box of the matrix-transformed box. public Box3d SetToTransformedBoundingBox(Mat4d mat) Parameters mat Mat4d matrix Returns Box3d this ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToString(string, IFormatProvider) Returns a string representation of the box formatted according to the specified format. public string ToString(string format, IFormatProvider formatProvider) Parameters format string The format to use for each component formatProvider IFormatProvider The format provider to use Returns string A formatted string representation of the box Translate(Vec3d) Translate the box. public Box3d Translate(Vec3d vec) Parameters vec Vec3d translation vector Returns Box3d this WriteBin(BinaryWriter) Writes box data to a binary writer. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter Binary writer to write the box data to" }, "api/Hi.Geom.Cylindroid.html": { "href": "api/Hi.Geom.Cylindroid.html", @@ -1467,12 +1472,12 @@ "api/Hi.Geom.Solvers.BinarySolverUtil.html": { "href": "api/Hi.Geom.Solvers.BinarySolverUtil.html", "title": "Class BinarySolverUtil | HiAPI-C# 2025", - "summary": "Class BinarySolverUtil Namespace Hi.Geom.Solvers Assembly HiGeom.dll Utility class providing binary solving methods for one-dimensional functions. public static class BinarySolverUtil Inheritance object BinarySolverUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods CenterSplitionSolve(Func, Range, Vec2d, double, double, Func, int) Efficient center splitting solve that uses an initial point (x0, y0) within the boundary to save one function evaluation. The algorithm intelligently chooses the optimal boundary points based on the initial point position. public static IEnumerable CenterSplitionSolve(Func func, Range xBoundary, Vec2d x0y0, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve xBoundary Range Boundary of the search interval. The order of Min and Max is not mattered, i.e. they can be reversed. x0y0 Vec2d Initial x,y value (x0,func(x0)) yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution CenterSplitionSolve(Func, Range, double, double, double, Func, int) Solves for a target y-value using the center splitting method with a boundary range and initial x value. public static IEnumerable CenterSplitionSolve(Func func, Range xBoundary, double x0, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve xBoundary Range Boundary of the search interval x0 double Initial x value (must be within the boundary) yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution CenterSplitionSolve(Func, Range, double, double, Func, int) Solves for a target y-value using the center splitting method with a boundary range. public static IEnumerable CenterSplitionSolve(Func func, Range xBoundary, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve xBoundary Range Boundary of the search interval yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution CenterSplitionSolve(Func, double, double, double, double, double, Func, int) Solves for a target y-value using the center splitting method. public static IEnumerable CenterSplitionSolve(Func func, double x0, double y0, double xBoundary, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve x0 double Initial x value y0 double Initial y value (func(x0)) xBoundary double extended side boundary yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution CenterSplitionSolveWithY1(Func, double, double, double, double, double, double, Func, int) Solves for a target y-value using the center splitting method with a pre-calculated y1 value. public static IEnumerable CenterSplitionSolveWithY1(Func func, double x0, double y0, double x1, double y1, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve x0 double Initial x value y0 double Initial y value (func(x0)) x1 double Second x value y1 double Second y value (func(x1)) yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution SlopeSolve(Func, double, double, double, double, double, int) Solves for a target y-value using the slope method. public static IEnumerable SlopeSolve(Func func, double x0, double y0, double x1, double yTarget, double convergenceLimit, int maxIteration = 12) Parameters func Func The function to solve x0 double Initial x value y0 double Initial y value (func(x0)) x1 double Second x value yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution SlopeSolveWithY1(Func, double, double, double, double, double, double, int) Solves for a target y-value using the slope method with a pre-calculated y1 value. public static IEnumerable SlopeSolveWithY1(Func func, double x0, double y0, double x1, double y1, double yTarget, double convergenceLimit, int maxIteration = 12) Parameters func Func The function to solve x0 double Initial x value y0 double Initial y value (func(x0)) x1 double Second x value y1 double Second y value (func(x1)) yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution" + "summary": "Class BinarySolverUtil Namespace Hi.Geom.Solvers Assembly HiGeom.dll Utility class providing binary solving methods for one-dimensional functions. public static class BinarySolverUtil Inheritance object BinarySolverUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods CenterSplitionSolve(Func, Range, Vec2d, double, double, Func, int) Efficient center splitting solve that uses an initial point (x0, y0) within the boundary to save one function evaluation. The algorithm intelligently chooses the optimal boundary points based on the initial point position. public static IEnumerable CenterSplitionSolve(Func func, Range xBoundary, Vec2d x0y0, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve xBoundary Range Boundary of the search interval. The order of Min and Max is not mattered, i.e. they can be reversed. x0y0 Vec2d Initial x,y value (x0,func(x0)) yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution CenterSplitionSolve(Func, Range, double, double, double, Func, int) Solves for a target y-value using the center splitting method with a boundary range and initial x value. public static IEnumerable CenterSplitionSolve(Func func, Range xBoundary, double x0, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve xBoundary Range Boundary of the search interval x0 double Initial x value (must be within the boundary) yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution CenterSplitionSolve(Func, Range, double, double, Func, int) Solves for a target y-value using the center splitting method with a boundary range. public static IEnumerable CenterSplitionSolve(Func func, Range xBoundary, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve xBoundary Range Boundary of the search interval yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution CenterSplitionSolve(Func, double, double, double, double, double, Func, int) Solves for a target y-value using the center splitting method. public static IEnumerable CenterSplitionSolve(Func func, double x0, double y0, double xBoundary, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve x0 double Initial x value y0 double Initial y value (func(x0)) xBoundary double extended side boundary yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution CenterSplitionSolveWithY1(Func, double, double, double, double, double, double, Func, int) Solves for a target y-value using the center splitting method with a pre-calculated y1 value. public static IEnumerable CenterSplitionSolveWithY1(Func func, double x0, double y0, double x1, double y1, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve x0 double Initial x value y0 double Initial y value (func(x0)) x1 double Second x value y1 double Second y value (func(x1)) yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution SlopeSolve(Func, double, double, double, double, double, int) Solves for a target y-value using the slope method. public static IEnumerable SlopeSolve(Func func, double x0, double y0, double x1, double yTarget, double convergenceLimit, int maxIteration = 12) Parameters func Func The function to solve x0 double Initial x value y0 double Initial y value (func(x0)) x1 double Second x value yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution SlopeSolveWithY1(Func, double, double, double, double, double, double, int) Solves for a target y-value using the slope method with a pre-calculated y1 value. public static IEnumerable SlopeSolveWithY1(Func func, double x0, double y0, double x1, double y1, double yTarget, double convergenceLimit, int maxIteration = 12) Parameters func Func The function to solve x0 double Initial x value y0 double Initial y value (func(x0)) x1 double Second x value y1 double Second y value (func(x1)) yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution" }, - "api/Hi.Geom.Solvers.BinarySolvingStatus.html": { - "href": "api/Hi.Geom.Solvers.BinarySolvingStatus.html", - "title": "Class BinarySolvingStatus | HiAPI-C# 2025", - "summary": "Class BinarySolvingStatus Namespace Hi.Geom.Solvers Assembly HiGeom.dll Represents the status of a binary solving process. Contains information about the current state of the solver including best solutions and error metrics. public class BinarySolvingStatus Inheritance object BinarySolvingStatus Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors BinarySolvingStatus(SolvingResultStatus, int, double, double, double, double, double, double) Initializes a new instance of the BinarySolvingStatus class. public BinarySolvingStatus(SolvingResultStatus solvingResultStatus, int iteration, double bestX, double bestY, double minBias, double workingX, double workingY, double bias) Parameters solvingResultStatus SolvingResultStatus The current status of the solving process iteration int The current iteration count bestX double The X-coordinate of the best solution found bestY double The Y-coordinate of the best solution found minBias double The minimum bias (error) found workingX double The current working X-coordinate workingY double The current working Y-coordinate bias double The current bias (error) Properties BestX Gets or sets the X-coordinate of the best solution found. public double BestX { get; set; } Property Value double BestY Gets or sets the Y-coordinate of the best solution found. public double BestY { get; set; } Property Value double Bias Gets or sets the current bias (error). public double Bias { get; set; } Property Value double Iteration Gets or sets the current iteration count. public int Iteration { get; set; } Property Value int MinBias Gets or sets the minimum bias (error) found. public double MinBias { get; set; } Property Value double SolvingResultStatus Gets or sets the current status of the solving process. public SolvingResultStatus SolvingResultStatus { get; set; } Property Value SolvingResultStatus WorkingX Gets or sets the current working X-coordinate. public double WorkingX { get; set; } Property Value double WorkingY Gets or sets the current working Y-coordinate. public double WorkingY { get; set; } Property Value double Methods ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." + "api/Hi.Geom.Solvers.BinarySolvingEntry.html": { + "href": "api/Hi.Geom.Solvers.BinarySolvingEntry.html", + "title": "Class BinarySolvingEntry | HiAPI-C# 2025", + "summary": "Class BinarySolvingEntry Namespace Hi.Geom.Solvers Assembly HiGeom.dll Represents the status of a binary solving process. Contains information about the current state of the solver including best solutions and error metrics. public class BinarySolvingEntry Inheritance object BinarySolvingEntry Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors BinarySolvingEntry(SolvingStatus, int, double, double, double, double, double, double) Initializes a new instance of the BinarySolvingEntry class. public BinarySolvingEntry(SolvingStatus solvingResultStatus, int iteration, double bestX, double bestY, double minBias, double workingX, double workingY, double bias) Parameters solvingResultStatus SolvingStatus The current status of the solving process iteration int The current iteration count bestX double The X-coordinate of the best solution found bestY double The Y-coordinate of the best solution found minBias double The minimum bias (error) found workingX double The current working X-coordinate workingY double The current working Y-coordinate bias double The current bias (error) Properties BestX Gets or sets the X-coordinate of the best solution found. public double BestX { get; set; } Property Value double BestY Gets or sets the Y-coordinate of the best solution found. public double BestY { get; set; } Property Value double Bias Gets or sets the current bias (error). public double Bias { get; set; } Property Value double Iteration Gets or sets the current iteration count. public int Iteration { get; set; } Property Value int MinBias Gets or sets the minimum bias (error) found. public double MinBias { get; set; } Property Value double SolvingStatus Gets or sets the current status of the solving process. public SolvingStatus SolvingStatus { get; set; } Property Value SolvingStatus WorkingX Gets or sets the current working X-coordinate. public double WorkingX { get; set; } Property Value double WorkingY Gets or sets the current working Y-coordinate. public double WorkingY { get; set; } Property Value double Methods ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Geom.Solvers.DeepSolvingStatus.html": { "href": "api/Hi.Geom.Solvers.DeepSolvingStatus.html", @@ -1492,7 +1497,7 @@ "api/Hi.Geom.Solvers.NumericalSolver.html": { "href": "api/Hi.Geom.Solvers.NumericalSolver.html", "title": "Class NumericalSolver | HiAPI-C# 2025", - "summary": "Class NumericalSolver Namespace Hi.Geom.Solvers Assembly HiGeom.dll A numerical solver for systems of equations using the Jacobian matrix. public class NumericalSolver Inheritance object NumericalSolver Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors NumericalSolver(SetParasDelegate, int, GetRepondsDelegate, int, double, double, int) Initializes a new instance of the NumericalSolver class. public NumericalSolver(NumericalSolver.SetParasDelegate setParasFunc, int paraNum, NumericalSolver.GetRepondsDelegate getResponsesFunc, int targetNum, double partialInterval, double tolerance, int iterationLimit = 12) Parameters setParasFunc NumericalSolver.SetParasDelegate Function to set parameter values paraNum int Number of parameters in the system getResponsesFunc NumericalSolver.GetRepondsDelegate Function to get response values targetNum int Number of target values (equations) in the system partialInterval double Interval for calculating partial derivatives tolerance double Tolerance for convergence iterationLimit int Maximum number of iterations allowed Properties GetResponsesFunc Gets the function used to get response values. public NumericalSolver.GetRepondsDelegate GetResponsesFunc { get; } Property Value NumericalSolver.GetRepondsDelegate HalfPartialInterval Gets half of the partial interval value for optimization. public double HalfPartialInterval { get; } Property Value double IterationLimit Gets or sets the maximum number of iterations allowed. public int IterationLimit { get; set; } Property Value int ParaNum Gets or sets the number of parameters in the system. public int ParaNum { get; set; } Property Value int Paras Sets the parameter values in the system being solved. public double[] Paras { set; } Property Value double[] PartialInterval Gets or sets the interval used for calculating partial derivatives. public double PartialInterval { get; set; } Property Value double Responses Gets the response values from the system being solved. public double[] Responses { get; } Property Value double[] SetParasFunc Gets the function used to set parameter values. public NumericalSolver.SetParasDelegate SetParasFunc { get; } Property Value NumericalSolver.SetParasDelegate TargetNum Gets or sets the number of target values (equations) in the system. public int TargetNum { get; set; } Property Value int Tolerance Gets or sets the tolerance for convergence. public double Tolerance { get; set; } Property Value double Methods ErrorFunc(double[], double[]) Calculates the error (difference) between the system responses and target values. public double[] ErrorFunc(double[] paras, double[] targets) Parameters paras double[] The parameter values to use targets double[] The target values to compare against Returns double[] An array of error values Solve(double[], double[], out double, out double[,]) Solves the system of equations using numerical methods. public SolvingResultStatus Solve(double[] paras, double[] targets, out double minBias, out double[,] jacob) Parameters paras double[] The initial parameter values, will be modified during solving targets double[] The target values to solve for minBias double Output parameter that will contain the minimum bias (error) found jacob double[,] Output parameter that will contain the final Jacobian matrix Returns SolvingResultStatus The status of the solving process Remarks Note that the paras array will be modified during solving." + "summary": "Class NumericalSolver Namespace Hi.Geom.Solvers Assembly HiGeom.dll A numerical solver for systems of equations using the Jacobian matrix. public class NumericalSolver Inheritance object NumericalSolver Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors NumericalSolver(SetParasDelegate, int, GetRepondsDelegate, int, double, double, int) Initializes a new instance of the NumericalSolver class. public NumericalSolver(NumericalSolver.SetParasDelegate setParasFunc, int paraNum, NumericalSolver.GetRepondsDelegate getResponsesFunc, int targetNum, double partialInterval, double tolerance, int iterationLimit = 12) Parameters setParasFunc NumericalSolver.SetParasDelegate Function to set parameter values paraNum int Number of parameters in the system getResponsesFunc NumericalSolver.GetRepondsDelegate Function to get response values targetNum int Number of target values (equations) in the system partialInterval double Interval for calculating partial derivatives tolerance double Tolerance for convergence iterationLimit int Maximum number of iterations allowed Properties GetResponsesFunc Gets the function used to get response values. public NumericalSolver.GetRepondsDelegate GetResponsesFunc { get; } Property Value NumericalSolver.GetRepondsDelegate HalfPartialInterval Gets half of the partial interval value for optimization. public double HalfPartialInterval { get; } Property Value double IterationLimit Gets or sets the maximum number of iterations allowed. public int IterationLimit { get; set; } Property Value int ParaNum Gets or sets the number of parameters in the system. public int ParaNum { get; set; } Property Value int Paras Sets the parameter values in the system being solved. public double[] Paras { set; } Property Value double[] PartialInterval Gets or sets the interval used for calculating partial derivatives. public double PartialInterval { get; set; } Property Value double Responses Gets the response values from the system being solved. public double[] Responses { get; } Property Value double[] SetParasFunc Gets the function used to set parameter values. public NumericalSolver.SetParasDelegate SetParasFunc { get; } Property Value NumericalSolver.SetParasDelegate TargetNum Gets or sets the number of target values (equations) in the system. public int TargetNum { get; set; } Property Value int Tolerance Gets or sets the tolerance for convergence. public double Tolerance { get; set; } Property Value double Methods ErrorFunc(double[], double[]) Calculates the error (difference) between the system responses and target values. public double[] ErrorFunc(double[] paras, double[] targets) Parameters paras double[] The parameter values to use targets double[] The target values to compare against Returns double[] An array of error values Solve(double[], double[], out double, out double[,]) Solves the system of equations using numerical methods. public SolvingStatus Solve(double[] paras, double[] targets, out double minBias, out double[,] jacob) Parameters paras double[] The initial parameter values, will be modified during solving targets double[] The target values to solve for minBias double Output parameter that will contain the minimum bias (error) found jacob double[,] Output parameter that will contain the final Jacobian matrix Returns SolvingStatus The status of the solving process Remarks Note that the paras array will be modified during solving." }, "api/Hi.Geom.Solvers.SolverUtil.html": { "href": "api/Hi.Geom.Solvers.SolverUtil.html", @@ -1502,12 +1507,12 @@ "api/Hi.Geom.Solvers.SolvingResult.html": { "href": "api/Hi.Geom.Solvers.SolvingResult.html", "title": "Class SolvingResult | HiAPI-C# 2025", - "summary": "Class SolvingResult Namespace Hi.Geom.Solvers Assembly HiGeom.dll Represents the result of a solving process. Contains detailed information about the solution including parameters, biases, and convergence metrics. public class SolvingResult Inheritance object SolvingResult Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors SolvingResult(SolvingResultStatus, double[], double[], double, int, int, double[], double[,]) Initializes a new instance of the SolvingResult class. public SolvingResult(SolvingResultStatus solvingResultStatus, double[] workingParas, double[] biases, double convergence, int iteration, int continuousSlowMomentumIteration, double[] paraCompensationOnNext, double[,] jacob) Parameters solvingResultStatus SolvingResultStatus The status of the solving process workingParas double[] The current working parameter values biases double[] The bias values for each constraint convergence double The convergence metric iteration int The total number of iterations performed continuousSlowMomentumIteration int The number of continuous iterations using slow momentum method paraCompensationOnNext double[] Parameter compensation values for the next iteration jacob double[,] The Jacobian matrix Fields biases The bias (error) values for each constraint. public double[] biases Field Value double[] continuousSlowMomentumIteration The number of continuous iterations using slow momentum method. public int continuousSlowMomentumIteration Field Value int convergence The convergence metric (overall error). public double convergence Field Value double iteration The total number of iterations performed. public int iteration Field Value int jacob The Jacobian matrix for the current iteration. public double[,] jacob Field Value double[,] paraCompensationOnNext Parameter compensation values to apply in the next iteration. public double[] paraCompensationOnNext Field Value double[] solvingResultStatus The status of the solving process. public SolvingResultStatus solvingResultStatus Field Value SolvingResultStatus workingParas The current working parameter values. public double[] workingParas Field Value double[] Methods ToString(string) Returns a string representation of the solving result with the specified numeric format. public string ToString(string format) Parameters format string The numeric format string to use for formatting numeric values Returns string A string representation of the solving result" + "summary": "Class SolvingResult Namespace Hi.Geom.Solvers Assembly HiGeom.dll Represents the result of a solving process. Contains detailed information about the solution including parameters, biases, and convergence metrics. public class SolvingResult Inheritance object SolvingResult Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors SolvingResult(SolvingStatus, double[], double[], double, int, int, double[], double[,]) Initializes a new instance of the SolvingResult class. public SolvingResult(SolvingStatus solvingResultStatus, double[] workingParas, double[] biases, double convergence, int iteration, int continuousSlowMomentumIteration, double[] paraCompensationOnNext, double[,] jacob) Parameters solvingResultStatus SolvingStatus The status of the solving process workingParas double[] The current working parameter values biases double[] The bias values for each constraint convergence double The convergence metric iteration int The total number of iterations performed continuousSlowMomentumIteration int The number of continuous iterations using slow momentum method paraCompensationOnNext double[] Parameter compensation values for the next iteration jacob double[,] The Jacobian matrix Fields biases The bias (error) values for each constraint. public double[] biases Field Value double[] continuousSlowMomentumIteration The number of continuous iterations using slow momentum method. public int continuousSlowMomentumIteration Field Value int convergence The convergence metric (overall error). public double convergence Field Value double iteration The total number of iterations performed. public int iteration Field Value int jacob The Jacobian matrix for the current iteration. public double[,] jacob Field Value double[,] paraCompensationOnNext Parameter compensation values to apply in the next iteration. public double[] paraCompensationOnNext Field Value double[] solvingResultStatus The status of the solving process. public SolvingStatus solvingResultStatus Field Value SolvingStatus workingParas The current working parameter values. public double[] workingParas Field Value double[] Methods ToString(string) Returns a string representation of the solving result with the specified numeric format. public string ToString(string format) Parameters format string The numeric format string to use for formatting numeric values Returns string A string representation of the solving result" }, - "api/Hi.Geom.Solvers.SolvingResultStatus.html": { - "href": "api/Hi.Geom.Solvers.SolvingResultStatus.html", - "title": "Enum SolvingResultStatus | HiAPI-C# 2025", - "summary": "Enum SolvingResultStatus Namespace Hi.Geom.Solvers Assembly HiGeom.dll Enumeration of possible statuses for solving results. public enum SolvingResultStatus Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields Iterating = 4 Currently in the process of iterating. NotCal = 0 Not calculated yet. OverIteration = 3 Exceeded maximum number of iterations. Singular = 2 Singular condition encountered during solving. Solved = 1 Successfully solved." + "api/Hi.Geom.Solvers.SolvingStatus.html": { + "href": "api/Hi.Geom.Solvers.SolvingStatus.html", + "title": "Enum SolvingStatus | HiAPI-C# 2025", + "summary": "Enum SolvingStatus Namespace Hi.Geom.Solvers Assembly HiGeom.dll Enumeration of possible statuses for solving results. public enum SolvingStatus Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields Iterating = 4 Currently in the process of iterating. NotCal = 0 Not calculated yet. OverIteration = 3 Exceeded maximum number of iterations. Singular = 2 Singular condition encountered during solving. Solved = 1 Successfully solved." }, "api/Hi.Geom.Solvers.SolvingTerm.html": { "href": "api/Hi.Geom.Solvers.SolvingTerm.html", @@ -1517,7 +1522,7 @@ "api/Hi.Geom.Solvers.html": { "href": "api/Hi.Geom.Solvers.html", "title": "Namespace Hi.Geom.Solvers | HiAPI-C# 2025", - "summary": "Namespace Hi.Geom.Solvers Classes BinarySolverUtil Utility class providing binary solving methods for one-dimensional functions. BinarySolvingStatus Represents the status of a binary solving process. Contains information about the current state of the solver including best solutions and error metrics. DeepSolvingStatus Represents the status of a deep solving process with multiple parameters. Contains detailed information about the solving process including iterations, convergence, and Jacobian matrix. NumericalSolver A numerical solver for systems of equations using the Jacobian matrix. SolverUtil Utility class providing advanced numerical solving methods for systems of equations. SolvingResult Represents the result of a solving process. Contains detailed information about the solution including parameters, biases, and convergence metrics. Enums SolvingResultStatus Enumeration of possible statuses for solving results. SolvingTerm Enumeration of solving terms or methods used in geometric solvers. Delegates NumericalSolver.GetRepondsDelegate Delegate for getting response values from the system being solved. NumericalSolver.SetParasDelegate Delegate for setting parameter values in the system being solved." + "summary": "Namespace Hi.Geom.Solvers Classes BinarySolverUtil Utility class providing binary solving methods for one-dimensional functions. BinarySolvingEntry Represents the status of a binary solving process. Contains information about the current state of the solver including best solutions and error metrics. DeepSolvingStatus Represents the status of a deep solving process with multiple parameters. Contains detailed information about the solving process including iterations, convergence, and Jacobian matrix. NumericalSolver A numerical solver for systems of equations using the Jacobian matrix. SolverUtil Utility class providing advanced numerical solving methods for systems of equations. SolvingResult Represents the result of a solving process. Contains detailed information about the solution including parameters, biases, and convergence metrics. Enums SolvingStatus Enumeration of possible statuses for solving results. SolvingTerm Enumeration of solving terms or methods used in geometric solvers. Delegates NumericalSolver.GetRepondsDelegate Delegate for getting response values from the system being solved. NumericalSolver.SetParasDelegate Delegate for setting parameter values in the system being solved." }, "api/Hi.Geom.Stl.StlType.html": { "href": "api/Hi.Geom.Stl.StlType.html", @@ -1822,7 +1827,7 @@ "api/Hi.Machining.MachiningVolumeRemovalProc.html": { "href": "api/Hi.Machining.MachiningVolumeRemovalProc.html", "title": "Class MachiningVolumeRemovalProc | HiAPI-C# 2025", - "summary": "Class MachiningVolumeRemovalProc Namespace Hi.Machining Assembly HiMech.dll Handles the machining volume removal process and related operations. public class MachiningVolumeRemovalProc Inheritance object MachiningVolumeRemovalProc Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningVolumeRemovalProc() Initializes a new instance of the MachiningVolumeRemovalProc class. public MachiningVolumeRemovalProc() Properties ClMachiningValve Gets the CL machining valve used to control the machining process. public ClMachiningValve ClMachiningValve { get; } Property Value ClMachiningValve MachiningEquipment Gets or sets the machining equipment used in the volume removal process. When changed, clears the internal cache. public MachiningEquipment MachiningEquipment { get; set; } Property Value MachiningEquipment Methods ClearCache() Clears the internal cache, including the CL machining valve state and step-related caches. public void ClearCache() StepAssignDummyAttach(Workpiece, ClStrip, DVec3d) Creates a dummy attachment point in the CL strip. public static ClStripPos StepAssignDummyAttach(Workpiece workpiece, ClStrip clStrip, DVec3d programCl) Parameters workpiece Workpiece The workpiece to attach to. clStrip ClStrip The CL strip to add the attachment to. programCl DVec3d The program CL point for the attachment. Returns ClStripPos The created CL strip position. StepGetGeomBoolCache(ICutter, double, SeqPair, bool, bool?) Gets a geometric boolean cache for the current step based on cutter and motion parameters. public static GeomBoolCache StepGetGeomBoolCache(ICutter cutter, double stepPreferredCubeWidth, SeqPair seq, bool enableSweeping, bool? isFluteTouchingWorkpiece) Parameters cutter ICutter The cutter to use for the operation. stepPreferredCubeWidth double The preferred cube width for discretization. seq SeqPair The sequence pair of transformation matrices. enableSweeping bool Whether to enable sweeping operation. isFluteTouchingWorkpiece bool? Optional flag indicating if the flute is touching the workpiece. Returns GeomBoolCache A geometric boolean cache containing the operation data. Remarks Note that it is hard to know if flute is touching the workpiece by sweeping without making sweeping volume. Checking by non-sweeping geometry may miss the touching part of the sweeping volume. Hence isFluteTouchingWorkpiece should be kept null and be considered obsolete. There is no performance gain from that parameter. StepSubstract(GeomBoolCache, Workpiece) Performs volume subtraction using the provided geometric boolean cache on the workpiece. public static Substraction StepSubstract(GeomBoolCache geomBoolCache, Workpiece workpiece) Parameters geomBoolCache GeomBoolCache The geometric boolean cache containing the operation data. workpiece Workpiece The workpiece to perform subtraction on. Returns Substraction The result of the subtraction operation, or null if the operation cannot be performed. Events CutterChanged Event that is triggered when the cutter is changed, providing the previous and current cutter. public event Action> CutterChanged Event Type Action>" + "summary": "Class MachiningVolumeRemovalProc Namespace Hi.Machining Assembly HiMech.dll Handles the machining volume removal process and related operations. public class MachiningVolumeRemovalProc Inheritance object MachiningVolumeRemovalProc Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningVolumeRemovalProc() Initializes a new instance of the MachiningVolumeRemovalProc class. public MachiningVolumeRemovalProc() Properties ClMachiningValve Gets the CL machining valve used to control the machining process. public ClMachiningValve ClMachiningValve { get; } Property Value ClMachiningValve MachiningEquipment Gets or sets the machining equipment used in the volume removal process. When changed, clears the internal cache. public MachiningEquipment MachiningEquipment { get; set; } Property Value MachiningEquipment Methods ClearCache() Clears the internal cache, including the CL machining valve state and step-related caches. public void ClearCache() StepAssignDummyAttach(Workpiece, ClStrip, DVec3d) Creates a dummy attachment point in the CL strip. public static ClStripPos StepAssignDummyAttach(Workpiece workpiece, ClStrip clStrip, DVec3d programCl) Parameters workpiece Workpiece The workpiece to attach to. clStrip ClStrip The CL strip to add the attachment to. programCl DVec3d The program CL point for the attachment. Returns ClStripPos The created CL strip position. StepGetGeomBoolCache(ICutter, double, SeqPair, bool, bool?) Gets a geometric boolean cache for the current step based on cutter and motion parameters. public static GeomBoolCache StepGetGeomBoolCache(ICutter cutter, double stepPreferredCubeWidth, SeqPair seq, bool enableSweeping, bool? isFluteTouchingWorkpiece) Parameters cutter ICutter The cutter to use for the operation. stepPreferredCubeWidth double The preferred cube width for discretization. seq SeqPair The sequence pair of transformation matrices. enableSweeping bool Whether to enable sweeping operation. isFluteTouchingWorkpiece bool? Optional flag indicating if the flute is touching the workpiece. Returns GeomBoolCache A geometric boolean cache containing the operation data. Remarks Note that it is hard to know if flute is touching the workpiece by sweeping without making sweeping volume. Checking by non-sweeping geometry may miss the touching part of the sweeping volume. Hence isFluteTouchingWorkpiece should be kept null and be considered obsolete. There is no performance gain from that parameter. Events CutterChanged Event that is triggered when the cutter is changed, providing the previous and current cutter. public event Action> CutterChanged Event Type Action>" }, "api/Hi.Machining.MatInterpolationKit.html": { "href": "api/Hi.Machining.MatInterpolationKit.html", @@ -1932,7 +1937,7 @@ "api/Hi.MachiningProcs.MachiningSession.html": { "href": "api/Hi.MachiningProcs.MachiningSession.html", "title": "Class MachiningSession | HiAPI-C# 2025", - "summary": "Class MachiningSession Namespace Hi.MachiningProcs Assembly HiMech.dll Represents a machining session that manages the execution and optimization of machining operations. Provides functionality for controlling the machining process, handling optimization options, and managing session state. public class MachiningSession Inheritance object MachiningSession Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties CurrentSourceCommand Gets or sets the current source command being processed. public IIndexedFileLine CurrentSourceCommand { get; set; } Property Value IIndexedFileLine Data Gets or sets the data dictionary for the player session. public Dictionary Data { get; set; } Property Value Dictionary IsNcOptOptionListUpdatedByStep Internal Use Only. public bool IsNcOptOptionListUpdatedByStep { get; set; } Property Value bool NcOptOption Gets or sets the NC optimization options for UI operations. public NcOptOption NcOptOption { get; set; } Property Value NcOptOption PacePlayee Internal set only. public PacePlayee PacePlayee { get; set; } Property Value PacePlayee StepIndexToNcOptOptionList Gets or sets the mapping of step indices to NC optimization options. For internal use only. Takes effect during internal optimization process. public SortedList StepIndexToNcOptOptionList { get; set; } Property Value SortedList StepTaskBundle Gets or sets the current step task bundle. public MachiningParallelProc.StepTaskBundle StepTaskBundle { get; set; } Property Value MachiningParallelProc.StepTaskBundle Methods BeginPreserve() Begins a preserve section in the optimization process. public void BeginPreserve() EndPreserve() Ends a preserve section in the optimization process. public void EndPreserve() Preserve() Preserves one line of NC code in the optimization process. public void Preserve() UpdateNcOptOptionMapIfNeeded(int) Updates the NC optimization option map if needed. Internal use only. public bool UpdateNcOptOptionMapIfNeeded(int stepIndex) Parameters stepIndex int The index of the step to update. Returns bool True if the map was updated; otherwise, false. Events OnCurrentLineEnd Event raised when the current line ends. The event buffer is cleared on every line change. public event Action OnCurrentLineEnd Event Type Action" + "summary": "Class MachiningSession Namespace Hi.MachiningProcs Assembly HiMech.dll Represents a machining session that manages the execution and optimization of machining operations. Provides functionality for controlling the machining process, handling optimization options, and managing session state. public class MachiningSession Inheritance object MachiningSession Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties CurrentSourceCommand Gets or sets the current source command being processed. public IIndexedFileLine CurrentSourceCommand { get; set; } Property Value IIndexedFileLine Data Gets or sets the data dictionary for the player session. public Dictionary Data { get; set; } Property Value Dictionary IsNcOptOptionListUpdatedByStep Internal Use Only. public bool IsNcOptOptionListUpdatedByStep { get; set; } Property Value bool NcOptOption Gets or sets the NC optimization options for UI operations. public NcOptOption NcOptOption { get; set; } Property Value NcOptOption PacePlayee Internal set only. public PacePlayee PacePlayee { get; set; } Property Value PacePlayee StepIndexToNcOptOptionSortedList Gets or sets the mapping of step indices to NC optimization options. For internal use only. Takes effect during internal optimization process. public SortedList StepIndexToNcOptOptionSortedList { get; set; } Property Value SortedList StepTaskBundle Gets or sets the current step task bundle. public MachiningParallelProc.StepTaskBundle StepTaskBundle { get; set; } Property Value MachiningParallelProc.StepTaskBundle Methods BeginPreserve() Begins a preserve section in the optimization process. public void BeginPreserve() EndPreserve() Ends a preserve section in the optimization process. public void EndPreserve() Preserve() Preserves one line of NC code in the optimization process. public void Preserve() UpdateNcOptOptionMapIfNeeded(int) Updates the NC optimization option map if needed. Internal use only. public bool UpdateNcOptOptionMapIfNeeded(int stepIndex) Parameters stepIndex int The index of the step to update. Returns bool True if the map was updated; otherwise, false. Events OnCurrentLineEnd Event raised when the current line ends. The event buffer is cleared on every line change. public event Action OnCurrentLineEnd Event Type Action" }, "api/Hi.MachiningProcs.MillingActRunnerConfig.html": { "href": "api/Hi.MachiningProcs.MillingActRunnerConfig.html", @@ -1957,7 +1962,7 @@ "api/Hi.MachiningProcs.RuntimeApi.html": { "href": "api/Hi.MachiningProcs.RuntimeApi.html", "title": "Class RuntimeApi | HiAPI-C# 2025", - "summary": "Class RuntimeApi Namespace Hi.MachiningProcs Assembly HiNc.dll Runtime API for machining operations. public class RuntimeApi : ICsScriptApi Inheritance object RuntimeApi Implements ICsScriptApi Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties DefaultParaTemplateDimension Gets or sets the parameter template dimension (2D or 3D). [JsAce] public int DefaultParaTemplateDimension { get; set; } Property Value int DiffVisualRadius_mm Gets or sets the visual radius in millimeters for difference visualization. Controls the radius used for highlighting differences between workpiece states. [JsAce] public double DiffVisualRadius_mm { get; set; } Property Value double DispCacheMb Gets or sets the display cache size in megabytes. public long DispCacheMb { get; set; } Property Value long DispCache_Mb Gets or sets the display cache size in megabytes. [JsAce] public long DispCache_Mb { get; set; } Property Value long EnableAutoMapOnSelectionEnd Gets or sets whether to automatically map selections when they end. [JsAce] public bool EnableAutoMapOnSelectionEnd { get; set; } Property Value bool EnableCollisionDetection Gets or sets whether collision detection is enabled. [JsAce(DocContentHtml = \"Enable Collision Detection.\")] public bool EnableCollisionDetection { get; set; } Property Value bool EnablePauseOnCollision Obsoleted. Gets or sets whether to pause execution when a collision is detected. This property only has an effect if collision detection is enabled. public bool EnablePauseOnCollision { get; set; } Property Value bool EnablePauseOnFailure Gets or sets whether to pause on failure during execution. [JsAce(DocContentHtml = \"Enable Pause On Failure.\")] public bool EnablePauseOnFailure { get; set; } Property Value bool EnablePhysics Gets or sets whether milling force evaluation is enabled. [JsAce(DocContentHtml = \"Enable milling force evaluation.\")] public bool EnablePhysics { get; set; } Property Value bool EnableWearEffect Gets or sets whether tool wear effects are enabled in simulation. [JsAce] public bool EnableWearEffect { get; set; } Property Value bool FeedPerCycle Gets a new feed per cycle machining motion resolution instance. [JsAce] public FeedPerCycleMachiningMotionResolution FeedPerCycle { get; } Property Value FeedPerCycleMachiningMotionResolution FeedPerTooth Gets a new feed per tooth machining motion resolution instance. [JsAce] public FeedPerToothMachiningMotionResolution FeedPerTooth { get; } Property Value FeedPerToothMachiningMotionResolution Fixture [JsAce] public Fixture Fixture { get; set; } Property Value Fixture Global Global variables. [JsAce(\"Global[$1key]\")] public Dictionary Global { get; } Property Value Dictionary InitSpindleTemperature_C Gets or sets the initial spindle temperature in degrees Celsius. [JsAce(DocContentHtml = \"Spindle Temperature on initialization.\")] public double InitSpindleTemperature_C { get; set; } Property Value double JsAceCompletionProfileJsonArray Internal used. public static JsonArray JsAceCompletionProfileJsonArray { get; } Property Value JsonArray MachiningMotionResolution Gets or sets the machining motion resolution. [JsAce] public IMachiningMotionResolution MachiningMotionResolution { get; set; } Property Value IMachiningMotionResolution MachiningResolution Gets or sets the machining resolution in millimeters. For legacy compatable. [JsAce] [Obsolete] public double MachiningResolution { get; set; } Property Value double MachiningResolution_mm Gets or sets the machining resolution in millimeters. [JsAce] public double MachiningResolution_mm { get; set; } Property Value double MachiningSession public MachiningSession MachiningSession { get; } Property Value MachiningSession MapTask Task tracking the status of mapping operations. public Task MapTask { get; set; } Property Value Task MillingForceCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double, ICuttingPara) is intended to be used. [JsAce] public static int MillingForceCycleDivisionNum { get; set; } Property Value int NcOptOption Gets or sets the NC optimization options. [JsAce] public NcOptOption NcOptOption { get; set; } Property Value NcOptOption OptEnableDepthCompensation Enables or disables depth compensation during optimization. [JsAce] public bool OptEnableDepthCompensation { get; set; } Property Value bool OptEnableFeedrate Gets or sets whether to enable feed rate optimization in NC optimization. [JsAce] public bool OptEnableFeedrate { get; set; } Property Value bool OptEnableForwardCompensation Enables or disables forward compensation during optimization. [JsAce] public bool OptEnableForwardCompensation { get; set; } Property Value bool OptEnableInterpolation Enables or disables reinterpolation for optimization. [JsAce] public bool OptEnableInterpolation { get; set; } Property Value bool OptEnableSideCompensation Enables or disables side compensation during optimization. [JsAce] public bool OptEnableSideCompensation { get; set; } Property Value bool OptExtendedPostDistance_mm Gets or sets the extended post-distance in millimeters for NC optimization. This is the distance after the current segment that will be considered for optimization. [JsAce] public double OptExtendedPostDistance_mm { get; set; } Property Value double OptExtendedPreDistance_mm Gets or sets the extended pre-distance in millimeters for NC optimization. This is the distance before the current segment that will be considered for optimization. [JsAce] public double OptExtendedPreDistance_mm { get; set; } Property Value double OptFeedrateAssignmentRatio Gets or sets the feedrate assignment ratio for optimization. If the feedrate change exceeds this ratio, the feedrate in the NC line will be updated. [JsAce] public double OptFeedrateAssignmentRatio { get; set; } Property Value double OptMaxAcceleration_mmds2 Maximum acceleration in mm/s² during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxAcceleration_mmds2 { get; set; } Property Value double OptMaxFeedPerTooth_mm Gets or sets the maximum feed per tooth in millimeters for optimization. [JsAce] public double OptMaxFeedPerTooth_mm { get; set; } Property Value double OptMaxFeedrate_mmdmin Maximum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMaxFeedrate_mmdmin { get; set; } Property Value double OptMaxJerk_mmds3 Maximum jerk in mm/s³ during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxJerk_mmds3 { get; set; } Property Value double OptMinFeedPerTooth_mm Gets or sets the minimum feed per tooth in millimeters for optimization. [JsAce] public double OptMinFeedPerTooth_mm { get; set; } Property Value double OptMinFeedrate_mmdmin Minimum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMinFeedrate_mmdmin { get; set; } Property Value double OptPreferedForce_N Preferred force in N for optimization. [JsAce] public double OptPreferedForce_N { get; set; } Property Value double OptRapidFeed_mmdmin Rapid feed rate in mm/min for non-cutting movements during optimization. [JsAce] public double OptRapidFeed_mmdmin { get; set; } Property Value double OptSpindlePowerSafetyFactor Safety factor for spindle power during optimization. [JsAce] public double OptSpindlePowerSafetyFactor { get; set; } Property Value double OptSpindlePowerUtilizationFactor Utilization factor for spindle power during optimization. It is the reciprocal of the spindle power safety factor. [JsAce] public double OptSpindlePowerUtilizationFactor { get; set; } Property Value double OptSpindleTorqueSafetyFactor [JsAce] public double OptSpindleTorqueSafetyFactor { get; set; } Property Value double OptSpindleTorqueUtilizationFactor Utilization factor for spindle torque during optimization. It is the reciprocal of the spindle torque safety factor. [JsAce] public double OptSpindleTorqueUtilizationFactor { get; set; } Property Value double OptThermalYieldSafetyFactor Safety factor for spindle torque during optimization. [JsAce] public double OptThermalYieldSafetyFactor { get; set; } Property Value double OptThermalYieldUtilizationFactor Utilization factor for thermal yield during optimization. It is the reciprocal of the thermal yield safety factor. [JsAce] public double OptThermalYieldUtilizationFactor { get; set; } Property Value double OptYieldingSafetyFactor Safety factor for yielding during optimization. [JsAce] public double OptYieldingSafetyFactor { get; set; } Property Value double OptYieldingUtilizationFactor Utilization factor for yielding during optimization. It is the reciprocal of the yielding safety factor. [JsAce] public double OptYieldingUtilizationFactor { get; set; } Property Value double ScriptOptions ScriptOptions. public ScriptOptions ScriptOptions { get; set; } Property Value ScriptOptions SessionMessageHost Gets the session message host for displaying messages. [JsAce] public SessionMessageHost SessionMessageHost { get; } Property Value SessionMessageHost StepCount Gets the total number of milling steps. [JsAce] public int StepCount { get; } Property Value int Workpiece [JsAce] public Workpiece Workpiece { get; set; } Property Value Workpiece Methods AddTimeDataByFile(string, string, double, double) Adds time-based data from a file to the time mapping dictionary with specified time bounds in seconds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] public bool AddTimeDataByFile(string key, string relFile, double beginTime, double endTime) Parameters key string Key to identify the data relFile string Relative path to the data file beginTime double Beginning time in seconds endTime double Ending time in seconds Returns bool True if the data was successfully added, false otherwise AddTimeDataByFile(string, string, string, string) Adds time-based data from a file to the time mapping dictionary with specified time bounds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] public bool AddTimeDataByFile(string key, string relFile, string beginTimeText, string endTimeText) Parameters key string Key to identify the data relFile string Relative path to the data file beginTimeText string Beginning time as text (seconds or TimeSpan format) endTimeText string Ending time as text (seconds or TimeSpan format) Returns bool True if the data was successfully added, false otherwise AppendMessagesToFile(string, params string[]) Appends messages to a file, optionally filtered by tags. [JsAce(\"AppendMessagesToFile(\\\"dstRelFile\\\",flags)\")] public void AppendMessagesToFile(string dstRelFile, params string[] flags) Parameters dstRelFile string Destination relative file path flags string[] Optional flags to filter messages by tags BeginPreserve() Begin Preserve section in optimzation process. [JsAce(\"BeginPreserve()\")] public void BeginPreserve() BeginSelection(string, AnchorMode, IStepShift) Begin mark on current line. milling step() has not triggered yet. public void BeginSelection(string key, AnchorMode anchorMode = AnchorMode.LineBegin, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the beginning of selection shift IStepShift Step shift to apply BeginSession() Begins a new machining session. public void BeginSession() ClearTimeMappingData() Clears all time mapping data. [JsAce] public void ClearTimeMappingData() Diff(double) Performs a difference analysis on the workpiece geometry to detect variations. [JsAce(\"Diff($1detectionRadius_mm)\")] public void Diff(double detectionRadius_mm) Parameters detectionRadius_mm double Radius for detecting differences EndPreserve() End Preserve section in optimzation process. [JsAce(\"EndPreserve()\")] public void EndPreserve() EndSelection(string, AnchorMode, IStepShift) End mark on current line for selection. public void EndSelection(string key, AnchorMode anchorMode = AnchorMode.LineEnd, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the end of selection shift IStepShift Step shift to apply EndSession() Ends the current machining session. public void EndSession() ErrorMessage(string) Displays an error message in the message host. [JsAce(\"ErrorMessage($1message)\")] public void ErrorMessage(string message) Parameters message string The error message to display FixedPace(double, double) Creates a fixed machining motion resolution with specified parameters. [JsAce(\"FixedPace($1linearResolution_mm, $2rotaryResolution_deg)\")] public FixedMachiningMotionResolution FixedPace(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters rotaryResolution_deg double Rotary resolution in degrees Returns FixedMachiningMotionResolution A new fixed machining motion resolution instance GetMillingStep(int) Retrieves a milling step at the specified index. [JsAce(Snippet = \"GetMillingStep($1\\\"stepIndex\\\")\")] public MachiningStep GetMillingStep(int stepIndex) Parameters stepIndex int Index of the milling step to retrieve Returns MachiningStep The milling step at the specified index GetStickMachiningToolObservationHeight_mm(int) Gets the observation height in millimeters for the specified stick machining tool. [JsAce(\"GetStickMachiningToolObservationHeight_mm($1toolId)\")] public double GetStickMachiningToolObservationHeight_mm(int toolId) Parameters toolId int The ID of the tool Returns double The observation height in millimeters GetUniformContourTrayShiftAngle_deg(int) Gets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"GetUniformContourTrayShiftAngle_deg($1toolId)\")] public double GetUniformContourTrayShiftAngle_deg(int toolId) Parameters toolId int The ID of the tool Returns double The shift angle in degrees LineSelection(string, AnchorMode, IStepShift, AnchorMode, IStepShift) Create a line selection from begin to end mark. public void LineSelection(string key, AnchorMode beginAnchorMode = AnchorMode.LineBegin, IStepShift beginShift = null, AnchorMode endAnchorMode = AnchorMode.LineEnd, IStepShift endShift = null) Parameters key string Identifier key for the selection beginAnchorMode AnchorMode Mode for anchoring the beginning of selection beginShift IStepShift Step shift to apply at beginning endAnchorMode AnchorMode Mode for anchoring the end of selection endShift IStepShift Step shift to apply at end LoadCuttingParaByFile(string) [JsAce(\"LoadCuttingParaByFile($1\\\"relFile\\\")\")] public void LoadCuttingParaByFile(string relFile) Parameters relFile string Map(string, FileTimeSection, CycleSamplingMode?) Maps selection data to time section. public Task Map(string key, FileTimeSection fileTimeSection = null, StepTimeShotUtil.CycleSamplingMode? cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters key string Identifier key for the selection fileTimeSection FileTimeSection File time section, or null to use the one associated with the key cycleSamplingMode StepTimeShotUtil.CycleSamplingMode? Cycle sampling mode Returns Task Task representing the asynchronous mapping operation MapByActualTime(string, CycleSamplingMode) [JsAce(\"MapByActualTime($1timeShotRelFile)\")] public void MapByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters timeShotRelFile string cycleSamplingMode StepTimeShotUtil.CycleSamplingMode Message(string) Displays a message in the message host. [JsAce(\"Message($1message)\")] public void Message(string message) Parameters message string The message to display OptCallPreferFuncIndexDictionary() [JsAce(\"OptCallPreferFuncIndexDictionary()\")] public Dictionary, double> OptCallPreferFuncIndexDictionary() Returns Dictionary, double> OptimizeToFiles(string) Optimizes NC files and saves results using the specified file template. [JsAce(Snippet = \"OptimizeToFiles(\\\"Output/Opt-[NcName]\\\")\", DocContentHtml = \"Optimize To Files by substitude template keywoard \\\"[NcName]\\\"\")] public void OptimizeToFiles(string relFileTemplate = \"Output/Opt-[NcName]\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Pace() Controls the pace of machining operations during execution. [JsAce(\"Pace();\")] public void Pace() Pause() Pause Player [JsAce(DocContentHtml = \"Pause Player\")] public void Pause() PlayAct(IAct, IIndexedFileLine, CancellationToken?) Plays an act with pacing control. [JsAce] public void PlayAct(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to play. sourceCommand IIndexedFileLine The source command. cancellationToken CancellationToken? Cancellation token. PlayClTeleport(double, double, double, double, double, double) Plays a CL (cutter location) teleport operation. [JsAce] public void PlayClTeleport(double x, double y, double z, double i, double j, double k) Parameters x double X coordinate. y double Y coordinate. z double Z coordinate. i double I vector component. j double J vector component. k double K vector component. PlayCsvFile(string) Plays an Csv file with the specified relative path. [JsAce(\"PlayCsvFile($1\\\"csvFile\\\");\")] public void PlayCsvFile(string relFilePath) Parameters relFilePath string Relative path to the CSV file PlayNc(string, string) Plays NC code directly from a string, executing each action and pacing between them. [JsAce(Snippet = \"PlayNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Play NC. second parameter is the file name alternative shows in the log.\")] public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs PlayNcFile(string) Plays an NC file with the specified relative path. [JsAce(\"PlayNcFile($1\\\"ncFile\\\");\")] public void PlayNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file PlayToolingTeleport(int) Plays a tooling teleport operation. [JsAce] public void PlayToolingTeleport(int toolId) Parameters toolId int The tool ID to teleport. Preserve() Preserve one line NC code in optimzation process. [JsAce(\"Preserve()\")] public void Preserve() ProgressMessage(string) Displays a progress message in the message host. [JsAce(\"ProgressMessage($1message)\")] public void ProgressMessage(string message) Parameters message string The progress message to display ReTrainMillingPara(SampleFlag, string, double) Re-trains milling parameters using the specified sample flag. [JsAce(\"ReTrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] public void ReTrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 2) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering ReadCsvByTimeInterpolation(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. [JsAce(Snippet = \"ReadCsvByTimeInterpolation($1\\\"csvFile\\\")\")] public void ReadCsvByTimeInterpolation(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory ReadRuntimeGeom(string) Reads runtime geometry from a file. [JsAce(\"ReadRuntimeGeom($1\\\"srcFile\\\")\")] public void ReadRuntimeGeom(string relFile) Parameters relFile string Relative path to the input file RegisterStepVariable(string, string, string, string, Func) Registers a step variable for tracking during execution. [JsAce(Snippet = \"RegisterStepVariable(\\\"$1key\\\",\\\"$2name\\\",\\\"$3unit\\\",\\\"$4formatString\\\",\\\"$5variableFunc\\\")\", DocContentHtml = \"

            Register Step Variable.

            \\\"unit\\\" is nullable

            \\\"formatString\\\" is nullable

            \")] public void RegisterStepVariable(string key, string name, string unit, string formatString, Func variableFunc = null) Parameters key string Unique key to identify the variable name string Human-readable name of the variable unit string Physical unit of the variable (can be null) formatString string Format string for displaying the variable (can be null) variableFunc Func Function to compute the variable value from a milling step (can be null) RemoveFlyPiece() Removes any disconnected or “flying” pieces from the workpiece geometry. [JsAce] public void RemoveFlyPiece() Reset() Reset Player [JsAce(DocContentHtml = \"Reset Player\")] public void Reset() ResetRuntime() Clears internal buffers. [JsAce] public void ResetRuntime() RunNc(string, string) Runs NC code directly from a string. [JsAce(Snippet = \"RunNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Run NC. second parameter is the file name alternative shows in the log.\")] public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs Returns IEnumerable Enumerable sequence of actions to be executed RunNcFile(string) Runs an NC file with the specified relative path. [JsAce(\"RunNcFile($1\\\"ncFile\\\");\")] public IEnumerable RunNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file Returns IEnumerable Enumerable sequence of actions to be executed SetNcResolutionFeedPerCycle() Sets NC resolution to feed per cycle mode. public void SetNcResolutionFeedPerCycle() SetNcResolutionFeedPerTooth() Sets NC resolution to feed per tooth mode. public void SetNcResolutionFeedPerTooth() SetNcResolutionFixed(double, double) Sets NC resolution to fixed mode with specified resolution values. public void SetNcResolutionFixed(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters. rotaryResolution_deg double Rotary resolution in degrees. SetStickMachiningToolObservationHeight_mm(int, double) Sets the observation height in millimeters for the specified stick machining tool. [JsAce(\"SetStickMachiningToolObservationHeight_mm($1toolId,$2height_mm)\")] public void SetStickMachiningToolObservationHeight_mm(int toolId, double height) Parameters toolId int The ID of the tool height double The observation height in millimeters to set SetUniformContourTrayShiftAngle_deg(int, double) Sets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"SetUniformContourTrayShiftAngle_deg($1toolId,$2angle_deg)\")] public void SetUniformContourTrayShiftAngle_deg(int toolId, double angle_deg) Parameters toolId int The ID of the tool angle_deg double The shift angle in degrees to set ShiftDistance_mm(double) Creates a distance shift object representing the specified distance in millimeters. public DistanceShift ShiftDistance_mm(double distanceShift_mm) Parameters distanceShift_mm double Distance shift in millimeters Returns DistanceShift Distance shift object ShiftTime_s(double) Creates a time shift object representing the specified time in seconds. public TimeShift ShiftTime_s(double seconds) Parameters seconds double Time in seconds Returns TimeShift Time shift object TrainMillingPara(SampleFlag, string, double, ICuttingPara) Trains milling parameters using the specified sample flag. [JsAce(\"TrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] public void TrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 2, ICuttingPara paraTemplate = null) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering paraTemplate ICuttingPara WarningMessage(string) Displays a warning message in the message host. [JsAce(\"WarningMessage($1message)\")] public void WarningMessage(string message) Parameters message string The warning message to display WriteRuntimeGeom(string) Writes the current runtime geometry to a file. [JsAce(\"WriteRuntimeGeom($1\\\"dstFile\\\")\")] public void WriteRuntimeGeom(string relFile) Parameters relFile string Relative path to the output file WriteRuntimeGeomToStl(string, double) Writes the current runtime geometry to an STL file. [JsAce(\"WriteRuntimeGeomToStl($1\\\"dstFile\\\",$2resolution_mm)\")] public void WriteRuntimeGeomToStl(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output STL file resolution_mm double Resolution in millimeters (0 for default) WriteShotFiles(double, string) Writes time-series data to shot files with the specified resolution period (alternative parameter order). public void WriteShotFiles(double resolutionPeroid_ms, string relFileTemplate) Parameters resolutionPeroid_ms double Resolution period in milliseconds relFileTemplate string Template for output file path, can include [NcName] placeholder WriteShotFiles(string, double) Writes time-series data to shot files with the specified resolution period. [JsAce(Snippet = \"WriteShotFiles(\\\"Output/[NcName].shot.csv\\\",resolutionPeroid_ms)\", DocContentHtml = \"Write time series data by resolutionPeroid_ms\")] public void WriteShotFiles(string relFileTemplate = \"Output/[NcName].shot.csv\", double resolutionPeroid_ms = 1) Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder resolutionPeroid_ms double Resolution period in milliseconds WriteStepFiles(string) Writes step-series data to files with the specified file template. [JsAce(Snippet = \"WriteStepFiles(\\\"Output/[NcName].step.csv\\\")\", DocContentHtml = \"Write step series data.\")] public void WriteStepFiles(string relFileTemplate = \"Output/[NcName].step.csv\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Events MachiningStepBuilt Gets or sets the action to configure steps during execution. The event will be cleared by the calling of ResetRuntime(). [JsAce(Snippet = \"MachiningStepBuilt+=($1preStep,$2curStep)=>{$3Command};\", DocContentHtml = \"Runtime Step Configuration action. preStep is the Previous Milling Step; curStep is the Current Milling Step. preStep is null if no previous step existed.\")] public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate MachiningStepSelected Event that is triggered when a milling step is selected. The event will be cleared by the calling of ResetRuntime(). [JsAce(Snippet = \"MachiningStepSelected+=($1millingStep)=>{$2Command};\")] public event Action MachiningStepSelected Event Type Action" + "summary": "Class RuntimeApi Namespace Hi.MachiningProcs Assembly HiNc.dll Runtime API for machining operations. public class RuntimeApi : ICsScriptApi Inheritance object RuntimeApi Implements ICsScriptApi Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties DefaultParaTemplateDimension Gets or sets the parameter template dimension (2D or 3D). [JsAce] public int DefaultParaTemplateDimension { get; set; } Property Value int DiffVisualRadius_mm Gets or sets the visual radius in millimeters for difference visualization. Controls the radius used for highlighting differences between workpiece states. [JsAce] public double DiffVisualRadius_mm { get; set; } Property Value double DispCacheMb Gets or sets the display cache size in megabytes. public long DispCacheMb { get; set; } Property Value long DispCache_Mb Gets or sets the display cache size in megabytes. [JsAce] public long DispCache_Mb { get; set; } Property Value long EnableAutoMapOnSelectionEnd Gets or sets whether to automatically map selections when they end. [JsAce] public bool EnableAutoMapOnSelectionEnd { get; set; } Property Value bool EnableCollisionDetection Gets or sets whether collision detection is enabled. [JsAce(DocContentHtml = \"Enable Collision Detection.\")] public bool EnableCollisionDetection { get; set; } Property Value bool EnablePauseOnCollision Obsoleted. Gets or sets whether to pause execution when a collision is detected. This property only has an effect if collision detection is enabled. public bool EnablePauseOnCollision { get; set; } Property Value bool EnablePauseOnFailure Gets or sets whether to pause on failure during execution. [JsAce(DocContentHtml = \"Enable Pause On Failure.\")] public bool EnablePauseOnFailure { get; set; } Property Value bool EnablePhysics Gets or sets whether milling force evaluation is enabled. [JsAce(DocContentHtml = \"Enable milling force evaluation.\")] public bool EnablePhysics { get; set; } Property Value bool EnableWearEffect Gets or sets whether tool wear effects are enabled in simulation. [JsAce] public bool EnableWearEffect { get; set; } Property Value bool FeedPerCycle Gets a new feed per cycle machining motion resolution instance. [JsAce] public FeedPerCycleMachiningMotionResolution FeedPerCycle { get; } Property Value FeedPerCycleMachiningMotionResolution FeedPerTooth Gets a new feed per tooth machining motion resolution instance. [JsAce] public FeedPerToothMachiningMotionResolution FeedPerTooth { get; } Property Value FeedPerToothMachiningMotionResolution Fixture [JsAce] public Fixture Fixture { get; set; } Property Value Fixture Global Global variables. [JsAce(\"Global[$1key]\")] public Dictionary Global { get; } Property Value Dictionary InitSpindleTemperature_C Gets or sets the initial spindle temperature in degrees Celsius. [JsAce(DocContentHtml = \"Spindle Temperature on initialization.\")] public double InitSpindleTemperature_C { get; set; } Property Value double JsAceCompletionProfileJsonArray Internal used. public static JsonArray JsAceCompletionProfileJsonArray { get; } Property Value JsonArray MachiningMotionResolution Gets or sets the machining motion resolution. [JsAce] public IMachiningMotionResolution MachiningMotionResolution { get; set; } Property Value IMachiningMotionResolution MachiningResolution Gets or sets the machining resolution in millimeters. For legacy compatable. [JsAce] [Obsolete] public double MachiningResolution { get; set; } Property Value double MachiningResolution_mm Gets or sets the machining resolution in millimeters. [JsAce] public double MachiningResolution_mm { get; set; } Property Value double MachiningSession public MachiningSession MachiningSession { get; } Property Value MachiningSession MapTask Task tracking the status of mapping operations. public Task MapTask { get; set; } Property Value Task MillingForceCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double, ICuttingPara) is intended to be used. [JsAce] public static int MillingForceCycleDivisionNum { get; set; } Property Value int NcOptOption Gets or sets the NC optimization options. [JsAce] public NcOptOption NcOptOption { get; set; } Property Value NcOptOption OptEnableDepthCompensation Enables or disables depth compensation during optimization. [JsAce] public bool OptEnableDepthCompensation { get; set; } Property Value bool OptEnableFeedrate Gets or sets whether to enable feed rate optimization in NC optimization. [JsAce] public bool OptEnableFeedrate { get; set; } Property Value bool OptEnableFirstSituProcLog [JsAce] public static bool OptEnableFirstSituProcLog { get; set; } Property Value bool OptEnableForwardCompensation Enables or disables forward compensation during optimization. [JsAce] public bool OptEnableForwardCompensation { get; set; } Property Value bool OptEnableInterpolation Enables or disables reinterpolation for optimization. [JsAce] public bool OptEnableInterpolation { get; set; } Property Value bool OptEnableNcEmbeddedLog [JsAce] public static bool OptEnableNcEmbeddedLog { get; set; } Property Value bool OptEnableSideCompensation Enables or disables side compensation during optimization. [JsAce] public bool OptEnableSideCompensation { get; set; } Property Value bool OptExtendedPostDistance_mm Gets or sets the extended post-distance in millimeters for NC optimization. This is the distance after the current segment that will be considered for optimization. [JsAce] public double OptExtendedPostDistance_mm { get; set; } Property Value double OptExtendedPreDistance_mm Gets or sets the extended pre-distance in millimeters for NC optimization. This is the distance before the current segment that will be considered for optimization. [JsAce] public double OptExtendedPreDistance_mm { get; set; } Property Value double OptFeedrateAssignmentRatio Gets or sets the feedrate assignment ratio for optimization. If the feedrate change exceeds this ratio, the feedrate in the NC line will be updated. [JsAce] public double OptFeedrateAssignmentRatio { get; set; } Property Value double OptMaxAcceleration_mmds2 Maximum acceleration in mm/s² during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxAcceleration_mmds2 { get; set; } Property Value double OptMaxFeedPerTooth_mm Gets or sets the maximum feed per tooth in millimeters for optimization. [JsAce] public double OptMaxFeedPerTooth_mm { get; set; } Property Value double OptMaxFeedrate_mmdmin Maximum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMaxFeedrate_mmdmin { get; set; } Property Value double OptMaxJerk_mmds3 Maximum jerk in mm/s³ during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxJerk_mmds3 { get; set; } Property Value double OptMinFeedPerTooth_mm Gets or sets the minimum feed per tooth in millimeters for optimization. [JsAce] public double OptMinFeedPerTooth_mm { get; set; } Property Value double OptMinFeedrate_mmdmin Minimum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMinFeedrate_mmdmin { get; set; } Property Value double OptPreferedForce_N Preferred force in N for optimization. [JsAce] public double OptPreferedForce_N { get; set; } Property Value double OptRapidFeed_mmdmin Rapid feed rate in mm/min for non-cutting movements during optimization. [JsAce] public double OptRapidFeed_mmdmin { get; set; } Property Value double OptSpindlePowerSafetyFactor Safety factor for spindle power during optimization. [JsAce] public double OptSpindlePowerSafetyFactor { get; set; } Property Value double OptSpindlePowerUtilizationFactor Utilization factor for spindle power during optimization. It is the reciprocal of the spindle power safety factor. [JsAce] public double OptSpindlePowerUtilizationFactor { get; set; } Property Value double OptSpindleTorqueSafetyFactor [JsAce] public double OptSpindleTorqueSafetyFactor { get; set; } Property Value double OptSpindleTorqueUtilizationFactor Utilization factor for spindle torque during optimization. It is the reciprocal of the spindle torque safety factor. [JsAce] public double OptSpindleTorqueUtilizationFactor { get; set; } Property Value double OptThermalYieldSafetyFactor Safety factor for spindle torque during optimization. [JsAce] public double OptThermalYieldSafetyFactor { get; set; } Property Value double OptThermalYieldUtilizationFactor Utilization factor for thermal yield during optimization. It is the reciprocal of the thermal yield safety factor. [JsAce] public double OptThermalYieldUtilizationFactor { get; set; } Property Value double OptYieldingSafetyFactor Safety factor for yielding during optimization. [JsAce] public double OptYieldingSafetyFactor { get; set; } Property Value double OptYieldingUtilizationFactor Utilization factor for yielding during optimization. It is the reciprocal of the yielding safety factor. [JsAce] public double OptYieldingUtilizationFactor { get; set; } Property Value double ScriptOptions ScriptOptions. public ScriptOptions ScriptOptions { get; set; } Property Value ScriptOptions SessionMessageHost Gets the session message host for displaying messages. [JsAce] public SessionMessageHost SessionMessageHost { get; } Property Value SessionMessageHost StepCount Gets the total number of milling steps. [JsAce] public int StepCount { get; } Property Value int Workpiece [JsAce] public Workpiece Workpiece { get; set; } Property Value Workpiece Methods AddTimeDataByFile(string, string, double, double) Adds time-based data from a file to the time mapping dictionary with specified time bounds in seconds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] public bool AddTimeDataByFile(string key, string relFile, double beginTime, double endTime) Parameters key string Key to identify the data relFile string Relative path to the data file beginTime double Beginning time in seconds endTime double Ending time in seconds Returns bool True if the data was successfully added, false otherwise AddTimeDataByFile(string, string, string, string) Adds time-based data from a file to the time mapping dictionary with specified time bounds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] public bool AddTimeDataByFile(string key, string relFile, string beginTimeText, string endTimeText) Parameters key string Key to identify the data relFile string Relative path to the data file beginTimeText string Beginning time as text (seconds or TimeSpan format) endTimeText string Ending time as text (seconds or TimeSpan format) Returns bool True if the data was successfully added, false otherwise AppendMessagesToFile(string, params string[]) Appends messages to a file, optionally filtered by tags. [JsAce(\"AppendMessagesToFile(\\\"dstRelFile\\\",flags)\")] public void AppendMessagesToFile(string dstRelFile, params string[] flags) Parameters dstRelFile string Destination relative file path flags string[] Optional flags to filter messages by tags BeginPreserve() Begin Preserve section in optimzation process. [JsAce(\"BeginPreserve()\")] public void BeginPreserve() BeginSelection(string, AnchorMode, IStepShift) Begin mark on current line. milling step() has not triggered yet. public void BeginSelection(string key, AnchorMode anchorMode = AnchorMode.LineBegin, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the beginning of selection shift IStepShift Step shift to apply BeginSession() Begins a new machining session. Not for end user. public void BeginSession() ClearTimeMappingData() Clears all time mapping data. [JsAce] public void ClearTimeMappingData() Diff(double) Performs a difference analysis on the workpiece geometry to detect variations. [JsAce(\"Diff($1detectionRadius_mm)\")] public void Diff(double detectionRadius_mm) Parameters detectionRadius_mm double Radius for detecting differences EndPreserve() End Preserve section in optimzation process. [JsAce(\"EndPreserve()\")] public void EndPreserve() EndSelection(string, AnchorMode, IStepShift) End mark on current line for selection. public void EndSelection(string key, AnchorMode anchorMode = AnchorMode.LineEnd, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the end of selection shift IStepShift Step shift to apply EndSession() Ends the current machining session. Not for end user. public void EndSession() ErrorMessage(string) Displays an error message in the message host. [JsAce(\"ErrorMessage($1message)\")] public void ErrorMessage(string message) Parameters message string The error message to display FixedPace(double, double) Creates a fixed machining motion resolution with specified parameters. [JsAce(\"FixedPace($1linearResolution_mm, $2rotaryResolution_deg)\")] public FixedMachiningMotionResolution FixedPace(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters rotaryResolution_deg double Rotary resolution in degrees Returns FixedMachiningMotionResolution A new fixed machining motion resolution instance GetMillingStep(int) Retrieves a milling step at the specified index. [JsAce(Snippet = \"GetMillingStep($1\\\"stepIndex\\\")\")] public MachiningStep GetMillingStep(int stepIndex) Parameters stepIndex int Index of the milling step to retrieve Returns MachiningStep The milling step at the specified index GetStickMachiningToolObservationHeight_mm(int) Gets the observation height in millimeters for the specified stick machining tool. [JsAce(\"GetStickMachiningToolObservationHeight_mm($1toolId)\")] public double GetStickMachiningToolObservationHeight_mm(int toolId) Parameters toolId int The ID of the tool Returns double The observation height in millimeters GetUniformContourTrayShiftAngle_deg(int) Gets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"GetUniformContourTrayShiftAngle_deg($1toolId)\")] public double GetUniformContourTrayShiftAngle_deg(int toolId) Parameters toolId int The ID of the tool Returns double The shift angle in degrees LineSelection(string, AnchorMode, IStepShift, AnchorMode, IStepShift) Create a line selection from begin to end mark. public void LineSelection(string key, AnchorMode beginAnchorMode = AnchorMode.LineBegin, IStepShift beginShift = null, AnchorMode endAnchorMode = AnchorMode.LineEnd, IStepShift endShift = null) Parameters key string Identifier key for the selection beginAnchorMode AnchorMode Mode for anchoring the beginning of selection beginShift IStepShift Step shift to apply at beginning endAnchorMode AnchorMode Mode for anchoring the end of selection endShift IStepShift Step shift to apply at end LoadCuttingParaByFile(string) [JsAce(\"LoadCuttingParaByFile($1\\\"relFile\\\")\")] public void LoadCuttingParaByFile(string relFile) Parameters relFile string Map(string, FileTimeSection, CycleSamplingMode?) Maps selection data to time section. public Task Map(string key, FileTimeSection fileTimeSection = null, StepTimeShotUtil.CycleSamplingMode? cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters key string Identifier key for the selection fileTimeSection FileTimeSection File time section, or null to use the one associated with the key cycleSamplingMode StepTimeShotUtil.CycleSamplingMode? Cycle sampling mode Returns Task Task representing the asynchronous mapping operation MapByActualTime(string, CycleSamplingMode) [JsAce(\"MapByActualTime($1timeShotRelFile)\")] public void MapByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters timeShotRelFile string cycleSamplingMode StepTimeShotUtil.CycleSamplingMode Message(string) Displays a message in the message host. [JsAce(\"Message($1message)\")] public void Message(string message) Parameters message string The message to display OptCallPreferFuncIndexDictionary() [JsAce(\"OptCallPreferFuncIndexDictionary()\")] public Dictionary, double> OptCallPreferFuncIndexDictionary() Returns Dictionary, double> OptimizeToFiles(string) Optimizes NC files and saves results using the specified file template. [JsAce(Snippet = \"OptimizeToFiles(\\\"Output/Opt-[NcName]\\\")\", DocContentHtml = \"Optimize To Files by substitude template keywoard \\\"[NcName]\\\"\")] public void OptimizeToFiles(string relFileTemplate = \"Output/Opt-[NcName]\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Pace() A pausable mark for the playing process. The function enables Pause() to take effect. [JsAce(\"Pace();\")] public void Pace() Remarks Waits for the player to signal the next pace. Pause() Pause Player [JsAce(DocContentHtml = \"Pause Player\")] public void Pause() PlayAct(IAct, IIndexedFileLine, CancellationToken?) Plays an act with pacing control. [JsAce] public void PlayAct(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to play. sourceCommand IIndexedFileLine The source command. cancellationToken CancellationToken? Cancellation token. PlayClTeleport(double, double, double, double, double, double) Plays a CL (cutter location) teleport operation. [JsAce] public void PlayClTeleport(double x, double y, double z, double i, double j, double k) Parameters x double X coordinate. y double Y coordinate. z double Z coordinate. i double I vector component. j double J vector component. k double K vector component. PlayCsvFile(string) Plays an Csv file with the specified relative path. [JsAce(\"PlayCsvFile($1\\\"csvFile\\\");\")] public void PlayCsvFile(string relFilePath) Parameters relFilePath string Relative path to the CSV file PlayNc(string, string) Plays NC code directly from a string, executing each action and pacing between them. [JsAce(Snippet = \"PlayNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Play NC. second parameter is the file name alternative shows in the log.\")] public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs PlayNcFile(string) Plays an NC file with the specified relative path. [JsAce(\"PlayNcFile($1\\\"ncFile\\\");\")] public void PlayNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file PlayToolingTeleport(int) Plays a tooling teleport operation. [JsAce] public void PlayToolingTeleport(int toolId) Parameters toolId int The tool ID to teleport. Preserve() Preserve one line NC code in optimzation process. [JsAce(\"Preserve()\")] public void Preserve() ProgressMessage(string) Displays a progress message in the message host. [JsAce(\"ProgressMessage($1message)\")] public void ProgressMessage(string message) Parameters message string The progress message to display ReTrainMillingPara(SampleFlag, string, double) Re-trains milling parameters using the specified sample flag. [JsAce(\"ReTrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] public void ReTrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 2) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering ReadCsvByTimeInterpolation(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. [JsAce(Snippet = \"ReadCsvByTimeInterpolation($1\\\"csvFile\\\")\")] public void ReadCsvByTimeInterpolation(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory ReadRuntimeGeom(string) Reads runtime geometry from a file. [JsAce(\"ReadRuntimeGeom($1\\\"srcFile\\\")\")] public void ReadRuntimeGeom(string relFile) Parameters relFile string Relative path to the input file RegisterStepVariable(string, string, string, string, Func) Registers a step variable for tracking during execution. [JsAce(Snippet = \"RegisterStepVariable(\\\"$1key\\\",\\\"$2name\\\",\\\"$3unit\\\",\\\"$4formatString\\\",\\\"$5variableFunc\\\")\", DocContentHtml = \"

            Register Step Variable.

            \\\"unit\\\" is nullable

            \\\"formatString\\\" is nullable

            \")] public void RegisterStepVariable(string key, string name, string unit, string formatString, Func variableFunc = null) Parameters key string Unique key to identify the variable name string Human-readable name of the variable unit string Physical unit of the variable (can be null) formatString string Format string for displaying the variable (can be null) variableFunc Func Function to compute the variable value from a milling step (can be null) RemoveFlyPiece() Removes any disconnected or “flying” pieces from the workpiece geometry. [JsAce] public void RemoveFlyPiece() Reset() Reset Player [JsAce(DocContentHtml = \"Reset Player\")] public void Reset() ResetRuntime() Clears internal buffers. [JsAce] public void ResetRuntime() RunNc(string, string) Runs NC code directly from a string. Not for end user. [JsAce(Snippet = \"RunNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Run NC. second parameter is the file name alternative shows in the log.\")] public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs Returns IEnumerable Enumerable sequence of actions to be executed RunNcFile(string) Runs an NC file with the specified relative path. Not for end user. [JsAce(\"RunNcFile($1\\\"ncFile\\\");\")] public IEnumerable RunNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file Returns IEnumerable Enumerable sequence of actions to be executed SetNcResolutionFeedPerCycle() Sets NC resolution to feed per cycle mode. public void SetNcResolutionFeedPerCycle() SetNcResolutionFeedPerTooth() Sets NC resolution to feed per tooth mode. public void SetNcResolutionFeedPerTooth() SetNcResolutionFixed(double, double) Sets NC resolution to fixed mode with specified resolution values. public void SetNcResolutionFixed(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters. rotaryResolution_deg double Rotary resolution in degrees. SetStickMachiningToolObservationHeight_mm(int, double) Sets the observation height in millimeters for the specified stick machining tool. [JsAce(\"SetStickMachiningToolObservationHeight_mm($1toolId,$2height_mm)\")] public void SetStickMachiningToolObservationHeight_mm(int toolId, double height) Parameters toolId int The ID of the tool height double The observation height in millimeters to set SetUniformContourTrayShiftAngle_deg(int, double) Sets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"SetUniformContourTrayShiftAngle_deg($1toolId,$2angle_deg)\")] public void SetUniformContourTrayShiftAngle_deg(int toolId, double angle_deg) Parameters toolId int The ID of the tool angle_deg double The shift angle in degrees to set ShiftDistance_mm(double) Creates a distance shift object representing the specified distance in millimeters. public DistanceShift ShiftDistance_mm(double distanceShift_mm) Parameters distanceShift_mm double Distance shift in millimeters Returns DistanceShift Distance shift object ShiftTime_s(double) Creates a time shift object representing the specified time in seconds. public TimeShift ShiftTime_s(double seconds) Parameters seconds double Time in seconds Returns TimeShift Time shift object TrainMillingPara(SampleFlag, string, double, ICuttingPara) Trains milling parameters using the specified sample flag. [JsAce(\"TrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] public void TrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 2, ICuttingPara paraTemplate = null) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering paraTemplate ICuttingPara WarningMessage(string) Displays a warning message in the message host. [JsAce(\"WarningMessage($1message)\")] public void WarningMessage(string message) Parameters message string The warning message to display WriteRuntimeGeom(string) Writes the current runtime geometry to a file. [JsAce(\"WriteRuntimeGeom($1\\\"dstFile\\\")\")] public void WriteRuntimeGeom(string relFile) Parameters relFile string Relative path to the output file WriteRuntimeGeomToStl(string, double) Writes the current runtime geometry to an STL file. [JsAce(\"WriteRuntimeGeomToStl($1\\\"dstFile\\\",$2resolution_mm)\")] public void WriteRuntimeGeomToStl(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output STL file resolution_mm double Resolution in millimeters (0 for default) WriteShotFiles(double, string) Writes time-series data to shot files with the specified resolution period (alternative parameter order). public void WriteShotFiles(double resolutionPeroid_ms, string relFileTemplate) Parameters resolutionPeroid_ms double Resolution period in milliseconds relFileTemplate string Template for output file path, can include [NcName] placeholder WriteShotFiles(string, double) Writes time-series data to shot files with the specified resolution period. [JsAce(Snippet = \"WriteShotFiles(\\\"Output/[NcName].shot.csv\\\",resolutionPeroid_ms)\", DocContentHtml = \"Write time series data by resolutionPeroid_ms\")] public void WriteShotFiles(string relFileTemplate = \"Output/[NcName].shot.csv\", double resolutionPeroid_ms = 1) Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder resolutionPeroid_ms double Resolution period in milliseconds WriteStepFiles(string) Writes step-series data to files with the specified file template. [JsAce(Snippet = \"WriteStepFiles(\\\"Output/[NcName].step.csv\\\")\", DocContentHtml = \"Write step series data.\")] public void WriteStepFiles(string relFileTemplate = \"Output/[NcName].step.csv\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Events MachiningStepBuilt Gets or sets the action to configure steps during execution. The event will be cleared by the calling of ResetRuntime(). [JsAce(Snippet = \"MachiningStepBuilt+=($1preStep,$2curStep)=>{$3Command};\", DocContentHtml = \"Runtime Step Configuration action. preStep is the Previous Milling Step; curStep is the Current Milling Step. preStep is null if no previous step existed.\")] public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate MachiningStepSelected Event that is triggered when a milling step is selected. The event will be cleared by the calling of ResetRuntime(). [JsAce(Snippet = \"MachiningStepSelected+=($1millingStep)=>{$2Command};\")] public event Action MachiningStepSelected Event Type Action" }, "api/Hi.MachiningProcs.RuntimeController.html": { "href": "api/Hi.MachiningProcs.RuntimeController.html", @@ -1977,7 +1982,7 @@ "api/Hi.MachiningProcs.SessionMessageHost.html": { "href": "api/Hi.MachiningProcs.SessionMessageHost.html", "title": "Class SessionMessageHost | HiAPI-C# 2025", - "summary": "Class SessionMessageHost Namespace Hi.MachiningProcs Assembly HiMech.dll Represents a host for managing milling messages with thread-safe operations and stable index tracking. public class SessionMessageHost : IMessageKit Inheritance object SessionMessageHost Implements IMessageKit Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties MessageCollection Gets or sets the thread-safe collection of milling messages. The getter is for readonly. Do not edit the collection directly. public SynList MessageCollection { get; } Property Value SynList StableIndex Gets or sets the stable index. No other data will be inserted before this index. The term stable means it is thread safe to access range from 0 to StableIndex(exclusive). public int StableIndex { get; } Property Value int Methods Add(object) Adds a new entry to the message collection. public object Add(object entry) Parameters entry object The entry to add. Returns object The added milling message. Clear() Clears all messages from the collection. public void Clear() GetFliteredList(FilterFlag, string) Gets a filtered list of session messages. public List GetFliteredList(SessionMessageHost.FilterFlag flags, string filterText) Parameters flags SessionMessageHost.FilterFlag Filtering flags that determine which message categories are included. filterText string Optional text to filter by; case-insensitive contains match. Returns List A list of messages that match the specified filters. GetSourceCommand(SessionMessage) Retrieves the source command associated with the specified machining message. public IIndexedFileLine GetSourceCommand(SessionMessage machiningMessage) Parameters machiningMessage SessionMessage The machining message to find the source command for. Returns IIndexedFileLine The source command that generated the message, or null if not found. SetStableIndexToEnd() Sets the StableIndex to the end of the collection. public void SetStableIndexToEnd() Events CollectionCleared Event raised when the collection is cleared. public event Action CollectionCleared Event Type Action CollectionItemAdded Event raised when a new milling message is added to the collection. public event Action CollectionItemAdded Event Type Action CollectionItemChanged Event raised when a collection item is changed. public event Action CollectionItemChanged Event Type Action" + "summary": "Class SessionMessageHost Namespace Hi.MachiningProcs Assembly HiMech.dll Represents a host for managing milling messages with thread-safe operations and stable index tracking. public class SessionMessageHost : IMessageHost Inheritance object SessionMessageHost Implements IMessageHost Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties MessageCollection Gets or sets the thread-safe collection of milling messages. The getter is for readonly. Do not edit the collection directly. public SynList MessageCollection { get; } Property Value SynList StableIndex Gets or sets the stable index. No other data will be inserted before this index. The term stable means it is thread safe to access range from 0 to StableIndex(exclusive). public int StableIndex { get; } Property Value int Methods Add(object) Adds a new entry to the message collection. public object Add(object entry) Parameters entry object The entry to add. Returns object The added milling message. Clear() Clears all messages from the collection. public void Clear() GetFliteredList(FilterFlag, string) Gets a filtered list of session messages. public List GetFliteredList(SessionMessageHost.FilterFlag flags, string filterText) Parameters flags SessionMessageHost.FilterFlag Filtering flags that determine which message categories are included. filterText string Optional text to filter by; case-insensitive contains match. Returns List A list of messages that match the specified filters. GetSourceCommand(SessionMessage) Retrieves the source command associated with the specified machining message. public IIndexedFileLine GetSourceCommand(SessionMessage machiningMessage) Parameters machiningMessage SessionMessage The machining message to find the source command for. Returns IIndexedFileLine The source command that generated the message, or null if not found. SetStableIndexToEnd() Sets the StableIndex to the end of the collection. public void SetStableIndexToEnd() Events CollectionCleared Event raised when the collection is cleared. public event Action CollectionCleared Event Type Action CollectionItemAdded Event raised when a new milling message is added to the collection. public event Action CollectionItemAdded Event Type Action CollectionItemChanged Event raised when a collection item is changed. public event Action CollectionItemChanged Event Type Action" }, "api/Hi.MachiningProcs.SessionMessagePack.html": { "href": "api/Hi.MachiningProcs.SessionMessagePack.html", @@ -2012,7 +2017,7 @@ "api/Hi.MachiningSteps.MachineMotionStep.html": { "href": "api/Hi.MachiningSteps.MachineMotionStep.html", "title": "Class MachineMotionStep | HiAPI-C# 2025", - "summary": "Class MachineMotionStep Namespace Hi.MachiningSteps Assembly HiMech.dll MachiningStep has spindle information. Note that the spindle information is only for milling behavior. public class MachineMotionStep : IGetFeedrate, IGetSpindleSpeed Inheritance object MachineMotionStep Implements IGetFeedrate IGetSpindleSpeed Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachineMotionStep(MachineMotionStep) Initializes a new instance of the MachineMotionStep class by copying from another instance. public MachineMotionStep(MachineMotionStep src) Parameters src MachineMotionStep The source machining step to copy from. MachineMotionStep(TimeSpan, TimeSpan, double, double[], double, double, SpindleDirection, int, Mat4d, Mat4d, SeqPair) Initializes a new instance of the MachineMotionStep class with specified parameters. public MachineMotionStep(TimeSpan stepDuration, TimeSpan accumulatedTime, double beginSpindleAngle_rad, double[] mcValues, double feedrate_mmds, double spindleSpeed_radds, SpindleDirection spindleDirection, int toolId, Mat4d programZeroToWorkpieceGeomToMat4d, Mat4d workpieceGeomToProgramZeroMat4d, SeqPair seqOnWorkpieceGeomCoordinate) Parameters stepDuration TimeSpan The duration of this step. accumulatedTime TimeSpan The accumulated time up to this step. beginSpindleAngle_rad double The initial spindle angle in radians. mcValues double[] The machine coordinate values. feedrate_mmds double The feed rate in millimeters per second. spindleSpeed_radds double The spindle speed in radians per second. spindleDirection SpindleDirection The direction of spindle rotation. toolId int The ID of the tool being used. programZeroToWorkpieceGeomToMat4d Mat4d The transformation matrix from program zero to workpiece geometry. workpieceGeomToProgramZeroMat4d Mat4d The transformation matrix from workpiece geometry to program zero. seqOnWorkpieceGeomCoordinate SeqPair The sequence of transformations on workpiece geometry coordinate. Properties AccumulatedTime The work time at the end of the step. public TimeSpan AccumulatedTime { get; set; } Property Value TimeSpan BeginSpindleAngle_deg Begin spindle rotation angle. in deg; public double BeginSpindleAngle_deg { get; set; } Property Value double BeginSpindleAngle_rad Begin spindle rotation angle. in rad; public double BeginSpindleAngle_rad { get; set; } Property Value double CdnTransformProgramToToolRunning Gets the transformation matrix from program to tool running coordinate. public Mat4d CdnTransformProgramToToolRunning { get; } Property Value Mat4d CdnTransformProgramToWorkpieceGeom Gets the transformation matrix from program zero to workpiece geometry. public Mat4d CdnTransformProgramToWorkpieceGeom { get; } Property Value Mat4d CdnTransformToolRunningToProgram Gets the transformation matrix from tool running to program coordinate. public Mat4d CdnTransformToolRunningToProgram { get; } Property Value Mat4d CdnTransformToolRunningToWorkpieceGeom Tool running coordinate to workpiece geom coordinate. public Mat4d CdnTransformToolRunningToWorkpieceGeom { get; } Property Value Mat4d CdnTransformWorkpieceGeomToProgram Gets the transformation matrix from workpiece geometry to program zero. public Mat4d CdnTransformWorkpieceGeomToProgram { get; } Property Value Mat4d CdnTransformWorkpieceGeomToToolRunning Gets the transformation matrix from workpiece geometry to tool running coordinate. public Mat4d CdnTransformWorkpieceGeomToToolRunning { get; } Property Value Mat4d CyclePeriod Gets the cycle period as a TimeSpan. public TimeSpan CyclePeriod { get; } Property Value TimeSpan CyclePeriod_s Gets the cycle period in seconds. public double CyclePeriod_s { get; } Property Value double EndSpindleAngle_deg Gets the end spindle angle in degrees. public double EndSpindleAngle_deg { get; } Property Value double EndSpindleAngle_rad Gets the end spindle angle in radians. public double EndSpindleAngle_rad { get; } Property Value double FeedPerCycle_mm Gets the feed per cycle in millimeters. public double FeedPerCycle_mm { get; } Property Value double Feedrate_mmds Gets or sets the feed rate in millimeters per second. public double Feedrate_mmds { get; set; } Property Value double GeomCl Gets the current position in workpiece geometry coordinate. public DVec3d GeomCl { get; } Property Value DVec3d McValues Machine coordinate values. public double[] McValues { get; set; } Property Value double[] MoveOnProgramCoordinate_mm Gets the movement vector in program coordinate in millimeters. public Vec3d MoveOnProgramCoordinate_mm { get; } Property Value Vec3d MoveOnWorkpieceGeomCoordinate_mm Gets the movement vector in workpiece geometry coordinate in millimeters. public Vec3d MoveOnWorkpieceGeomCoordinate_mm { get; } Property Value Vec3d MovingDirectionOnWorkpieceGeomCoordinate Gets the movement direction vector in workpiece geometry coordinate. public Vec3d MovingDirectionOnWorkpieceGeomCoordinate { get; } Property Value Vec3d MovingLength_mm Gets the length of movement in millimeters. public double MovingLength_mm { get; } Property Value double PassedSpindleAngle_deg For milling behavior only. public double PassedSpindleAngle_deg { get; } Property Value double PassedSpindleAngle_rad For milling behavior only. public double PassedSpindleAngle_rad { get; } Property Value double ProgramCl Gets the current position in program coordinate. public DVec3d ProgramCl { get; } Property Value DVec3d ProgramToWorkpieceGeomMat4d Gets or sets the transformation matrix from program zero to workpiece geometry. public Mat4d ProgramToWorkpieceGeomMat4d { get; set; } Property Value Mat4d SeqOnToolRunningCoordinate Gets the sequence of transformations on tool running coordinate. public SeqPair SeqOnToolRunningCoordinate { get; } Property Value SeqPair SeqOnWorkpieceGeomCoordinate Gets or sets the sequence of transformations on workpiece geometry coordinate. public SeqPair SeqOnWorkpieceGeomCoordinate { get; set; } Property Value SeqPair SpindleDirection Gets or sets the direction of spindle rotation. public SpindleDirection SpindleDirection { get; set; } Property Value SpindleDirection SpindleSpeed_cycleds Gets the spindle speed in cycles per second. public double SpindleSpeed_cycleds { get; } Property Value double SpindleSpeed_radds For milling behavior only. public double SpindleSpeed_radds { get; set; } Property Value double SpindleSpeed_rpm Gets the spindle speed in revolutions per minute. public double SpindleSpeed_rpm { get; } Property Value double StepBeginTime The work time at the begin of the step. public TimeSpan StepBeginTime { get; } Property Value TimeSpan StepDuration Gets or sets the duration of this step. public TimeSpan StepDuration { get; set; } Property Value TimeSpan ToolId Gets or sets the ID of the tool being used. public int ToolId { get; set; } Property Value int WorkpieceGeomToProgramMat4d Gets or sets the transformation matrix from workpiece geometry to program zero. public Mat4d WorkpieceGeomToProgramMat4d { get; set; } Property Value Mat4d Methods GetFeedPerTooth_mm(IMachiningTool) Gets the feed per tooth in millimeters. public double GetFeedPerTooth_mm(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns double The feed per tooth in millimeters. GetFeedrate_mmds() Gets the program feedrate in millimeters per second. public double GetFeedrate_mmds() Returns double Feedrate in mm/s GetMachiningTool(MachiningToolHouse) Gets the machining tool from the tool house. public IMachiningTool GetMachiningTool(MachiningToolHouse toolHouse) Parameters toolHouse MachiningToolHouse The machining tool house. Returns IMachiningTool The machining tool. GetProgramSideCuspHeight_mm(IMachiningTool) Gets the program side cusp height in millimeters. public double GetProgramSideCuspHeight_mm(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns double The program side cusp height in millimeters. GetSideCuspList_mm(IMachiningTool) Gets the list of side cusp heights in millimeters. public List GetSideCuspList_mm(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns List The list of side cusp heights in millimeters. GetSideCuspPhaseInterval_rad(IMachiningTool) Gets the side cusp phase interval in radians. public double GetSideCuspPhaseInterval_rad(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns double The side cusp phase interval in radians. GetSpindleDirection() Gets the spindle rotation direction. public SpindleDirection GetSpindleDirection() Returns SpindleDirection The spindle direction (clockwise, counterclockwise, or stopped) GetSpindleSpeed_radds() Gets the spindle speed in radians per second. public double GetSpindleSpeed_radds() Returns double Spindle speed in rad/s GetToothArcDuration_s(IMachiningTool) Gets the duration of a single tooth arc in seconds. public double GetToothArcDuration_s(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns double The duration of a single tooth arc in seconds. GetToothSeqOnToolRunningCoordinate(IMachiningTool) Gets the sequence of transformations for a single tooth on tool running coordinate. public SeqPair GetToothSeqOnToolRunningCoordinate(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns SeqPair The sequence of transformations for a single tooth. ToString() Returns a string representation of this machining step. public override string ToString() Returns string A string representation of this machining step." + "summary": "Class MachineMotionStep Namespace Hi.MachiningSteps Assembly HiMech.dll MachiningStep has spindle information. Note that the spindle information is only for milling behavior. public class MachineMotionStep : IGetFeedrate, IGetSpindleSpeed Inheritance object MachineMotionStep Implements IGetFeedrate IGetSpindleSpeed Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachineMotionStep(MachineMotionStep) Initializes a new instance of the MachineMotionStep class by copying from another instance. public MachineMotionStep(MachineMotionStep src) Parameters src MachineMotionStep The source machining step to copy from. MachineMotionStep(TimeSpan, TimeSpan, double, double[], double, double, SpindleDirection, int, Mat4d, Mat4d, SeqPair) Initializes a new instance of the MachineMotionStep class with specified parameters. public MachineMotionStep(TimeSpan stepDuration, TimeSpan accumulatedTime, double beginSpindleAngle_rad, double[] mcValues, double feedrate_mmds, double spindleSpeed_radds, SpindleDirection spindleDirection, int toolId, Mat4d programZeroToWorkpieceGeomToMat4d, Mat4d workpieceGeomToProgramZeroMat4d, SeqPair seqOnWorkpieceGeomCoordinate) Parameters stepDuration TimeSpan The duration of this step. accumulatedTime TimeSpan The accumulated time up to this step. beginSpindleAngle_rad double The initial spindle angle in radians. mcValues double[] The machine coordinate values. feedrate_mmds double The feed rate in millimeters per second. spindleSpeed_radds double The spindle speed in radians per second. spindleDirection SpindleDirection The direction of spindle rotation. toolId int The ID of the tool being used. programZeroToWorkpieceGeomToMat4d Mat4d The transformation matrix from program zero to workpiece geometry. workpieceGeomToProgramZeroMat4d Mat4d The transformation matrix from workpiece geometry to program zero. seqOnWorkpieceGeomCoordinate SeqPair The sequence of transformations on workpiece geometry coordinate. Properties AccumulatedTime The work time at the end of the step. The value is StepBeginTime + StepDuration. public TimeSpan AccumulatedTime { get; set; } Property Value TimeSpan BeginSpindleAngle_deg Begin spindle rotation angle. in deg; public double BeginSpindleAngle_deg { get; set; } Property Value double BeginSpindleAngle_rad Begin spindle rotation angle. in rad; public double BeginSpindleAngle_rad { get; set; } Property Value double CdnTransformProgramToToolRunning Gets the transformation matrix from program to tool running coordinate. public Mat4d CdnTransformProgramToToolRunning { get; } Property Value Mat4d CdnTransformProgramToWorkpieceGeom Gets the transformation matrix from program zero to workpiece geometry. public Mat4d CdnTransformProgramToWorkpieceGeom { get; } Property Value Mat4d CdnTransformToolRunningToProgram Gets the transformation matrix from tool running to program coordinate. public Mat4d CdnTransformToolRunningToProgram { get; } Property Value Mat4d CdnTransformToolRunningToWorkpieceGeom Tool running coordinate to workpiece geom coordinate. public Mat4d CdnTransformToolRunningToWorkpieceGeom { get; } Property Value Mat4d CdnTransformWorkpieceGeomToProgram Gets the transformation matrix from workpiece geometry to program zero. public Mat4d CdnTransformWorkpieceGeomToProgram { get; } Property Value Mat4d CdnTransformWorkpieceGeomToToolRunning Gets the transformation matrix from workpiece geometry to tool running coordinate. public Mat4d CdnTransformWorkpieceGeomToToolRunning { get; } Property Value Mat4d CyclePeriod Gets the cycle period as a TimeSpan. public TimeSpan CyclePeriod { get; } Property Value TimeSpan CyclePeriod_s Gets the cycle period in seconds. public double CyclePeriod_s { get; } Property Value double EndSpindleAngle_deg Gets the end spindle angle in degrees. public double EndSpindleAngle_deg { get; } Property Value double EndSpindleAngle_rad Gets the end spindle angle in radians. public double EndSpindleAngle_rad { get; } Property Value double FeedPerCycle_mm Gets the feed per cycle in millimeters. public double FeedPerCycle_mm { get; } Property Value double Feedrate_mmds Gets or sets the feed rate in millimeters per second. public double Feedrate_mmds { get; set; } Property Value double GeomCl Gets the current position in workpiece geometry coordinate. public DVec3d GeomCl { get; } Property Value DVec3d McValues Machine coordinate values. public double[] McValues { get; set; } Property Value double[] MoveOnProgramCoordinate_mm Gets the movement vector in program coordinate in millimeters. public Vec3d MoveOnProgramCoordinate_mm { get; } Property Value Vec3d MoveOnWorkpieceGeomCoordinate_mm Gets the movement vector in workpiece geometry coordinate in millimeters. public Vec3d MoveOnWorkpieceGeomCoordinate_mm { get; } Property Value Vec3d MovingDirectionOnWorkpieceGeomCoordinate Gets the movement direction vector in workpiece geometry coordinate. public Vec3d MovingDirectionOnWorkpieceGeomCoordinate { get; } Property Value Vec3d MovingLength_mm Gets the length of movement in millimeters. public double MovingLength_mm { get; } Property Value double PassedSpindleAngle_deg For milling behavior only. public double PassedSpindleAngle_deg { get; } Property Value double PassedSpindleAngle_rad For milling behavior only. public double PassedSpindleAngle_rad { get; } Property Value double ProgramCl Gets the current position in program coordinate. public DVec3d ProgramCl { get; } Property Value DVec3d ProgramToWorkpieceGeomMat4d Gets or sets the transformation matrix from program zero to workpiece geometry. public Mat4d ProgramToWorkpieceGeomMat4d { get; set; } Property Value Mat4d SeqOnToolRunningCoordinate Gets the sequence of transformations on tool running coordinate. public SeqPair SeqOnToolRunningCoordinate { get; } Property Value SeqPair SeqOnWorkpieceGeomCoordinate Gets or sets the sequence of transformations on workpiece geometry coordinate. public SeqPair SeqOnWorkpieceGeomCoordinate { get; set; } Property Value SeqPair SpindleDirection Gets or sets the direction of spindle rotation. public SpindleDirection SpindleDirection { get; set; } Property Value SpindleDirection SpindleSpeed_cycleds Gets the spindle speed in cycles per second. public double SpindleSpeed_cycleds { get; } Property Value double SpindleSpeed_radds For milling behavior only. public double SpindleSpeed_radds { get; set; } Property Value double SpindleSpeed_rpm Gets the spindle speed in revolutions per minute. public double SpindleSpeed_rpm { get; } Property Value double StepBeginTime The work time at the begin of the step. public TimeSpan StepBeginTime { get; } Property Value TimeSpan StepDuration Gets or sets the duration of this step. public TimeSpan StepDuration { get; set; } Property Value TimeSpan ToolId Gets or sets the ID of the tool being used. public int ToolId { get; set; } Property Value int WorkpieceGeomToProgramMat4d Gets or sets the transformation matrix from workpiece geometry to program zero. public Mat4d WorkpieceGeomToProgramMat4d { get; set; } Property Value Mat4d Methods GetFeedPerTooth_mm(IMachiningTool) Gets the feed per tooth in millimeters. public double GetFeedPerTooth_mm(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns double The feed per tooth in millimeters. GetFeedrate_mmds() Gets the program feedrate in millimeters per second. public double GetFeedrate_mmds() Returns double Feedrate in mm/s GetMachiningTool(MachiningToolHouse) Gets the machining tool from the tool house. public IMachiningTool GetMachiningTool(MachiningToolHouse toolHouse) Parameters toolHouse MachiningToolHouse The machining tool house. Returns IMachiningTool The machining tool. GetProgramSideCuspHeight_mm(IMachiningTool) Gets the program side cusp height in millimeters. public double GetProgramSideCuspHeight_mm(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns double The program side cusp height in millimeters. GetSideCuspList_mm(IMachiningTool) Gets the list of side cusp heights in millimeters. public List GetSideCuspList_mm(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns List The list of side cusp heights in millimeters. GetSideCuspPhaseInterval_rad(IMachiningTool) Gets the side cusp phase interval in radians. public double GetSideCuspPhaseInterval_rad(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns double The side cusp phase interval in radians. GetSpindleDirection() Gets the spindle rotation direction. public SpindleDirection GetSpindleDirection() Returns SpindleDirection The spindle direction (clockwise, counterclockwise, or stopped) GetSpindleSpeed_cycleds() public double GetSpindleSpeed_cycleds() Returns double GetSpindleSpeed_radds() Gets the spindle speed in radians per second. public double GetSpindleSpeed_radds() Returns double Spindle speed in rad/s GetToothArcDuration_s(IMachiningTool) Gets the duration of a single tooth arc in seconds. public double GetToothArcDuration_s(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns double The duration of a single tooth arc in seconds. GetToothSeqOnToolRunningCoordinate(IMachiningTool) Gets the sequence of transformations for a single tooth on tool running coordinate. public SeqPair GetToothSeqOnToolRunningCoordinate(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns SeqPair The sequence of transformations for a single tooth. ToString() Returns a string representation of this machining step. public override string ToString() Returns string A string representation of this machining step." }, "api/Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html": { "href": "api/Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html", @@ -2022,7 +2027,7 @@ "api/Hi.MachiningSteps.MachiningStep.html": { "href": "api/Hi.MachiningSteps.MachiningStep.html", "title": "Class MachiningStep | HiAPI-C# 2025", - "summary": "Class MachiningStep Namespace Hi.MachiningSteps Assembly HiMech.dll Represents a machining step enriched with physics, mapping and source metadata. public class MachiningStep : IGetIndexedFileLine, IFlexDictionaryHost, IGetFeedrate, IGetSpindleSpeed, IGetRgbWithPriority Inheritance object MachiningStep Implements IGetIndexedFileLine IFlexDictionaryHost IGetFeedrate IGetSpindleSpeed IGetRgbWithPriority Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) FlexDictionaryUtil.CallFlexDictionary(IFlexDictionaryHost) FlexDictionaryUtil.GetFlexDictionaryBytes(IFlexDictionaryHost, IntegerKeyDictionaryConverter) FlexDictionaryUtil.WriteFlexDictionary(IFlexDictionaryHost, BinaryWriter, IntegerKeyDictionaryConverter) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningStep(IMachiningStepHost, int, IIndexedFileLine, MachineMotionStep, MillingInstance, CollidedKeyPair[]) Initializes a new instance of the MachiningStep class. public MachiningStep(IMachiningStepHost host, int stepIndex, IIndexedFileLine sourceCommand, MachineMotionStep machineMotionStep, MillingInstance millingInstance, MachiningStep.CollidedKeyPair[] collidedKeyPairs) Parameters host IMachiningStepHost The host of the milling step. stepIndex int The index of the step. sourceCommand IIndexedFileLine The source command. machineMotionStep MachineMotionStep The machine motion step parameters. millingInstance MillingInstance The physics result for the step. collidedKeyPairs CollidedKeyPair[] The collided key pairs detected in this step. Properties AccumulatedCraterWear_um Gets the accumulated crater wear in micrometers [Present(\"Accumulated Crater Wear\", \"A.C.Wear\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedCraterWear_um { get; } Property Value double AccumulatedFlankWearDepth_um Gets the accumulated flank wear depth in micrometers [Present(\"Accumulated Flank Wear Depth\", \"A.F.Wear.Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedFlankWearDepth_um { get; } Property Value double AccumulatedFlankWearWidth_um Gets the accumulated flank wear width in micrometers [Present(\"Accumulated Flank Wear Width\", \"A.F.Wear.Width\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedFlankWearWidth_um { get; } Property Value double AccumulatedSpindleEnergyConsumption_kWh Gets the accumulated spindle energy consumption in kilowatt-hours [Present(\"Accumulated Spindle Energy Consumption\", null, PhysicsUnit.kWh, \"G6\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedSpindleEnergyConsumption_kWh { get; } Property Value double AccumulatedTime Ideal accumulated worked time by simulation. Ideal Program duration. [Present(\"Time\", null, PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan AccumulatedTime { get; } Property Value TimeSpan ActualTime Actual accumulated worked time. Actual Program time. [Present(\"Actual Time\", \"Act.Time\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan? ActualTime { get; set; } Property Value TimeSpan? AvgAbsMomentAboutSensorVec3d_Nm Gets the average absolute moment about sensor vector in Newton-meters [Present(\"Avg Abs Moment To Tool About Sensor\", \"Avg-Abs-M-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgAbsMomentAboutSensorVec3d_Nm { get; } Property Value Vec3d AvgAbsMomentXAboutSensorOnSpindleRotationCoordinate_Nm Gets the average absolute moment X about sensor on spindle rotation coordinate in Newton-meters [Present(\"Avg Abs Moment X To Tool About Sensor On Spindle Rotation Coordinate\", \"AvgAbsMx-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsMomentXAboutSensorOnSpindleRotationCoordinate_Nm { get; } Property Value double? AvgAbsMomentXAboutToolTipOnSpindleRotationCoordinate_Nm Gets the average absolute moment X about tool tip on spindle rotation coordinate in Newton-meters [Present(\"Avg Abs Moment X To Tool About Tool Tip On Spindle Rotation Coordinate\", \"AvgAbsMx-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AvgAbsMomentXAboutToolTipOnSpindleRotationCoordinate_Nm { get; } Property Value double AvgAbsTorqueByMapping_Nm Gets the average absolute torque by mapping in Newton-meters [Present(\"Avg Abs Torque By Mapping\", \"AvgAbsTorque-Map\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueByMapping_Nm { get; } Property Value double? AvgAbsTorqueErrorRatioWithMapping numerator is sim value minus mapping value; denominator is the mapping value. [Present(\"Avg Torque Error Ratio by Mapping\", \"Torque-Err-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueErrorRatioWithMapping { get; } Property Value double? AvgAbsTorqueSignedErrorRelationWithMapping The sign is from sim value minus mapping value. the quantity is Math.Sqrt(err.Square() / Math.Abs(sim * mapping)) [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueSignedErrorRelationWithMapping { get; } Property Value double? AvgAbsTorque_Nm AvgAbsTorqueOnSpindleRotationCoordinate [Present(\"Avg Abs Torque\", \"AvgAbsTorque\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorque_Nm { get; } Property Value double? AvgForceToToolOnToolRunningCoordinate_N Gets the average force to tool on tool running coordinate in N. [Present(\"AvgForceToToolOnToolRunningCoordinate\", \"AvgForce-ToTool-TR\", PhysicsUnit.N, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgForceToToolOnToolRunningCoordinate_N { get; } Property Value Vec3d AvgForceXToToolOnToolRunningCoordinate_N Gets the average force X to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceXToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgForceYToToolOnToolRunningCoordinate_N Gets the average force Y to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceYToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgForceZToToolOnToolRunningCoordinate_N Gets the average force Z to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceZToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgMomentAboutSensor_Nm Gets the average moment about sensor in Newton-meters [Present(\"Avg Moment To Tool About Sensor\", \"AvgM-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentAboutSensor_Nm { get; } Property Value double? AvgMomentAboutToolTipOnProgramCoordinate_Nm Gets the average moment about tool tip on program coordinate in Newton-meters [Present(\"Avg Moment To Tool About Tool Tip On Workpiece Program Coordinate\", \"AvgAbsM-ToTool-Tip-W\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgMomentAboutToolTipOnProgramCoordinate_Nm { get; } Property Value Vec3d AvgMomentAboutToolTipOnToolRunningCoordinate_Nm Gets the average moment about tool tip on tool running coordinate in Newton-meters [Present(\"Avg Moment To Tool About Tool Tip On Tool Running Coordinate\", \"AvgAbsM-ToTool-Tip-TR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgMomentAboutToolTipOnToolRunningCoordinate_Nm { get; } Property Value Vec3d AvgMomentAboutToolTip_Nm Gets the average moment about tool tip in Newton-meters [Present(\"Avg Moment To Tool About ToolTip\", \"AvgM-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentAboutToolTip_Nm { get; } Property Value double? AvgMomentXyAboutObservationPoint_Nm Gets the average moment XY about observation point in Newton-meters [Present(\"Avg Moment XY To Tool About Sensor\", \"AvgM-ToTool-Sensor.XY\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyAboutObservationPoint_Nm { get; } Property Value double? AvgMomentXyByMapping_Nm Gets the average moment XY by mapping in Newton-meters [Present(\"Avg Moment XY By Mapping\", \"AvgM-Map.XY\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyByMapping_Nm { get; } Property Value double? AvgMomentXyErrorRatioWithMapping Gets the average moment XY error ratio with mapping. Numerator is sim value minus mapping value; denominator is the mapping value. [Present(\"Avg Moment XY Error Ratio by Mapping\", \"M-XY-Err-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyErrorRatioWithMapping { get; } Property Value double? AvgMomentXySignedErrorRelationWithMapping The sign is from sim value minus mapping value. the quantity is Math.Sqrt(err.Square() / Math.Abs(sim * mapping)) [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXySignedErrorRelationWithMapping { get; } Property Value double? BeginSpindleAngle_deg Gets the beginning spindle angle in degrees. [Present(\"Beginning Spindle Angle Shift\", \"Spd. Ang. Shift\", PhysicsUnit.deg, \"F2\")] [JsAce(ClassExt = \"MachiningStep\")] public double BeginSpindleAngle_deg { get; } Property Value double ChipMass_g Gets the chip mass in grams. [JsAce(ClassExt = \"MachiningStep\")] public double? ChipMass_g { get; } Property Value double? ChipMass_mg Gets the chip mass in milligrams. [Present(\"Chip Mass\", null, PhysicsUnit.mg, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipMass_mg { get; } Property Value double? ChipTemperature_C Gets the chip temperature in Celsius [Present(\"Chip Temperature\", \"Chip T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipTemperature_C { get; } Property Value double? ChipThickness_mm Gets the chip thickness in mm. [Present(\"Chip Thickness\", null, PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipThickness_mm { get; } Property Value double? ChipThickness_um Gets the chip thickness in micrometers public double? ChipThickness_um { get; } Property Value double? ChipVolume_mm3 Gets the chip volume in mm³. [Present(\"Chip Volume\", null, PhysicsUnit.mm3, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipVolume_mm3 { get; } Property Value double? Cl Gets the cutter location. [Present(\"Cutter Location\", \"CL\", PhysicsUnit.mm, \"F5\")] public DVec3d Cl { get; } Property Value DVec3d CollidedKeyPairs Gets or sets the collided key pairs if a collision was detected for this step. public MachiningStep.CollidedKeyPair[] CollidedKeyPairs { get; set; } Property Value CollidedKeyPair[] CollisionText A formatted text representing collided key pairs, e.g. \"(A,B);(C,D)\". Returns null when there is no collision. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string CollisionText { get; } Property Value string CutterBodyTemperature_C Gets the cutter body temperature in Celsius [Present(\"Cutter Body Temperature\", \"Ct. Body T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CutterBodyTemperature_C { get; } Property Value double? CutterDermisTemperature_C Gets the cutter dermis temperature in Celsius [Present(\"Cutter Dermis Temperature\", \"Ct. Dermis T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CutterDermisTemperature_C { get; } Property Value double? CuttingDepth_mm Gets the cutting depth in mm. [Present(\"Cutting Depth\", \"ap\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double CuttingDepth_mm { get; } Property Value double CuttingForcesToToolOnToolRunningCoordinate_N Cutting forces on tool running coordinate. Unit is Newtons. The forced item is tool. public List CuttingForcesToToolOnToolRunningCoordinate_N { get; } Property Value List CuttingForcesToWorkpieceOnProgramCoordinate_N Get the cutting forces on program coordinate. Unit is Newtons. The forced item is workpiece. public List CuttingForcesToWorkpieceOnProgramCoordinate_N { get; } Property Value List CuttingSpeed_mmds Gets the cutting speed in mm/s. The speed on the cutter outer radius by the spindle rotating. [Present(\"Cutting Speed\", \"Vc\", PhysicsUnit.mmds, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CuttingSpeed_mmds { get; } Property Value double? CuttingWidth_mm Gets the cutting width in mm. [Present(\"Cutting Width\", \"ae\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double CuttingWidth_mm { get; } Property Value double DeltaTipDeflectionOnToolRunningCoordinate_um Gets the delta tip deflection on tool running coordinate in micrometers [Present(\"Delta Tip Deflection On Tool Running Coordinate\", \"Dlt.Df.-Tip-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d DeltaTipDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d FeedPerCycle_mm Gets the feed per cycle in mm. [Present(\"Feed per Cycle\", \"frc\", PhysicsUnit.mm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double FeedPerCycle_mm { get; } Property Value double FeedPerTooth_mm Gets the feed per tooth in mm. [Present(\"Feed per Tooth\", \"frt\", PhysicsUnit.mm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double FeedPerTooth_mm { get; } Property Value double Feedrate_mmdmin Gets the feedrate in mm/min. [Present(\"Feedrate\", \"F\", PhysicsUnit.mmdmin, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double Feedrate_mmdmin { get; } Property Value double Feedrate in mm/s FileNo Gets the file number. [Present] [JsAce(ClassExt = \"MachiningStep\")] public int? FileNo { get; } Property Value int? FilePath Gets the file path. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string FilePath { get; } Property Value string FlagsText Gets the flags text. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string FlagsText { get; } Property Value string FlexDictionary Gets or sets the flexible dictionary. public Dictionary FlexDictionary { get; set; } Property Value Dictionary FrictionPower_W friction power takes by workpiece per cycle. the unit is watt. [JsAce(ClassExt = \"MachiningStep\")] public double? FrictionPower_W { get; } Property Value double? Host Gets or sets the host of the milling step. public IMachiningStepHost Host { get; set; } Property Value IMachiningStepHost InfInsistentSpindlePowerRatio Continuous spindle power ratio: input power / time-unlimited maximum power per spindle capability. [Present(\"Continue Spindle Power Ratio\", \"Cont.Spd.Pow.R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? InfInsistentSpindlePowerRatio { get; } Property Value double? InfInsistentSpindleTorqueRatio Gets the infinite insistent spindle torque ratio [Present(\"Continue Spindle Torque Ratio\", \"Cont.Spd.Torque-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? InfInsistentSpindleTorqueRatio { get; } Property Value double? InstantCraterWear_um Gets the instant crater wear in micrometers [Present(\"Instant Crater Wear\", \"I.C.Wear\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? InstantCraterWear_um { get; } Property Value double? IsReliefFaceCollided Gets a value indicating whether the relief face is collided. [Present(\"Is Relief Face Collided\", \"Is-Rlf.C.\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public bool? IsReliefFaceCollided { get; } Property Value bool? IsTouched Gets whether the step is touched. [Present(\"Is Touched\", null, PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public bool IsTouched { get; } Property Value bool this[string] Gets or sets a value in the flexible dictionary by key. public object this[string key] { get; set; } Parameters key string The key to look up. Property Value object The value associated with the key, or null if not found. LineNo Gets the line number. [Present] [JsAce(ClassExt = \"MachiningStep\")] public int? LineNo { get; } Property Value int? LineText Gets the line text. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string LineText { get; } Property Value string MachineMotionStep Gets or sets the machining step. public MachineMotionStep MachineMotionStep { get; set; } Property Value MachineMotionStep MachiningTool Gets the machining tool used for this milling step. public IMachiningTool MachiningTool { get; } Property Value IMachiningTool MaxAbsForce_N Max absolute force at the rotation cycle. [Present(\"Max Absolute Force\", \"Max Abs F.\", PhysicsUnit.N, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxAbsForce_N { get; } Property Value double? MaxBottomEdgeDeflectionOnToolRunningCoordinate_mm Gets the maximum bottom edge deflection on tool running coordinate in millimeters It only make sense in end mill. The z value of this factor is re-cut depth. [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_mm { get; } Property Value Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_um Gets the maximum bottom edge deflection on tool running coordinate in micrometers. [Present(\"Max Bottom Edge Deflection On Tool Running Coordinate\", \"Df.-Bt.Edge-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d MaxForceOnToolRunningCoordinate_N Gets the maximum force on tool running coordinate in N. public Vec3d MaxForceOnToolRunningCoordinate_N { get; } Property Value Vec3d MaxMomentAboutSensor_Nm Gets the maximum moment about sensor in Newton-meters [Present(\"Max Moment To Tool About Sensor\", \"MaxM-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MaxMomentAboutSensor_Nm { get; } Property Value double MaxMomentAboutToolTip_Nm Gets the maximum moment about tool tip in Newton-meters [Present(\"Max Moment To Tool About ToolTip\", \"MaxM-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MaxMomentAboutToolTip_Nm { get; } Property Value double MaxSpindlePowerRatio Maximum spindle power ratio: input power / instantaneous maximum power per spindle capability. [Present(\"Max Spindle Power Ratio\", \"Max.Spd.Pow.R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxSpindlePowerRatio { get; } Property Value double? MaxSpindleTorqueRatio Gets the maximum spindle torque ratio [Present(\"Max Spindle Torque Ratio\", \"Max.Spd.Torque-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxSpindleTorqueRatio { get; } Property Value double? MaxTipDeflectionOnToolRunningCoordinate_mm Gets the maximum tip deflection on tool running coordinate in millimeters [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxTipDeflectionOnToolRunningCoordinate_mm { get; } Property Value Vec3d MaxTipDeflectionOnToolRunningCoordinate_um Gets the maximum tip deflection on tool running coordinate in micrometers [Present(\"Max Tip Deflection On Tool Running Coordinate\", \"Max.Df.-Tip-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxTipDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d MillingInstance Gets or sets the milling instance. public MillingInstance MillingInstance { get; set; } Property Value MillingInstance MillingStepLuggage Get luggage by sequencing loading performance optimization. public MillingStepLuggage MillingStepLuggage { get; } Property Value MillingStepLuggage MomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm Get Moments About Observation Point On Spindle Rotation Coordinate. Unit is Newtons-meter. The forced item is tool. public List MomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm { get; } Property Value List Remarks Not cached data. Light computation cost of the vectors transformation. MoveOnProgramCoordinate Gets the move on program coordinate. [Present(\"Move On Workpiece Program Coordinate\", \"Move-W\", PhysicsUnit.mm, \"F4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MoveOnProgramCoordinate { get; } Property Value Vec3d MovingLength_mm Gets the moving length in mm. [Present(\"Move Length\", \"Move Len.\", PhysicsUnit.mm, \"F4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MovingLength_mm { get; } Property Value double Mrr_mm3ds Gets the material removal rate in mm³/s. [Present(\"MRR\", null, PhysicsUnit.mm3ds, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double Mrr_mm3ds { get; } Property Value double ProgramSideCusp_um Gets the program side cusp in micrometers. Side cusp without deformation. The value is count by feed per tooth and the tool radius. [Present(\"Program Side Cusp\", null, PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ProgramSideCusp_um { get; } Property Value double ReCutDepth_um Gets or sets the recut depth in micrometers. The recut depth cause the cutting mark by the end mill. The recut depth increased by the cutter radius increased. [Present(\"Re-Cut Depth on Bottom Edge on Tool Running Coordinate\", \"Re-Cut Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ReCutDepth_um { get; } Property Value double ReliefFaceCollidingDepth_mm Gets the relief face colliding depth in millimeters. [Present(\"Relief Face Colliding Depth\", \"Rlf.C.Depth\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ReliefFaceCollidingDepth_mm { get; } Property Value double? SideCuspList_um Gets the list of side cusps in micrometers. [JsAce(ClassExt = \"MachiningStep\")] public List SideCuspList_um { get; } Property Value List SourceCommand Gets or sets the source command. public IIndexedFileLine SourceCommand { get; set; } Property Value IIndexedFileLine SpindleCyclePeriod_s Gets the spindle rotation cycle period in seconds. [Present(\"Spindle Cycle Period\", null, PhysicsUnit.sec, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleCyclePeriod_s { get; } Property Value double SpindleInputPower_W Input spindle power in watts: energy entering the spindle. [Present(\"Spindle Input Power\", null, PhysicsUnit.watt, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleInputPower_W { get; } Property Value double Input spindle power in Watts. SpindleOutputPower_W Spindle output power in watts (axial power taken by workpiece). Energy at the cutting end after spindle losses; causes workpiece/chip deformation and temperature rise. [Present(\"Spindle Output Power\", null, PhysicsUnit.watt, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleOutputPower_W { get; } Property Value double SpindleSpeed_rpm Gets the spindle speed in RPM. [Present(\"Spindle Speed\", \"S\", PhysicsUnit.rpm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleSpeed_rpm { get; } Property Value double Spindle speed in rad/s SpindleTemperature_C Gets the spindle temperature in Celsius [Present(\"Spindle Temperature\", \"Spd.Temp.\", PhysicsUnit.C, \"G2\")] [JsAce(ClassExt = \"MachiningStep\")] public double? SpindleTemperature_C { get; } Property Value double? SpindleWorkingTemperatureRatio Gets the spindle working temperature ratio [Present(\"Spindle Working Temperature Ratio\", \"Spd.Temp.R.\", PhysicsUnit.None, \"G2\")] [JsAce(ClassExt = \"MachiningStep\")] public double? SpindleWorkingTemperatureRatio { get; } Property Value double? StepDuration Gets the step duration. [Present(\"Step Duration\", \"duration\", PhysicsUnit.sec, \"ss\\\\.ffffff\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan StepDuration { get; } Property Value TimeSpan StepIndex Gets the index of the step. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] [Present(\"Step Index\", \"S.I.\", PhysicsUnit.None, \"G\")] public int StepIndex { get; } Property Value int ThermalStress_MPa Gets the thermal stress in MPa [Present(\"Thermal Stress\", \"Th. S.\", PhysicsUnit.MPa, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ThermalStress_MPa { get; } Property Value double? ThermalYieldRatio Gets the thermal yield ratio [Present(\"Thermal Yield Ratio\", \"Th. Yield R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ThermalYieldRatio { get; } Property Value double? TipDeflectionsOnToolRunningCoordinate_um Gets the tip deflections on tool running coordinate in micrometers [JsAce(ClassExt = \"MachiningStep\")] public List TipDeflectionsOnToolRunningCoordinate_um { get; } Property Value List ToolId Gets the tool ID. [Present(\"Tool ID\", \"T\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public int ToolId { get; } Property Value int ToothArcDuration_s Gets the tooth arc duration in seconds by the spindle rotation. The value is SpindleCyclePeriod_s div Cutter's teeth number. [Present(\"Tooth Arc Duration\", null, PhysicsUnit.sec, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ToothArcDuration_s { get; } Property Value double ToothSeqOnToolRunningCoordinate Gets the sequence pair of transformation matrices representing tooth positions on the tool running coordinate system. public SeqPair ToothSeqOnToolRunningCoordinate { get; } Property Value SeqPair WorkpieceDermisTemperature_C Gets the workpiece dermis temperature in Celsius [Present(\"Workpiece Dermis Temperature\", \"W. Dermis T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? WorkpieceDermisTemperature_C { get; } Property Value double? WorkpiecePlasticDepth_um Gets the workpiece plastic depth in micrometers. The depth is at the location that the cutting stress is equal to the yielding stress. The cutting stress exert to the workpiece decreased on the depth increased. [Present(\"Workpiece Plastic Deformation Depth\", \"W.P.Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double WorkpiecePlasticDepth_um { get; } Property Value double YieldingStressRatio Gets the yielding stress ratio [Present(\"Yielding Stress Ratio\", \"Y-Stress-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? YieldingStressRatio { get; } Property Value double? Methods GetCutterDermisAvgTemperature_C(double) Gets the average cutter dermis temperature in Celsius at the specified depth. [JsAce(ClassExt = \"MachiningStep\")] public double GetCutterDermisAvgTemperature_C(double depth_mm) Parameters depth_mm double The depth in millimeters Returns double Average temperature in Celsius GetCutterDermisTemperature_C(double) Gets the cutter dermis temperature in Celsius at the specified depth. [JsAce(ClassExt = \"MachiningStep\")] public double GetCutterDermisTemperature_C(double depth_mm) Parameters depth_mm double The depth in millimeters Returns double Temperature in Celsius GetFeedrate_mmds() Gets the program feedrate in millimeters per second. public double GetFeedrate_mmds() Returns double Feedrate in mm/s GetIndexedFileLine() Gets the file line associated with this object. public IndexedFileLine GetIndexedFileLine() Returns IndexedFileLine The file line object. GetKeyToQuantityNativeDictionary(IMachiningChain) Internal use. public static ConcurrentDictionary> GetKeyToQuantityNativeDictionary(IMachiningChain machiningChain) Parameters machiningChain IMachiningChain Returns ConcurrentDictionary> GetMcValue(IMachiningChain, string) Gets the MC value for the specified tag in the machining chain. public double? GetMcValue(IMachiningChain chain, string tag) Parameters chain IMachiningChain The machining chain. tag string The tag to look up. Returns double? The MC value for the specified tag. GetMcValue(int) Gets the MC value at the specified index. For common machine tool, the index 0,1,2,3,4,5 is corresponding to motion component X,Y,Z,A,B,C. If the corresponding motion component not existed, return NaN. If MachineMotionStep not existed, return null. [JsAce(ClassExt = \"MachiningStep\")] public double? GetMcValue(int index) Parameters index int The index to look up. Returns double? The MC value at the specified index. GetRgbWithPriority(out Vec3d, out double) Gets the RGB color and priority for the milling step. public void GetRgbWithPriority(out Vec3d rgb, out double priority) Parameters rgb Vec3d The RGB color vector. priority double The priority value. GetSpindleDirection() Gets the spindle direction for this milling step. [Present(\"Spindle Direction\", \"Spd.Dir.\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public SpindleDirection GetSpindleDirection() Returns SpindleDirection GetSpindleSpeed_radds() Gets the spindle speed in radians per second. public double GetSpindleSpeed_radds() Returns double Spindle speed in rad/s UpdateNcOptOption(Action) Update NcOptOption for this step only. Unlike the modification within the script (script command in NC code or RuntimeApi), the setting is not applied to the further step. public void UpdateNcOptOption(Action action) Parameters action Action the action to modify the step." + "summary": "Class MachiningStep Namespace Hi.MachiningSteps Assembly HiMech.dll Represents a machining step enriched with physics, mapping and source metadata. The duration-based step property is based on the duration from previous-step to current-step. public class MachiningStep : IGetIndexedFileLine, IFlexDictionaryHost, IGetFeedrate, IGetSpindleSpeed, IGetRgbWithPriority Inheritance object MachiningStep Implements IGetIndexedFileLine IFlexDictionaryHost IGetFeedrate IGetSpindleSpeed IGetRgbWithPriority Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) FlexDictionaryUtil.CallFlexDictionary(IFlexDictionaryHost) FlexDictionaryUtil.GetFlexDictionaryBytes(IFlexDictionaryHost, IntegerKeyDictionaryConverter) FlexDictionaryUtil.WriteFlexDictionary(IFlexDictionaryHost, BinaryWriter, IntegerKeyDictionaryConverter) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningStep(IMachiningStepHost, int, IIndexedFileLine, MachineMotionStep, MillingInstance, CollidedKeyPair[]) Initializes a new instance of the MachiningStep class. public MachiningStep(IMachiningStepHost host, int stepIndex, IIndexedFileLine sourceCommand, MachineMotionStep machineMotionStep, MillingInstance millingInstance, MachiningStep.CollidedKeyPair[] collidedKeyPairs) Parameters host IMachiningStepHost The host of the milling step. stepIndex int The index of the step. sourceCommand IIndexedFileLine The source command. machineMotionStep MachineMotionStep The machine motion step parameters. millingInstance MillingInstance The physics result for the step. collidedKeyPairs CollidedKeyPair[] The collided key pairs detected in this step. Properties AccumulatedCraterWear_um Gets the accumulated crater wear in micrometers [Present(\"Accumulated Crater Wear\", \"A.C.Wear\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedCraterWear_um { get; } Property Value double AccumulatedFlankWearDepth_um Gets the accumulated flank wear depth in micrometers [Present(\"Accumulated Flank Wear Depth\", \"A.F.Wear.Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedFlankWearDepth_um { get; } Property Value double AccumulatedFlankWearWidth_um Gets the accumulated flank wear width in micrometers [Present(\"Accumulated Flank Wear Width\", \"A.F.Wear.Width\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedFlankWearWidth_um { get; } Property Value double AccumulatedSpindleEnergyConsumption_kWh Gets the accumulated spindle energy consumption in kilowatt-hours [Present(\"Accumulated Spindle Energy Consumption\", null, PhysicsUnit.kWh, \"G6\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedSpindleEnergyConsumption_kWh { get; } Property Value double AccumulatedTime Ideal accumulated worked time by simulation. Ideal Program duration. [Present(\"Time\", null, PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan AccumulatedTime { get; } Property Value TimeSpan ActualTime Actual accumulated worked time. Actual Program time. [Present(\"Actual Time\", \"Act.Time\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan? ActualTime { get; set; } Property Value TimeSpan? AvgAbsMomentAboutSensorVec3d_Nm Gets the average absolute moment about sensor vector in Newton-meters [Present(\"Avg Abs Moment To Tool About Sensor\", \"Avg-Abs-M-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgAbsMomentAboutSensorVec3d_Nm { get; } Property Value Vec3d AvgAbsMomentXAboutSensorOnSpindleRotationCoordinate_Nm Gets the average absolute moment X about sensor on spindle rotation coordinate in Newton-meters [Present(\"Avg Abs Moment X To Tool About Sensor On Spindle Rotation Coordinate\", \"AvgAbsMx-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsMomentXAboutSensorOnSpindleRotationCoordinate_Nm { get; } Property Value double? AvgAbsMomentXAboutToolTipOnSpindleRotationCoordinate_Nm Gets the average absolute moment X about tool tip on spindle rotation coordinate in Newton-meters [Present(\"Avg Abs Moment X To Tool About Tool Tip On Spindle Rotation Coordinate\", \"AvgAbsMx-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AvgAbsMomentXAboutToolTipOnSpindleRotationCoordinate_Nm { get; } Property Value double AvgAbsTorqueByMapping_Nm Gets the average absolute torque by mapping in Newton-meters [Present(\"Avg Abs Torque By Mapping\", \"AvgAbsTorque-Map\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueByMapping_Nm { get; } Property Value double? AvgAbsTorqueErrorRatioWithMapping numerator is sim value minus mapping value; denominator is the mapping value. [Present(\"Avg Torque Error Ratio by Mapping\", \"Torque-Err-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueErrorRatioWithMapping { get; } Property Value double? AvgAbsTorqueSignedErrorRelationWithMapping The sign is from sim value minus mapping value. the quantity is Math.Sqrt(err.Square() / Math.Abs(sim * mapping)) [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueSignedErrorRelationWithMapping { get; } Property Value double? AvgAbsTorque_Nm AvgAbsTorqueOnSpindleRotationCoordinate [Present(\"Avg Abs Torque\", \"AvgAbsTorque\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorque_Nm { get; } Property Value double? AvgForceToToolOnToolRunningCoordinate_N Gets the average force to tool on tool running coordinate in N. [Present(\"AvgForceToToolOnToolRunningCoordinate\", \"AvgForce-ToTool-TR\", PhysicsUnit.N, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgForceToToolOnToolRunningCoordinate_N { get; } Property Value Vec3d AvgForceXToToolOnToolRunningCoordinate_N Gets the average force X to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceXToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgForceYToToolOnToolRunningCoordinate_N Gets the average force Y to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceYToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgForceZToToolOnToolRunningCoordinate_N Gets the average force Z to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceZToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgMomentAboutSensor_Nm Gets the average moment about sensor in Newton-meters [Present(\"Avg Moment To Tool About Sensor\", \"AvgM-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentAboutSensor_Nm { get; } Property Value double? AvgMomentAboutToolTipOnProgramCoordinate_Nm Gets the average moment about tool tip on program coordinate in Newton-meters [Present(\"Avg Moment To Tool About Tool Tip On Workpiece Program Coordinate\", \"AvgAbsM-ToTool-Tip-W\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgMomentAboutToolTipOnProgramCoordinate_Nm { get; } Property Value Vec3d AvgMomentAboutToolTipOnToolRunningCoordinate_Nm Gets the average moment about tool tip on tool running coordinate in Newton-meters [Present(\"Avg Moment To Tool About Tool Tip On Tool Running Coordinate\", \"AvgAbsM-ToTool-Tip-TR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgMomentAboutToolTipOnToolRunningCoordinate_Nm { get; } Property Value Vec3d AvgMomentAboutToolTip_Nm Gets the average moment about tool tip in Newton-meters [Present(\"Avg Moment To Tool About ToolTip\", \"AvgM-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentAboutToolTip_Nm { get; } Property Value double? AvgMomentXyAboutObservationPoint_Nm Gets the average moment XY about observation point in Newton-meters [Present(\"Avg Moment XY To Tool About Sensor\", \"AvgM-ToTool-Sensor.XY\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyAboutObservationPoint_Nm { get; } Property Value double? AvgMomentXyByMapping_Nm Gets the average moment XY by mapping in Newton-meters [Present(\"Avg Moment XY By Mapping\", \"AvgM-Map.XY\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyByMapping_Nm { get; } Property Value double? AvgMomentXyErrorRatioWithMapping Gets the average moment XY error ratio with mapping. Numerator is sim value minus mapping value; denominator is the mapping value. [Present(\"Avg Moment XY Error Ratio by Mapping\", \"M-XY-Err-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyErrorRatioWithMapping { get; } Property Value double? AvgMomentXySignedErrorRelationWithMapping The sign is from sim value minus mapping value. the quantity is Math.Sqrt(err.Square() / Math.Abs(sim * mapping)) [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXySignedErrorRelationWithMapping { get; } Property Value double? BeginSpindleAngle_deg Gets the beginning spindle angle in degrees. [Present(\"Beginning Spindle Angle Shift\", \"Spd. Ang. Shift\", PhysicsUnit.deg, \"F2\")] [JsAce(ClassExt = \"MachiningStep\")] public double BeginSpindleAngle_deg { get; } Property Value double ChipMass_g Gets the chip mass in grams. [JsAce(ClassExt = \"MachiningStep\")] public double? ChipMass_g { get; } Property Value double? ChipMass_mg Gets the chip mass in milligrams. [Present(\"Chip Mass\", null, PhysicsUnit.mg, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipMass_mg { get; } Property Value double? ChipTemperature_C Gets the chip temperature in Celsius [Present(\"Chip Temperature\", \"Chip T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipTemperature_C { get; } Property Value double? ChipThickness_mm Gets the chip thickness in mm. [Present(\"Chip Thickness\", null, PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipThickness_mm { get; } Property Value double? ChipThickness_um Gets the chip thickness in micrometers public double? ChipThickness_um { get; } Property Value double? ChipVolume_mm3 Gets the chip volume in mm³. [Present(\"Chip Volume\", null, PhysicsUnit.mm3, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipVolume_mm3 { get; } Property Value double? Cl Gets the cutter location. [Present(\"Cutter Location\", \"CL\", PhysicsUnit.mm, \"F5\")] public DVec3d Cl { get; } Property Value DVec3d CollidedKeyPairs Gets or sets the collided key pairs if a collision was detected for this step. public MachiningStep.CollidedKeyPair[] CollidedKeyPairs { get; set; } Property Value CollidedKeyPair[] CollisionText A formatted text representing collided key pairs, e.g. \"(A,B);(C,D)\". Returns null when there is no collision. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string CollisionText { get; } Property Value string CutterBodyTemperature_C Gets the cutter body temperature in Celsius [Present(\"Cutter Body Temperature\", \"Ct. Body T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CutterBodyTemperature_C { get; } Property Value double? CutterDermisTemperature_C Gets the cutter dermis temperature in Celsius [Present(\"Cutter Dermis Temperature\", \"Ct. Dermis T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CutterDermisTemperature_C { get; } Property Value double? CuttingDepth_mm Gets the cutting depth in mm. [Present(\"Cutting Depth\", \"ap\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double CuttingDepth_mm { get; } Property Value double CuttingForcesToToolOnToolRunningCoordinate_N Cutting forces on tool running coordinate. Unit is Newtons. The forced item is tool. public List CuttingForcesToToolOnToolRunningCoordinate_N { get; } Property Value List CuttingForcesToWorkpieceOnProgramCoordinate_N Get the cutting forces on program coordinate. Unit is Newtons. The forced item is workpiece. public List CuttingForcesToWorkpieceOnProgramCoordinate_N { get; } Property Value List CuttingSpeed_mmds Gets the cutting speed in mm/s. The speed on the cutter outer radius by the spindle rotating. [Present(\"Cutting Speed\", \"Vc\", PhysicsUnit.mmds, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CuttingSpeed_mmds { get; } Property Value double? CuttingWidth_mm Gets the cutting width in mm. [Present(\"Cutting Width\", \"ae\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double CuttingWidth_mm { get; } Property Value double DeltaTipDeflectionOnToolRunningCoordinate_um Gets the delta tip deflection on tool running coordinate in micrometers [Present(\"Delta Tip Deflection On Tool Running Coordinate\", \"Dlt.Df.-Tip-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d DeltaTipDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d FeedPerCycle_mm Gets the feed per cycle in mm. [Present(\"Feed per Cycle\", \"frc\", PhysicsUnit.mm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double FeedPerCycle_mm { get; } Property Value double FeedPerTooth_mm Gets the feed per tooth in mm. [Present(\"Feed per Tooth\", \"frt\", PhysicsUnit.mm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double FeedPerTooth_mm { get; } Property Value double Feedrate_mmdmin Gets the feedrate in mm/min. [Present(\"Feedrate\", \"F\", PhysicsUnit.mmdmin, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double Feedrate_mmdmin { get; } Property Value double Feedrate in mm/s FileNo Gets the file number. [Present] [JsAce(ClassExt = \"MachiningStep\")] public int? FileNo { get; } Property Value int? FilePath Gets the file path. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string FilePath { get; } Property Value string FlagsText Gets the flags text. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string FlagsText { get; } Property Value string FlexDictionary Gets or sets the flexible dictionary. public Dictionary FlexDictionary { get; set; } Property Value Dictionary FrictionPower_W friction power takes by workpiece per cycle. the unit is watt. [JsAce(ClassExt = \"MachiningStep\")] public double? FrictionPower_W { get; } Property Value double? Host Gets or sets the host of the milling step. public IMachiningStepHost Host { get; set; } Property Value IMachiningStepHost InfInsistentSpindlePowerRatio Continuous spindle power ratio: input power / time-unlimited maximum power per spindle capability. [Present(\"Continue Spindle Power Ratio\", \"Cont.Spd.Pow.R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? InfInsistentSpindlePowerRatio { get; } Property Value double? InfInsistentSpindleTorqueRatio Gets the infinite insistent spindle torque ratio [Present(\"Continue Spindle Torque Ratio\", \"Cont.Spd.Torque-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? InfInsistentSpindleTorqueRatio { get; } Property Value double? InstantCraterWear_um Gets the instant crater wear in micrometers [Present(\"Instant Crater Wear\", \"I.C.Wear\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? InstantCraterWear_um { get; } Property Value double? IsReliefFaceCollided Gets a value indicating whether the relief face is collided. [Present(\"Is Relief Face Collided\", \"Is-Rlf.C.\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public bool? IsReliefFaceCollided { get; } Property Value bool? IsTouched Gets whether the step is touched. [Present(\"Is Touched\", null, PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public bool IsTouched { get; } Property Value bool this[string] Gets or sets a value in the flexible dictionary by key. public object this[string key] { get; set; } Parameters key string The key to look up. Property Value object The value associated with the key, or null if not found. LineNo Gets the line number. [Present] [JsAce(ClassExt = \"MachiningStep\")] public int? LineNo { get; } Property Value int? LineText Gets the line text. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string LineText { get; } Property Value string MachineMotionStep Gets or sets the machining step. public MachineMotionStep MachineMotionStep { get; set; } Property Value MachineMotionStep MachiningTool Gets the machining tool used for this milling step. public IMachiningTool MachiningTool { get; } Property Value IMachiningTool MaxAbsForce_N Max absolute force at the rotation cycle. [Present(\"Max Absolute Force\", \"Max Abs F.\", PhysicsUnit.N, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxAbsForce_N { get; } Property Value double? MaxBottomEdgeDeflectionOnToolRunningCoordinate_mm Gets the maximum bottom edge deflection on tool running coordinate in millimeters It only make sense in end mill. The z value of this factor is re-cut depth. [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_mm { get; } Property Value Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_um Gets the maximum bottom edge deflection on tool running coordinate in micrometers. [Present(\"Max Bottom Edge Deflection On Tool Running Coordinate\", \"Df.-Bt.Edge-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d MaxForceOnToolRunningCoordinate_N Gets the maximum force on tool running coordinate in N. public Vec3d MaxForceOnToolRunningCoordinate_N { get; } Property Value Vec3d MaxMomentAboutSensor_Nm Gets the maximum moment about sensor in Newton-meters [Present(\"Max Moment To Tool About Sensor\", \"MaxM-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MaxMomentAboutSensor_Nm { get; } Property Value double MaxMomentAboutToolTip_Nm Gets the maximum moment about tool tip in Newton-meters [Present(\"Max Moment To Tool About ToolTip\", \"MaxM-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MaxMomentAboutToolTip_Nm { get; } Property Value double MaxSpindlePowerRatio Maximum spindle power ratio: input power / instantaneous maximum power per spindle capability. [Present(\"Max Spindle Power Ratio\", \"Max.Spd.Pow.R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxSpindlePowerRatio { get; } Property Value double? MaxSpindleTorqueRatio Gets the maximum spindle torque ratio [Present(\"Max Spindle Torque Ratio\", \"Max.Spd.Torque-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxSpindleTorqueRatio { get; } Property Value double? MaxTipDeflectionOnToolRunningCoordinate_mm Gets the maximum tip deflection on tool running coordinate in millimeters [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxTipDeflectionOnToolRunningCoordinate_mm { get; } Property Value Vec3d MaxTipDeflectionOnToolRunningCoordinate_um Gets the maximum tip deflection on tool running coordinate in micrometers [Present(\"Max Tip Deflection On Tool Running Coordinate\", \"Max.Df.-Tip-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxTipDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d MillingInstance Gets or sets the milling instance. public MillingInstance MillingInstance { get; set; } Property Value MillingInstance MillingStepLuggage Get luggage by sequencing loading performance optimization. public MillingStepLuggage MillingStepLuggage { get; } Property Value MillingStepLuggage MomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm Get Moments About Observation Point On Spindle Rotation Coordinate. Unit is Newtons-meter. The forced item is tool. public List MomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm { get; } Property Value List Remarks Not cached data. Light computation cost of the vectors transformation. MoveOnProgramCoordinate Gets the move on program coordinate. [Present(\"Move On Workpiece Program Coordinate\", \"Move-W\", PhysicsUnit.mm, \"F4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MoveOnProgramCoordinate { get; } Property Value Vec3d MovingLength_mm Gets the moving length in mm. From previous-step to current-step. [Present(\"Move Length\", \"Move Len.\", PhysicsUnit.mm, \"F4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MovingLength_mm { get; } Property Value double Mrr_mm3ds Gets the material removal rate in mm³/s. [Present(\"MRR\", null, PhysicsUnit.mm3ds, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double Mrr_mm3ds { get; } Property Value double ProgramSideCusp_um Gets the program side cusp in micrometers. Side cusp without deformation. The value is count by feed per tooth and the tool radius. [Present(\"Program Side Cusp\", null, PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ProgramSideCusp_um { get; } Property Value double ReCutDepth_um Gets or sets the recut depth in micrometers. The recut depth cause the cutting mark by the end mill. The recut depth increased by the cutter radius increased. [Present(\"Re-Cut Depth on Bottom Edge on Tool Running Coordinate\", \"Re-Cut Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ReCutDepth_um { get; } Property Value double ReliefFaceCollidingDepth_mm Gets the relief face colliding depth in millimeters. [Present(\"Relief Face Colliding Depth\", \"Rlf.C.Depth\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ReliefFaceCollidingDepth_mm { get; } Property Value double? SideCuspList_um Gets the list of side cusps in micrometers. [JsAce(ClassExt = \"MachiningStep\")] public List SideCuspList_um { get; } Property Value List SourceCommand Gets or sets the source command. public IIndexedFileLine SourceCommand { get; set; } Property Value IIndexedFileLine SpindleCyclePeriod_s Gets the spindle rotation cycle period in seconds. [Present(\"Spindle Cycle Period\", null, PhysicsUnit.sec, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleCyclePeriod_s { get; } Property Value double SpindleInputPower_W Input spindle power in watts: energy entering the spindle. [Present(\"Spindle Input Power\", null, PhysicsUnit.watt, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleInputPower_W { get; } Property Value double Input spindle power in Watts. SpindleOutputPower_W Spindle output power in watts (axial power taken by workpiece). Energy at the cutting end after spindle losses; causes workpiece/chip deformation and temperature rise. [Present(\"Spindle Output Power\", null, PhysicsUnit.watt, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleOutputPower_W { get; } Property Value double SpindleSpeed_rpm Gets the spindle speed in RPM. [Present(\"Spindle Speed\", \"S\", PhysicsUnit.rpm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleSpeed_rpm { get; } Property Value double Spindle speed in rad/s SpindleTemperature_C Gets the spindle temperature in Celsius [Present(\"Spindle Temperature\", \"Spd.Temp.\", PhysicsUnit.C, \"G2\")] [JsAce(ClassExt = \"MachiningStep\")] public double? SpindleTemperature_C { get; } Property Value double? SpindleWorkingTemperatureRatio Gets the spindle working temperature ratio [Present(\"Spindle Working Temperature Ratio\", \"Spd.Temp.R.\", PhysicsUnit.None, \"G2\")] [JsAce(ClassExt = \"MachiningStep\")] public double? SpindleWorkingTemperatureRatio { get; } Property Value double? StepDuration Gets the step duration. [Present(\"Step Duration\", \"duration\", PhysicsUnit.sec, \"ss\\\\.ffffff\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan StepDuration { get; } Property Value TimeSpan StepIndex Gets the index of the step. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] [Present(\"Step Index\", \"S.I.\", PhysicsUnit.None, \"G\")] public int StepIndex { get; } Property Value int ThermalStress_MPa Gets the thermal stress in MPa [Present(\"Thermal Stress\", \"Th. S.\", PhysicsUnit.MPa, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ThermalStress_MPa { get; } Property Value double? ThermalYieldRatio Gets the thermal yield ratio [Present(\"Thermal Yield Ratio\", \"Th. Yield R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ThermalYieldRatio { get; } Property Value double? TipDeflectionsOnToolRunningCoordinate_um Gets the tip deflections on tool running coordinate in micrometers [JsAce(ClassExt = \"MachiningStep\")] public List TipDeflectionsOnToolRunningCoordinate_um { get; } Property Value List ToolId Gets the tool ID. [Present(\"Tool ID\", \"T\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public int ToolId { get; } Property Value int ToothArcDuration_s Gets the tooth arc duration in seconds by the spindle rotation. The value is SpindleCyclePeriod_s div Cutter's teeth number. [Present(\"Tooth Arc Duration\", null, PhysicsUnit.sec, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ToothArcDuration_s { get; } Property Value double ToothSeqOnToolRunningCoordinate Gets the sequence pair of transformation matrices representing tooth positions on the tool running coordinate system. public SeqPair ToothSeqOnToolRunningCoordinate { get; } Property Value SeqPair WorkpieceDermisTemperature_C Gets the workpiece dermis temperature in Celsius [Present(\"Workpiece Dermis Temperature\", \"W. Dermis T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? WorkpieceDermisTemperature_C { get; } Property Value double? WorkpiecePlasticDepth_um Gets the workpiece plastic depth in micrometers. The depth is at the location that the cutting stress is equal to the yielding stress. The cutting stress exert to the workpiece decreased on the depth increased. [Present(\"Workpiece Plastic Deformation Depth\", \"W.P.Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double WorkpiecePlasticDepth_um { get; } Property Value double YieldingStressRatio Gets the yielding stress ratio [Present(\"Yielding Stress Ratio\", \"Y-Stress-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? YieldingStressRatio { get; } Property Value double? Methods GetCutterDermisAvgTemperature_C(double) Gets the average cutter dermis temperature in Celsius at the specified depth. [JsAce(ClassExt = \"MachiningStep\")] public double GetCutterDermisAvgTemperature_C(double depth_mm) Parameters depth_mm double The depth in millimeters Returns double Average temperature in Celsius GetCutterDermisTemperature_C(double) Gets the cutter dermis temperature in Celsius at the specified depth. [JsAce(ClassExt = \"MachiningStep\")] public double GetCutterDermisTemperature_C(double depth_mm) Parameters depth_mm double The depth in millimeters Returns double Temperature in Celsius GetFeedrate_mmds() Gets the program feedrate in millimeters per second. public double GetFeedrate_mmds() Returns double Feedrate in mm/s GetIndexedFileLine() Gets the file line associated with this object. public IndexedFileLine GetIndexedFileLine() Returns IndexedFileLine The file line object. GetKeyToQuantityNativeDictionary(IMachiningChain) Internal use. public static ConcurrentDictionary> GetKeyToQuantityNativeDictionary(IMachiningChain machiningChain) Parameters machiningChain IMachiningChain Returns ConcurrentDictionary> GetMcValue(IMachiningChain, string) Gets the MC value for the specified tag in the machining chain. public double? GetMcValue(IMachiningChain chain, string tag) Parameters chain IMachiningChain The machining chain. tag string The tag to look up. Returns double? The MC value for the specified tag. GetMcValue(int) Gets the MC value at the specified index. For common machine tool, the index 0,1,2,3,4,5 is corresponding to motion component X,Y,Z,A,B,C. If the corresponding motion component not existed, return NaN. If MachineMotionStep not existed, return null. [JsAce(ClassExt = \"MachiningStep\")] public double? GetMcValue(int index) Parameters index int The index to look up. Returns double? The MC value at the specified index. GetRgbWithPriority(out Vec3d, out double) Gets the RGB color and priority for the milling step. public void GetRgbWithPriority(out Vec3d rgb, out double priority) Parameters rgb Vec3d The RGB color vector. priority double The priority value. GetSpindleDirection() Gets the spindle direction for this milling step. [Present(\"Spindle Direction\", \"Spd.Dir.\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public SpindleDirection GetSpindleDirection() Returns SpindleDirection GetSpindleSpeed_cycleds() public double GetSpindleSpeed_cycleds() Returns double GetSpindleSpeed_radds() Gets the spindle speed in radians per second. public double GetSpindleSpeed_radds() Returns double Spindle speed in rad/s UpdateNcOptOption(Action) Update NcOptOption for this step only. It should not be mixed with the StepBuilt event and NC inline script since the concurent process may break the logics. public void UpdateNcOptOption(Action action) Parameters action Action the action to modify the step." }, "api/Hi.MachiningSteps.MachiningStepUtil.html": { "href": "api/Hi.MachiningSteps.MachiningStepUtil.html", @@ -2047,7 +2052,7 @@ "api/Hi.MachiningSteps.html": { "href": "api/Hi.MachiningSteps.html", "title": "Namespace Hi.MachiningSteps | HiAPI-C# 2025", - "summary": "Namespace Hi.MachiningSteps Classes MachineMotionStep MachiningStep has spindle information. Note that the spindle information is only for milling behavior. MachiningStep Represents a machining step enriched with physics, mapping and source metadata. MachiningStep.CollidedKeyPair A pair of collided keys that indicates two entities are in collision. MachiningStepUtil Utility class for milling step related constants and helper methods. PresentAccess Provides a value accessor bound with its PresentAttribute metadata. PresentAttribute Attribute for presenting property information with localization support. PropertyAccess Provides access to properties of a milling step with presentation information. Interfaces IFlagText temperary design for showing flag text. IMachiningStepHost Represents a host interface for milling steps that provides access to milling equipment and related resources." + "summary": "Namespace Hi.MachiningSteps Classes MachineMotionStep MachiningStep has spindle information. Note that the spindle information is only for milling behavior. MachiningStep Represents a machining step enriched with physics, mapping and source metadata. The duration-based step property is based on the duration from previous-step to current-step. MachiningStep.CollidedKeyPair A pair of collided keys that indicates two entities are in collision. MachiningStepUtil Utility class for milling step related constants and helper methods. PresentAccess Provides a value accessor bound with its PresentAttribute metadata. PresentAttribute Attribute for presenting property information with localization support. PropertyAccess Provides access to properties of a milling step with presentation information. Interfaces IFlagText temperary design for showing flag text. IMachiningStepHost Represents a host interface for milling steps that provides access to milling equipment and related resources." }, "api/Hi.Mapping.CsvNcStep.StepInterpoationMode.html": { "href": "api/Hi.Mapping.CsvNcStep.StepInterpoationMode.html", @@ -2057,7 +2062,7 @@ "api/Hi.Mapping.CsvNcStep.html": { "href": "api/Hi.Mapping.CsvNcStep.html", "title": "Class CsvNcStep | HiAPI-C# 2025", - "summary": "Class CsvNcStep Namespace Hi.Mapping Assembly HiMech.dll Represents a numerical control step loaded from a CSV file, with support for interpolation and arithmetic operations. public class CsvNcStep : IGetFileLineIndex, IAdditionOperators, IMultiplyOperators Inheritance object CsvNcStep Implements IGetFileLineIndex IAdditionOperators IMultiplyOperators Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CsvNcStep(FileLineIndex, TimeSpan, DVec3d, List) Initializes a new instance of the CsvNcStep class with the specified parameters. public CsvNcStep(FileLineIndex fileLineIndex, TimeSpan time, DVec3d mcXyzabc, List doubleFlexList) Parameters fileLineIndex FileLineIndex The file and line index information. time TimeSpan The time value for this step. mcXyzabc DVec3d The machine coordinates for this step. doubleFlexList List The list of additional double values. Properties DoubleFlexList Gets or sets the list of additional double values associated with this step. public List DoubleFlexList { get; set; } Property Value List FileLineIndex Gets or sets the file and line index information. public FileLineIndex FileLineIndex { get; set; } Property Value FileLineIndex FileNoTitle Gets or sets the column title for file number in the CSV. public static string FileNoTitle { get; set; } Property Value string LineNoTitle Gets or sets the column title for line number in the CSV. public static string LineNoTitle { get; set; } Property Value string McTitle Gets or sets the column title for machine coordinates in the CSV. public static string McTitle { get; set; } Property Value string McXyzabc Gets the machine coordinates (XYZ and ABC) for this step. public DVec3d McXyzabc { get; } Property Value DVec3d Time Gets or sets the time value for this step. public TimeSpan Time { get; set; } Property Value TimeSpan TimeTagTitle Gets or sets the column title for time in the CSV. public static string TimeTagTitle { get; set; } Property Value string Methods BuildByFile(ClStrip, string, string, IMessageKit, StepInterpoationMode) Builds a collection of CsvNcStep instances from a CSV file. public static void BuildByFile(ClStrip clStrip, string baseDirectory, string relPath, IMessageKit messageHost, CsvNcStep.StepInterpoationMode stepInterpoationMode) Parameters clStrip ClStrip The cutter location strip to populate. baseDirectory string The base directory for the file path. relPath string The relative path to the CSV file. messageHost IMessageKit The message host for logging. stepInterpoationMode CsvNcStep.StepInterpoationMode The interpolation mode to use. GetFileLineIndex() Get FileLineIndex. public FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex Operators operator +(CsvNcStep, CsvNcStep) Adds two CsvNcStep instances together. public static CsvNcStep operator +(CsvNcStep left, CsvNcStep right) Parameters left CsvNcStep The first CsvNcStep instance. right CsvNcStep The second CsvNcStep instance. Returns CsvNcStep A new CsvNcStep instance with values that are the sum of the two input instances. operator *(CsvNcStep, double) Multiplies a CsvNcStep instance by a scalar value. public static CsvNcStep operator *(CsvNcStep src, double scale) Parameters src CsvNcStep The CsvNcStep instance to multiply. scale double The scalar value to multiply by. Returns CsvNcStep A new CsvNcStep instance with values scaled by the specified factor." + "summary": "Class CsvNcStep Namespace Hi.Mapping Assembly HiMech.dll Represents a numerical control step loaded from a CSV file, with support for interpolation and arithmetic operations. public class CsvNcStep : IGetFileLineIndex, IAdditionOperators, IMultiplyOperators Inheritance object CsvNcStep Implements IGetFileLineIndex IAdditionOperators IMultiplyOperators Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CsvNcStep(FileLineIndex, TimeSpan, DVec3d, List) Initializes a new instance of the CsvNcStep class with the specified parameters. public CsvNcStep(FileLineIndex fileLineIndex, TimeSpan time, DVec3d mcXyzabc, List doubleFlexList) Parameters fileLineIndex FileLineIndex The file and line index information. time TimeSpan The time value for this step. mcXyzabc DVec3d The machine coordinates for this step. doubleFlexList List The list of additional double values. Properties DoubleFlexList Gets or sets the list of additional double values associated with this step. public List DoubleFlexList { get; set; } Property Value List FileLineIndex Gets or sets the file and line index information. public FileLineIndex FileLineIndex { get; set; } Property Value FileLineIndex FileNoTitle Gets or sets the column title for file number in the CSV. public static string FileNoTitle { get; set; } Property Value string LineNoTitle Gets or sets the column title for line number in the CSV. public static string LineNoTitle { get; set; } Property Value string McTitle Gets or sets the column title for machine coordinates in the CSV. public static string McTitle { get; set; } Property Value string McXyzabc Gets the machine coordinates (XYZ and ABC) for this step. public DVec3d McXyzabc { get; } Property Value DVec3d Time Gets or sets the time value for this step. public TimeSpan Time { get; set; } Property Value TimeSpan TimeTagTitle Gets or sets the column title for time in the CSV. public static string TimeTagTitle { get; set; } Property Value string Methods BuildByFile(ClStrip, string, string, IMessageHost, StepInterpoationMode) Builds a collection of CsvNcStep instances from a CSV file. public static void BuildByFile(ClStrip clStrip, string baseDirectory, string relPath, IMessageHost messageHost, CsvNcStep.StepInterpoationMode stepInterpoationMode) Parameters clStrip ClStrip The cutter location strip to populate. baseDirectory string The base directory for the file path. relPath string The relative path to the CSV file. messageHost IMessageHost The message host for logging. stepInterpoationMode CsvNcStep.StepInterpoationMode The interpolation mode to use. GetFileLineIndex() Get FileLineIndex. public FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex Operators operator +(CsvNcStep, CsvNcStep) Adds two CsvNcStep instances together. public static CsvNcStep operator +(CsvNcStep left, CsvNcStep right) Parameters left CsvNcStep The first CsvNcStep instance. right CsvNcStep The second CsvNcStep instance. Returns CsvNcStep A new CsvNcStep instance with values that are the sum of the two input instances. operator *(CsvNcStep, double) Multiplies a CsvNcStep instance by a scalar value. public static CsvNcStep operator *(CsvNcStep src, double scale) Parameters src CsvNcStep The CsvNcStep instance to multiply. scale double The scalar value to multiply by. Returns CsvNcStep A new CsvNcStep instance with values scaled by the specified factor." }, "api/Hi.Mapping.FileToTimeShotMapping.html": { "href": "api/Hi.Mapping.FileToTimeShotMapping.html", @@ -2892,7 +2897,7 @@ "api/Hi.MillingForces.Training.MillingTraining.html": { "href": "api/Hi.MillingForces.Training.MillingTraining.html", "title": "Class MillingTraining | HiAPI-C# 2025", - "summary": "Class MillingTraining Namespace Hi.MillingForces.Training Assembly HiNc.dll Provides utilities for milling force training and parameter identification. public static class MillingTraining Inheritance object MillingTraining Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties CycleDivisionNum Division number of a spindle cycle. public static int CycleDivisionNum { get; } Property Value int DefaultParaTemplate Gets or sets the parameter template for cutting operations. public static ICuttingPara DefaultParaTemplate { get; set; } Property Value ICuttingPara StepQuantityNames Gets the names of step quantities used in training. public static string[] StepQuantityNames { get; } Property Value string[] TextAngleOffset_deg Gets the text key for angle offset in degrees. public static string TextAngleOffset_deg { get; } Property Value string TextTrainingErrRatio Gets the text key for training error ratio. public static string TextTrainingErrRatio { get; } Property Value string Methods Convert(ICuttingPara, ICuttingPara, GeneralApt, double, double, IMessageKit, CancellationToken) Converts one cutting parameter model to another based on the provided parameters. public static ICuttingPara Convert(ICuttingPara src, ICuttingPara dstTemplate, GeneralApt apt, double helixAngle_rad, double radialRakeAngle_rad, IMessageKit messageHost, CancellationToken cancellationToken) Parameters src ICuttingPara Source cutting parameter model dstTemplate ICuttingPara Destination template for the converted model apt GeneralApt General apt parameters helixAngle_rad double Helix angle in radians radialRakeAngle_rad double Radial rake angle in radians messageHost IMessageKit Message host for logging cancellationToken CancellationToken Cancellation token Returns ICuttingPara The converted cutting parameter model Convert(LocalProfileMillingPara, double, double, IMessageKit, CancellationToken) Converts a LocalProfileMillingPara to a RakeFaceCuttingPara. public static RakeFaceCuttingPara2d Convert(LocalProfileMillingPara src, double helixAngle_rad, double radialRakeAngle_rad, IMessageKit messageHost, CancellationToken cancellationToken) Parameters src LocalProfileMillingPara Source LocalProfileMillingPara helixAngle_rad double Helix angle in radians radialRakeAngle_rad double Radial rake angle in radians messageHost IMessageKit Message host for logging cancellationToken CancellationToken Cancellation token Returns RakeFaceCuttingPara2d The converted RakeFaceCuttingPara GatherAndGetUpdate(ConcurrentDictionary>, ClStrip, ICuttingPara, SampleFlag, double, IMessageKit, CancellationToken) Gathers training samples and updates an existing cutting parameter model. public static ICuttingPara GatherAndGetUpdate(ConcurrentDictionary> stepToTimeShotListDictionary, ClStrip clStrip, ICuttingPara anchorPara, SampleFlag sampleFlags, double outlierRatio, IMessageKit messageHost, CancellationToken cancellationToken) Parameters stepToTimeShotListDictionary ConcurrentDictionary> Dictionary mapping step indices to time shot lists clStrip ClStrip The cutter location strip anchorPara ICuttingPara The anchor cutting parameter model to update sampleFlags SampleFlag Sample flags indicating which forces to use outlierRatio double Ratio of outliers to exclude messageHost IMessageKit Message host for logging cancellationToken CancellationToken Cancellation token Returns ICuttingPara The updated cutting parameter model" + "summary": "Class MillingTraining Namespace Hi.MillingForces.Training Assembly HiNc.dll Provides utilities for milling force training and parameter identification. public static class MillingTraining Inheritance object MillingTraining Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties CycleDivisionNum Division number of a spindle cycle. public static int CycleDivisionNum { get; } Property Value int DefaultParaTemplate Gets or sets the parameter template for cutting operations. public static ICuttingPara DefaultParaTemplate { get; set; } Property Value ICuttingPara StepQuantityNames Gets the names of step quantities used in training. public static string[] StepQuantityNames { get; } Property Value string[] TextAngleOffset_deg Gets the text key for angle offset in degrees. public static string TextAngleOffset_deg { get; } Property Value string TextTrainingErrRatio Gets the text key for training error ratio. public static string TextTrainingErrRatio { get; } Property Value string Methods Convert(ICuttingPara, ICuttingPara, GeneralApt, double, double, IMessageHost, CancellationToken) Converts one cutting parameter model to another based on the provided parameters. public static ICuttingPara Convert(ICuttingPara src, ICuttingPara dstTemplate, GeneralApt apt, double helixAngle_rad, double radialRakeAngle_rad, IMessageHost messageHost, CancellationToken cancellationToken) Parameters src ICuttingPara Source cutting parameter model dstTemplate ICuttingPara Destination template for the converted model apt GeneralApt General apt parameters helixAngle_rad double Helix angle in radians radialRakeAngle_rad double Radial rake angle in radians messageHost IMessageHost Message host for logging cancellationToken CancellationToken Cancellation token Returns ICuttingPara The converted cutting parameter model Convert(LocalProfileMillingPara, double, double, IMessageHost, CancellationToken) Converts a LocalProfileMillingPara to a RakeFaceCuttingPara. public static RakeFaceCuttingPara2d Convert(LocalProfileMillingPara src, double helixAngle_rad, double radialRakeAngle_rad, IMessageHost messageHost, CancellationToken cancellationToken) Parameters src LocalProfileMillingPara Source LocalProfileMillingPara helixAngle_rad double Helix angle in radians radialRakeAngle_rad double Radial rake angle in radians messageHost IMessageHost Message host for logging cancellationToken CancellationToken Cancellation token Returns RakeFaceCuttingPara2d The converted RakeFaceCuttingPara GatherAndGetUpdate(ConcurrentDictionary>, ClStrip, ICuttingPara, SampleFlag, double, IMessageHost, CancellationToken) Gathers training samples and updates an existing cutting parameter model. public static ICuttingPara GatherAndGetUpdate(ConcurrentDictionary> stepToTimeShotListDictionary, ClStrip clStrip, ICuttingPara anchorPara, SampleFlag sampleFlags, double outlierRatio, IMessageHost messageHost, CancellationToken cancellationToken) Parameters stepToTimeShotListDictionary ConcurrentDictionary> Dictionary mapping step indices to time shot lists clStrip ClStrip The cutter location strip anchorPara ICuttingPara The anchor cutting parameter model to update sampleFlags SampleFlag Sample flags indicating which forces to use outlierRatio double Ratio of outliers to exclude messageHost IMessageHost Message host for logging cancellationToken CancellationToken Cancellation token Returns ICuttingPara The updated cutting parameter model" }, "api/Hi.MillingForces.Training.html": { "href": "api/Hi.MillingForces.Training.html", @@ -2957,7 +2962,7 @@ "api/Hi.MillingSteps.MillingInstance.html": { "href": "api/Hi.MillingSteps.MillingInstance.html", "title": "Class MillingInstance | HiAPI-C# 2025", - "summary": "Class MillingInstance Namespace Hi.MillingSteps Assembly HiMech.dll Instance of milling in a MachiningStep. public class MillingInstance : ISuccessivePhysicsBriefAccessor Inheritance object MillingInstance Implements ISuccessivePhysicsBriefAccessor Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks The name is not MillingStep since it conflicts with the MachiningStep. The object is part of data in the MachiningStep but not the same level object. Properties BoundingBoxOnToolRunningCoordinate Gets or sets the bounding box of the cutting area on the tool running coordinate system. public Box3d BoundingBoxOnToolRunningCoordinate { get; } Property Value Box3d CuttingDepth_mm Axial Depth. public double CuttingDepth_mm { get; } Property Value double CuttingWidth_mm Radial Width. public double CuttingWidth_mm { get; } Property Value double IsTouched Gets a value indicating whether the tool is touching the workpiece. public bool IsTouched { get; } Property Value bool MillingPhysicsBrief Gets or sets the rake face physics brief containing force and other physical calculations. public MillingPhysicsBrief MillingPhysicsBrief { get; } Property Value MillingPhysicsBrief Mrr_mm3ds Gets or sets the material removal rate in cubic millimeters per second. public double Mrr_mm3ds { get; } Property Value double SeqPhysicsBrief Gets or sets the sequential physics brief for this step. public SeqPhysicsBrief SeqPhysicsBrief { get; set; } Property Value SeqPhysicsBrief StepIndex Gets the index of this step. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int StepIndex { get; } Property Value int" + "summary": "Class MillingInstance Namespace Hi.MillingSteps Assembly HiMech.dll Instance of milling in a MachiningStep. public class MillingInstance : ISuccessivePhysicsBriefAccessor Inheritance object MillingInstance Implements ISuccessivePhysicsBriefAccessor Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks The name is not MillingStep since it conflicts with the MachiningStep. The object is part of data in the MachiningStep but not the same level object. Properties BoundingBoxOnToolRunningCoordinate Gets or sets the bounding box of the cutting area on the tool running coordinate system. public Box3d BoundingBoxOnToolRunningCoordinate { get; } Property Value Box3d CuttingDepth_mm Axial Depth. public double CuttingDepth_mm { get; } Property Value double CuttingWidth_mm Radial Width. The value may not equal to the bounding box. It has filtered by plural method. The value is for human viewing. public double CuttingWidth_mm { get; } Property Value double IsTouched Gets a value indicating whether the tool is touching the workpiece. public bool IsTouched { get; } Property Value bool MillingPhysicsBrief Gets or sets the rake face physics brief containing force and other physical calculations. public MillingPhysicsBrief MillingPhysicsBrief { get; } Property Value MillingPhysicsBrief Mrr_mm3ds Gets or sets the material removal rate in cubic millimeters per second. public double Mrr_mm3ds { get; } Property Value double SeqPhysicsBrief Gets or sets the sequential physics brief for this step. public SeqPhysicsBrief SeqPhysicsBrief { get; set; } Property Value SeqPhysicsBrief StepIndex Gets the index of this step. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int StepIndex { get; } Property Value int" }, "api/Hi.MillingSteps.MillingStepLuggage.html": { "href": "api/Hi.MillingSteps.MillingStepLuggage.html", @@ -3362,7 +3367,7 @@ "api/Hi.NcOpt.NcOptProc.html": { "href": "api/Hi.NcOpt.NcOptProc.html", "title": "Class NcOptProc | HiAPI-C# 2025", - "summary": "Class NcOptProc Namespace Hi.NcOpt Assembly HiNc.dll Provides functionality for optimizing NC programs by modifying feed rates and tool paths. public class NcOptProc : IMakeXmlSource Inheritance object NcOptProc Implements IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors NcOptProc(SequentialBulkReader) Ctor. public NcOptProc(SequentialBulkReader millingStepLuggageReader) Parameters millingStepLuggageReader SequentialBulkReader NcOptProc(XElement, string, SequentialBulkReader) Ctor. public NcOptProc(XElement src, string baseDirectory, SequentialBulkReader millingStepLuggageReader) Parameters src XElement XML baseDirectory string Base directory path millingStepLuggageReader SequentialBulkReader Milling step luggage reader Properties CoreNum Parallel computation thread num. 0 is special number to use all cores. public static int CoreNum { get; set; } Property Value int XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Optimize(ICuttingPara, MachiningSession, LinkedList, NcEnv, List, MachiningToolHouse, IMessageKit, CancellationToken, string) Optimizes NC lines based on cutting parameters and milling steps. public IEnumerable<(NcLine SrcNcLine, NcLine OptNcLine)> Optimize(ICuttingPara millingPara, MachiningSession machiningSession, LinkedList srcNcLines, NcEnv ncEnv, List millingSteps, MachiningToolHouse millingToolHouse, IMessageKit messageHost, CancellationToken cancellationToken, string relFileTemplate) Parameters millingPara ICuttingPara The cutting parameters for optimization machiningSession MachiningSession The current machining session srcNcLines LinkedList The source NC lines to optimize ncEnv NcEnv The NC environment settings millingSteps List The list of milling steps millingToolHouse MachiningToolHouse The machining tool house messageHost IMessageKit The message host for logging cancellationToken CancellationToken Cancellation token to cancel the operation relFileTemplate string The relative file template for output Returns IEnumerable<(NcLine SrcNcLine, NcLine OptNcLine)> Enumerable of source and optimized NC line pairs OptimizeToFiles(ICuttingPara, MachiningSession, LinkedList, NcEnv, MachiningToolHouse, ClStrip, string, IMessageKit, CancellationToken, string) Optimizes NC lines and writes the results to files. public void OptimizeToFiles(ICuttingPara millingPara, MachiningSession machiningSession, LinkedList ncLines, NcEnv ncEnv, MachiningToolHouse millingToolHouse, ClStrip clStrip, string baseDirectory, IMessageKit messageHost, CancellationToken cancellationToken, string relFileTemplate = \"Output/Opt-[NcName]\") Parameters millingPara ICuttingPara The cutting parameters for optimization machiningSession MachiningSession The current machining session ncLines LinkedList The NC lines to optimize ncEnv NcEnv The NC environment settings millingToolHouse MachiningToolHouse The machining tool house clStrip ClStrip The cutter location strip baseDirectory string The base directory for output files messageHost IMessageKit The message host for logging cancellationToken CancellationToken Cancellation token to cancel the operation relFileTemplate string The relative file template for output files" + "summary": "Class NcOptProc Namespace Hi.NcOpt Assembly HiNc.dll Provides functionality for optimizing NC programs by modifying feed rates and tool paths. public class NcOptProc : IMakeXmlSource Inheritance object NcOptProc Implements IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors NcOptProc(SequentialBulkReader) Ctor. public NcOptProc(SequentialBulkReader millingStepLuggageReader) Parameters millingStepLuggageReader SequentialBulkReader NcOptProc(XElement, string, SequentialBulkReader) Ctor. public NcOptProc(XElement src, string baseDirectory, SequentialBulkReader millingStepLuggageReader) Parameters src XElement XML baseDirectory string Base directory path millingStepLuggageReader SequentialBulkReader Milling step luggage reader Properties CoreNum Parallel computation thread num. 0 is special number to use all cores. public static int CoreNum { get; set; } Property Value int EnableFirstSituProcLog Enable create log file for first (independent) situ process. public static bool EnableFirstSituProcLog { get; set; } Property Value bool EnableNcEmbeddedLog Enable embedded log to optimized NC file. public static bool EnableNcEmbeddedLog { get; set; } Property Value bool XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Optimize(ICuttingPara, MachiningSession, LinkedList, NcEnv, List, MachiningToolHouse, IMessageHost, CancellationToken, string, string) Optimizes NC lines based on cutting parameters and milling steps. public IEnumerable<(NcLine SrcNcLine, NcLine OptNcLine)> Optimize(ICuttingPara millingPara, MachiningSession machiningSession, LinkedList srcNcLines, NcEnv ncEnv, List machiningSteps, MachiningToolHouse millingToolHouse, IMessageHost messageHost, CancellationToken cancellationToken, string baseDirectory, string relFileTemplate) Parameters millingPara ICuttingPara The cutting parameters for optimization machiningSession MachiningSession The current machining session srcNcLines LinkedList The source NC lines to optimize ncEnv NcEnv The NC environment settings machiningSteps List The list of milling steps millingToolHouse MachiningToolHouse The machining tool house messageHost IMessageHost The message host for logging cancellationToken CancellationToken Cancellation token to cancel the operation baseDirectory string relFileTemplate string The relative file template for output Returns IEnumerable<(NcLine SrcNcLine, NcLine OptNcLine)> Enumerable of source and optimized NC line pairs OptimizeToFiles(ICuttingPara, MachiningSession, LinkedList, NcEnv, MachiningToolHouse, ClStrip, string, IMessageHost, CancellationToken, string) Optimizes NC lines and writes the results to files. public void OptimizeToFiles(ICuttingPara millingPara, MachiningSession machiningSession, LinkedList ncLines, NcEnv ncEnv, MachiningToolHouse millingToolHouse, ClStrip clStrip, string baseDirectory, IMessageHost messageHost, CancellationToken cancellationToken, string relFileTemplate = \"Output/Opt-[NcName]\") Parameters millingPara ICuttingPara The cutting parameters for optimization machiningSession MachiningSession The current machining session ncLines LinkedList The NC lines to optimize ncEnv NcEnv The NC environment settings millingToolHouse MachiningToolHouse The machining tool house clStrip ClStrip The cutter location strip baseDirectory string The base directory for output files messageHost IMessageHost The message host for logging cancellationToken CancellationToken Cancellation token to cancel the operation relFileTemplate string The relative file template for output files" }, "api/Hi.NcOpt.ShapeBasedCutterOptLimit.html": { "href": "api/Hi.NcOpt.ShapeBasedCutterOptLimit.html", @@ -3629,6 +3634,11 @@ "title": "Enum CoordinateInterpolationMode | HiAPI-C# 2025", "summary": "Enum CoordinateInterpolationMode Namespace Hi.Numerical Assembly HiUniNc.dll Defines the coordinate interpolation mode for NC operations. public enum CoordinateInterpolationMode Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields Cartesian = 1 Standard Cartesian coordinate system interpolation. Polar = 2 Polar coordinate system interpolation." }, + "api/Hi.Numerical.FilePlayers.CsvRunner.html": { + "href": "api/Hi.Numerical.FilePlayers.CsvRunner.html", + "title": "Class CsvRunner | HiAPI-C# 2025", + "summary": "Class CsvRunner Namespace Hi.Numerical.FilePlayers Assembly HiNc.dll Provides functionality for running and processing csv lines. public class CsvRunner : IControlRunner Inheritance object CsvRunner Implements IControlRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CsvRunner(PacePlayer, SessionMessageHost) public CsvRunner(PacePlayer pacePlayer, SessionMessageHost sessionMessageHost) Parameters pacePlayer PacePlayer sessionMessageHost SessionMessageHost Properties Config Configuration for CSV Runner. public CsvRunnerConfig Config { get; set; } Property Value CsvRunnerConfig PacePlayer public PacePlayer PacePlayer { get; } Property Value PacePlayer SessionMessageHost External Hosted. public SessionMessageHost SessionMessageHost { get; set; } Property Value SessionMessageHost Methods Reset() Reset runtime data. public void Reset() ResetFileIndex() Resets the file index to zero. public void ResetFileIndex() RunControlLines(string, IEnumerable, CancellationToken) Runs raw Control lines and yields source control line and Act pairs. public IEnumerable RunControlLines(string relFilePath, IEnumerable lines, CancellationToken cancellationToken) Parameters relFilePath string The relative path of the control file lines IEnumerable The enumerable collection of command (control code) lines cancellationToken CancellationToken Cancellation token to cancel the operation Returns IEnumerable Enumerable of source control line and Act pairs RunToLineEnd() Set EnumerablePlayer before use the function. public void RunToLineEnd()" + }, "api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html": { "href": "api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html", "title": "Class CsvRunnerConfig | HiAPI-C# 2025", @@ -3652,7 +3662,7 @@ "api/Hi.Numerical.FilePlayers.html": { "href": "api/Hi.Numerical.FilePlayers.html", "title": "Namespace Hi.Numerical.FilePlayers | HiAPI-C# 2025", - "summary": "Namespace Hi.Numerical.FilePlayers Classes CsvRunnerConfig Configuration class for CSV Runner. NcRunner Provides functionality for running and processing NC code lines. SourceCommandActEntry Interfaces IControlRunner Control Runner. The term control is machine control. The Control Line is such like the NC (Numerical Control) line." + "summary": "Namespace Hi.Numerical.FilePlayers Classes CsvRunner Provides functionality for running and processing csv lines. CsvRunnerConfig Configuration class for CSV Runner. NcRunner Provides functionality for running and processing NC code lines. SourceCommandActEntry Interfaces IControlRunner Control Runner. The term control is machine control. The Control Line is such like the NC (Numerical Control) line." }, "api/Hi.Numerical.FlexDictionaryUtil.html": { "href": "api/Hi.Numerical.FlexDictionaryUtil.html", @@ -3822,7 +3832,7 @@ "api/Hi.Numerical.NcEnv.html": { "href": "api/Hi.Numerical.NcEnv.html", "title": "Class NcEnv | HiAPI-C# 2025", - "summary": "Class NcEnv Namespace Hi.Numerical Assembly HiUniNc.dll Represents the numerical control environment containing configuration for CNC operations. public class NcEnv : IMakeXmlSource Inheritance object NcEnv Implements IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors NcEnv(CncBrand) Ctor. public NcEnv(CncBrand cncBrand = CncBrand.Fanuc) Parameters cncBrand CncBrand NcEnv(XElement, string, string) Ctor. public NcEnv(XElement src, string baseDirectory, string relFile) Parameters src XElement XML baseDirectory string The base directory for relative paths. relFile string The relative file path. Properties AttacherAtMcZeroOnTableCoordinate Gets the attacher position at machine zero on table coordinate. public Vec3d AttacherAtMcZeroOnTableCoordinate { get; } Property Value Vec3d CncBrand Gets or sets the CNC brand/controller type. public CncBrand CncBrand { get; set; } Property Value CncBrand CommentSymbol Gets the comment symbol used by the current CNC controller. public string CommentSymbol { get; } Property Value string ConfigurationTable Gets a dictionary of CNC configuration parameters used by the system. public Dictionary ConfigurationTable { get; } Property Value Dictionary CoordinateConverter Gets or sets the coordinate converter used for transformations between different coordinate systems. public ICoordinateConverter CoordinateConverter { get; set; } Property Value ICoordinateConverter EnableArcCornerRadiusCompensation Gets or sets whether arc corner radius compensation is enabled. public bool EnableArcCornerRadiusCompensation { get; set; } Property Value bool EnableIntegerShrinkOnPositionCommand Gets whether integer shrinking is enabled for position commands based on the CNC brand. public bool EnableIntegerShrinkOnPositionCommand { get; } Property Value bool EnableShortestRotary Enables shortest rotary path movement. This option does not affect Heidenhain controllers. For Heidenhain controllers, see Hi.UniNc.Heidenhain.IHeidenhainShortestRotaryPathEnabled, Hi.UniNc.Heidenhain.HeidenhainM126 and Hi.UniNc.Heidenhain.HeidenhainM127. public bool EnableShortestRotary { get; set; } Property Value bool FanucPara5003 Fanuc 5003. These bits are used to specify the type of startup/cancellation of tool radius - tool nose radius compensation. 0: type A; 1: type B; 2,3: type C. Assume always zero. Type A: A compensation vector perpendicular to the block next to the startup block or the block preceding the cancellation block is output. Type B: A compensation vector perpendicular to the startup block or cancellation block and an intersection vector are output. Type C: When the startup block or cancellation block specifies no movement operation, the tool is shifted by the cutter compensation amount in a direction perpendicular to the block next to the startup or the block before cancellation block. public byte FanucPara5003 { get; set; } Property Value byte HeidenhainDatumPresetTable For Heidenhain CYCL DEF 247 Datum Preset. public Dictionary HeidenhainDatumPresetTable { get; } Property Value Dictionary Remarks Datum Preset seems an older settings in heidenhain manual relative to Datum Shift. HeidenhainDatumShiftTable For Heidenhain CYCL DEF 7 Datum Shift. Also called Datum table in heidenhain manual. public Dictionary HeidenhainDatumShiftTable { get; } Property Value Dictionary Remarks Datum Preset seems an older settings in heidenhain manual relative to Datum Shift. HeidenhainMasterAxisChar Gets or sets the Heidenhain master rotary axis as a character (A, B, or C). public char HeidenhainMasterAxisChar { get; set; } Property Value char HeidenhainMasterAxisDir The master axis determines the behaviour of SEQ command. ex. PLANE SPATIAL SPA-77.516 SPB+0 SPC-10.365 STAY SEQ-TABLE ROT The master axis is the 1st rotary axis from the tool, or the last rotary axis from the table(depending on the machine configuration). SEQ+ positions the master axis so that it assumes a positive angle. See: TNC 640 | User's ManualDIN/ISO Programming | 1/2015 p432 public int HeidenhainMasterAxisDir { get; set; } Property Value int HomeMc Home machine coordinate. First reference position. The position may not equal to machine zero in real Fanuc controller. public Vec3d HomeMc { get; set; } Property Value Vec3d IsAxisAExisted Gets whether the A axis exists in the machine configuration. public bool IsAxisAExisted { get; } Property Value bool IsAxisBExisted Gets whether the B axis exists in the machine configuration. public bool IsAxisBExisted { get; } Property Value bool IsAxisCExisted Gets whether the C axis exists in the machine configuration. public bool IsAxisCExisted { get; } Property Value bool IsIdealOffsetDependentOnToolHouse Gets or sets whether the ideal offset depends on tool house position. public bool IsIdealOffsetDependentOnToolHouse { get; set; } Property Value bool IsoCoordinateTable ISO coordinate table. i.e., CoordinateTable For G54 series. public IsoCoordinateTable IsoCoordinateTable { get; set; } Property Value IsoCoordinateTable MaxRotarySpeedABC_degds For safety reason, internal use only. Maximum rotary speed in degds. public Vec3d MaxRotarySpeedABC_degds { get; set; } Property Value Vec3d MaxRotarySpeedABC_radds Maximum rotary speed in rad/s. public Vec3d MaxRotarySpeedABC_radds { get; set; } Property Value Vec3d MaxSpindleSpeed_rpm Gets or sets the maximum spindle speed in revolutions per minute. public double MaxSpindleSpeed_rpm { get; set; } Property Value double MillingToolOffsetTable Gets or sets the milling tool offset table for tool compensation. public MillingToolOffsetTable MillingToolOffsetTable { get; set; } Property Value MillingToolOffsetTable RapidFeedrate_mmdmin Rapid move speed in mm/min. public double RapidFeedrate_mmdmin { get; set; } Property Value double RapidFeedrate_mmds Rapid move speed in mm/s. public double RapidFeedrate_mmds { get; set; } Property Value double RefNcLineOnInit Gets or sets the reference NC line used during initialization. public NcLine RefNcLineOnInit { get; set; } Property Value NcLine SetToolHeightCompensationOnFeatureNormal Gets or sets whether tool height compensation should be applied based on feature normal direction. public bool SetToolHeightCompensationOnFeatureNormal { get; set; } Property Value bool StrokeLimitAbc_rad Gets or sets the ABC axis stroke limits in radians. public Box3d StrokeLimitAbc_rad { get; set; } Property Value Box3d StrokeLimitXyz_mm Gets or sets the XYZ axis stroke limits in millimeters. public Box3d StrokeLimitXyz_mm { get; set; } Property Value Box3d ToolingMcAbc_deg Gets or sets the rotary machine coordinate for tooling operations. Defaults to HomeMc if not explicitly set. Set to NaN if tooling motion not apply the axis motion. Unit is degree. public Vec3d ToolingMcAbc_deg { get; set; } Property Value Vec3d ToolingMcAbc_rad Gets or sets the rotary machine coordinate for tooling operations. Defaults to HomeMc if not explicitly set. Set to NaN if tooling motion not apply the axis motion. Unit is radian. public Vec3d ToolingMcAbc_rad { get; set; } Property Value Vec3d ToolingMcXyz Gets or sets the translation machine coordinate for tooling operations. Defaults to HomeMc if not explicitly set. Set to NaN if tooling motion not apply the axis motion. public Vec3d ToolingMcXyz { get; set; } Property Value Vec3d ToolingTime Tool changing duration in sec. public TimeSpan ToolingTime { get; set; } Property Value TimeSpan XName Name for XML IO. public static string XName { get; } Property Value string Methods CheckStrokeLimit(DVec3d, IMessageKit) Check stroke limit. public bool CheckStrokeLimit(DVec3d mcXyzabc_mm_rad, IMessageKit messageKit) Parameters mcXyzabc_mm_rad DVec3d Machine coordinates in mm and radians. messageKit IMessageKit Message kit for error reporting. Returns bool Is under stroke limit. IsAxisExisted(int) Determines whether a specific rotary axis exists in the machine configuration. public bool IsAxisExisted(int dir) Parameters dir int The direction index (0=A, 1=B, 2=C). Returns bool True if the specified axis exists; otherwise, false. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file." + "summary": "Class NcEnv Namespace Hi.Numerical Assembly HiUniNc.dll Represents the numerical control environment containing configuration for CNC operations. public class NcEnv : IMakeXmlSource Inheritance object NcEnv Implements IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors NcEnv(CncBrand) Ctor. public NcEnv(CncBrand cncBrand = CncBrand.Fanuc) Parameters cncBrand CncBrand NcEnv(XElement, string, string) Ctor. public NcEnv(XElement src, string baseDirectory, string relFile) Parameters src XElement XML baseDirectory string The base directory for relative paths. relFile string The relative file path. Properties AttacherAtMcZeroOnTableCoordinate Gets the attacher position at machine zero on table coordinate. public Vec3d AttacherAtMcZeroOnTableCoordinate { get; } Property Value Vec3d CncBrand Gets or sets the CNC brand/controller type. public CncBrand CncBrand { get; set; } Property Value CncBrand CommentSymbol Gets the comment symbol used by the current CNC controller. public string CommentSymbol { get; } Property Value string ConfigurationTable Gets a dictionary of CNC configuration parameters used by the system. public Dictionary ConfigurationTable { get; } Property Value Dictionary CoordinateConverter Gets or sets the coordinate converter used for transformations between different coordinate systems. public ICoordinateConverter CoordinateConverter { get; set; } Property Value ICoordinateConverter EnableArcCornerRadiusCompensation Gets or sets whether arc corner radius compensation is enabled. public bool EnableArcCornerRadiusCompensation { get; set; } Property Value bool EnableIntegerShrinkOnPositionCommand Gets whether integer shrinking is enabled for position commands based on the CNC brand. public bool EnableIntegerShrinkOnPositionCommand { get; } Property Value bool EnableShortestRotary Enables shortest rotary path movement. This option does not affect Heidenhain controllers. For Heidenhain controllers, see Hi.UniNc.Heidenhain.IHeidenhainShortestRotaryPathEnabled, Hi.UniNc.Heidenhain.HeidenhainM126 and Hi.UniNc.Heidenhain.HeidenhainM127. public bool EnableShortestRotary { get; set; } Property Value bool FanucPara5003 Fanuc 5003. These bits are used to specify the type of startup/cancellation of tool radius - tool nose radius compensation. 0: type A; 1: type B; 2,3: type C. Assume always zero. Type A: A compensation vector perpendicular to the block next to the startup block or the block preceding the cancellation block is output. Type B: A compensation vector perpendicular to the startup block or cancellation block and an intersection vector are output. Type C: When the startup block or cancellation block specifies no movement operation, the tool is shifted by the cutter compensation amount in a direction perpendicular to the block next to the startup or the block before cancellation block. public byte FanucPara5003 { get; set; } Property Value byte HeidenhainDatumPresetTable For Heidenhain CYCL DEF 247 Datum Preset. public Dictionary HeidenhainDatumPresetTable { get; } Property Value Dictionary Remarks Datum Preset seems an older settings in heidenhain manual relative to Datum Shift. HeidenhainDatumShiftTable For Heidenhain CYCL DEF 7 Datum Shift. Also called Datum table in heidenhain manual. public Dictionary HeidenhainDatumShiftTable { get; } Property Value Dictionary Remarks Datum Preset seems an older settings in heidenhain manual relative to Datum Shift. HeidenhainMasterAxisChar Gets or sets the Heidenhain master rotary axis as a character (A, B, or C). public char HeidenhainMasterAxisChar { get; set; } Property Value char HeidenhainMasterAxisDir The master axis determines the behaviour of SEQ command. ex. PLANE SPATIAL SPA-77.516 SPB+0 SPC-10.365 STAY SEQ-TABLE ROT The master axis is the 1st rotary axis from the tool, or the last rotary axis from the table(depending on the machine configuration). SEQ+ positions the master axis so that it assumes a positive angle. See: TNC 640 | User's ManualDIN/ISO Programming | 1/2015 p432 public int HeidenhainMasterAxisDir { get; set; } Property Value int HomeMc Home machine coordinate. First reference position. The position may not equal to machine zero in real Fanuc controller. public Vec3d HomeMc { get; set; } Property Value Vec3d IsAxisAExisted Gets whether the A axis exists in the machine configuration. public bool IsAxisAExisted { get; } Property Value bool IsAxisBExisted Gets whether the B axis exists in the machine configuration. public bool IsAxisBExisted { get; } Property Value bool IsAxisCExisted Gets whether the C axis exists in the machine configuration. public bool IsAxisCExisted { get; } Property Value bool IsIdealOffsetDependentOnToolHouse Gets or sets whether the ideal offset depends on tool house position. public bool IsIdealOffsetDependentOnToolHouse { get; set; } Property Value bool IsoCoordinateTable ISO coordinate table. i.e., CoordinateTable For G54 series. public IsoCoordinateTable IsoCoordinateTable { get; set; } Property Value IsoCoordinateTable MaxRotarySpeedABC_degds For safety reason, internal use only. Maximum rotary speed in degds. public Vec3d MaxRotarySpeedABC_degds { get; set; } Property Value Vec3d MaxRotarySpeedABC_radds Maximum rotary speed in rad/s. public Vec3d MaxRotarySpeedABC_radds { get; set; } Property Value Vec3d MaxSpindleSpeed_rpm Gets or sets the maximum spindle speed in revolutions per minute. public double MaxSpindleSpeed_rpm { get; set; } Property Value double MillingToolOffsetTable Gets or sets the milling tool offset table for tool compensation. public MillingToolOffsetTable MillingToolOffsetTable { get; set; } Property Value MillingToolOffsetTable RapidFeedrate_mmdmin Rapid move speed in mm/min. public double RapidFeedrate_mmdmin { get; set; } Property Value double RapidFeedrate_mmds Rapid move speed in mm/s. public double RapidFeedrate_mmds { get; set; } Property Value double RefNcLineOnInit Gets or sets the reference NC line used during initialization. public NcLine RefNcLineOnInit { get; set; } Property Value NcLine SetToolHeightCompensationOnFeatureNormal Gets or sets whether tool height compensation should be applied based on feature normal direction. public bool SetToolHeightCompensationOnFeatureNormal { get; set; } Property Value bool StrokeLimitAbc_rad Gets or sets the ABC axis stroke limits in radians. public Box3d StrokeLimitAbc_rad { get; set; } Property Value Box3d StrokeLimitXyz_mm Gets or sets the XYZ axis stroke limits in millimeters. public Box3d StrokeLimitXyz_mm { get; set; } Property Value Box3d ToolingMcAbc_deg Gets or sets the rotary machine coordinate for tooling operations. Defaults to HomeMc if not explicitly set. Set to NaN if tooling motion not apply the axis motion. Unit is degree. public Vec3d ToolingMcAbc_deg { get; set; } Property Value Vec3d ToolingMcAbc_rad Gets or sets the rotary machine coordinate for tooling operations. Defaults to HomeMc if not explicitly set. Set to NaN if tooling motion not apply the axis motion. Unit is radian. public Vec3d ToolingMcAbc_rad { get; set; } Property Value Vec3d ToolingMcXyz Gets or sets the translation machine coordinate for tooling operations. Defaults to HomeMc if not explicitly set. Set to NaN if tooling motion not apply the axis motion. public Vec3d ToolingMcXyz { get; set; } Property Value Vec3d ToolingTime Tool changing duration in sec. public TimeSpan ToolingTime { get; set; } Property Value TimeSpan XName Name for XML IO. public static string XName { get; } Property Value string Methods CheckStrokeLimit(DVec3d, IMessageHost) Check stroke limit. public bool CheckStrokeLimit(DVec3d mcXyzabc_mm_rad, IMessageHost messageKit) Parameters mcXyzabc_mm_rad DVec3d Machine coordinates in mm and radians. messageKit IMessageHost Message kit for error reporting. Returns bool Is under stroke limit. IsAxisExisted(int) Determines whether a specific rotary axis exists in the machine configuration. public bool IsAxisExisted(int dir) Parameters dir int The direction index (0=A, 1=B, 2=C). Returns bool True if the specified axis exists; otherwise, false. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file." }, "api/Hi.Numerical.NcFlag.html": { "href": "api/Hi.Numerical.NcFlag.html", @@ -3832,7 +3842,7 @@ "api/Hi.Numerical.NcFlagUtil.html": { "href": "api/Hi.Numerical.NcFlagUtil.html", "title": "Class NcFlagUtil | HiAPI-C# 2025", - "summary": "Class NcFlagUtil Namespace Hi.Numerical Assembly HiUniNc.dll Utility class for working with NC flags and their lifecycle modes. public static class NcFlagUtil Inheritance object NcFlagUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetCompensationHeight(BitArray, int, MillingToolOffsetTable, CncBrand, IMessageKit) Gets the tool height compensation value based on the NC flags and CNC brand. public static double GetCompensationHeight(this BitArray ncFlagBitArray, int H, MillingToolOffsetTable millingToolOffsetTable, CncBrand cncBrand, IMessageKit messageHost) Parameters ncFlagBitArray BitArray NC flag bit array H int Height offset index millingToolOffsetTable MillingToolOffsetTable Tool offset table cncBrand CncBrand CNC brand messageHost IMessageKit Message host for warnings Returns double Height compensation value GetCompensationRadius(BitArray, int, MillingToolOffsetTable, CncBrand, IMessageKit) Gets the tool radius compensation value from the flag bit array and tool offset table. public static double GetCompensationRadius(this BitArray ncFlagBitArray, int D, MillingToolOffsetTable millingToolOffsetTable, CncBrand cncBrand, IMessageKit messageHost) Parameters ncFlagBitArray BitArray The bit array of NC flags. D int The tool diameter offset number. millingToolOffsetTable MillingToolOffsetTable The milling tool offset table. cncBrand CncBrand The CNC controller brand. messageHost IMessageKit The message host for reporting warnings or errors. Returns double The compensation radius value. GetCoordinateOffset(bool, int, int, HeidenhainCycleDef7Arg, NcEnv) Gets the coordinate offset based on the CNC controller and coordinate settings. public static Vec3d GetCoordinateOffset(bool hasSiemensG500, int isoCoordinateId, int heidenhainCycleDef247Q339, HeidenhainCycleDef7Arg heidenhainCycleDef7Arg, NcEnv ncEnv) Parameters hasSiemensG500 bool Whether Siemens G500 is active. isoCoordinateId int The ISO coordinate ID. heidenhainCycleDef247Q339 int The Heidenhain cycle def 247 Q339 value. heidenhainCycleDef7Arg HeidenhainCycleDef7Arg The Heidenhain cycle def 7 arguments. ncEnv NcEnv The NC environment. Returns Vec3d The coordinate offset vector. GetFlags(NcLifeCycleMode) Gets all NC flags for a specific lifecycle mode. public static NcFlag[] GetFlags(this NcLifeCycleMode ncLifeCycleMode) Parameters ncLifeCycleMode NcLifeCycleMode The lifecycle mode to get flags for. Returns NcFlag[] An array of NC flags for the specified lifecycle mode. GetHeidenhainCoordinateOffset(int, HeidenhainCycleDef7Arg, NcEnv) Gets the coordinate offset for Heidenhain controllers. public static Vec3d GetHeidenhainCoordinateOffset(int heidenhainCycleDef247Q339, HeidenhainCycleDef7Arg heidenhainCycleDef7Arg, NcEnv ncEnv) Parameters heidenhainCycleDef247Q339 int The preset number for CYCL DEF 247. heidenhainCycleDef7Arg HeidenhainCycleDef7Arg The argument for CYCL DEF 7. ncEnv NcEnv The NC environment. Returns Vec3d The calculated coordinate offset. GetModalNcFlag(BitArray) Gets the modal NC flag of the specified type from the bit array. public static T GetModalNcFlag(this BitArray ncFlagBitArray) where T : Enum Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns T The modal NC flag of the specified type. Type Parameters T The enum type of the modal flag. GetNcFlag(BitArray) Gets the NC flag of the specified type from the bit array. public static T GetNcFlag(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns T The NC flag of the specified type. Type Parameters T The enum type of the NC flag. GetNcFlags(BitArray) Gets all active NC flags from the bit array. public static IEnumerable GetNcFlags(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns IEnumerable An enumerable collection of active NC flags. GetNcFromSyntex(NcGroup03, TVec, TVec) Converts syntactic coordinates to NC coordinates based on the positioning mode. public static TVec GetNcFromSyntex(this NcGroup03 group03Flag, TVec syntexPosition, TVec preProgramPosition) where TVec : IVec, new() Parameters group03Flag NcGroup03 The positioning mode flag syntexPosition TVec Syntactic position from the input preProgramPosition TVec Previous program position Returns TVec Converted NC coordinates Type Parameters TVec Vector type implementing IVec interface GetNcFromSyntex(NcGroup03, TVec, TVec, int, Func, Action) Converts syntactic position to NC position based on the positioning mode (absolute or incremental). public static TVec GetNcFromSyntex(this NcGroup03 group03Flag, TVec syntexPosition, TVec preProgramPosition, int vecSize, Func getter, Action setter) where TVec : new() Parameters group03Flag NcGroup03 The positioning mode flag syntexPosition TVec Syntactic position from the input preProgramPosition TVec Previous program position vecSize int Size of the vector getter Func Function to get value at specified index setter Action Function to set value at specified index Returns TVec Converted NC coordinates Type Parameters TVec Vector type Exceptions InternalException Thrown when group03Flag is not managed GetNcGroupType(NcFlag) Gets the NC group type for the specified NC flag. public static Type GetNcGroupType(NcFlag ncFlag) Parameters ncFlag NcFlag The NC flag to get the group type for. Returns Type The NC group type or null if not found. GetNcLifeCycleMode(NcFlag) Gets the lifecycle mode of the specified NC flag. public static NcLifeCycleMode GetNcLifeCycleMode(this NcFlag flag) Parameters flag NcFlag The NC flag to check. Returns NcLifeCycleMode The lifecycle mode of the flag. GetNcName(NcFlag) Gets the display name of an NC flag. public static string GetNcName(this NcFlag flag) Parameters flag NcFlag The NC flag to get the name of. Returns string The display name of the NC flag. GetNcXyzFromSyntex(NcGroup03, Vec3d, Vec3d) Converts syntactic XYZ coordinates to NC XYZ coordinates based on the positioning mode. public static Vec3d GetNcXyzFromSyntex(this NcGroup03 group03Flag, Vec3d syntexXyz, Vec3d preNcXyz) Parameters group03Flag NcGroup03 The Group03 flag specifying the positioning mode. syntexXyz Vec3d The syntactic XYZ coordinates to convert. preNcXyz Vec3d The previous NC XYZ coordinates, used for incremental positioning. Returns Vec3d The converted NC XYZ coordinates. GetNcXyzabcFromSyntex(NcGroup03, DVec3d, DVec3d) Gets NC XYZABC coordinates from syntactic coordinates based on the positioning mode. public static DVec3d GetNcXyzabcFromSyntex(this NcGroup03 group03Flag, DVec3d syntexXyzabc, DVec3d preNcXyzabc) Parameters group03Flag NcGroup03 The positioning mode flag (G90 or G91). syntexXyzabc DVec3d The syntactic XYZABC coordinates. preNcXyzabc DVec3d The previous NC XYZABC coordinates. Returns DVec3d The calculated NC XYZABC coordinates. GetPlaneDir(NcGroup02) Gets the direction index of the selected plane. public static int GetPlaneDir(this NcGroup02 ncFlag) Parameters ncFlag NcGroup02 The NC plane selection flag (G17, G18, or G19). Returns int The direction index (0=X, 1=Y, 2=Z). GetPlaneNormal(NcGroup02) Gets the normal vector of the selected plane. public static Vec3d GetPlaneNormal(this NcGroup02 ncFlag) Parameters ncFlag NcGroup02 The NC plane selection flag (G17, G18, or G19). Returns Vec3d The normal vector of the plane. GetTiltMat4d(BitArray, ITiltPlaneNcArg, NcGroup02, ICoordinateConverter, out bool?) public static Mat4d GetTiltMat4d(this BitArray ncFlagBitArray, ITiltPlaneNcArg ncArgGroup16, NcGroup02 ncGroup02flagForG68, ICoordinateConverter coordinateConverterForG68p2, out bool? isG68p2Successed) Parameters ncFlagBitArray BitArray ncArgGroup16 ITiltPlaneNcArg ncGroup02flagForG68 NcGroup02 coordinateConverterForG68p2 ICoordinateConverter isG68p2Successed bool? Returns Mat4d GetValue(NcGroup03, double, double) public static double GetValue(this NcGroup03 group03Flag, double v, double preV) Parameters group03Flag NcGroup03 v double value preV double previous value Returns double HasModalFlag(BitArray, out T) Checks if the bit array has a modal flag of the specified type and retrieves it. public static bool HasModalFlag(this BitArray ncFlagBitArray, out T dst) where T : Enum Parameters ncFlagBitArray BitArray The bit array of NC flags. dst T When this method returns, contains the modal flag if found; otherwise, the default value. Returns bool True if a modal flag was found; otherwise, false. Type Parameters T The enum type of the modal flag. IsAbsolutePositioning(BitArray) Checks if the positioning mode is absolute (G90) rather than incremental (G91). public static bool IsAbsolutePositioning(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if absolute positioning is active; otherwise, false. IsFlagActivated(BitArray, NcFlag) Determines whether a specific NC flag is activated in the flag bit array. public static bool IsFlagActivated(this BitArray ncFlagBitArray, NcFlag ncFlag) Parameters ncFlagBitArray BitArray The bit array of NC flags. ncFlag NcFlag The NC flag to check. Returns bool True if the flag is activated; otherwise, false. IsHeightCompensationEnabled(BitArray) Determines whether height compensation is enabled. public static bool IsHeightCompensationEnabled(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if height compensation is enabled; otherwise, false. IsMacro(BitArray) Is macro such as drilling cycle, rapid home, tool center alignment. public static bool IsMacro(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool Is macro mode IsOnArcCommand(BitArray) Determines whether an arc command is active. public static bool IsOnArcCommand(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if an arc command is active; otherwise, false. IsOnSimpleMachiningMode(BitArray) public static bool IsOnSimpleMachiningMode(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray Returns bool IsRadiusCompensationEnabled(BitArray) Determines whether radius compensation is enabled. public static bool IsRadiusCompensationEnabled(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if radius compensation is enabled; otherwise, false. IsRadiusOrHeightCompensationEnabled(BitArray) Determines whether radius or height compensation is enabled. public static bool IsRadiusOrHeightCompensationEnabled(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if radius or height compensation is enabled; otherwise, false. IsRapid(BitArray) public static bool IsRapid(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray Returns bool IsToolCenterPointManagementEnabled(NcGroup08) obosoleted. use BitArray version instead. Is the flag enabled RTCP (Rotational Tool Center Point) (=Tool Center Point Management, TCPM). Check for NcGroup08. public static bool IsToolCenterPointManagementEnabled(this NcGroup08 flag) Parameters flag NcGroup08 Returns bool IsToolCenterPointManagementEnabled(BitArray) Is the flag enabled RTCP (Rotational Tool Center Point) (=Tool Center Point Management, TCPM). public static bool IsToolCenterPointManagementEnabled(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray Returns bool IsToolChanging(BitArray) Determines if a tool change operation is active in the NC flag bit array. public static bool IsToolChanging(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if a tool change is active; otherwise, false. IsToolNormalTiltable(BitArray) Determines whether the tool normal is tiltable based on the flag bit array. public static bool IsToolNormalTiltable(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if the tool normal is tiltable; otherwise, false. ModalExclusiveAssign(BitArray, NcFlag) Modal exclusive assign in the belonging NC Group. public static BitArray ModalExclusiveAssign(this BitArray ncFlagBitArray, NcFlag assigningNcFlag) Parameters ncFlagBitArray BitArray assigningNcFlag NcFlag Returns BitArray ModalExclusiveAssign(BitArray, T) Modal exclusive assign in the belonging NC Group. public static BitArray ModalExclusiveAssign(this BitArray ncFlagBitArray, T assigningNcGroupFlag) where T : struct, Enum Parameters ncFlagBitArray BitArray assigningNcGroupFlag T Returns BitArray Type Parameters T ResetOneShotFlag(BitArray) Resets all one-shot flags in the specified bit array. public static BitArray ResetOneShotFlag(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns BitArray The modified bit array with one-shot flags reset. ToNcFlagString(BitArray) Converts the active NC flags in the bit array to a string representation. public static string ToNcFlagString(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns string A string representation of the active NC flags." + "summary": "Class NcFlagUtil Namespace Hi.Numerical Assembly HiUniNc.dll Utility class for working with NC flags and their lifecycle modes. public static class NcFlagUtil Inheritance object NcFlagUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetCompensationHeight(BitArray, int, MillingToolOffsetTable, CncBrand, IMessageHost) Gets the tool height compensation value based on the NC flags and CNC brand. public static double GetCompensationHeight(this BitArray ncFlagBitArray, int H, MillingToolOffsetTable millingToolOffsetTable, CncBrand cncBrand, IMessageHost messageHost) Parameters ncFlagBitArray BitArray NC flag bit array H int Height offset index millingToolOffsetTable MillingToolOffsetTable Tool offset table cncBrand CncBrand CNC brand messageHost IMessageHost Message host for warnings Returns double Height compensation value GetCompensationRadius(BitArray, int, MillingToolOffsetTable, CncBrand, IMessageHost) Gets the tool radius compensation value from the flag bit array and tool offset table. public static double GetCompensationRadius(this BitArray ncFlagBitArray, int D, MillingToolOffsetTable millingToolOffsetTable, CncBrand cncBrand, IMessageHost messageHost) Parameters ncFlagBitArray BitArray The bit array of NC flags. D int The tool diameter offset number. millingToolOffsetTable MillingToolOffsetTable The milling tool offset table. cncBrand CncBrand The CNC controller brand. messageHost IMessageHost The message host for reporting warnings or errors. Returns double The compensation radius value. GetCoordinateOffset(bool, int, int, HeidenhainCycleDef7Arg, NcEnv) Gets the coordinate offset based on the CNC controller and coordinate settings. public static Vec3d GetCoordinateOffset(bool hasSiemensG500, int isoCoordinateId, int heidenhainCycleDef247Q339, HeidenhainCycleDef7Arg heidenhainCycleDef7Arg, NcEnv ncEnv) Parameters hasSiemensG500 bool Whether Siemens G500 is active. isoCoordinateId int The ISO coordinate ID. heidenhainCycleDef247Q339 int The Heidenhain cycle def 247 Q339 value. heidenhainCycleDef7Arg HeidenhainCycleDef7Arg The Heidenhain cycle def 7 arguments. ncEnv NcEnv The NC environment. Returns Vec3d The coordinate offset vector. GetFlags(NcLifeCycleMode) Gets all NC flags for a specific lifecycle mode. public static NcFlag[] GetFlags(this NcLifeCycleMode ncLifeCycleMode) Parameters ncLifeCycleMode NcLifeCycleMode The lifecycle mode to get flags for. Returns NcFlag[] An array of NC flags for the specified lifecycle mode. GetHeidenhainCoordinateOffset(int, HeidenhainCycleDef7Arg, NcEnv) Gets the coordinate offset for Heidenhain controllers. public static Vec3d GetHeidenhainCoordinateOffset(int heidenhainCycleDef247Q339, HeidenhainCycleDef7Arg heidenhainCycleDef7Arg, NcEnv ncEnv) Parameters heidenhainCycleDef247Q339 int The preset number for CYCL DEF 247. heidenhainCycleDef7Arg HeidenhainCycleDef7Arg The argument for CYCL DEF 7. ncEnv NcEnv The NC environment. Returns Vec3d The calculated coordinate offset. GetModalNcFlag(BitArray) Gets the modal NC flag of the specified type from the bit array. public static T GetModalNcFlag(this BitArray ncFlagBitArray) where T : Enum Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns T The modal NC flag of the specified type. Type Parameters T The enum type of the modal flag. GetNcFlag(BitArray) Gets the NC flag of the specified type from the bit array. public static T GetNcFlag(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns T The NC flag of the specified type. Type Parameters T The enum type of the NC flag. GetNcFlags(BitArray) Gets all active NC flags from the bit array. public static IEnumerable GetNcFlags(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns IEnumerable An enumerable collection of active NC flags. GetNcFromSyntex(NcGroup03, TVec, TVec) Converts syntactic coordinates to NC coordinates based on the positioning mode. public static TVec GetNcFromSyntex(this NcGroup03 group03Flag, TVec syntexPosition, TVec preProgramPosition) where TVec : IVec, new() Parameters group03Flag NcGroup03 The positioning mode flag syntexPosition TVec Syntactic position from the input preProgramPosition TVec Previous program position Returns TVec Converted NC coordinates Type Parameters TVec Vector type implementing IVec interface GetNcFromSyntex(NcGroup03, TVec, TVec, int, Func, Action) Converts syntactic position to NC position based on the positioning mode (absolute or incremental). public static TVec GetNcFromSyntex(this NcGroup03 group03Flag, TVec syntexPosition, TVec preProgramPosition, int vecSize, Func getter, Action setter) where TVec : new() Parameters group03Flag NcGroup03 The positioning mode flag syntexPosition TVec Syntactic position from the input preProgramPosition TVec Previous program position vecSize int Size of the vector getter Func Function to get value at specified index setter Action Function to set value at specified index Returns TVec Converted NC coordinates Type Parameters TVec Vector type Exceptions InternalException Thrown when group03Flag is not managed GetNcGroupType(NcFlag) Gets the NC group type for the specified NC flag. public static Type GetNcGroupType(NcFlag ncFlag) Parameters ncFlag NcFlag The NC flag to get the group type for. Returns Type The NC group type or null if not found. GetNcLifeCycleMode(NcFlag) Gets the lifecycle mode of the specified NC flag. public static NcLifeCycleMode GetNcLifeCycleMode(this NcFlag flag) Parameters flag NcFlag The NC flag to check. Returns NcLifeCycleMode The lifecycle mode of the flag. GetNcName(NcFlag) Gets the display name of an NC flag. public static string GetNcName(this NcFlag flag) Parameters flag NcFlag The NC flag to get the name of. Returns string The display name of the NC flag. GetNcXyzFromSyntex(NcGroup03, Vec3d, Vec3d) Converts syntactic XYZ coordinates to NC XYZ coordinates based on the positioning mode. public static Vec3d GetNcXyzFromSyntex(this NcGroup03 group03Flag, Vec3d syntexXyz, Vec3d preNcXyz) Parameters group03Flag NcGroup03 The Group03 flag specifying the positioning mode. syntexXyz Vec3d The syntactic XYZ coordinates to convert. preNcXyz Vec3d The previous NC XYZ coordinates, used for incremental positioning. Returns Vec3d The converted NC XYZ coordinates. GetNcXyzabcFromSyntex(NcGroup03, DVec3d, DVec3d) Gets NC XYZABC coordinates from syntactic coordinates based on the positioning mode. public static DVec3d GetNcXyzabcFromSyntex(this NcGroup03 group03Flag, DVec3d syntexXyzabc, DVec3d preNcXyzabc) Parameters group03Flag NcGroup03 The positioning mode flag (G90 or G91). syntexXyzabc DVec3d The syntactic XYZABC coordinates. preNcXyzabc DVec3d The previous NC XYZABC coordinates. Returns DVec3d The calculated NC XYZABC coordinates. GetPlaneDir(NcGroup02) Gets the direction index of the selected plane. public static int GetPlaneDir(this NcGroup02 ncFlag) Parameters ncFlag NcGroup02 The NC plane selection flag (G17, G18, or G19). Returns int The direction index (0=X, 1=Y, 2=Z). GetPlaneNormal(NcGroup02) Gets the normal vector of the selected plane. public static Vec3d GetPlaneNormal(this NcGroup02 ncFlag) Parameters ncFlag NcGroup02 The NC plane selection flag (G17, G18, or G19). Returns Vec3d The normal vector of the plane. GetTiltMat4d(BitArray, ITiltPlaneNcArg, NcGroup02, ICoordinateConverter, out bool?) public static Mat4d GetTiltMat4d(this BitArray ncFlagBitArray, ITiltPlaneNcArg ncArgGroup16, NcGroup02 ncGroup02flagForG68, ICoordinateConverter coordinateConverterForG68p2, out bool? isG68p2Successed) Parameters ncFlagBitArray BitArray ncArgGroup16 ITiltPlaneNcArg ncGroup02flagForG68 NcGroup02 coordinateConverterForG68p2 ICoordinateConverter isG68p2Successed bool? Returns Mat4d GetValue(NcGroup03, double, double) public static double GetValue(this NcGroup03 group03Flag, double v, double preV) Parameters group03Flag NcGroup03 v double value preV double previous value Returns double HasModalFlag(BitArray, out T) Checks if the bit array has a modal flag of the specified type and retrieves it. public static bool HasModalFlag(this BitArray ncFlagBitArray, out T dst) where T : Enum Parameters ncFlagBitArray BitArray The bit array of NC flags. dst T When this method returns, contains the modal flag if found; otherwise, the default value. Returns bool True if a modal flag was found; otherwise, false. Type Parameters T The enum type of the modal flag. IsAbsolutePositioning(BitArray) Checks if the positioning mode is absolute (G90) rather than incremental (G91). public static bool IsAbsolutePositioning(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if absolute positioning is active; otherwise, false. IsFlagActivated(BitArray, NcFlag) Determines whether a specific NC flag is activated in the flag bit array. public static bool IsFlagActivated(this BitArray ncFlagBitArray, NcFlag ncFlag) Parameters ncFlagBitArray BitArray The bit array of NC flags. ncFlag NcFlag The NC flag to check. Returns bool True if the flag is activated; otherwise, false. IsHeightCompensationEnabled(BitArray) Determines whether height compensation is enabled. public static bool IsHeightCompensationEnabled(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if height compensation is enabled; otherwise, false. IsMacro(BitArray) Is macro such as drilling cycle, rapid home, tool center alignment. public static bool IsMacro(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool Is macro mode IsOnArcCommand(BitArray) Determines whether an arc command is active. public static bool IsOnArcCommand(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if an arc command is active; otherwise, false. IsOnSimpleMachiningMode(BitArray) public static bool IsOnSimpleMachiningMode(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray Returns bool IsRadiusCompensationEnabled(BitArray) Determines whether radius compensation is enabled. public static bool IsRadiusCompensationEnabled(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if radius compensation is enabled; otherwise, false. IsRadiusOrHeightCompensationEnabled(BitArray) Determines whether radius or height compensation is enabled. public static bool IsRadiusOrHeightCompensationEnabled(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if radius or height compensation is enabled; otherwise, false. IsRapid(BitArray) public static bool IsRapid(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray Returns bool IsToolCenterPointManagementEnabled(NcGroup08) obosoleted. use BitArray version instead. Is the flag enabled RTCP (Rotational Tool Center Point) (=Tool Center Point Management, TCPM). Check for NcGroup08. public static bool IsToolCenterPointManagementEnabled(this NcGroup08 flag) Parameters flag NcGroup08 Returns bool IsToolCenterPointManagementEnabled(BitArray) Is the flag enabled RTCP (Rotational Tool Center Point) (=Tool Center Point Management, TCPM). public static bool IsToolCenterPointManagementEnabled(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray Returns bool IsToolChanging(BitArray) Determines if a tool change operation is active in the NC flag bit array. public static bool IsToolChanging(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if a tool change is active; otherwise, false. IsToolNormalTiltable(BitArray) Determines whether the tool normal is tiltable based on the flag bit array. public static bool IsToolNormalTiltable(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns bool True if the tool normal is tiltable; otherwise, false. ModalExclusiveAssign(BitArray, NcFlag) Modal exclusive assign in the belonging NC Group. public static BitArray ModalExclusiveAssign(this BitArray ncFlagBitArray, NcFlag assigningNcFlag) Parameters ncFlagBitArray BitArray assigningNcFlag NcFlag Returns BitArray ModalExclusiveAssign(BitArray, T) Modal exclusive assign in the belonging NC Group. public static BitArray ModalExclusiveAssign(this BitArray ncFlagBitArray, T assigningNcGroupFlag) where T : struct, Enum Parameters ncFlagBitArray BitArray assigningNcGroupFlag T Returns BitArray Type Parameters T ResetOneShotFlag(BitArray) Resets all one-shot flags in the specified bit array. public static BitArray ResetOneShotFlag(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns BitArray The modified bit array with one-shot flags reset. ToNcFlagString(BitArray) Converts the active NC flags in the bit array to a string representation. public static string ToNcFlagString(this BitArray ncFlagBitArray) Parameters ncFlagBitArray BitArray The bit array of NC flags. Returns string A string representation of the active NC flags." }, "api/Hi.Numerical.NcGroup00.html": { "href": "api/Hi.Numerical.NcGroup00.html", @@ -3937,7 +3947,7 @@ "api/Hi.Numerical.NcLine.html": { "href": "api/Hi.Numerical.NcLine.html", "title": "Class NcLine | HiAPI-C# 2025", - "summary": "Class NcLine Namespace Hi.Numerical Assembly HiUniNc.dll Represents a line in the NC program with its associated data and operations. public class NcLine : IIndexedFileLine, IFileLine, IFileLineIndex, IGetIndexedFileLine, IGetFileLineIndex, IFlagText Inheritance object NcLine Implements IIndexedFileLine IFileLine IFileLineIndex IGetIndexedFileLine IGetFileLineIndex IFlagText Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) NcUtil.IsFlagChanging(NcLine, NcLine, NcFlag) NcUtil.IsFlagChanging(NcLine, NcLine, NcFlag, bool) NcUtil.IsFlagKeeping(NcLine, NcLine, NcFlag, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors NcLine(NcEnv, IndexedFileLine, NcLine, out NcNoteCache, IMessageKit) Ctor from the reference NcLine. public NcLine(NcEnv ncEnv, IndexedFileLine fileLine, NcLine preNcLine, out NcNoteCache ncLineCache, IMessageKit messageHost) Parameters ncEnv NcEnv NC environment fileLine IndexedFileLine file line preNcLine NcLine reference NcLine that this NcLine copy from. If previous NcLine is not null, apply previous NcLine. ncLineCache NcNoteCache Output NC note cache messageHost IMessageKit Message host for warnings NcLine(NcEnv, IMessageKit) Ctor for initial state. public NcLine(NcEnv ncEnv, IMessageKit messageHost) Parameters ncEnv NcEnv messageHost IMessageKit Properties ArcNcArg NC arguments for arc commands. public ArcNcArg ArcNcArg { get; set; } Property Value ArcNcArg CoordinateInterpolationMode Gets the current coordinate interpolation mode (Cartesian or Polar). public CoordinateInterpolationMode CoordinateInterpolationMode { get; } Property Value CoordinateInterpolationMode F F. Feedrate on NC code. Note that this may not be the working feedrate. Some NC codes like G00 and G28 doesnt use F code. public double F { get; set; } Property Value double Remarks According to Fanuc manual, the default F is zero. Feedrate_mmdmin Feedrate on NC code in current mode in mm/min. See F. public double Feedrate_mmdmin { get; set; } Property Value double Feedrate_mmds Feedrate on NC code in current mode in mm/sec. public double Feedrate_mmds { get; set; } Property Value double FileIndex File Index. Start on 0. public int FileIndex { get; } Property Value int FileNo Gets the file number. [Present(\"File Number\", \"FileNo\", PhysicsUnit.None, \"G\")] public int FileNo { get; } Property Value int FilePath File path. [Present(\"File\", \"File\", PhysicsUnit.None, \"G\")] public string FilePath { get; } Property Value string FlagsText Gets a string representation of the active NC flags for this line. public string FlagsText { get; } Property Value string G28Arg Arguments for G28 commands. public G28Arg G28Arg { get; set; } Property Value G28Arg G52_Xyz Local coordinate system translation. public Vec3d G52_Xyz { get; set; } Property Value Vec3d G54SeriesCoordinateNum1000 Faunc Group14 value. Note that Heidenhain Datum shift is set by DatumTableId. public int G54SeriesCoordinateNum1000 { get; set; } Property Value int Group07NcArg Arguments for Group07 NC commands (tool radius compensation). public Group07NcArg Group07NcArg { get; set; } Property Value Group07NcArg Group07_D Radius compensation ID. Note that in Siemens controller, each tool ID has several D entry. public int Group07_D { get; set; } Property Value int Group08_H Height compensation ID. For Siemens Traori, the value is Tool ID. For Heidenhain, the value is Tool ID. public int Group08_H { get; set; } Property Value int Group09NcArg NC Argument of NC Group09. public Group09NcArg Group09NcArg { get; set; } Property Value Group09NcArg HeidenhainBlockCacheArg Heidenhain block cache arguments for various Heidenhain commands. public IHeidenhainBlockCacheArg HeidenhainBlockCacheArg { get; set; } Property Value IHeidenhainBlockCacheArg HeidenhainCycleDef247Q339 DATUM SETTING DATUM Number. public int HeidenhainCycleDef247Q339 { get; set; } Property Value int HeidenhainCycleDef7Arg Arguments for Heidenhain Cycle Definition 7 (datum shift). public HeidenhainCycleDef7Arg HeidenhainCycleDef7Arg { get; set; } Property Value HeidenhainCycleDef7Arg HeidenhainM140MB HeidenhainM140(Retract the tool) MB value. MB is the retraction height. double.positiveInf is [MB MAX]. One shot command. public double HeidenhainM140MB { get; set; } Property Value double HeidenhainQMacroMap Dictionary mapping Q macro numbers to their string values for Heidenhain controllers. public Dictionary HeidenhainQMacroMap { get; set; } Property Value Dictionary HeidenhainToolAxisDir Direction of the tool axis for Heidenhain controllers. public int HeidenhainToolAxisDir { get; set; } Property Value int IndexedFileLine The file line information associated with this NC line. public IndexedFileLine IndexedFileLine { get; } Property Value IndexedFileLine IsAbsolutePositioning Gets a value indicating whether absolute positioning (G90) is active. public bool IsAbsolutePositioning { get; } Property Value bool IsHeightCompensationEnabled Gets a value indicating whether height compensation is enabled. public bool IsHeightCompensationEnabled { get; } Property Value bool IsOnArcCommand Gets a value indicating whether an arc command (G02 or G03) is active. public bool IsOnArcCommand { get; } Property Value bool IsPathPrepared Gets a value indicating whether the path is prepared (no radius compensation). public bool IsPathPrepared { get; } Property Value bool IsRadiusCompensationEnabled Gets a value indicating whether radius compensation is enabled. public bool IsRadiusCompensationEnabled { get; } Property Value bool IsToolCenterPointManagementEnabled Gets a value indicating whether tool center point management is enabled. public bool IsToolCenterPointManagementEnabled { get; } Property Value bool Line The line. [Present(\"Line\", \"Line\", PhysicsUnit.None, \"G\")] public string Line { get; } Property Value string LineIndex Line Index. Start on 0. public int LineIndex { get; } Property Value int LineNo Gets the line number. [Present(\"Line Number\", \"LineNo\", PhysicsUnit.None, \"G\")] public int LineNo { get; } Property Value int MachiningFeedrate_mmdmin Machining Feedrate on NC code in machining mode (such as G01,G02,G03 but not G00) in mm/min. public double MachiningFeedrate_mmdmin { get; set; } Property Value double MachiningFeedrate_mmds Machining Feedrate on NC code in machining mode (such as G01,G02,G03 but not G00) in mm/sec. public double MachiningFeedrate_mmds { get; set; } Property Value double McAbc_deg Gets or sets the machine ABC coordinates in degrees. public Vec3d McAbc_deg { get; set; } Property Value Vec3d McAbc_rad Machine coordinates in ABC format (radians). public Vec3d McAbc_rad { get; } Property Value Vec3d McXyz Gets or sets the machine coordinate XYZ values. public Vec3d McXyz { get; } Property Value Vec3d McXyzabc Machine coordinate ( with side radius compensation if existed). Point is XYZ. the unit is mm. Normal is ABC. the unit is radian. public DVec3d McXyzabc { get; } Property Value DVec3d NcFlagBitArray Internal Used. public BitArray NcFlagBitArray { get; } Property Value BitArray PausingNcArg public PausingNcArg PausingNcArg { get; set; } Property Value PausingNcArg Remarks Since this is base on OneShot Flag, so here has no copy ctor. PolarEntry Data structure for polar coordinates entry. public PolarEntry PolarEntry { get; set; } Property Value PolarEntry PreparationT Tool ID for preparation. public int PreparationT { get; set; } Property Value int ProgramOrthogonalPlaneNormal The orthogonal plane transform after tilting plane transform. Include G17, G18, G19 and plane of called G12p1. public Vec3d ProgramOrthogonalPlaneNormal { get; } Property Value Vec3d ProgramPos ProgramPos can be cartesian XYZ or polar XCZ with radius-based X, depends on CoordinateInterpolationMode. public Vec3d ProgramPos { get; } Property Value Vec3d ProgramXyz Cartesian Program Position XYZ, Abs Program Position (as G90 position). NC coordinate position is the position processed by modal flags. NC coordinate position is the position after radius compensation. The NC(Program) coordinate position is comprehensible by User. MC NC conversion may raise floating error. The floating error raise the cutting force issue, especially for bottom cutting force. Hence the NC values have to be memorized. public Vec3d ProgramXyz { get; } Property Value Vec3d Remarks NC is the better source property than MC. Ex. a NC line command: X100. The Y and Z value may vary if using MC converting back to NC. The error of Y and Z will keeps accumulating until the next explicit YZ command assignment. The error maybe up to 3e-5 in current case. the bounding box size of the case is not large (TT.20230815). Also note that if using Arc command for a complete circle, the begin NC XYZ and the end NC XYZ have to be equaled. Otherwise, it will become only a very small arc rather than the circle. So be care that do not change the NC XYZ if not needed. RadiusCompensationBuf Internal use. public RadiusCompensationBuf RadiusCompensationBuf { get; set; } Property Value RadiusCompensationBuf RapidFeedrate_mmdmin Rapid Feedrate on NC code in rapid mode (such as G00 but not G01,G02,G03) in mm/min. public double RapidFeedrate_mmdmin { get; set; } Property Value double RapidFeedrate_mmds Rapid Feedrate on NC code in rapid mode (such as G00 but not G01,G02,G03) in mm/sec. public double RapidFeedrate_mmds { get; set; } Property Value double S S. Spindle speed. public int S { get; set; } Property Value int SpindleSpeed_radds Spindle speed in radian/s. public double SpindleSpeed_radds { get; set; } Property Value double SpindleSpeed_rpm Spindle speed in RPM. public double SpindleSpeed_rpm { get; set; } Property Value double T Current equiped Tool ID. public int T { get; set; } Property Value int TiltPlaneNcArg Arguments related to tilted plane operations. public ITiltPlaneNcArg TiltPlaneNcArg { get; set; } Property Value ITiltPlaneNcArg Methods GetAttacherMat(NcEnv) Gets the attacher transformation matrix for the current machine coordinates. public Mat4d GetAttacherMat(NcEnv ncEnv) Parameters ncEnv NcEnv The NC environment. Returns Mat4d The attacher transformation matrix. GetCompensationHeight(NcEnv, IMessageKit) Gets the tool height compensation value for this NC line. public double GetCompensationHeight(NcEnv ncEnv, IMessageKit messageHost) Parameters ncEnv NcEnv NC environment messageHost IMessageKit Message host for warnings Returns double Height compensation value GetCompensationRadius(CncBrand, MillingToolOffsetTable, IMessageKit) Gets the tool radius compensation value for this NC line. public double GetCompensationRadius(CncBrand cncBrand, MillingToolOffsetTable millingToolOffsetTable, IMessageKit messageHost) Parameters cncBrand CncBrand CNC brand millingToolOffsetTable MillingToolOffsetTable Milling tool offset table messageHost IMessageKit Message host for warnings Returns double Radius compensation value GetFileLineIndex() Get FileLineIndex. public FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex GetG5xCoordinateOffset(NcEnv) Gets the G5x coordinate offset for this NC line. public Vec3d GetG5xCoordinateOffset(NcEnv ncEnv) Parameters ncEnv NcEnv NC environment Returns Vec3d The G5x coordinate offset vector GetIndexedFileLine() Gets the file line associated with this object. public IndexedFileLine GetIndexedFileLine() Returns IndexedFileLine The file line object. GetMcByProgramPos(Vec3d, NcEnv, NcNoteCache, IMessageKit, out Vec3d) Internal Use. public DVec3d GetMcByProgramPos(Vec3d programPos, NcEnv ncEnv, NcNoteCache ncLineCache, IMessageKit messageHost, out Vec3d programXyz) Parameters programPos Vec3d ncEnv NcEnv ncLineCache NcNoteCache messageHost IMessageKit programXyz Vec3d Returns DVec3d GetProgramXyzabc(NcEnv, DVec3d, out bool?, IMessageKit) Gets the program XYZABC coordinates from machine coordinates. public DVec3d GetProgramXyzabc(NcEnv ncEnv, DVec3d mcXyzabc, out bool? isG68p2Successed, IMessageKit messageHost) Parameters ncEnv NcEnv The NC environment. mcXyzabc DVec3d The machine coordinates. isG68p2Successed bool? Output parameter indicating whether G68.2 coordinate conversion was successful. messageHost IMessageKit The message host for logging. Returns DVec3d The program XYZABC coordinates. GetSourceCommand() public IIndexedFileLine GetSourceCommand() Returns IIndexedFileLine GetTiltMat4d(NcEnv, out Mat4d) Internal Use Only. public bool? GetTiltMat4d(NcEnv ncEnv, out Mat4d tableToFeatureTransform) Parameters ncEnv NcEnv NC environment. tableToFeatureTransform Mat4d Transform from NC to Table without tool compensation and linear coordinate offset (such as G55,G56..). Returns bool? True if G68.2 is successfully applied, false if not, and null if not applicable. HasSyntexXyz(NcEnv) Determines whether the line contains syntactic XYZ coordinates. public bool HasSyntexXyz(NcEnv ncEnv) Parameters ncEnv NcEnv NC environment Returns bool True if syntactic XYZ coordinates are present; otherwise, false. RebuildByMc(NcEnv, DVec3d, NcNoteCache, IMessageKit) Internal Use Only. For NC opt. public void RebuildByMc(NcEnv ncEnv, DVec3d mc, NcNoteCache ncLineCache, IMessageKit messageHost) Parameters ncEnv NcEnv NC environment. mc DVec3d MC coordinates. ncLineCache NcNoteCache NC line cache. messageHost IMessageKit Message host for logging and reporting. RebuildByProgramXyz(NcEnv, Vec3d, NcNoteCache, IMessageKit) Internal Use Only. For NC opt. public void RebuildByProgramXyz(NcEnv ncEnv, Vec3d programXyz, NcNoteCache ncNoteCache, IMessageKit messageHost) Parameters ncEnv NcEnv NC environment. programXyz Vec3d Program XYZ coordinates. ncNoteCache NcNoteCache NC note cache. messageHost IMessageKit Message host for logging and reporting. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." + "summary": "Class NcLine Namespace Hi.Numerical Assembly HiUniNc.dll Represents a line in the NC program with its associated data and operations. public class NcLine : IIndexedFileLine, IFileLine, IFileLineIndex, IGetIndexedFileLine, IGetFileLineIndex, IFlagText Inheritance object NcLine Implements IIndexedFileLine IFileLine IFileLineIndex IGetIndexedFileLine IGetFileLineIndex IFlagText Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) NcUtil.IsFlagChanging(NcLine, NcLine, NcFlag) NcUtil.IsFlagChanging(NcLine, NcLine, NcFlag, bool) NcUtil.IsFlagKeeping(NcLine, NcLine, NcFlag, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors NcLine(NcEnv, IndexedFileLine, NcLine, out NcNoteCache, IMessageHost) Ctor from the reference NcLine. public NcLine(NcEnv ncEnv, IndexedFileLine fileLine, NcLine preNcLine, out NcNoteCache ncLineCache, IMessageHost messageHost) Parameters ncEnv NcEnv NC environment fileLine IndexedFileLine file line preNcLine NcLine reference NcLine that this NcLine copy from. If previous NcLine is not null, apply previous NcLine. ncLineCache NcNoteCache Output NC note cache messageHost IMessageHost Message host for warnings NcLine(NcEnv, IMessageHost) Ctor for initial state. public NcLine(NcEnv ncEnv, IMessageHost messageHost) Parameters ncEnv NcEnv messageHost IMessageHost Properties ArcNcArg NC arguments for arc commands. public ArcNcArg ArcNcArg { get; set; } Property Value ArcNcArg CoordinateInterpolationMode Gets the current coordinate interpolation mode (Cartesian or Polar). public CoordinateInterpolationMode CoordinateInterpolationMode { get; } Property Value CoordinateInterpolationMode F F. Feedrate on NC code. Note that this may not be the working feedrate. Some NC codes like G00 and G28 doesnt use F code. public double F { get; set; } Property Value double Remarks According to Fanuc manual, the default F is zero. Feedrate_mmdmin Feedrate on NC code in current mode in mm/min. See F. public double Feedrate_mmdmin { get; set; } Property Value double Feedrate_mmds Feedrate on NC code in current mode in mm/sec. public double Feedrate_mmds { get; set; } Property Value double FileIndex File Index. Start on 0. public int FileIndex { get; } Property Value int FileNo Gets the file number. [Present(\"File Number\", \"FileNo\", PhysicsUnit.None, \"G\")] public int FileNo { get; } Property Value int FilePath File path. [Present(\"File\", \"File\", PhysicsUnit.None, \"G\")] public string FilePath { get; } Property Value string FlagsText Gets a string representation of the active NC flags for this line. public string FlagsText { get; } Property Value string G28Arg Arguments for G28 commands. public G28Arg G28Arg { get; set; } Property Value G28Arg G52_Xyz Local coordinate system translation. public Vec3d G52_Xyz { get; set; } Property Value Vec3d G54SeriesCoordinateNum1000 Faunc Group14 value. Note that Heidenhain Datum shift is set by DatumTableId. public int G54SeriesCoordinateNum1000 { get; set; } Property Value int Group07NcArg Arguments for Group07 NC commands (tool radius compensation). public Group07NcArg Group07NcArg { get; set; } Property Value Group07NcArg Group07_D Radius compensation ID. Note that in Siemens controller, each tool ID has several D entry. public int Group07_D { get; set; } Property Value int Group08_H Height compensation ID. For Siemens Traori, the value is Tool ID. For Heidenhain, the value is Tool ID. public int Group08_H { get; set; } Property Value int Group09NcArg NC Argument of NC Group09. public Group09NcArg Group09NcArg { get; set; } Property Value Group09NcArg HeidenhainBlockCacheArg Heidenhain block cache arguments for various Heidenhain commands. public IHeidenhainBlockCacheArg HeidenhainBlockCacheArg { get; set; } Property Value IHeidenhainBlockCacheArg HeidenhainCycleDef247Q339 DATUM SETTING DATUM Number. public int HeidenhainCycleDef247Q339 { get; set; } Property Value int HeidenhainCycleDef7Arg Arguments for Heidenhain Cycle Definition 7 (datum shift). public HeidenhainCycleDef7Arg HeidenhainCycleDef7Arg { get; set; } Property Value HeidenhainCycleDef7Arg HeidenhainM140MB HeidenhainM140(Retract the tool) MB value. MB is the retraction height. double.positiveInf is [MB MAX]. One shot command. public double HeidenhainM140MB { get; set; } Property Value double HeidenhainQMacroMap Dictionary mapping Q macro numbers to their string values for Heidenhain controllers. public Dictionary HeidenhainQMacroMap { get; set; } Property Value Dictionary HeidenhainToolAxisDir Direction of the tool axis for Heidenhain controllers. public int HeidenhainToolAxisDir { get; set; } Property Value int IndexedFileLine The file line information associated with this NC line. public IndexedFileLine IndexedFileLine { get; } Property Value IndexedFileLine IsAbsolutePositioning Gets a value indicating whether absolute positioning (G90) is active. public bool IsAbsolutePositioning { get; } Property Value bool IsHeightCompensationEnabled Gets a value indicating whether height compensation is enabled. public bool IsHeightCompensationEnabled { get; } Property Value bool IsOnArcCommand Gets a value indicating whether an arc command (G02 or G03) is active. public bool IsOnArcCommand { get; } Property Value bool IsPathPrepared Gets a value indicating whether the path is prepared (no radius compensation). public bool IsPathPrepared { get; } Property Value bool IsRadiusCompensationEnabled Gets a value indicating whether radius compensation is enabled. public bool IsRadiusCompensationEnabled { get; } Property Value bool IsToolCenterPointManagementEnabled Gets a value indicating whether tool center point management is enabled. public bool IsToolCenterPointManagementEnabled { get; } Property Value bool Line The line. [Present(\"Line\", \"Line\", PhysicsUnit.None, \"G\")] public string Line { get; } Property Value string LineIndex Line Index. Start on 0. public int LineIndex { get; } Property Value int LineNo Gets the line number. [Present(\"Line Number\", \"LineNo\", PhysicsUnit.None, \"G\")] public int LineNo { get; } Property Value int MachiningFeedrate_mmdmin Machining Feedrate on NC code in machining mode (such as G01,G02,G03 but not G00) in mm/min. public double MachiningFeedrate_mmdmin { get; set; } Property Value double MachiningFeedrate_mmds Machining Feedrate on NC code in machining mode (such as G01,G02,G03 but not G00) in mm/sec. public double MachiningFeedrate_mmds { get; set; } Property Value double McAbc_deg Gets or sets the machine ABC coordinates in degrees. public Vec3d McAbc_deg { get; set; } Property Value Vec3d McAbc_rad Machine coordinates in ABC format (radians). public Vec3d McAbc_rad { get; } Property Value Vec3d McXyz Gets or sets the machine coordinate XYZ values. public Vec3d McXyz { get; } Property Value Vec3d McXyzabc Machine coordinate ( with side radius compensation if existed). Point is XYZ. the unit is mm. Normal is ABC. the unit is radian. public DVec3d McXyzabc { get; } Property Value DVec3d NcFlagBitArray Internal Used. public BitArray NcFlagBitArray { get; } Property Value BitArray PausingNcArg public PausingNcArg PausingNcArg { get; set; } Property Value PausingNcArg Remarks Since this is base on OneShot Flag, so here has no copy ctor. PolarEntry Data structure for polar coordinates entry. public PolarEntry PolarEntry { get; set; } Property Value PolarEntry PreparationT Tool ID for preparation. public int PreparationT { get; set; } Property Value int ProgramOrthogonalPlaneNormal The orthogonal plane transform after tilting plane transform. Include G17, G18, G19 and plane of called G12p1. public Vec3d ProgramOrthogonalPlaneNormal { get; } Property Value Vec3d ProgramPos ProgramPos can be cartesian XYZ or polar XCZ with radius-based X, depends on CoordinateInterpolationMode. public Vec3d ProgramPos { get; } Property Value Vec3d ProgramXyz Cartesian Program Position XYZ, Abs Program Position (as G90 position). NC coordinate position is the position processed by modal flags. NC coordinate position is the position after radius compensation. The NC(Program) coordinate position is comprehensible by User. MC NC conversion may raise floating error. The floating error raise the cutting force issue, especially for bottom cutting force. Hence the NC values have to be memorized. public Vec3d ProgramXyz { get; } Property Value Vec3d Remarks NC is the better source property than MC. Ex. a NC line command: X100. The Y and Z value may vary if using MC converting back to NC. The error of Y and Z will keeps accumulating until the next explicit YZ command assignment. The error maybe up to 3e-5 in current case. the bounding box size of the case is not large (TT.20230815). Also note that if using Arc command for a complete circle, the begin NC XYZ and the end NC XYZ have to be equaled. Otherwise, it will become only a very small arc rather than the circle. So be care that do not change the NC XYZ if not needed. RadiusCompensationBuf Internal use. public RadiusCompensationBuf RadiusCompensationBuf { get; set; } Property Value RadiusCompensationBuf RapidFeedrate_mmdmin Rapid Feedrate on NC code in rapid mode (such as G00 but not G01,G02,G03) in mm/min. public double RapidFeedrate_mmdmin { get; set; } Property Value double RapidFeedrate_mmds Rapid Feedrate on NC code in rapid mode (such as G00 but not G01,G02,G03) in mm/sec. public double RapidFeedrate_mmds { get; set; } Property Value double S S. Spindle speed. public int S { get; set; } Property Value int SpindleSpeed_radds Spindle speed in radian/s. public double SpindleSpeed_radds { get; set; } Property Value double SpindleSpeed_rpm Spindle speed in RPM. public double SpindleSpeed_rpm { get; set; } Property Value double T Current equiped Tool ID. public int T { get; set; } Property Value int TiltPlaneNcArg Arguments related to tilted plane operations. public ITiltPlaneNcArg TiltPlaneNcArg { get; set; } Property Value ITiltPlaneNcArg Methods GetAttacherMat(NcEnv) Gets the attacher transformation matrix for the current machine coordinates. public Mat4d GetAttacherMat(NcEnv ncEnv) Parameters ncEnv NcEnv The NC environment. Returns Mat4d The attacher transformation matrix. GetCompensationHeight(NcEnv, IMessageHost) Gets the tool height compensation value for this NC line. public double GetCompensationHeight(NcEnv ncEnv, IMessageHost messageHost) Parameters ncEnv NcEnv NC environment messageHost IMessageHost Message host for warnings Returns double Height compensation value GetCompensationRadius(CncBrand, MillingToolOffsetTable, IMessageHost) Gets the tool radius compensation value for this NC line. public double GetCompensationRadius(CncBrand cncBrand, MillingToolOffsetTable millingToolOffsetTable, IMessageHost messageHost) Parameters cncBrand CncBrand CNC brand millingToolOffsetTable MillingToolOffsetTable Milling tool offset table messageHost IMessageHost Message host for warnings Returns double Radius compensation value GetFileLineIndex() Get FileLineIndex. public FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex GetG5xCoordinateOffset(NcEnv) Gets the G5x coordinate offset for this NC line. public Vec3d GetG5xCoordinateOffset(NcEnv ncEnv) Parameters ncEnv NcEnv NC environment Returns Vec3d The G5x coordinate offset vector GetIndexedFileLine() Gets the file line associated with this object. public IndexedFileLine GetIndexedFileLine() Returns IndexedFileLine The file line object. GetMcByProgramPos(Vec3d, NcEnv, NcNoteCache, IMessageHost, out Vec3d) Internal Use. public DVec3d GetMcByProgramPos(Vec3d programPos, NcEnv ncEnv, NcNoteCache ncLineCache, IMessageHost messageHost, out Vec3d programXyz) Parameters programPos Vec3d ncEnv NcEnv ncLineCache NcNoteCache messageHost IMessageHost programXyz Vec3d Returns DVec3d GetProgramXyzabc(NcEnv, DVec3d, out bool?, IMessageHost) Gets the program XYZABC coordinates from machine coordinates. public DVec3d GetProgramXyzabc(NcEnv ncEnv, DVec3d mcXyzabc, out bool? isG68p2Successed, IMessageHost messageHost) Parameters ncEnv NcEnv The NC environment. mcXyzabc DVec3d The machine coordinates. isG68p2Successed bool? Output parameter indicating whether G68.2 coordinate conversion was successful. messageHost IMessageHost The message host for logging. Returns DVec3d The program XYZABC coordinates. GetSourceCommand() public IIndexedFileLine GetSourceCommand() Returns IIndexedFileLine GetTiltMat4d(NcEnv, out Mat4d) Internal Use Only. public bool? GetTiltMat4d(NcEnv ncEnv, out Mat4d tableToFeatureTransform) Parameters ncEnv NcEnv NC environment. tableToFeatureTransform Mat4d Transform from NC to Table without tool compensation and linear coordinate offset (such as G55,G56..). Returns bool? True if G68.2 is successfully applied, false if not, and null if not applicable. HasSyntexXyz(NcEnv) Determines whether the line contains syntactic XYZ coordinates. public bool HasSyntexXyz(NcEnv ncEnv) Parameters ncEnv NcEnv NC environment Returns bool True if syntactic XYZ coordinates are present; otherwise, false. RebuildByMc(NcEnv, DVec3d, NcNoteCache, IMessageHost) Internal Use Only. For NC opt. public void RebuildByMc(NcEnv ncEnv, DVec3d mc, NcNoteCache ncLineCache, IMessageHost messageHost) Parameters ncEnv NcEnv NC environment. mc DVec3d MC coordinates. ncLineCache NcNoteCache NC line cache. messageHost IMessageHost Message host for logging and reporting. RebuildByProgramXyz(NcEnv, Vec3d, NcNoteCache, IMessageHost) Internal Use Only. For NC opt. public void RebuildByProgramXyz(NcEnv ncEnv, Vec3d programXyz, NcNoteCache ncNoteCache, IMessageHost messageHost) Parameters ncEnv NcEnv NC environment. programXyz Vec3d Program XYZ coordinates. ncNoteCache NcNoteCache NC note cache. messageHost IMessageHost Message host for logging and reporting. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Numerical.NcNameAttribute.html": { "href": "api/Hi.Numerical.NcNameAttribute.html", @@ -3952,7 +3962,7 @@ "api/Hi.Numerical.NcProc.html": { "href": "api/Hi.Numerical.NcProc.html", "title": "Class NcProc | HiAPI-C# 2025", - "summary": "Class NcProc Namespace Hi.Numerical Assembly HiUniNc.dll Provides processing utilities for NC programming. public static class NcProc Inheritance object NcProc Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetActs(NcEnv, SeqPair, IMessageKit) Gets the acts from a sequence pair of NcLines public static IEnumerable GetActs(NcEnv ncEnv, SeqPair ncLineSeq, IMessageKit messageHost) Parameters ncEnv NcEnv The numerical control environment ncLineSeq SeqPair The sequence pair of NcLines messageHost IMessageKit The message host for logging Returns IEnumerable Enumerable of acts GetActs(NcEnv, NcLine, NcLine, IMessageKit) Gets the acts from a pair of NcLines public static IEnumerable GetActs(NcEnv ncEnv, NcLine preNcLine, NcLine curNcLine, IMessageKit messageHost) Parameters ncEnv NcEnv The numerical control environment preNcLine NcLine The previous NcLine curNcLine NcLine The current NcLine messageHost IMessageKit The message host for logging Returns IEnumerable Enumerable of acts GetActs(NcEnv, LinkedListNode, IMessageKit) Gets the acts from a linked list node containing an NcLine public static IEnumerable GetActs(NcEnv ncEnv, LinkedListNode ncLineNode, IMessageKit messageHost) Parameters ncEnv NcEnv The numerical control environment ncLineNode LinkedListNode The linked list node containing the NcLine messageHost IMessageKit The message host for logging Returns IEnumerable Enumerable of acts" + "summary": "Class NcProc Namespace Hi.Numerical Assembly HiUniNc.dll Provides processing utilities for NC programming. public static class NcProc Inheritance object NcProc Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetActs(NcEnv, SeqPair, IMessageHost) Gets the acts from a sequence pair of NcLines public static IEnumerable GetActs(NcEnv ncEnv, SeqPair ncLineSeq, IMessageHost messageHost) Parameters ncEnv NcEnv The numerical control environment ncLineSeq SeqPair The sequence pair of NcLines messageHost IMessageHost The message host for logging Returns IEnumerable Enumerable of acts GetActs(NcEnv, NcLine, NcLine, IMessageHost) Gets the acts from a pair of NcLines public static IEnumerable GetActs(NcEnv ncEnv, NcLine preNcLine, NcLine curNcLine, IMessageHost messageHost) Parameters ncEnv NcEnv The numerical control environment preNcLine NcLine The previous NcLine curNcLine NcLine The current NcLine messageHost IMessageHost The message host for logging Returns IEnumerable Enumerable of acts GetActs(NcEnv, LinkedListNode, IMessageHost) Gets the acts from a linked list node containing an NcLine public static IEnumerable GetActs(NcEnv ncEnv, LinkedListNode ncLineNode, IMessageHost messageHost) Parameters ncEnv NcEnv The numerical control environment ncLineNode LinkedListNode The linked list node containing the NcLine messageHost IMessageHost The message host for logging Returns IEnumerable Enumerable of acts" }, "api/Hi.Numerical.NcStepFileOutputKit.html": { "href": "api/Hi.Numerical.NcStepFileOutputKit.html", @@ -3992,7 +4002,7 @@ "api/Hi.Numerical.RadiusCompensationBuf.html": { "href": "api/Hi.Numerical.RadiusCompensationBuf.html", "title": "Class RadiusCompensationBuf | HiAPI-C# 2025", - "summary": "Class RadiusCompensationBuf Namespace Hi.Numerical Assembly HiUniNc.dll Buffer for radius compensation operations in numerical control public class RadiusCompensationBuf Inheritance object RadiusCompensationBuf Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors RadiusCompensationBuf() Initializes a new instance of the RadiusCompensationBuf class. public RadiusCompensationBuf() Properties CenterProgramPos For arc command only. public Vec3d CenterProgramPos { get; set; } Property Value Vec3d CompensatedPosOnProgramCoordinate Program Pos at certain NcLine. Program Pos can be Cartesian XYZ or Polar Coordinate Interpolation Mode (G12.1) XCZ. public Vec3d CompensatedPosOnProgramCoordinate { get; set; } Property Value Vec3d TransientBeginMc For arc command only. public DVec3d TransientBeginMc { get; set; } Property Value DVec3d TransientBeginProgramPos For arc command only. public Vec3d TransientBeginProgramPos { get; set; } Property Value Vec3d TransientEndMc For arc command only. public DVec3d TransientEndMc { get; set; } Property Value DVec3d TransientEndProgramPos For arc command only. public Vec3d TransientEndProgramPos { get; set; } Property Value Vec3d Methods ResolveRadiusCompensation(LinkedListNode, NcEnv, NcNoteCache, IMessageKit) Resolves radius compensation for the given node. public static bool ResolveRadiusCompensation(LinkedListNode srcNode, NcEnv ncEnv, NcNoteCache ncLineCache, IMessageKit messageHost) Parameters srcNode LinkedListNode The source node to resolve radius compensation for. ncEnv NcEnv The numerical control environment. ncLineCache NcNoteCache The NC line cache for storing messages. messageHost IMessageKit The message host for reporting issues. Returns bool True if radius compensation was resolved; otherwise, false. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." + "summary": "Class RadiusCompensationBuf Namespace Hi.Numerical Assembly HiUniNc.dll Buffer for radius compensation operations in numerical control public class RadiusCompensationBuf Inheritance object RadiusCompensationBuf Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors RadiusCompensationBuf() Initializes a new instance of the RadiusCompensationBuf class. public RadiusCompensationBuf() Properties CenterProgramPos For arc command only. public Vec3d CenterProgramPos { get; set; } Property Value Vec3d CompensatedPosOnProgramCoordinate Program Pos at certain NcLine. Program Pos can be Cartesian XYZ or Polar Coordinate Interpolation Mode (G12.1) XCZ. public Vec3d CompensatedPosOnProgramCoordinate { get; set; } Property Value Vec3d TransientBeginMc For arc command only. public DVec3d TransientBeginMc { get; set; } Property Value DVec3d TransientBeginProgramPos For arc command only. public Vec3d TransientBeginProgramPos { get; set; } Property Value Vec3d TransientEndMc For arc command only. public DVec3d TransientEndMc { get; set; } Property Value DVec3d TransientEndProgramPos For arc command only. public Vec3d TransientEndProgramPos { get; set; } Property Value Vec3d Methods ResolveRadiusCompensation(LinkedListNode, NcEnv, NcNoteCache, IMessageHost) Resolves radius compensation for the given node. public static bool ResolveRadiusCompensation(LinkedListNode srcNode, NcEnv ncEnv, NcNoteCache ncLineCache, IMessageHost messageHost) Parameters srcNode LinkedListNode The source node to resolve radius compensation for. ncEnv NcEnv The numerical control environment. ncLineCache NcNoteCache The NC line cache for storing messages. messageHost IMessageHost The message host for reporting issues. Returns bool True if radius compensation was resolved; otherwise, false. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Numerical.SpindleDirection.html": { "href": "api/Hi.Numerical.SpindleDirection.html", @@ -4742,7 +4752,7 @@ "brief/dev-doc/build-hinc/general-rules.html": { "href": "brief/dev-doc/build-hinc/general-rules.html", "title": "General Rules | HiAPI-C# 2025", - "summary": "General Rules Tip You MUST read the cited hyperlink before you do the job. ASK if you think the hyperlink is not work. Handle Message and Exception If message is well-managed, apply MessageKit to show the message; if the message is Exception, apply ExceptionUtil.ShowException(Exception, object) to show the exception for detail treatment. The messages are shown in Message Section on Main Panel. For examples of message and exception handling patterns: Normal message handling: MessageKit.AddMessage(\"Operation completed successfully.\"); MessageKit.AddWarning(\"Please check your input.\"); Exception handling in synchronous code: try { // Your code here throw new NotImplementedException(\"Demo exception\"); } catch (Exception ex) { ExceptionUtil.ShowException(ex, null); } Exception handling in asynchronous code: await Task.Run(() => { // Your async operation here throw new NotImplementedException(\"Demo async exception\"); }).ShowIfCatched(null); The examples are in project Hi.Sample. See this page for git repository. Loose Manner Run Skippable Rapid Calling Synchronous Action in Loose Manner. Some synchronous action may be calling rapidly but only the last call has to be effective (or it is endurable to loss some previous action call). Define a LooseRunner and apply LooseRunner. to run the action. Dispose the LooseRunner on owner disposing to ensure the tryrun action is well-managed. GUI File Path Assignment See GUI File Path Assignment. Numeric Input/Output Handling Implement a numeric-utils.js module to handle special floating-point values in web forms. See Numeric Input/Output Utilities for implementation details. DictionaryService Pattern for Hierarchical Components For web applications with hierarchical SignalR hub connections, use the DictionaryService and DictionaryHub Pattern to manage connection-scoped object indexing. This pattern provides isolation between components, supports nested components without conflicts, and ensures automatic cleanup of resources on disconnect. Translation Remarks See Translation Remarks." + "summary": "General Rules Tip You MUST read the cited hyperlink before you do the job. ASK if you think the hyperlink is not work. Handle Message and Exception If message is well-managed, apply to show the message; if the message is Exception, apply ExceptionUtil.ShowException(Exception, object) to show the exception for detail treatment. The messages are shown in Message Section on Main Panel. For examples of message and exception handling patterns: Normal message handling: MessageHost.AddMessage(\"Operation completed successfully.\"); MessageHost.AddWarning(\"Please check your input.\"); Exception handling in synchronous code: try { // Your code here throw new NotImplementedException(\"Demo exception\"); } catch (Exception ex) { ExceptionUtil.ShowException(ex, null); } Exception handling in asynchronous code: await Task.Run(() => { // Your async operation here throw new NotImplementedException(\"Demo async exception\"); }).ShowIfCatched(null); The examples are in project Hi.Sample. See this page for git repository. Loose Manner Run Skippable Rapid Calling Synchronous Action in Loose Manner. Some synchronous action may be calling rapidly but only the last call has to be effective (or it is endurable to loss some previous action call). Define a LooseRunner and apply TryRun to run the action. Dispose the LooseRunner on owner disposing to ensure the tryrun action is well-managed. GUI File Path Assignment See GUI File Path Assignment. Numeric Input/Output Handling Implement a numeric-utils.js module to handle special floating-point values in web forms. See Numeric Input/Output Utilities for implementation details. DictionaryService Pattern for Hierarchical Components For web applications with hierarchical SignalR hub connections, use the DictionaryService and DictionaryHub Pattern to manage connection-scoped object indexing. This pattern provides isolation between components, supports nested components without conflicts, and ensures automatic cleanup of resources on disconnect. Translation Remarks See Translation Remarks." }, "brief/dev-doc/build-hinc/geom/box3d-control.html": { "href": "brief/dev-doc/build-hinc/geom/box3d-control.html", @@ -4807,7 +4817,7 @@ "brief/dev-doc/build-hinc/main-panel.html": { "href": "brief/dev-doc/build-hinc/main-panel.html", "title": "Main Panel | HiAPI-C# 2025", - "summary": "Main Panel Key Model WPF Single-User Desktop Application: Self-hosted LocalProjectService Web Service Application: Service inherits from IProjectService Other Model: AppService Main Panel Layout Top Navigation Menu Project Menu Dropdown Project Path Text Field New MenuItem Load MenuItem Save MenuItem Save As MenuItem Environment Menu Dropdown Machine Tool MenuItem Open Machine Tool Page Sole window in WPF app. The page manages MachiningEquipment.. Controller MenuItem Open Controller Page Tool House MenuItem Fixture MenuItem Open Fixture Page Workpiece MenuItem Open Workpiece Page Mission MenuItem Open Mission Page Player MenuItem Link to Player Panel (Not exist on WPF app.) Player Belonged Tool Bars. See Player Panel. Shows only if the Main Panel content is Player Panel. Preference Menu Dropdown Help MenuItem HiAPI Version label A label to show the HiNc library version. Log MenuItem Open Log Viewer to display application logs for the current day. The Log Viewer provides real-time access to system logs with filtering and download capabilities. It reads log files from the server's log directory and presents them in a formatted, searchable interface. Users can refresh the log content or download the current day's log file for offline analysis. Central Page Panel Message Section on Main Panel Behavior of Navigation Menu/Project Project Path Text Field Shows the Project Path if the project is assinged. Tip Project Path Text Field should not be button style. It should be a pure text field that can be selected and copied. The Project Menu Managing MachiningProject. To New (create), Save and Save As the MachiningProject, See DemoBuildGeomOnlyMachiningProject for the example. To Load MachiningProject, See DemoUseMachiningProject for the example. Show message for the actions result (successed or has exception) by MessageKit. Tip Recommmand using static function of MessageKit to do the job. Read document of MessageKit to ensure the proper usage. On project loaded (Navigation Menu/Project/Load MenuItem) , set the Player.Panel.RenderingCanvas.DispEngine to SetViewToIsometricView(). Tip Using async to comfort the process WPF Application Specification Limit the GUI that only single Page/Window existed in the application for the sub window from the Main Panel, include Mission, Workpiece and Fixture. Don't create the Player MenuItem if the target application is WPF Application. Since the Main panel is the Player Panel and the panel is fixed to the main panel. Web-Page Application Specification Apply Player Panel as the default panel. Application Specification and Source Code Path See this page for git repository. WPF Application Source Code Path MainWindow Web Page Application Source Code Path Environments/PreferenceController.cs Environments/ProjectController.cs wwwroot/app.js wwwroot/index.html wwwroot/preference/log-viewer.js Web Page Application Specification The page and URL are bi-directional." + "summary": "Main Panel Key Model WPF Single-User Desktop Application: Self-hosted LocalProjectService Web Service Application: Service inherits from IProjectService Other Model: AppService Main Panel Layout Top Navigation Menu Project Menu Dropdown Project Path Text Field New MenuItem Load MenuItem Save MenuItem Save As MenuItem Environment Menu Dropdown Machine Tool MenuItem Open Machine Tool Page Sole window in WPF app. The page manages MachiningEquipment.. Controller MenuItem Open Controller Page Tool House MenuItem Fixture MenuItem Open Fixture Page Workpiece MenuItem Open Workpiece Page Mission MenuItem Open Mission Page Player MenuItem Link to Player Panel (Not exist on WPF app.) Player Belonged Tool Bars. See Player Panel. Shows only if the Main Panel content is Player Panel. Preference Menu Dropdown Help MenuItem HiAPI Version label A label to show the HiNc library version. Log MenuItem Open Log Viewer to display application logs for the current day. The Log Viewer provides real-time access to system logs with filtering and download capabilities. It reads log files from the server's log directory and presents them in a formatted, searchable interface. Users can refresh the log content or download the current day's log file for offline analysis. Central Page Panel Message Section on Main Panel Behavior of Navigation Menu/Project Project Path Text Field Shows the Project Path if the project is assinged. Tip Project Path Text Field should not be button style. It should be a pure text field that can be selected and copied. The Project Menu Managing MachiningProject. To New (create), Save and Save As the MachiningProject, See DemoBuildGeomOnlyMachiningProject for the example. To Load MachiningProject, See DemoUseMachiningProject for the example. Show message for the actions result (successed or has exception) by . Tip Recommmand using static function of to do the job. Read document of to ensure the proper usage. On project loaded (Navigation Menu/Project/Load MenuItem) , set the Player.Panel.RenderingCanvas.DispEngine to SetViewToIsometricView(). Tip Using async to comfort the process WPF Application Specification Limit the GUI that only single Page/Window existed in the application for the sub window from the Main Panel, include Mission, Workpiece and Fixture. Don't create the Player MenuItem if the target application is WPF Application. Since the Main panel is the Player Panel and the panel is fixed to the main panel. Web-Page Application Specification Apply Player Panel as the default panel. Application Specification and Source Code Path See this page for git repository. WPF Application Source Code Path MainWindow Web Page Application Source Code Path Environments/PreferenceController.cs Environments/ProjectController.cs wwwroot/app.js wwwroot/index.html wwwroot/preference/log-viewer.js Web Page Application Specification The page and URL are bi-directional." }, "brief/dev-doc/build-hinc/mech/cutter/apt-profile-panel.html": { "href": "brief/dev-doc/build-hinc/mech/cutter/apt-profile-panel.html", @@ -4877,7 +4887,7 @@ "brief/dev-doc/build-hinc/message-section-on-main-panel.html": { "href": "brief/dev-doc/build-hinc/message-section-on-main-panel.html", "title": "Message Section on Main Panel | HiAPI-C# 2025", - "summary": "Message Section on Main Panel Initialize MessageKit.Default with Message Section To show and save the message on Brief Message Text Field, add event to Default.OnAdding. The event contains: update the text content of Brief Message Text Field Append the message to log file (create if not existed) $\"logs/log-{DateTime.Now:yyyy-MM-dd}.txt\" Tip Handle the situation that logs over one day. Check if passing argument of OnAdding is Exception. If the it is Exception, update text content by Exception.Message but log to file with the full Exception information. Consider MessageFlag to set the behavior of Message Section. For example, apply alert style if passing argument is exception. The Info (and the other flags that the priority lower than it) should only record in the logs but not shows in the Message Section. WPF Application Layout Message Section Bottom Bar Brief Message Text Field Show Log Button Tip The text field should be selectable to let user easy to copy the message. Web Page Application Layout Message Section Stacking Toast Brief Message Text Field Enable toast Auto-Hide only if the message level is low. Note The convention of web page is not like WPF panel. Use Boostrap or Bootstrap-like toast. They are much appropriate than the fixed bottom bar on WPF. Log Page Layout Head Line Log Label Show Log Button Download Log Button Log TextArea Behavior of Show Log Button Call an editor (or reader, bootstrap modal like poping block) to show the current log. Tip Handle the situation that the current log file does not exist. It may occurs if no message has added." + "summary": "Message Section on Main Panel Initialize . with Message Section To show and save the message on Brief Message Text Field, add event to .. The event contains: update the text content of Brief Message Text Field Append the message to log file (create if not existed) $\"logs/log-{DateTime.Now:yyyy-MM-dd}.txt\" Tip Handle the situation that logs over one day. Check if passing argument of is Exception. If the it is Exception, update text content by Exception.Message but log to file with the full Exception information. Consider MessageFlag to set the behavior of Message Section. For example, apply alert style if passing argument is exception. The Info (and the other flags that the priority lower than it) should only record in the logs but not shows in the Message Section. WPF Application Layout Message Section Bottom Bar Brief Message Text Field Show Log Button Tip The text field should be selectable to let user easy to copy the message. Web Page Application Layout Message Section Stacking Toast Brief Message Text Field Enable toast Auto-Hide only if the message level is low. Note The convention of web page is not like WPF panel. Use Boostrap or Bootstrap-like toast. They are much appropriate than the fixed bottom bar on WPF. Log Page Layout Head Line Log Label Show Log Button Download Log Button Log TextArea Behavior of Show Log Button Call an editor (or reader, bootstrap modal like poping block) to show the current log. Tip Handle the situation that the current log file does not exist. It may occurs if no message has added." }, "brief/dev-doc/build-hinc/mission/ListCommand-panel.html": { "href": "brief/dev-doc/build-hinc/mission/ListCommand-panel.html", @@ -5017,7 +5027,7 @@ "brief/dev-doc/build-hinc/widget/vec3d/index.html": { "href": "brief/dev-doc/build-hinc/widget/vec3d/index.html", "title": "Vec3dControl Component | HiAPI-C# 2025", - "summary": "Vec3dControl Component Vec3dControl is a user control for Vec3d and display. Main Features Dual Input Modes Standard Mode: Input X, Y, Z components separately Text Mode: Input complete vector in text format Vector Normalization Normalization button (optional) Button visibility controlled by ShowNormalizeButton property Refer Sample Code