diff --git a/App/Hi.Wpf.dll b/App/Hi.Wpf.dll index 88475be..b67207e 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 2f5f2dc..a581287 100644 Binary files a/App/HiCbtr.dll and b/App/HiCbtr.dll differ diff --git a/App/HiDisp.dll b/App/HiDisp.dll index 671a3fa..d320cf6 100644 Binary files a/App/HiDisp.dll and b/App/HiDisp.dll differ diff --git a/App/HiGeom.dll b/App/HiGeom.dll index 1ffe6ce..d5490dc 100644 Binary files a/App/HiGeom.dll and b/App/HiGeom.dll differ diff --git a/App/HiLicense.dll b/App/HiLicense.dll index 87f30a0..4e75c17 100644 Binary files a/App/HiLicense.dll and b/App/HiLicense.dll differ diff --git a/App/HiMech.dll b/App/HiMech.dll index 31cc5c0..97d5962 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 4385285..a9cf490 100644 --- a/App/HiNC-2025-win-desktop.deps.json +++ b/App/HiNC-2025-win-desktop.deps.json @@ -11,8 +11,8 @@ "dependencies": { "AvalonEdit": "6.3.0.90", "FontAwesome.Sharp": "6.3.0", - "Hi.Wpf": "3.1.41", - "HiNc": "3.1.61", + "Hi.Wpf": "3.1.43", + "HiNc": "3.1.62", "Microsoft.Extensions.Configuration.Json": "9.0.0", "Microsoft.Extensions.DependencyInjection": "9.0.0", "Microsoft.Extensions.Hosting": "9.0.0", @@ -1659,39 +1659,39 @@ } }, "Grpc.Tools/2.66.0": {}, - "Hi.Wpf/3.1.41": { + "Hi.Wpf/3.1.43": { "dependencies": { - "HiDisp": "3.1.46" + "HiDisp": "3.1.48" }, "runtime": { "lib/net9.0-windows7.0/Hi.Wpf.dll": { - "assemblyVersion": "3.1.41.0", - "fileVersion": "3.1.41.0" + "assemblyVersion": "3.1.43.0", + "fileVersion": "3.1.43.0" } } }, - "HiCbtr/3.1.46": { + "HiCbtr/3.1.48": { "dependencies": { - "HiDisp": "3.1.46" + "HiDisp": "3.1.48" }, "runtime": { "lib/net9.0/HiCbtr.dll": { - "assemblyVersion": "3.1.46.0", - "fileVersion": "3.1.46.0" + "assemblyVersion": "3.1.48.0", + "fileVersion": "3.1.48.0" } } }, - "HiDisp/3.1.46": { + "HiDisp/3.1.48": { "dependencies": { - "HiGeom": "3.1.42", + "HiGeom": "3.1.43", "System.Configuration.ConfigurationManager": "9.0.9", "System.Drawing.Common": "9.0.9", "System.Resources.Extensions": "9.0.9" }, "runtime": { "lib/net9.0/HiDisp.dll": { - "assemblyVersion": "3.1.46.0", - "fileVersion": "3.1.46.0" + "assemblyVersion": "3.1.48.0", + "fileVersion": "3.1.48.0" } }, "native": { @@ -1706,7 +1706,7 @@ } } }, - "HiGeom/3.1.42": { + "HiGeom/3.1.43": { "dependencies": { "Google.Protobuf": "3.28.3", "Grpc.AspNetCore": "2.66.0", @@ -1717,8 +1717,8 @@ }, "runtime": { "lib/net9.0/HiGeom.dll": { - "assemblyVersion": "3.1.42.0", - "fileVersion": "3.1.42.0" + "assemblyVersion": "3.1.43.0", + "fileVersion": "3.1.43.0" } }, "resources": { @@ -1730,27 +1730,27 @@ } } }, - "HiLicense/3.1.40": { + "HiLicense/3.1.43": { "dependencies": { - "HiGeom": "3.1.42" + "HiGeom": "3.1.43" }, "runtime": { "lib/net9.0/HiLicense.dll": { - "assemblyVersion": "3.1.40.0", - "fileVersion": "3.1.40.0" + "assemblyVersion": "3.1.43.0", + "fileVersion": "3.1.43.0" } } }, - "HiMech/3.1.50": { + "HiMech/3.1.52": { "dependencies": { "CommandLineParser": "2.9.1", - "HiCbtr": "3.1.46", + "HiCbtr": "3.1.48", "Microsoft.CodeAnalysis.CSharp.Scripting": "4.14.0" }, "runtime": { "lib/net9.0/HiMech.dll": { - "assemblyVersion": "3.1.50.0", - "fileVersion": "3.1.50.0" + "assemblyVersion": "3.1.52.0", + "fileVersion": "3.1.52.0" } }, "resources": { @@ -1765,20 +1765,20 @@ } } }, - "HiNc/3.1.61": { + "HiNc/3.1.62": { "dependencies": { "Google.Protobuf": "3.28.3", "Grpc.AspNetCore": "2.66.0", "Grpc.Net.Client": "2.66.0", - "HiLicense": "3.1.40", - "HiMech": "3.1.50", - "HiUniNc": "3.1.47", + "HiLicense": "3.1.43", + "HiMech": "3.1.52", + "HiUniNc": "3.1.49", "System.IO.Pipelines": "9.0.9" }, "runtime": { "lib/net9.0/HiNc.dll": { - "assemblyVersion": "3.1.61.0", - "fileVersion": "3.1.61.0" + "assemblyVersion": "3.1.62.0", + "fileVersion": "3.1.62.0" } }, "resources": { @@ -1790,14 +1790,14 @@ } } }, - "HiUniNc/3.1.47": { + "HiUniNc/3.1.49": { "dependencies": { - "HiMech": "3.1.50" + "HiMech": "3.1.52" }, "runtime": { "lib/net9.0/HiUniNc.dll": { - "assemblyVersion": "3.1.47.0", - "fileVersion": "3.1.47.0" + "assemblyVersion": "3.1.49.0", + "fileVersion": "3.1.49.0" } } }, @@ -2442,61 +2442,61 @@ "path": "grpc.tools/2.66.0", "hashPath": "grpc.tools.2.66.0.nupkg.sha512" }, - "Hi.Wpf/3.1.41": { + "Hi.Wpf/3.1.43": { "type": "package", "serviceable": true, - "sha512": "sha512-9CnJVMCZvJpvjQB7LR7RSq5iINMniHMyHI9OrBFbiQD5U6JN/kVW2FbFknUdaByGtDbILEOmqjuxrnu8XUAiWQ==", - "path": "hi.wpf/3.1.41", - "hashPath": "hi.wpf.3.1.41.nupkg.sha512" + "sha512": "sha512-WpVKGsD7JA5PAZnWJY0s7Ue8WP3sk9r7wxLzrLKr3dT16cswAobiEsRMvodhxoU/zX7SElsxzSyiXDt3RcQexQ==", + "path": "hi.wpf/3.1.43", + "hashPath": "hi.wpf.3.1.43.nupkg.sha512" }, - "HiCbtr/3.1.46": { + "HiCbtr/3.1.48": { "type": "package", "serviceable": true, - "sha512": "sha512-0FUD6LXuPMhUFnU2rc4lPRXd93sBn6hLE0TCkLhF4uiblXPVAQHV06xla9dZto6g0xSmXdj2ZrAclXjz2cE1WA==", - "path": "hicbtr/3.1.46", - "hashPath": "hicbtr.3.1.46.nupkg.sha512" + "sha512": "sha512-gCNOXY6+KSvnDfmrrA6WB4VT0kv8mTYWI0jEKIyZJ24L39wEiW69/4cTQFavsfivZxfIvxbhHYqkTo4Ow4fyig==", + "path": "hicbtr/3.1.48", + "hashPath": "hicbtr.3.1.48.nupkg.sha512" }, - "HiDisp/3.1.46": { + "HiDisp/3.1.48": { "type": "package", "serviceable": true, - "sha512": "sha512-M38E6Jt6j/qxKl0lHeIVXO7/K9OYnx9l93zrC8N5vLtkLC9W3srN4+sBuyUAST83D94j5OvFltgZBFQK29Dtzw==", - "path": "hidisp/3.1.46", - "hashPath": "hidisp.3.1.46.nupkg.sha512" + "sha512": "sha512-6Qkf0XewbU1VYjZOQeYocsVQmgaQ7otLEGMmY/Z6fJQsaQZ2nYxeWFjMsxoo/5F1qcESrRW6Jyqd0zlEB8SFLg==", + "path": "hidisp/3.1.48", + "hashPath": "hidisp.3.1.48.nupkg.sha512" }, - "HiGeom/3.1.42": { + "HiGeom/3.1.43": { "type": "package", "serviceable": true, - "sha512": "sha512-qUIxEZE3lYjaYRrItb2pO861ZDKL3TypaP3lUWoF9n50ly6rVuN6Mt2q4lzv0x5tcCnFg7/gw02p/Qb96b8oXg==", - "path": "higeom/3.1.42", - "hashPath": "higeom.3.1.42.nupkg.sha512" + "sha512": "sha512-3XGVAIeJBBhbNkTegk3nIjDNYGFLmdTlV5hS3gYjSGWm9UjaepwNmGbw9dFbEb8sPPWAFNYSSKhSLu1pzwhSSQ==", + "path": "higeom/3.1.43", + "hashPath": "higeom.3.1.43.nupkg.sha512" }, - "HiLicense/3.1.40": { + "HiLicense/3.1.43": { "type": "package", "serviceable": true, - "sha512": "sha512-1XwRW/Uw4FfbrK2/kBu7vMcaNhi5vXiH3k2fJ7/RAhszRPqOAi0HnnmZ2RW3n+nBCP3LvY8UHzn5zcBg+b6prQ==", - "path": "hilicense/3.1.40", - "hashPath": "hilicense.3.1.40.nupkg.sha512" + "sha512": "sha512-QxBgUtFNj9I0z6pW/l/N48v7dkefV1abvjQS9n+0DvpaCISgL+q80ckPvnLd71ToVVfg+AXfJhMqrELCLsBFPQ==", + "path": "hilicense/3.1.43", + "hashPath": "hilicense.3.1.43.nupkg.sha512" }, - "HiMech/3.1.50": { + "HiMech/3.1.52": { "type": "package", "serviceable": true, - "sha512": "sha512-G+g18azgWAsk+3Dov91dURt8AWCMoVBgPU00ipCzjyBbe1gcyPs0m2LlWSCxyTupyut9FvTjDPZ4Q34udU7PQA==", - "path": "himech/3.1.50", - "hashPath": "himech.3.1.50.nupkg.sha512" + "sha512": "sha512-e6OICZ1O97iyI5u8RCJ4ZO2HRbFMAdk85XuXJ7g+LrE8kwSbsy/qeC1PeZdNDg1yi9L2Mkild5dVmWpZ5IWePA==", + "path": "himech/3.1.52", + "hashPath": "himech.3.1.52.nupkg.sha512" }, - "HiNc/3.1.61": { + "HiNc/3.1.62": { "type": "package", "serviceable": true, - "sha512": "sha512-lLvVUVF361VviEKOV+DbfOnWS9Vc/l8JobDtA+G8fiu6i+EtPLqB5M60n1bw9CPQio6BW7if06Dcro0GUF6m9A==", - "path": "hinc/3.1.61", - "hashPath": "hinc.3.1.61.nupkg.sha512" + "sha512": "sha512-o9DFt0C++lHUmZctdvauPujHUww5Gv6Bq7YTCojpDFK+aJ050P687f9hAkcZ3N01inTtCu5x7cVfMQKNoNQ+LQ==", + "path": "hinc/3.1.62", + "hashPath": "hinc.3.1.62.nupkg.sha512" }, - "HiUniNc/3.1.47": { + "HiUniNc/3.1.49": { "type": "package", "serviceable": true, - "sha512": "sha512-9FO8uCrIzDZTLmphqTcXJZgWA3HwITiPSuZ8H7WdI/8ltHiE4/kcf7BfIZHEHxUL/E68HzWDBw8ztk5qqV6qYw==", - "path": "hiuninc/3.1.47", - "hashPath": "hiuninc.3.1.47.nupkg.sha512" + "sha512": "sha512-uvnVTHCC2r7WSHuL50wrI081VZv0eyv4+Kumtmbp1d3ephZWX2/o95LoMjQA4cK3X3wrRz/eAuL66bYEVBp6cQ==", + "path": "hiuninc/3.1.49", + "hashPath": "hiuninc.3.1.49.nupkg.sha512" }, "MathNet.Numerics/5.0.0": { "type": "package", diff --git a/App/HiNC-2025-win-desktop.dll b/App/HiNC-2025-win-desktop.dll index e271926..3c3ae6e 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 40d2294..829d7d9 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 d8e2988..980660a 100644 Binary files a/App/HiNc.dll and b/App/HiNc.dll differ diff --git a/App/HiUniNc.dll b/App/HiUniNc.dll index ddb06e6..56f1483 100644 Binary files a/App/HiUniNc.dll and b/App/HiUniNc.dll differ diff --git a/App/en/HiGeom.resources.dll b/App/en/HiGeom.resources.dll index 107095b..5c2dbe2 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 2f8957d..a6d6821 100644 Binary files a/App/en/HiMech.resources.dll and b/App/en/HiMech.resources.dll differ diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProject.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProject.html index 2aedd74..99ba9f1 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProject.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProject.html @@ -560,38 +560,6 @@ Uses the default MongoDB connection.

- - -

- DispCacheMb - -

- -

Gets or sets the display cache size in megabytes.

-
-
- -
-
public static long DispCacheMb { get; set; }
-
- - - - - -

Property Value

-
-
long
-
-
- - - - - - - -

diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/box3d-control.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/box3d-control.html index fbe36af..6240ab5 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/box3d-control.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/box3d-control.html @@ -117,10 +117,10 @@ -

Web Page Application Source Code Path

+

Web Service Application Source Code Path

diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/cylindroid-control.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/cylindroid-control.html index 19356ec..f88c19c 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/cylindroid-control.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/cylindroid-control.html @@ -108,10 +108,10 @@ -

Web Page Application Source Code Path

+

Web Service Application Source Code Path

diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/extended-cylinder-panel.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/extended-cylinder-panel.html index f3967f5..919f152 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/extended-cylinder-panel.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/extended-cylinder-panel.html @@ -102,10 +102,10 @@ -

Web Page Application Source Code Path

+

Web Service Application Source Code Path

diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/geom-combination-control.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/geom-combination-control.html index f66a52a..9e2247b 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/geom-combination-control.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/geom-combination-control.html @@ -122,10 +122,10 @@ -

Web Page Application Source Code Path

+

Web Service Application Source Code Path

diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/geom-manage-control.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/geom-manage-control.html index 8c268e6..1f8c437 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/geom-manage-control.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/geom-manage-control.html @@ -128,10 +128,11 @@ -

Web Page Application Source Code Path

+

Web Service Application Source Code Path

diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/runtime-geom-panel.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/runtime-geom-panel.html index e47d5e8..becfb93 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/runtime-geom-panel.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/runtime-geom-panel.html @@ -106,10 +106,11 @@ -

Web Page Application Source Code Path

+

Web Service Application Source Code Path

diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/stlfile-control.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/stlfile-control.html index 105e02b..9135527 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/stlfile-control.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/stlfile-control.html @@ -107,10 +107,10 @@ -

Web Page Application Source Code Path

+

Web Service Application Source Code Path

diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/transformation-geom-control.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/transformation-geom-control.html index 6644eed..c44e63d 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/transformation-geom-control.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/geom/transformation-geom-control.html @@ -123,10 +123,10 @@ -

Web Page Application Source Code Path

+

Web Service Application Source Code Path

diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/widget/polar-resolution-2d-panel.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/widget/polar-resolution-2d-panel.html index af386be..596775f 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/widget/polar-resolution-2d-panel.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/widget/polar-resolution-2d-panel.html @@ -120,10 +120,9 @@ -

Web Page Application Source Code Path

+

Web Service Application Source Code Path

diff --git a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoUseMachiningProject.html b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoUseMachiningProject.html index 3603fdf..175699f 100644 --- a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoUseMachiningProject.html +++ b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoUseMachiningProject.html @@ -152,11 +152,12 @@ execute NC files, and properly manage project resources using

Remarks

Source Code

-
using System;
+
using Hi.Common.FileLines;
 using Hi.Common.Messages;
-using Hi.MachiningProcs;
-using Hi.Common.FileLines;
 using Hi.HiNcKits;
+using Hi.MachiningProcs;
+using System;
+using System.IO;
 
 namespace Sample.Machining
 {
@@ -184,6 +185,8 @@ namespace Sample.Machining
 
             #region EventHandling
             Console.WriteLine($"Set message event.");
+
+            using StreamWriter writer = new StreamWriter("msg.txt");
             //show message if something abnormal.
             machiningProject.SessionMessageHost.CollectionItemAdded += pack =>
             {
@@ -192,7 +195,7 @@ namespace Sample.Machining
                     pack.Tags.Contains(MessageFlag.Exception.ToString()))
                 {
                     var sourceCommand = pack.SourceCommand;
-                    Console.WriteLine($"{pack.Message} At \"{sourceCommand?.FilePath}\" (Line {sourceCommand?.GetLineNo()}) \"{sourceCommand?.Line}\"");
+                    writer.WriteLine($"{pack.Message} At \"{sourceCommand?.FilePath}\" (Line {sourceCommand?.GetLineNo()}) \"{sourceCommand?.Line}\"");
                 }
             };
             Console.WriteLine($"Set machining step event.");
diff --git a/App/wwwroot/HiAPI-docsite/index.json b/App/wwwroot/HiAPI-docsite/index.json
index 572143b..c47e8f0 100644
--- a/App/wwwroot/HiAPI-docsite/index.json
+++ b/App/wwwroot/HiAPI-docsite/index.json
@@ -1917,7 +1917,7 @@
   "api/Hi.MachiningProcs.MachiningProject.html": {
     "href": "api/Hi.MachiningProcs.MachiningProject.html",
     "title": "Class MachiningProject | HiAPI-C# 2025",
-    "summary": "Class MachiningProject Namespace Hi.MachiningProcs Assembly HiNc.dll Represents a milling project that manages the execution, simulation, and analysis of NC programs. public class MachiningProject : IDisposable, IMachiningStepHost, IGetMachiningEquipment, IMakeXmlSource, IMachiningProjectGetter Inheritance object MachiningProject Implements IDisposable IMachiningStepHost IGetMachiningEquipment IMakeXmlSource IMachiningProjectGetter 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 MachiningProject(string) Initializes a new instance of the MachiningProject class with the specified directory. Uses the default MongoDB connection. public MachiningProject(string baseDirectory) Parameters baseDirectory string Base directory for file operations MachiningProject(string, MongoClient) Initializes a new instance of the MachiningProject class with the specified directory and MongoDB client. public MachiningProject(string baseDirectory, MongoClient mongoClient) Parameters baseDirectory string Base directory for file operations mongoClient MongoClient MongoDB client instance MachiningProject(XElement, string) Initializes a new instance of the MachiningProject class from XML data using MongoDB. public MachiningProject(XElement src, string baseDirectory) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths MachiningProject(XElement, string, MongoClient) Initializes a new instance of the MachiningProject class from XML data. public MachiningProject(XElement src, string baseDirectory, MongoClient mongoClient) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths mongoClient MongoClient MongoDB client instance Properties ApiVersion Gets the API version from the entry assembly. public static Version ApiVersion { get; } Property Value Version BaseDirectory Gets the base directory where project files are located. public string BaseDirectory { get; } Property Value string BoundSelectorHost Gets the bound selector host for managing selection boundaries. public BoundSelectorHost BoundSelectorHost { get; } Property Value BoundSelectorHost ClStrip Gets the cutter location strip. public ClStrip ClStrip { get; } Property Value ClStrip CoordinateEntryDisplayee Gets the displayee for coordinate entry visualization. public CoordinateEntryDisplayee CoordinateEntryDisplayee { get; } Property Value CoordinateEntryDisplayee CsvRunner public CsvRunner CsvRunner { get; } Property Value CsvRunner DictionaryColorGuide Gets the color guide for dictionary-based coloring. public DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide DispCacheMb Gets or sets the display cache size in megabytes. public static long DispCacheMb { get; set; } Property Value long EnableCollisionDetection Gets or sets whether collision detection is enabled. When set to true, initializes collision detection mechanism. public bool EnableCollisionDetection { get; set; } Property Value bool EnablePauseOnFailure Enable Pause On Failure Detected. Only take effect if the EnableCollisionDetection or EnableStrokeLimitCheck is enabled. public bool EnablePauseOnFailure { get; set; } Property Value bool EnableStrokeLimitCheck Gets or sets whether stroke limit checking is enabled. public bool EnableStrokeLimitCheck { get; set; } Property Value bool Global global variable for RuntimeApi. Not save on XML. public Dictionary Global { get; set; } Property Value Dictionary InspectingKey Gets or sets the current inspecting key for visualization. When set, updates the inspecting quantity function. public string InspectingKey { get; set; } Property Value string InspectingQuantityFunc Gets the function that retrieves the quantity value for the current inspecting key. public Func InspectingQuantityFunc { get; } Property Value Func MachiningActRunner Gets the machining act runner responsible for executing machining operations. public MachiningActRunner MachiningActRunner { get; } Property Value MachiningActRunner MachiningEquipment Gets or sets the machining equipment used for milling. Updates related components when changed. public MachiningEquipment MachiningEquipment { get; set; } Property Value MachiningEquipment MachiningSession Gets or sets the current machining session. public MachiningSession MachiningSession { get; set; } Property Value MachiningSession MachiningToolHouse Gets or sets the milling tool house containing available tools. public MachiningToolHouse MachiningToolHouse { get; set; } Property Value MachiningToolHouse MachiningToolHouseFile Gets or sets the file path to the milling tool house configuration. public string MachiningToolHouseFile { get; set; } Property Value string MillingActRunnerConfig Gets or sets the configuration for the milling act runner. public MillingActRunnerConfig MillingActRunnerConfig { get; set; } Property Value MillingActRunnerConfig MillingGuide Gets or sets the milling guide containing visualization and analysis configurations. public MillingGuide MillingGuide { get; set; } Property Value MillingGuide MillingStepLuggageReader Gets the reader for accessing milling step luggage data. public ParallelBulkReader MillingStepLuggageReader { get; } Property Value ParallelBulkReader NcEnv Gets the NC environment from the NC runner. public NcEnv NcEnv { get; } Property Value NcEnv NcOptOptionDictionary Gets or sets the dictionary of NC optimization options. public Dictionary NcOptOptionDictionary { get; set; } Property Value Dictionary NcOptProc Gets the NC optimization processor for optimizing NC programs. public NcOptProc NcOptProc { get; } Property Value NcOptProc NcRunner Gets the NC runner responsible for executing NC programs. public NcRunner NcRunner { get; } Property Value NcRunner PacePlayer Gets the pace player for controlling execution pace of milling operations. public PacePlayer PacePlayer { get; } Property Value PacePlayer PlayerCommand Gets the command to execute when playing the machining project. public IShellCommand PlayerCommand { get; set; } Property Value IShellCommand Progress Gets the progress reporting mechanism for long-running operations. public Progress Progress { get; } Property Value Progress RuntimeApi Gets the shell API for interacting with this machining process. public RuntimeApi RuntimeApi { get; } Property Value RuntimeApi SessionMessageHost Gets the message host for displaying messages, warnings, and errors. public SessionMessageHost SessionMessageHost { get; } Property Value SessionMessageHost StepPropertyAccessDictionary Gets the dictionary mapping property keys to their access methods. public ConcurrentDictionary> StepPropertyAccessDictionary { get; } Property Value ConcurrentDictionary> TimeMapping Gets or sets the time mapping for synchronizing different time-based data streams. Creates a new time mapping if one doesn't exist. public TimeMapping TimeMapping { get; set; } Property Value TimeMapping Workpiece Gets or sets the workpiece to be machined. Ensures proper initialization of workpiece properties. public Workpiece Workpiece { get; set; } Property Value Workpiece XName Name for XML IO. public static string XName { get; } Property Value string Methods Act(IAct, IIndexedFileLine, CancellationToken?) Executes an act and collects all results. public void Act(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to execute. sourceCommand IIndexedFileLine The source command that triggered the act. cancellationToken CancellationToken? Cancellation token to cancel the operation. BeginSession() Initiate a simulation session. Clear the state from previous session (if existed). public void BeginSession() 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 EndSession() Ends the current machining session and releases associated resources. public void EndSession() GetInspectingKeyPresentName(StringLocalizer) Gets the localized presentation name for the current inspecting key. public string GetInspectingKeyPresentName(StringLocalizer stringLocalizer) Parameters stringLocalizer StringLocalizer The string localizer to use for localization Returns string The localized presentation name GetMachiningProject() Gets the MachiningProject instance. public MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance. GetMillingEquipment() Get MachiningEquipment. public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment MachiningEquipment LoadFile(string) Loads a machining project from the specified file path. public static MachiningProject LoadFile(string projectFilePath) Parameters projectFilePath string Path to the project file to load Returns MachiningProject A new machining project instance loaded from the file 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. PlayCsvFile(string, string) public void PlayCsvFile(string baseDirectory, string relFilePath) Parameters baseDirectory string relFilePath string PlayNc(string, string) Plays NC commands from raw text with pace control. public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string The NC command text to execute fileNameAlternative string Alternative name to associate with the NC program PlayNcFile(string, string) Plays an NC file from the specified path with pace control. public void PlayNcFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths relFilePath string Relative path to the NC file ProcAct(IAct, IIndexedFileLine, CancellationToken?) Processes an act and returns the results. public IEnumerable ProcAct(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to process. sourceCommand IIndexedFileLine The source command that triggered the act. cancellationToken CancellationToken? Cancellation token to cancel the operation. Returns IEnumerable Enumerable of results from processing the act. ReTrainMillingPara(SampleFlag, double, string, CancellationToken) Train Milling Parameter. public void ReTrainMillingPara(SampleFlag sampleFlags, double outlierRatio, string dstRelFile, CancellationToken cancellationToken) Parameters sampleFlags SampleFlag outlierRatio double dstRelFile string cancellationToken CancellationToken RefreshDrawing() Refreshes the visual display of the milling course. public void RefreshDrawing() ResetRuntime() Reset the runtime states including: runtime geometry, collision flags, machine tool position, CL strips, message buffer and etc.. public void ResetRuntime() RunCsvFile(string, string) public IEnumerable RunCsvFile(string baseDirectory, string relFilePath) Parameters baseDirectory string relFilePath string Returns IEnumerable RunNc(string, string) Runs NC commands from raw text. public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string The NC command text to execute fileNameAlternative string Alternative name to associate with the NC program Returns IEnumerable An enumerable of actions to be executed RunNcFile(string, string) Runs an NC file from the specified path. public IEnumerable RunNcFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths. If the value is null, BaseDirectory substitudes the value. relFilePath string Returns IEnumerable An enumerable of actions to be executed ShowMessageBoard(string, string, BootstrapTheme) Shows a message board with the specified title, message, and theme. public void ShowMessageBoard(string title, string message, BootstrapTheme bootstrapThemeColor) Parameters title string The title of the message board message string The message to display bootstrapThemeColor BootstrapTheme The theme color for the message board TrainMillingPara(SampleFlag, bool, double, string, CancellationToken) Train Milling Parameter. public void TrainMillingPara(SampleFlag sampleFlags, bool enableFzOnlyDuringDrilling, double outlierRatio, string dstRelFile, CancellationToken cancellationToken) Parameters sampleFlags SampleFlag enableFzOnlyDuringDrilling bool outlierRatio double dstRelFile string cancellationToken CancellationToken UpdateIdealMillingToolOffsetTableByToolHouse() Updates the ideal milling tool offset table based on the current tool house configuration. public void UpdateIdealMillingToolOffsetTableByToolHouse() WriteShotFile(TimeSpan, string) Writes time-based shot data to a file with the specified sampling period. public void WriteShotFile(TimeSpan samplingPeriod, string relFileTemplate = \"Output/[NcName].shot.csv\") Parameters samplingPeriod TimeSpan The time period between samples relFileTemplate string Template for the output file path, can include [NcName] placeholder WriteStepFile(string) Writes step-based data to a file. public void WriteStepFile(string relFileTemplate = \"Output/[NcName].step.csv\") Parameters relFileTemplate string Template for the output file path, can include [NcName] placeholder Events OnRanNcBlock Event triggered after an NC block is executed. public event Action OnRanNcBlock Event Type Action OnShownMessageBoard Event that is triggered when a message board is shown. public event ShowMessageBoardDelegate OnShownMessageBoard Event Type ShowMessageBoardDelegate OnUpdatedInspectingQuantityFunc Event triggered when the inspecting quantity function is updated. public event Action OnUpdatedInspectingQuantityFunc Event Type Action"
+    "summary": "Class MachiningProject Namespace Hi.MachiningProcs Assembly HiNc.dll Represents a milling project that manages the execution, simulation, and analysis of NC programs. public class MachiningProject : IDisposable, IMachiningStepHost, IGetMachiningEquipment, IMakeXmlSource, IMachiningProjectGetter Inheritance object MachiningProject Implements IDisposable IMachiningStepHost IGetMachiningEquipment IMakeXmlSource IMachiningProjectGetter 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 MachiningProject(string) Initializes a new instance of the MachiningProject class with the specified directory. Uses the default MongoDB connection. public MachiningProject(string baseDirectory) Parameters baseDirectory string Base directory for file operations MachiningProject(string, MongoClient) Initializes a new instance of the MachiningProject class with the specified directory and MongoDB client. public MachiningProject(string baseDirectory, MongoClient mongoClient) Parameters baseDirectory string Base directory for file operations mongoClient MongoClient MongoDB client instance MachiningProject(XElement, string) Initializes a new instance of the MachiningProject class from XML data using MongoDB. public MachiningProject(XElement src, string baseDirectory) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths MachiningProject(XElement, string, MongoClient) Initializes a new instance of the MachiningProject class from XML data. public MachiningProject(XElement src, string baseDirectory, MongoClient mongoClient) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths mongoClient MongoClient MongoDB client instance Properties ApiVersion Gets the API version from the entry assembly. public static Version ApiVersion { get; } Property Value Version BaseDirectory Gets the base directory where project files are located. public string BaseDirectory { get; } Property Value string BoundSelectorHost Gets the bound selector host for managing selection boundaries. public BoundSelectorHost BoundSelectorHost { get; } Property Value BoundSelectorHost ClStrip Gets the cutter location strip. public ClStrip ClStrip { get; } Property Value ClStrip CoordinateEntryDisplayee Gets the displayee for coordinate entry visualization. public CoordinateEntryDisplayee CoordinateEntryDisplayee { get; } Property Value CoordinateEntryDisplayee CsvRunner public CsvRunner CsvRunner { get; } Property Value CsvRunner DictionaryColorGuide Gets the color guide for dictionary-based coloring. public DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide EnableCollisionDetection Gets or sets whether collision detection is enabled. When set to true, initializes collision detection mechanism. public bool EnableCollisionDetection { get; set; } Property Value bool EnablePauseOnFailure Enable Pause On Failure Detected. Only take effect if the EnableCollisionDetection or EnableStrokeLimitCheck is enabled. public bool EnablePauseOnFailure { get; set; } Property Value bool EnableStrokeLimitCheck Gets or sets whether stroke limit checking is enabled. public bool EnableStrokeLimitCheck { get; set; } Property Value bool Global global variable for RuntimeApi. Not save on XML. public Dictionary Global { get; set; } Property Value Dictionary InspectingKey Gets or sets the current inspecting key for visualization. When set, updates the inspecting quantity function. public string InspectingKey { get; set; } Property Value string InspectingQuantityFunc Gets the function that retrieves the quantity value for the current inspecting key. public Func InspectingQuantityFunc { get; } Property Value Func MachiningActRunner Gets the machining act runner responsible for executing machining operations. public MachiningActRunner MachiningActRunner { get; } Property Value MachiningActRunner MachiningEquipment Gets or sets the machining equipment used for milling. Updates related components when changed. public MachiningEquipment MachiningEquipment { get; set; } Property Value MachiningEquipment MachiningSession Gets or sets the current machining session. public MachiningSession MachiningSession { get; set; } Property Value MachiningSession MachiningToolHouse Gets or sets the milling tool house containing available tools. public MachiningToolHouse MachiningToolHouse { get; set; } Property Value MachiningToolHouse MachiningToolHouseFile Gets or sets the file path to the milling tool house configuration. public string MachiningToolHouseFile { get; set; } Property Value string MillingActRunnerConfig Gets or sets the configuration for the milling act runner. public MillingActRunnerConfig MillingActRunnerConfig { get; set; } Property Value MillingActRunnerConfig MillingGuide Gets or sets the milling guide containing visualization and analysis configurations. public MillingGuide MillingGuide { get; set; } Property Value MillingGuide MillingStepLuggageReader Gets the reader for accessing milling step luggage data. public ParallelBulkReader MillingStepLuggageReader { get; } Property Value ParallelBulkReader NcEnv Gets the NC environment from the NC runner. public NcEnv NcEnv { get; } Property Value NcEnv NcOptOptionDictionary Gets or sets the dictionary of NC optimization options. public Dictionary NcOptOptionDictionary { get; set; } Property Value Dictionary NcOptProc Gets the NC optimization processor for optimizing NC programs. public NcOptProc NcOptProc { get; } Property Value NcOptProc NcRunner Gets the NC runner responsible for executing NC programs. public NcRunner NcRunner { get; } Property Value NcRunner PacePlayer Gets the pace player for controlling execution pace of milling operations. public PacePlayer PacePlayer { get; } Property Value PacePlayer PlayerCommand Gets the command to execute when playing the machining project. public IShellCommand PlayerCommand { get; set; } Property Value IShellCommand Progress Gets the progress reporting mechanism for long-running operations. public Progress Progress { get; } Property Value Progress RuntimeApi Gets the shell API for interacting with this machining process. public RuntimeApi RuntimeApi { get; } Property Value RuntimeApi SessionMessageHost Gets the message host for displaying messages, warnings, and errors. public SessionMessageHost SessionMessageHost { get; } Property Value SessionMessageHost StepPropertyAccessDictionary Gets the dictionary mapping property keys to their access methods. public ConcurrentDictionary> StepPropertyAccessDictionary { get; } Property Value ConcurrentDictionary> TimeMapping Gets or sets the time mapping for synchronizing different time-based data streams. Creates a new time mapping if one doesn't exist. public TimeMapping TimeMapping { get; set; } Property Value TimeMapping Workpiece Gets or sets the workpiece to be machined. Ensures proper initialization of workpiece properties. public Workpiece Workpiece { get; set; } Property Value Workpiece XName Name for XML IO. public static string XName { get; } Property Value string Methods Act(IAct, IIndexedFileLine, CancellationToken?) Executes an act and collects all results. public void Act(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to execute. sourceCommand IIndexedFileLine The source command that triggered the act. cancellationToken CancellationToken? Cancellation token to cancel the operation. BeginSession() Initiate a simulation session. Clear the state from previous session (if existed). public void BeginSession() 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 EndSession() Ends the current machining session and releases associated resources. public void EndSession() GetInspectingKeyPresentName(StringLocalizer) Gets the localized presentation name for the current inspecting key. public string GetInspectingKeyPresentName(StringLocalizer stringLocalizer) Parameters stringLocalizer StringLocalizer The string localizer to use for localization Returns string The localized presentation name GetMachiningProject() Gets the MachiningProject instance. public MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance. GetMillingEquipment() Get MachiningEquipment. public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment MachiningEquipment LoadFile(string) Loads a machining project from the specified file path. public static MachiningProject LoadFile(string projectFilePath) Parameters projectFilePath string Path to the project file to load Returns MachiningProject A new machining project instance loaded from the file 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. PlayCsvFile(string, string) public void PlayCsvFile(string baseDirectory, string relFilePath) Parameters baseDirectory string relFilePath string PlayNc(string, string) Plays NC commands from raw text with pace control. public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string The NC command text to execute fileNameAlternative string Alternative name to associate with the NC program PlayNcFile(string, string) Plays an NC file from the specified path with pace control. public void PlayNcFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths relFilePath string Relative path to the NC file ProcAct(IAct, IIndexedFileLine, CancellationToken?) Processes an act and returns the results. public IEnumerable ProcAct(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to process. sourceCommand IIndexedFileLine The source command that triggered the act. cancellationToken CancellationToken? Cancellation token to cancel the operation. Returns IEnumerable Enumerable of results from processing the act. ReTrainMillingPara(SampleFlag, double, string, CancellationToken) Train Milling Parameter. public void ReTrainMillingPara(SampleFlag sampleFlags, double outlierRatio, string dstRelFile, CancellationToken cancellationToken) Parameters sampleFlags SampleFlag outlierRatio double dstRelFile string cancellationToken CancellationToken RefreshDrawing() Refreshes the visual display of the milling course. public void RefreshDrawing() ResetRuntime() Reset the runtime states including: runtime geometry, collision flags, machine tool position, CL strips, message buffer and etc.. public void ResetRuntime() RunCsvFile(string, string) public IEnumerable RunCsvFile(string baseDirectory, string relFilePath) Parameters baseDirectory string relFilePath string Returns IEnumerable RunNc(string, string) Runs NC commands from raw text. public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string The NC command text to execute fileNameAlternative string Alternative name to associate with the NC program Returns IEnumerable An enumerable of actions to be executed RunNcFile(string, string) Runs an NC file from the specified path. public IEnumerable RunNcFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths. If the value is null, BaseDirectory substitudes the value. relFilePath string Returns IEnumerable An enumerable of actions to be executed ShowMessageBoard(string, string, BootstrapTheme) Shows a message board with the specified title, message, and theme. public void ShowMessageBoard(string title, string message, BootstrapTheme bootstrapThemeColor) Parameters title string The title of the message board message string The message to display bootstrapThemeColor BootstrapTheme The theme color for the message board TrainMillingPara(SampleFlag, bool, double, string, CancellationToken) Train Milling Parameter. public void TrainMillingPara(SampleFlag sampleFlags, bool enableFzOnlyDuringDrilling, double outlierRatio, string dstRelFile, CancellationToken cancellationToken) Parameters sampleFlags SampleFlag enableFzOnlyDuringDrilling bool outlierRatio double dstRelFile string cancellationToken CancellationToken UpdateIdealMillingToolOffsetTableByToolHouse() Updates the ideal milling tool offset table based on the current tool house configuration. public void UpdateIdealMillingToolOffsetTableByToolHouse() WriteShotFile(TimeSpan, string) Writes time-based shot data to a file with the specified sampling period. public void WriteShotFile(TimeSpan samplingPeriod, string relFileTemplate = \"Output/[NcName].shot.csv\") Parameters samplingPeriod TimeSpan The time period between samples relFileTemplate string Template for the output file path, can include [NcName] placeholder WriteStepFile(string) Writes step-based data to a file. public void WriteStepFile(string relFileTemplate = \"Output/[NcName].step.csv\") Parameters relFileTemplate string Template for the output file path, can include [NcName] placeholder Events OnRanNcBlock Event triggered after an NC block is executed. public event Action OnRanNcBlock Event Type Action OnShownMessageBoard Event that is triggered when a message board is shown. public event ShowMessageBoardDelegate OnShownMessageBoard Event Type ShowMessageBoardDelegate OnUpdatedInspectingQuantityFunc Event triggered when the inspecting quantity function is updated. public event Action OnUpdatedInspectingQuantityFunc Event Type Action"
   },
   "api/Hi.MachiningProcs.MachiningProjectDisplayee.html": {
     "href": "api/Hi.MachiningProcs.MachiningProjectDisplayee.html",
@@ -4727,27 +4727,27 @@
   "brief/dev-doc/build-hinc/geom/box3d-control.html": {
     "href": "brief/dev-doc/build-hinc/geom/box3d-control.html",
     "title": "Box3dControl | HiAPI-C# 2025",
-    "summary": "Box3dControl The Box3dControl provides a user interface for editing a 3D box defined by its minimum and maximum coordinates. Features Edit the minimum and maximum coordinates of the box View the calculated dimensions and center of the box Read-Only Mode and Edit Mode There are three sub-edit modes that can be selected in Edit Mode: Min and Max Min and Dimension Center and Dimension UI Layout The Box3dControl includes the following UI elements: Min Vec3dControl Max Vec3dControl Dimension Vec3dControl Center Vec3dControl The sub-edit mode rules the controls to readonly or editable. Since the native of Box3d is that only Min and Max Properties are editable, the other mode requires little additional logic to take effect. Source Code Path See this page for git repository. WPF Application Source Code Path Geom/Box3dControl Web Page Application Source Code Path wwwroot/geom/box3d-control.js Controller/Geom/GeomController.cs"
+    "summary": "Box3dControl The Box3dControl provides a user interface for editing a 3D box defined by its minimum and maximum coordinates. Features Edit the minimum and maximum coordinates of the box View the calculated dimensions and center of the box Read-Only Mode and Edit Mode There are three sub-edit modes that can be selected in Edit Mode: Min and Max Min and Dimension Center and Dimension UI Layout The Box3dControl includes the following UI elements: Min Vec3dControl Max Vec3dControl Dimension Vec3dControl Center Vec3dControl The sub-edit mode rules the controls to readonly or editable. Since the native of Box3d is that only Min and Max Properties are editable, the other mode requires little additional logic to take effect. Source Code Path See this page for git repository. WPF Application Source Code Path Geom/Box3dControl Web Service Application Source Code Path wwwroot/geom/box3d-control.js Geom/Box3dHub.cs"
   },
   "brief/dev-doc/build-hinc/geom/cylindroid-control.html": {
     "href": "brief/dev-doc/build-hinc/geom/cylindroid-control.html",
     "title": "CylindroidControl | HiAPI-C# 2025",
-    "summary": "CylindroidControl The CylindroidControl provides a user interface for editing a cylindroid, which is a generalized cylinder defined by a series of radius values along the Z-axis. Features Edit the Z-radius pairs that define the cylindroid's profile Set the longitude number (resolution) for the cylindroid Add and remove Z-radius pairs UI Layout The CylindroidControl includes the following UI elements: Longitude Number - A numeric input for setting the resolution of the cylindroid Z-Radius Pairs - A DataGrid showing the Z-coordinate and radius pairs Add Button - Adds a new Z-radius pair Remove Button - Removes the selected Z-radius pair Source Code Path See this page for git repository. WPF Application Source Code Path Geom/CylindroidControl Web Page Application Source Code Path wwwroot/geom/cylindroid-control.js Controller/Geom/GeomController.cs"
+    "summary": "CylindroidControl The CylindroidControl provides a user interface for editing a cylindroid, which is a generalized cylinder defined by a series of radius values along the Z-axis. Features Edit the Z-radius pairs that define the cylindroid's profile Set the longitude number (resolution) for the cylindroid Add and remove Z-radius pairs UI Layout The CylindroidControl includes the following UI elements: Longitude Number - A numeric input for setting the resolution of the cylindroid Z-Radius Pairs - A DataGrid showing the Z-coordinate and radius pairs Add Button - Adds a new Z-radius pair Remove Button - Removes the selected Z-radius pair Source Code Path See this page for git repository. WPF Application Source Code Path Geom/CylindroidControl Web Service Application Source Code Path wwwroot/geom/cylindroid-control.js Geom/CylindroidHub.cs"
   },
   "brief/dev-doc/build-hinc/geom/extended-cylinder-panel.html": {
     "href": "brief/dev-doc/build-hinc/geom/extended-cylinder-panel.html",
     "title": "Extended Cylinder Panel | HiAPI-C# 2025",
-    "summary": "Extended Cylinder Panel The model is ExtendedCylinder. Layout Extended Cylinder Panel FullLength Input Field Source Code Path See this page for git repository. WPF Application Source Code Path Geom/ExtendedCylinderControl Web Page Application Source Code Path wwwroot/geom/extended-cylinder-panel.js Controller/Geom/GeomController.cs"
+    "summary": "Extended Cylinder Panel The model is ExtendedCylinder. Layout Extended Cylinder Panel FullLength Input Field Source Code Path See this page for git repository. WPF Application Source Code Path Geom/ExtendedCylinderControl Web Service Application Source Code Path wwwroot/geom/extended-cylinder-panel.js Geom/ExtendedCylinderHub.cs"
   },
   "brief/dev-doc/build-hinc/geom/geom-combination-control.html": {
     "href": "brief/dev-doc/build-hinc/geom/geom-combination-control.html",
     "title": "GeomCombinationControl | HiAPI-C# 2025",
-    "summary": "GeomCombinationControl The GeomCombinationControl provides a user interface for combining multiple geometric objects into a single composite geometry. This is useful for creating complex shapes from simpler primitives. Features Add multiple geometric objects to the combination Remove selected objects from the combination Edit the properties of each included geometry Support for various geometry types UI Layout The GeomCombinationControl includes the following UI elements: Geometry List - A ListView showing all the geometries in the combination Add Geometry - A section for adding new geometries: Geometry Type - A combo box for selecting the type of geometry to add Add Button - Adds a new geometry of the selected type to the combination Remove Button - Removes the selected geometry from the combination Geometry Properties - A container that shows the appropriate control for editing the selected geometry Supported Geometry Types The control supports adding the following geometry types to the combination: Box3d Cylindroid StlFile TransformationGeom Source Code Path See this page for git repository. WPF Application Source Code Path Geom/GeomCombinationControl Web Page Application Source Code Path wwwroot/geom/geom-combination-control.js Controller/Geom/GeomController.cs"
+    "summary": "GeomCombinationControl The GeomCombinationControl provides a user interface for combining multiple geometric objects into a single composite geometry. This is useful for creating complex shapes from simpler primitives. Features Add multiple geometric objects to the combination Remove selected objects from the combination Edit the properties of each included geometry Support for various geometry types UI Layout The GeomCombinationControl includes the following UI elements: Geometry List - A ListView showing all the geometries in the combination Add Geometry - A section for adding new geometries: Geometry Type - A combo box for selecting the type of geometry to add Add Button - Adds a new geometry of the selected type to the combination Remove Button - Removes the selected geometry from the combination Geometry Properties - A container that shows the appropriate control for editing the selected geometry Supported Geometry Types The control supports adding the following geometry types to the combination: Box3d Cylindroid StlFile TransformationGeom Source Code Path See this page for git repository. WPF Application Source Code Path Geom/GeomCombinationControl Web Service Application Source Code Path wwwroot/geom/geom-combination-control.js Geom/GeomCombinationHub.cs (to be created)"
   },
   "brief/dev-doc/build-hinc/geom/geom-manage-control.html": {
     "href": "brief/dev-doc/build-hinc/geom/geom-manage-control.html",
     "title": "Geometry Management Panel | HiAPI-C# 2025",
-    "summary": "Geometry Management Panel Geometry Management Panel get and set a TargetGeometry IStlSource. null is acceptable for TargetGeometry. The TargetGeometry can be convert to TransformationGeom or get out of the TransformationGeom. The conversion button can be hide by the code-behind property. The TargetGeometry can be convert to GeomCombination or get out of the GeomCombination if there is only one geometry in StlSources. The conversion button can be hide by the code-behind property. The geometry type in the Layout Geometry Management Panel Geometry Selection and Conversion Bar Geometry Type Selection Bar TransformationGeom Conversion Button GeomCombination Conversion Button Content Panel (varied by the TargetGeometry) Geometry Type Selection Bar Setting See Geometry Panels for the various geometry type. The geometries are availible by default: Box3d Cylindroid StlFile TransformationGeom GeomCombination The geometries are default hiding but they can be code-behind optionally enabled: CubeTree ExtendedCylinder Source Code Path See this page for git repository. WPF Application Source Code Path Geom/GeometryManagementPanel Web Page Application Source Code Path wwwroot/geom/geom-manage-control.js Controller/Geom/GeomController.cs"
+    "summary": "Geometry Management Panel Geometry Management Panel get and set a TargetGeometry IStlSource. null is acceptable for TargetGeometry. The TargetGeometry can be convert to TransformationGeom or get out of the TransformationGeom. The conversion button can be hide by the code-behind property. The TargetGeometry can be convert to GeomCombination or get out of the GeomCombination if there is only one geometry in StlSources. The conversion button can be hide by the code-behind property. The geometry type in the Layout Geometry Management Panel Geometry Selection and Conversion Bar Geometry Type Selection Bar TransformationGeom Conversion Button GeomCombination Conversion Button Content Panel (varied by the TargetGeometry) Geometry Type Selection Bar Setting See Geometry Panels for the various geometry type. The geometries are availible by default: Box3d Cylindroid StlFile TransformationGeom GeomCombination The geometries are default hiding but they can be code-behind optionally enabled: CubeTree ExtendedCylinder Source Code Path See this page for git repository. WPF Application Source Code Path Geom/GeometryManagementPanel Web Service Application Source Code Path wwwroot/geom/geometry-management-panel.js Geom/GeomHub.cs Geom/GeometryController.cs"
   },
   "brief/dev-doc/build-hinc/geom/index.html": {
     "href": "brief/dev-doc/build-hinc/geom/index.html",
@@ -4757,17 +4757,17 @@
   "brief/dev-doc/build-hinc/geom/runtime-geom-panel.html": {
     "href": "brief/dev-doc/build-hinc/geom/runtime-geom-panel.html",
     "title": "Runtime Geometry Panel | HiAPI-C# 2025",
-    "summary": "Runtime Geometry Panel Key model is CubeTreeFile. Note The term Runtime Geometry is CubeTree. Layout Runtime Geom Panel File Selector Source Code Path See this page for git repository. WPF Application Source Code Path Geom/RuntimeGeomPanel Web Page Application Source Code Path wwwroot/geom/runtime-geom-panel.js Controller/Geom/GeomController.cs"
+    "summary": "Runtime Geometry Panel Key model is CubeTreeFile. Note The term Runtime Geometry is CubeTree. Layout Runtime Geom Panel File Selector Source Code Path See this page for git repository. WPF Application Source Code Path Geom/RuntimeGeomPanel Web Service Application Source Code Path wwwroot/geom/runtime-geom-panel.js Geom/RuntimeGeomHub.cs (to be created) Geom/GeometryController.cs"
   },
   "brief/dev-doc/build-hinc/geom/stlfile-control.html": {
     "href": "brief/dev-doc/build-hinc/geom/stlfile-control.html",
     "title": "StlFileControl | HiAPI-C# 2025",
-    "summary": "StlFileControl The StlFileControl provides a user interface for loading and manipulating STL (STereoLithography) files, which are commonly used for representing 3D surface geometry. Features Load STL files from the file system Display the path of the loaded STL file View basic information about the loaded STL (when available) UI Layout The StlFileControl includes the following UI elements: File Path - A text box showing the path of the loaded STL file Browse Button - Opens a file dialog to select an STL file Information Panel - Displays information about the loaded STL file (when available) Source Code Path See this page for git repository. WPF Application Source Code Path Geom/StlFileControl Web Page Application Source Code Path wwwroot/geom/stlfile-control.js Controller/Geom/GeomController.cs"
+    "summary": "StlFileControl The StlFileControl provides a user interface for loading and manipulating STL (STereoLithography) files, which are commonly used for representing 3D surface geometry. Features Load STL files from the file system Display the path of the loaded STL file View basic information about the loaded STL (when available) UI Layout The StlFileControl includes the following UI elements: File Path - A text box showing the path of the loaded STL file Browse Button - Opens a file dialog to select an STL file Information Panel - Displays information about the loaded STL file (when available) Source Code Path See this page for git repository. WPF Application Source Code Path Geom/StlFileControl Web Service Application Source Code Path wwwroot/geom/stlfile-control.js Geom/StlFileHub.cs"
   },
   "brief/dev-doc/build-hinc/geom/transformation-geom-control.html": {
     "href": "brief/dev-doc/build-hinc/geom/transformation-geom-control.html",
     "title": "TransformationGeomControl | HiAPI-C# 2025",
-    "summary": "TransformationGeomControl The TransformationGeomControl provides a user interface for applying transformations to geometric objects. It allows you to wrap any geometry with transformation parameters like scaling, rotation, and translation. Features Select and edit the base geometry object Apply transformations including scaling, rotation, and translation Preview the transformed geometry UI Layout The TransformationGeomControl includes the following UI elements: Base Geometry - A combo box for selecting the type of base geometry Geometry Properties - A container that shows the appropriate control for the selected geometry type Transformation Selection Bar Available options (The dynamic transformer is not avaible): Null Transform Option (Show if originally existed or code-behind optionally assinged) Identity Transform Option (Show if originally existed or code-behind optionally assinged) Static Translate Option General Transform Option Freeform Transform Option See Also Transformers Source Code Path See this page for git repository. WPF Source Code Path Geom/TransformationGeomControl Web Page Application Source Code Path wwwroot/geom/transformation-geom-control.js Controller/Geom/GeomController.cs"
+    "summary": "TransformationGeomControl The TransformationGeomControl provides a user interface for applying transformations to geometric objects. It allows you to wrap any geometry with transformation parameters like scaling, rotation, and translation. Features Select and edit the base geometry object Apply transformations including scaling, rotation, and translation Preview the transformed geometry UI Layout The TransformationGeomControl includes the following UI elements: Base Geometry - A combo box for selecting the type of base geometry Geometry Properties - A container that shows the appropriate control for the selected geometry type Transformation Selection Bar Available options (The dynamic transformer is not avaible): Null Transform Option (Show if originally existed or code-behind optionally assinged) Identity Transform Option (Show if originally existed or code-behind optionally assinged) Static Translate Option General Transform Option Freeform Transform Option See Also Transformers Source Code Path See this page for git repository. WPF Source Code Path Geom/TransformationGeomControl Web Service Application Source Code Path wwwroot/geom/transformation-geom-control.js Geom/TransformationGeomHub.cs (to be created)"
   },
   "brief/dev-doc/build-hinc/hinc-web-service/disp-web-service.html": {
     "href": "brief/dev-doc/build-hinc/hinc-web-service/disp-web-service.html",
@@ -4987,7 +4987,7 @@
   "brief/dev-doc/build-hinc/widget/polar-resolution-2d-panel.html": {
     "href": "brief/dev-doc/build-hinc/widget/polar-resolution-2d-panel.html",
     "title": "Polar Resolution 2D Panel | HiAPI-C# 2025",
-    "summary": "Polar Resolution 2D Panel The model is PolarResolution2d. Layout Polar Resolution 2D Panel Enable Custom Resolution CheckBox enabled if host.model is not null. set host.model to null if not enabled. Linear Resolution (mm) Input Field enabled if model not null Angle Resolution (deg) Input Field enabled if model not null Feature There is a code-behind property to set visibility of Enable CheckBox. If the host.model is null, it may mean the resolution applied the default value. Source Code Path See this page for git repository. WPF Application Source Code Path Geom/PolarResolution2dPanel Web Page Application Source Code Path wwwroot/widget/polar-resolution-2d-panel.js Controller/Widget/WidgetController.cs"
+    "summary": "Polar Resolution 2D Panel The model is PolarResolution2d. Layout Polar Resolution 2D Panel Enable Custom Resolution CheckBox enabled if host.model is not null. set host.model to null if not enabled. Linear Resolution (mm) Input Field enabled if model not null Angle Resolution (deg) Input Field enabled if model not null Feature There is a code-behind property to set visibility of Enable CheckBox. If the host.model is null, it may mean the resolution applied the default value. Source Code Path See this page for git repository. WPF Application Source Code Path Geom/PolarResolution2dPanel Web Service Application Source Code Path wwwroot/widget/polar-resolution-2d-panel.js"
   },
   "brief/dev-doc/build-hinc/widget/resizable-bar.html": {
     "href": "brief/dev-doc/build-hinc/widget/resizable-bar.html",
@@ -5147,7 +5147,7 @@
   "brief/sample/Sample.Machining.DemoUseMachiningProject.html": {
     "href": "brief/sample/Sample.Machining.DemoUseMachiningProject.html",
     "title": "Class DemoUseMachiningProject | HiAPI-C# 2025",
-    "summary": "Class DemoUseMachiningProject Namespace Sample.Machining Assembly Hi.Sample.dll Demonstrates how to load and use an existing MachiningProject instance. This sample shows how to set up event handlers for messages and machining step objects, execute NC files, and properly manage project resources using Dispose(). public static class DemoUseMachiningProject Inheritance object DemoUseMachiningProject Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using System; using Hi.Common.Messages; using Hi.MachiningProcs; using Hi.Common.FileLines; using Hi.HiNcKits; namespace Sample.Machining { ///  /// Demonstrates how to load and use an existing  instance. /// This sample shows how to set up event handlers for messages and machining step objects, /// execute NC files, and properly manage project resources using /// . ///  ///  /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample/Machining/DemoUseMachiningProject.cs)] ///  public static class DemoUseMachiningProject { static void Main() { LocalApp.AppBegin(); #region ProjectLoading var projectPath = \"C:/HiNC-Projects/DemoStandardPath/Main.hincproj\"; Console.WriteLine($\"Load Project: {projectPath}\"); MachiningProject machiningProject = MachiningProject.LoadFile(projectPath); #endregion #region EventHandling Console.WriteLine($\"Set message event.\"); //show message if something abnormal. machiningProject.SessionMessageHost.CollectionItemAdded += pack => { if (pack.Tags.Contains(MessageFlag.Warning.ToString()) || pack.Tags.Contains(MessageFlag.Error.ToString()) || pack.Tags.Contains(MessageFlag.Exception.ToString())) { var sourceCommand = pack.SourceCommand; Console.WriteLine($\"{pack.Message} At \\\"{sourceCommand?.FilePath}\\\" (Line {sourceCommand?.GetLineNo()}) \\\"{sourceCommand?.Line}\\\"\"); } }; Console.WriteLine($\"Set machining step event.\"); //show MRR. machiningProject.RuntimeApi.MachiningStepBuilt += (preStep, curStep) => { var sourceCommand = curStep.SourceCommand; if (curStep.Mrr_mm3ds > 500) //show only the step that contains large MRR. Console.WriteLine($\"MRR = {curStep.Mrr_mm3ds} At \\\"{sourceCommand?.FilePath}\\\" (Line {sourceCommand?.GetLineNo()}) \\\"{sourceCommand?.Line}\\\"\"); }; #endregion #region MachiningExecution Console.WriteLine($\"Reset runtime status.\"); machiningProject.ResetRuntime(); Console.WriteLine($\"Session begin.\"); machiningProject.BeginSession(); machiningProject.RuntimeApi.MachiningResolution_mm = 1; machiningProject.RuntimeApi.EnableCollisionDetection = true; machiningProject.RuntimeApi.EnablePauseOnFailure = false; machiningProject.RuntimeApi.EnablePhysics = false; //the path from Shell-API is relative by project directory. machiningProject.RuntimeApi.PlayNcFile(\"NC/side.ptp\"); machiningProject.RuntimeApi.PlayNcFile(\"NC/circle.ptp\"); machiningProject.EndSession(); Console.WriteLine($\"Session end.\"); #endregion #region CleanupResources Console.WriteLine($\"Close Project: {projectPath}\"); machiningProject.Dispose(); LocalApp.AppEnd(); Console.WriteLine($\"Program end.\"); #endregion } } }"
+    "summary": "Class DemoUseMachiningProject Namespace Sample.Machining Assembly Hi.Sample.dll Demonstrates how to load and use an existing MachiningProject instance. This sample shows how to set up event handlers for messages and machining step objects, execute NC files, and properly manage project resources using Dispose(). public static class DemoUseMachiningProject Inheritance object DemoUseMachiningProject Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using Hi.Common.FileLines; using Hi.Common.Messages; using Hi.HiNcKits; using Hi.MachiningProcs; using System; using System.IO; namespace Sample.Machining { ///  /// Demonstrates how to load and use an existing  instance. /// This sample shows how to set up event handlers for messages and machining step objects, /// execute NC files, and properly manage project resources using /// . ///  ///  /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample/Machining/DemoUseMachiningProject.cs)] ///  public static class DemoUseMachiningProject { static void Main() { LocalApp.AppBegin(); #region ProjectLoading var projectPath = \"C:/HiNC-Projects/DemoStandardPath/Main.hincproj\"; Console.WriteLine($\"Load Project: {projectPath}\"); MachiningProject machiningProject = MachiningProject.LoadFile(projectPath); #endregion #region EventHandling Console.WriteLine($\"Set message event.\"); using StreamWriter writer = new StreamWriter(\"msg.txt\"); //show message if something abnormal. machiningProject.SessionMessageHost.CollectionItemAdded += pack => { if (pack.Tags.Contains(MessageFlag.Warning.ToString()) || pack.Tags.Contains(MessageFlag.Error.ToString()) || pack.Tags.Contains(MessageFlag.Exception.ToString())) { var sourceCommand = pack.SourceCommand; writer.WriteLine($\"{pack.Message} At \\\"{sourceCommand?.FilePath}\\\" (Line {sourceCommand?.GetLineNo()}) \\\"{sourceCommand?.Line}\\\"\"); } }; Console.WriteLine($\"Set machining step event.\"); //show MRR. machiningProject.RuntimeApi.MachiningStepBuilt += (preStep, curStep) => { var sourceCommand = curStep.SourceCommand; if (curStep.Mrr_mm3ds > 500) //show only the step that contains large MRR. Console.WriteLine($\"MRR = {curStep.Mrr_mm3ds} At \\\"{sourceCommand?.FilePath}\\\" (Line {sourceCommand?.GetLineNo()}) \\\"{sourceCommand?.Line}\\\"\"); }; #endregion #region MachiningExecution Console.WriteLine($\"Reset runtime status.\"); machiningProject.ResetRuntime(); Console.WriteLine($\"Session begin.\"); machiningProject.BeginSession(); machiningProject.RuntimeApi.MachiningResolution_mm = 1; machiningProject.RuntimeApi.EnableCollisionDetection = true; machiningProject.RuntimeApi.EnablePauseOnFailure = false; machiningProject.RuntimeApi.EnablePhysics = false; //the path from Shell-API is relative by project directory. machiningProject.RuntimeApi.PlayNcFile(\"NC/side.ptp\"); machiningProject.RuntimeApi.PlayNcFile(\"NC/circle.ptp\"); machiningProject.EndSession(); Console.WriteLine($\"Session end.\"); #endregion #region CleanupResources Console.WriteLine($\"Close Project: {projectPath}\"); machiningProject.Dispose(); LocalApp.AppEnd(); Console.WriteLine($\"Program end.\"); #endregion } } }"
   },
   "brief/sample/Sample.Machining.html": {
     "href": "brief/sample/Sample.Machining.html",
diff --git a/App/wwwroot/HiAPI-docsite/xrefmap.yml b/App/wwwroot/HiAPI-docsite/xrefmap.yml
index f0f97ea..dd2596b 100644
--- a/App/wwwroot/HiAPI-docsite/xrefmap.yml
+++ b/App/wwwroot/HiAPI-docsite/xrefmap.yml
@@ -77751,19 +77751,6 @@ references:
   isSpec: "True"
   fullName: Hi.MachiningProcs.MachiningProject.DictionaryColorGuide
   nameWithType: MachiningProject.DictionaryColorGuide
-- uid: Hi.MachiningProcs.MachiningProject.DispCacheMb
-  name: DispCacheMb
-  href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_DispCacheMb
-  commentId: P:Hi.MachiningProcs.MachiningProject.DispCacheMb
-  fullName: Hi.MachiningProcs.MachiningProject.DispCacheMb
-  nameWithType: MachiningProject.DispCacheMb
-- uid: Hi.MachiningProcs.MachiningProject.DispCacheMb*
-  name: DispCacheMb
-  href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_DispCacheMb_
-  commentId: Overload:Hi.MachiningProcs.MachiningProject.DispCacheMb
-  isSpec: "True"
-  fullName: Hi.MachiningProcs.MachiningProject.DispCacheMb
-  nameWithType: MachiningProject.DispCacheMb
 - uid: Hi.MachiningProcs.MachiningProject.Dispose
   name: Dispose()
   href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_Dispose
diff --git a/App/zh-Hans/HiMech.resources.dll b/App/zh-Hans/HiMech.resources.dll
index b5c0ab6..16b2035 100644
Binary files a/App/zh-Hans/HiMech.resources.dll and b/App/zh-Hans/HiMech.resources.dll differ
diff --git a/App/zh-Hans/HiNc.resources.dll b/App/zh-Hans/HiNc.resources.dll
index 7a4db5d..d21266e 100644
Binary files a/App/zh-Hans/HiNc.resources.dll and b/App/zh-Hans/HiNc.resources.dll differ
diff --git a/App/zh-Hant/HiGeom.resources.dll b/App/zh-Hant/HiGeom.resources.dll
index 11a6620..2496e99 100644
Binary files a/App/zh-Hant/HiGeom.resources.dll and b/App/zh-Hant/HiGeom.resources.dll differ
diff --git a/App/zh-Hant/HiMech.resources.dll b/App/zh-Hant/HiMech.resources.dll
index e9d12b1..dea4994 100644
Binary files a/App/zh-Hant/HiMech.resources.dll and b/App/zh-Hant/HiMech.resources.dll differ
diff --git a/App/zh-Hant/HiNc.resources.dll b/App/zh-Hant/HiNc.resources.dll
index ec06e25..b93c113 100644
Binary files a/App/zh-Hant/HiNc.resources.dll and b/App/zh-Hant/HiNc.resources.dll differ