diff --git a/App/Google.Protobuf.dll b/App/Google.Protobuf.dll deleted file mode 100644 index d5a89ae8..00000000 Binary files a/App/Google.Protobuf.dll and /dev/null differ diff --git a/App/Grpc.AspNetCore.Server.ClientFactory.dll b/App/Grpc.AspNetCore.Server.ClientFactory.dll deleted file mode 100644 index 00809852..00000000 Binary files a/App/Grpc.AspNetCore.Server.ClientFactory.dll and /dev/null differ diff --git a/App/Grpc.AspNetCore.Server.dll b/App/Grpc.AspNetCore.Server.dll deleted file mode 100644 index b5d20bdd..00000000 Binary files a/App/Grpc.AspNetCore.Server.dll and /dev/null differ diff --git a/App/Grpc.Core.Api.dll b/App/Grpc.Core.Api.dll deleted file mode 100644 index a4b2b04e..00000000 Binary files a/App/Grpc.Core.Api.dll and /dev/null differ diff --git a/App/Grpc.Net.Client.dll b/App/Grpc.Net.Client.dll deleted file mode 100644 index 7cc8adce..00000000 Binary files a/App/Grpc.Net.Client.dll and /dev/null differ diff --git a/App/Grpc.Net.ClientFactory.dll b/App/Grpc.Net.ClientFactory.dll deleted file mode 100644 index 7ebc146f..00000000 Binary files a/App/Grpc.Net.ClientFactory.dll and /dev/null differ diff --git a/App/Grpc.Net.Common.dll b/App/Grpc.Net.Common.dll deleted file mode 100644 index 17233614..00000000 Binary files a/App/Grpc.Net.Common.dll and /dev/null differ diff --git a/App/Hi.WpfPlus.dll b/App/Hi.WpfPlus.dll index 73be70f0..28152ce6 100644 Binary files a/App/Hi.WpfPlus.dll and b/App/Hi.WpfPlus.dll differ diff --git a/App/HiCbtr.dll b/App/HiCbtr.dll index 1d1bd008..8c7ce634 100644 Binary files a/App/HiCbtr.dll and b/App/HiCbtr.dll differ diff --git a/App/HiDisp.dll b/App/HiDisp.dll index a443cfc5..8820e0c0 100644 Binary files a/App/HiDisp.dll and b/App/HiDisp.dll differ diff --git a/App/HiGeom.dll b/App/HiGeom.dll index 58f3a96f..af6baca1 100644 Binary files a/App/HiGeom.dll and b/App/HiGeom.dll differ diff --git a/App/HiLicense.dll b/App/HiLicense.dll index 8e39d5db..58612a26 100644 Binary files a/App/HiLicense.dll and b/App/HiLicense.dll differ diff --git a/App/HiMech.dll b/App/HiMech.dll index 29b1f131..d924cb78 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 787b8e56..36d297f1 100644 --- a/App/HiNC-2025-win-desktop.deps.json +++ b/App/HiNC-2025-win-desktop.deps.json @@ -11,9 +11,9 @@ "dependencies": { "AvalonEdit": "6.3.0.90", "FontAwesome.Sharp": "6.3.0", - "Hi.WpfPlus": "3.1.140", - "HiNc": "3.1.173", - "HiNc-Resource": "3.1.55", + "Hi.WpfPlus": "3.1.142", + "HiNc": "3.1.174", + "HiNc-Resource": "3.1.57", "Serilog.Extensions.Hosting": "10.0.0", "Serilog.Sinks.Console": "6.1.1", "Serilog.Sinks.File": "7.0.0", @@ -1598,114 +1598,36 @@ } } }, - "Google.Protobuf/3.28.3": { - "runtime": { - "lib/net5.0/Google.Protobuf.dll": { - "assemblyVersion": "3.28.3.0", - "fileVersion": "3.28.3.0" - } - } - }, - "Grpc.AspNetCore/2.66.0": { + "Hi.WpfPlus/3.1.142": { "dependencies": { - "Google.Protobuf": "3.28.3", - "Grpc.AspNetCore.Server.ClientFactory": "2.66.0" - } - }, - "Grpc.AspNetCore.Server/2.66.0": { - "dependencies": { - "Grpc.Net.Common": "2.66.0" - }, - "runtime": { - "lib/net9.0/Grpc.AspNetCore.Server.dll": { - "assemblyVersion": "2.0.0.0", - "fileVersion": "2.66.0.0" - } - } - }, - "Grpc.AspNetCore.Server.ClientFactory/2.66.0": { - "dependencies": { - "Grpc.AspNetCore.Server": "2.66.0", - "Grpc.Net.ClientFactory": "2.66.0" - }, - "runtime": { - "lib/net9.0/Grpc.AspNetCore.Server.ClientFactory.dll": { - "assemblyVersion": "2.0.0.0", - "fileVersion": "2.66.0.0" - } - } - }, - "Grpc.Core.Api/2.66.0": { - "runtime": { - "lib/netstandard2.1/Grpc.Core.Api.dll": { - "assemblyVersion": "2.0.0.0", - "fileVersion": "2.66.0.0" - } - } - }, - "Grpc.Net.Client/2.66.0": { - "dependencies": { - "Grpc.Net.Common": "2.66.0" - }, - "runtime": { - "lib/net8.0/Grpc.Net.Client.dll": { - "assemblyVersion": "2.0.0.0", - "fileVersion": "2.66.0.0" - } - } - }, - "Grpc.Net.ClientFactory/2.66.0": { - "dependencies": { - "Grpc.Net.Client": "2.66.0" - }, - "runtime": { - "lib/net8.0/Grpc.Net.ClientFactory.dll": { - "assemblyVersion": "2.0.0.0", - "fileVersion": "2.66.0.0" - } - } - }, - "Grpc.Net.Common/2.66.0": { - "dependencies": { - "Grpc.Core.Api": "2.66.0" - }, - "runtime": { - "lib/net8.0/Grpc.Net.Common.dll": { - "assemblyVersion": "2.0.0.0", - "fileVersion": "2.66.0.0" - } - } - }, - "Hi.WpfPlus/3.1.140": { - "dependencies": { - "HiDisp": "3.1.146" + "HiDisp": "3.1.148" }, "runtime": { "lib/net10.0-windows7.0/Hi.WpfPlus.dll": { - "assemblyVersion": "3.1.140.0", - "fileVersion": "3.1.140.0" + "assemblyVersion": "3.1.142.0", + "fileVersion": "3.1.142.0" } } }, - "HiCbtr/3.1.143": { + "HiCbtr/3.1.145": { "dependencies": { - "HiDisp": "3.1.146" + "HiDisp": "3.1.148" }, "runtime": { "lib/net10.0/HiCbtr.dll": { - "assemblyVersion": "3.1.143.0", - "fileVersion": "3.1.143.0" + "assemblyVersion": "3.1.145.0", + "fileVersion": "3.1.145.0" } } }, - "HiDisp/3.1.146": { + "HiDisp/3.1.148": { "dependencies": { - "HiGeom": "3.1.135" + "HiGeom": "3.1.136" }, "runtime": { "lib/net10.0/HiDisp.dll": { - "assemblyVersion": "3.1.146.0", - "fileVersion": "3.1.146.0" + "assemblyVersion": "3.1.148.0", + "fileVersion": "3.1.148.0" } }, "native": { @@ -1723,18 +1645,15 @@ } } }, - "HiGeom/3.1.135": { + "HiGeom/3.1.136": { "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": "5.3.0" }, "runtime": { "lib/net10.0/HiGeom.dll": { - "assemblyVersion": "3.1.135.0", - "fileVersion": "3.1.135.0" + "assemblyVersion": "3.1.136.0", + "fileVersion": "3.1.136.0" } }, "resources": { @@ -1746,27 +1665,27 @@ } } }, - "HiLicense/3.1.136": { + "HiLicense/3.1.138": { "dependencies": { - "HiGeom": "3.1.135" + "HiGeom": "3.1.136" }, "runtime": { "lib/net10.0/HiLicense.dll": { - "assemblyVersion": "3.1.136.0", - "fileVersion": "3.1.136.0" + "assemblyVersion": "3.1.138.0", + "fileVersion": "3.1.138.0" } } }, - "HiMech/3.1.154": { + "HiMech/3.1.156": { "dependencies": { "CommandLineParser": "2.9.1", - "HiCbtr": "3.1.143", + "HiCbtr": "3.1.145", "Microsoft.CodeAnalysis.CSharp.Scripting": "5.3.0" }, "runtime": { "lib/net10.0/HiMech.dll": { - "assemblyVersion": "3.1.154.0", - "fileVersion": "3.1.154.0" + "assemblyVersion": "3.1.156.0", + "fileVersion": "3.1.156.0" } }, "resources": { @@ -1781,21 +1700,18 @@ } } }, - "HiNc/3.1.173": { + "HiNc/3.1.174": { "dependencies": { "Dapper": "2.1.35", - "Google.Protobuf": "3.28.3", - "Grpc.AspNetCore": "2.66.0", - "Grpc.Net.Client": "2.66.0", - "HiLicense": "3.1.136", - "HiMech": "3.1.154", - "HiUniNc": "3.1.150", + "HiLicense": "3.1.138", + "HiMech": "3.1.156", + "HiUniNc": "3.1.151", "Microsoft.Data.Sqlite": "9.0.0" }, "runtime": { "lib/net10.0/HiNc.dll": { - "assemblyVersion": "3.1.173.0", - "fileVersion": "3.1.173.0" + "assemblyVersion": "3.1.174.0", + "fileVersion": "3.1.174.0" } }, "resources": { @@ -1807,22 +1723,22 @@ } } }, - "HiNc-Resource/3.1.55": { + "HiNc-Resource/3.1.57": { "runtime": { "lib/net10.0/HiNc-Resource.dll": { - "assemblyVersion": "3.1.55.0", - "fileVersion": "3.1.55.0" + "assemblyVersion": "3.1.57.0", + "fileVersion": "3.1.57.0" } } }, - "HiUniNc/3.1.150": { + "HiUniNc/3.1.151": { "dependencies": { - "HiMech": "3.1.154" + "HiMech": "3.1.156" }, "runtime": { "lib/net10.0/HiUniNc.dll": { - "assemblyVersion": "3.1.150.0", - "fileVersion": "3.1.150.0" + "assemblyVersion": "3.1.151.0", + "fileVersion": "3.1.151.0" } } }, @@ -2201,124 +2117,68 @@ "path": "fontawesome.sharp/6.3.0", "hashPath": "fontawesome.sharp.6.3.0.nupkg.sha512" }, - "Google.Protobuf/3.28.3": { + "Hi.WpfPlus/3.1.142": { "type": "package", "serviceable": true, - "sha512": "sha512-OewySX3aQCdKfMJsj2DzBMXQJPI+lm0CBzamU9ViFu3CU9tXYrQWqJ1CZ+/UWtkwOjUeIzbXmoOjRc7B8pbMrA==", - "path": "google.protobuf/3.28.3", - "hashPath": "google.protobuf.3.28.3.nupkg.sha512" + "sha512": "sha512-I1O7HrANDPwLaB+zfRXs9GflyFNxtiJ2zGNKDLHAvF5Mo+lFUtU5rxYCxq/fRZJbcjv2Crrc8mlJ8namoIcHUQ==", + "path": "hi.wpfplus/3.1.142", + "hashPath": "hi.wpfplus.3.1.142.nupkg.sha512" }, - "Grpc.AspNetCore/2.66.0": { + "HiCbtr/3.1.145": { "type": "package", "serviceable": true, - "sha512": "sha512-b4V5V/yiCeK94wiQReUyHPB/Xj/fCaDWhlcFnYzSCm3pQtyADAN9t3g7V631PzLjFZQnPn9iIN3M6BHnVx3nfA==", - "path": "grpc.aspnetcore/2.66.0", - "hashPath": "grpc.aspnetcore.2.66.0.nupkg.sha512" + "sha512": "sha512-Ab/TIbJYrnQnuWpu1N27nTf+f5kGEiBAh86o1hVLUT4xVYQDxpnTSJ9m2M3iulDtcWhYWElonGMGbAu4yyr/gQ==", + "path": "hicbtr/3.1.145", + "hashPath": "hicbtr.3.1.145.nupkg.sha512" }, - "Grpc.AspNetCore.Server/2.66.0": { + "HiDisp/3.1.148": { "type": "package", "serviceable": true, - "sha512": "sha512-SogFEs8bLvcRtEWMdueOJeMxiaLryvyivWtmBwz/vLtS5xlN4Zrfv+npMbn1PS4iT99AqBY+R+bRxdIFfvfeIA==", - "path": "grpc.aspnetcore.server/2.66.0", - "hashPath": "grpc.aspnetcore.server.2.66.0.nupkg.sha512" + "sha512": "sha512-hQzKxONIuGYUWKT7/tc9Pjye440gdWIYQ5eKoklFVCc6r3IN40UST18T98y92sq158cypuQ57cN2X/4iE7o6zw==", + "path": "hidisp/3.1.148", + "hashPath": "hidisp.3.1.148.nupkg.sha512" }, - "Grpc.AspNetCore.Server.ClientFactory/2.66.0": { + "HiGeom/3.1.136": { "type": "package", "serviceable": true, - "sha512": "sha512-glLCZ5K8iBSzzd2eIKjMBYBApygvwJqGJ87FBJrHL4bSrnBTywCUFfLj2EckiPjvvW6SNwLtapwdY4Sj0WwWQg==", - "path": "grpc.aspnetcore.server.clientfactory/2.66.0", - "hashPath": "grpc.aspnetcore.server.clientfactory.2.66.0.nupkg.sha512" + "sha512": "sha512-QisKmDbZ2SoEa4clTi397VB+FlbmuUR+vW5oqdMO5HU3XDTqWZ2y3XUt99K+zSoB7ngtHAXAVkRJQDvOsS9ZaA==", + "path": "higeom/3.1.136", + "hashPath": "higeom.3.1.136.nupkg.sha512" }, - "Grpc.Core.Api/2.66.0": { + "HiLicense/3.1.138": { "type": "package", "serviceable": true, - "sha512": "sha512-HsjsQVAHe4hqP4t4rpUnmq+MZvPdyrlPsWF4T5fbMvyP3o/lMV+KVJfDlaNH8+v0aGQTVT3EsDFufbhaWb52cw==", - "path": "grpc.core.api/2.66.0", - "hashPath": "grpc.core.api.2.66.0.nupkg.sha512" + "sha512": "sha512-zsReBAVZ7Pjh9ZxEvZkLzvBAKWLaw2rNb5uIMaudrb/sdJwcFvATeAe/8BGn3rTASjrpXBB9wFFTadtfpf5t8w==", + "path": "hilicense/3.1.138", + "hashPath": "hilicense.3.1.138.nupkg.sha512" }, - "Grpc.Net.Client/2.66.0": { + "HiMech/3.1.156": { "type": "package", "serviceable": true, - "sha512": "sha512-GwkSsssXFgN9+M2U+UQWdErf61sn1iqgP+2NRBlDXATcP9vlxda0wySxd/eIL8U522+SnyFNUXlvQ5tAzGk9cA==", - "path": "grpc.net.client/2.66.0", - "hashPath": "grpc.net.client.2.66.0.nupkg.sha512" + "sha512": "sha512-76pYizkB6Tzr9RkHiiu36eUejIEhmwy/37GoFGR4UFJY3zLJVBtlku1BYq4FsRCG/HJOtAzGCxweqix1jkmGbQ==", + "path": "himech/3.1.156", + "hashPath": "himech.3.1.156.nupkg.sha512" }, - "Grpc.Net.ClientFactory/2.66.0": { + "HiNc/3.1.174": { "type": "package", "serviceable": true, - "sha512": "sha512-I6HUbtcqb24OiQlbvxpBLruCxQ8wrmJ5tUtU96QK7nqyerrMLeqLDDbhotznPAnZtR8x1bJvck/Xt4fgvVo92Q==", - "path": "grpc.net.clientfactory/2.66.0", - "hashPath": "grpc.net.clientfactory.2.66.0.nupkg.sha512" + "sha512": "sha512-BUs6pZ4aDLArmwSc9JP/cgUf+JuRj4/d8ZSUbccV+t8rDuZ7vtNSWtPPiPKEmPJDIRR2OHp5Jy0odzfpP8KaXA==", + "path": "hinc/3.1.174", + "hashPath": "hinc.3.1.174.nupkg.sha512" }, - "Grpc.Net.Common/2.66.0": { + "HiNc-Resource/3.1.57": { "type": "package", "serviceable": true, - "sha512": "sha512-YJpQpIvpo0HKlsG6SHwaieyji08qfv0DdEDIewCAA0egQY08637sHOj1netLGUhzBEsCqlGC3e92TZ2uqhxnvw==", - "path": "grpc.net.common/2.66.0", - "hashPath": "grpc.net.common.2.66.0.nupkg.sha512" + "sha512": "sha512-lYgRxhqeGNycGkhoRRg0TlF6xwXc0D26tDilhoiNkd34/U5Ev4LhnjhKoDSij9xWxi8ZyOX7vvLfdjPK56d26Q==", + "path": "hinc-resource/3.1.57", + "hashPath": "hinc-resource.3.1.57.nupkg.sha512" }, - "Hi.WpfPlus/3.1.140": { + "HiUniNc/3.1.151": { "type": "package", "serviceable": true, - "sha512": "sha512-SkgBcnsPESMlOaauLdV0uLnPysvhI2zrIzjQqc1uuegy4r0X5yqmAPVwFdfkNc3YoV17qIOTGir29Ktx45aimg==", - "path": "hi.wpfplus/3.1.140", - "hashPath": "hi.wpfplus.3.1.140.nupkg.sha512" - }, - "HiCbtr/3.1.143": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SIpuwSOy1WB6cv25Hs7Zm5/sfhkhv3Im6se80SpUXWa0p4OqSYnUDjU2d3lOQyXgi505v1ba10g9iMXVyZO+CA==", - "path": "hicbtr/3.1.143", - "hashPath": "hicbtr.3.1.143.nupkg.sha512" - }, - "HiDisp/3.1.146": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Q9OZZBS7FxLXLXO1Ov5O6hewPjqMsxUKWAGM4ckxupqwJt+4jHYgoOtB3UfK1cWOd9uEP+TaTFOmlY4tTEzZDg==", - "path": "hidisp/3.1.146", - "hashPath": "hidisp.3.1.146.nupkg.sha512" - }, - "HiGeom/3.1.135": { - "type": "package", - "serviceable": true, - "sha512": "sha512-DWyxMTuXlK3MiB+XaSBdXS1jfT4XhVsoFXE30LJybBjhjBlbgPxWocruXu8mHcU0yVHzM2fN0wuDipY5KEUQWA==", - "path": "higeom/3.1.135", - "hashPath": "higeom.3.1.135.nupkg.sha512" - }, - "HiLicense/3.1.136": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0HH1O8vm/N3je+nxh+qLmswl0P83htSmm2NH8yrazgiEWwZ9+t+7JzBEC9xT9esrjs9zakldesAn9fYZo0l+RA==", - "path": "hilicense/3.1.136", - "hashPath": "hilicense.3.1.136.nupkg.sha512" - }, - "HiMech/3.1.154": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7grSGnaxe11EAOkLg+cmRSPO1t7+qS8+NJouqbsfA22WmWPOqIPEYmaiEuRC6lCfn0iBAX+rh9F8OQYjPDDVDA==", - "path": "himech/3.1.154", - "hashPath": "himech.3.1.154.nupkg.sha512" - }, - "HiNc/3.1.173": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pGoDJaOdBCKU6DQTEJVnKmvzMSGQ3v6BApHiYzwDMkQdV2y5KlFk3MZIgLRBWM6+nI4UiUFtFdjq8LUi0Yof1A==", - "path": "hinc/3.1.173", - "hashPath": "hinc.3.1.173.nupkg.sha512" - }, - "HiNc-Resource/3.1.55": { - "type": "package", - "serviceable": true, - "sha512": "sha512-X16YILf69BaRN3PiJKwKQoiRv58gpMezTz9wuzUsdFkl6N0w9Vwa1A5aAUa6VaALB+1RJ3J5RgRriJIvayHnjQ==", - "path": "hinc-resource/3.1.55", - "hashPath": "hinc-resource.3.1.55.nupkg.sha512" - }, - "HiUniNc/3.1.150": { - "type": "package", - "serviceable": true, - "sha512": "sha512-llavC4EZKaS421BsnfX/8vNDq2TZlpsCXVDec5wLcUPN06qQ8b0A6Jd09/fWvi3zwjNkQn4kdSXeKOjDUJuSNg==", - "path": "hiuninc/3.1.150", - "hashPath": "hiuninc.3.1.150.nupkg.sha512" + "sha512": "sha512-8Acx1Tue9MxUpo9wOK9TrjHOhFlulaXTtPzcpH+LrZg3OduJKxd/pM9ZuOprgXrpzaxdn3A84u2CM8yw9DMzIA==", + "path": "hiuninc/3.1.151", + "hashPath": "hiuninc.3.1.151.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 dfcab1c3..976480bc 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 70d3b241..21a2b752 100644 Binary files a/App/HiNC-2025-win-desktop.pdb and b/App/HiNC-2025-win-desktop.pdb differ diff --git a/App/HiNc-Resource.dll b/App/HiNc-Resource.dll index 763cb63f..04773764 100644 Binary files a/App/HiNc-Resource.dll and b/App/HiNc-Resource.dll differ diff --git a/App/HiNc.dll b/App/HiNc.dll index 92ce0de9..7c57f72a 100644 Binary files a/App/HiNc.dll and b/App/HiNc.dll differ diff --git a/App/HiUniNc.dll b/App/HiUniNc.dll index 8b874454..c3a525c5 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 d1362866..b178adfb 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 727f1328..753a106e 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.Common.CsvUtils.CsvInputKit.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.CsvUtils.CsvInputKit.html index e9770a75..b22b7033 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.CsvUtils.CsvInputKit.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.CsvUtils.CsvInputKit.html @@ -309,6 +309,52 @@ Class CsvInputKit + + +

+ GetCsvDictionary(IList<string>, string) + +

+ +

Splits a CSV row into a title→cell dictionary. Stateless allocation-light +variant of GetCsvDictionary(string); use this when the +caller already has the title list and does not need to hold a +CsvInputKit instance.

+
+
+ +
+
public static Dictionary<string, string> GetCsvDictionary(IList<string> titleList, string row)
+
+ +

Parameters

+
+
titleList IList<string>
+

Column titles, in CSV column order.

+
+
row string
+

CSV data row (not the header line).

+
+
+ +

Returns

+
+
Dictionary<string, string>
+

Dictionary keyed by column title; cells past titleList +are keyed by column[i].

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

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.XmlUtils.XFactory.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.XmlUtils.XFactory.html index 38fdf3f8..36a6d05c 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.XmlUtils.XFactory.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.XmlUtils.XFactory.html @@ -211,7 +211,7 @@ factory's registry must look up the delegate via

Process-wide default factory used by the static Gen<T> -family. Reg-style methods register here when called with +family. Reg-style methods register here when called with no explicit factory argument.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Disp.DispEngine.html b/App/wwwroot/HiAPI-docsite/api/Hi.Disp.DispEngine.html index df00f148..ff1d42ba 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Disp.DispEngine.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Disp.DispEngine.html @@ -180,7 +180,8 @@ Class DispEngine

Remarks

-

The DispEngine is the core rendering and interaction engine for HiAPI applications.

+
+

The DispEngine is the core rendering and interaction engine for HiAPI applications.

-
+
-

-Class UniversalNcService.UniversalNcServiceBase +

+Interface IStepPropertyAccessHost

-
Namespace
numerical
-
Assembly
HiGeom.dll
+
Namespace
Hi.MachiningSteps
+
Assembly
HiMech.dll
-

Base class for server-side implementations of UniversalNcService

+

Narrow host contract for accessing the step-variable registry and registering +new step variables. Exposed as a dedicated surface so pipelines that only +need step-variable wiring (e.g. CsvRowSyntax) +do not have to depend on the broader IMachiningService.

-
[BindServiceMethod(typeof(UniversalNcService), "BindService")]
-public abstract class UniversalNcService.UniversalNcServiceBase
+
public interface IStepPropertyAccessHost
-
-
Inheritance
-
- -
UniversalNcService.UniversalNcServiceBase
-
-
-
-
Inherited Members
-
- - - - - - - -
Extension Methods
+ + + @@ -160,52 +139,91 @@ public abstract class UniversalNcService.UniversalNcServiceBase - - -
+

Properties +

+ + + + +

+ StepPropertyAccessDictionary + +

+ +

Dictionary of step-property accessors keyed by property name. Used by +CSV title-row processing to decide whether a column already maps to a +reserved step property; new columns are registered via +RegisterStepVariable(string, string, string, string, Func<MachiningStep, object>).

+
+
+ +
+
ConcurrentDictionary<string, PropertyAccess<MachiningStep>> StepPropertyAccessDictionary { get; }
+
+ + + + + +

Property Value

+
+
ConcurrentDictionary<string, PropertyAccess<MachiningStep>>
+
+
+ + + + + + + +

Methods

- + -

- GetNcStepGrpcCsvRowDictionary(GrpcNcStep, ServerCallContext) +

+ RegisterStepVariable(string, string, string, string, Func<MachiningStep, object>)

-
+

Registers a step variable so downstream components (strip charts, +CSV exports, scripting) can read it from MachiningStep. +Idempotent on key.

+
-
public virtual Task<GrpcNcStep> GetNcStepGrpcCsvRowDictionary(GrpcNcStep request, ServerCallContext context)
+
void RegisterStepVariable(string key, string name, string unit, string formatString, Func<MachiningStep, object> variableFunc = null)

Parameters

-
request GrpcNcStep
-
-
context ServerCallContext
-
+
key string
+

Unique key.

+
+
name string
+

Human-readable name; may equal key.

+
+
unit string
+

Physical unit name (PhysicsUnit); nullable.

+
+
formatString string
+

Display format string; nullable.

+
+
variableFunc Func<MachiningStep, object>
+

Optional value extractor; nullable when the value comes from the step's flex dictionary.

+
-

Returns

-
-
Task<GrpcNcStep>
-
-
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.html index b5f4d426..cbbef3bf 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.html @@ -142,6 +142,14 @@ Interfaces
IMachiningService

Represents a host interface for milling steps that provides access to milling equipment and related resources.

+
+
+
+
IStepPropertyAccessHost
+

Narrow host contract for accessing the step-variable registry and registering +new step variables. Exposed as a dedicated surface so pipelines that only +need step-variable wiring (e.g. CsvRowSyntax) +do not have to depend on the broader IMachiningService.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html index d397994c..8d7a9fa2 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html @@ -6,7 +6,7 @@ - + @@ -97,7 +97,8 @@ Class CodeXyzabcMachineTool
Assembly
HiMech.dll
-

For legacy compatible. Use GeneralXyzabcMachineTool instead.

+

This machine tool class helps very quick test by the code configuration. +For general/end-user use, apply GeneralXyzabcMachineTool instead.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcMech.Xyzabc.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcMech.Xyzabc.html index 31c8dee7..b18ee5ef 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcMech.Xyzabc.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcMech.Xyzabc.html @@ -96,7 +96,8 @@ Classes
CodeXyzabcMachineTool
-

For legacy compatible. Use GeneralXyzabcMachineTool instead.

+

This machine tool class helps very quick test by the code configuration. +For general/end-user use, apply GeneralXyzabcMachineTool instead.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html index a9be1655..93cd82b9 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html @@ -6,7 +6,7 @@ - + @@ -102,7 +102,8 @@ Class FanucGotoIterationDependency the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter (CountByTarget — not -serialised, cleared at session start by +serialised, cleared at session start by the +ISessionResettable sweep in RunControlLines(string, IEnumerable<string>, MachiningSession, SessionProgress, CancellationToken)).

The dependency is syntax-managed: FanucGotoSyntax reads the @@ -110,8 +111,9 @@ limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in Hi.NcParsers.Dependencys.Fanuc rather than Hi.NcParsers.Dependencys.SystemWired because nothing outside the -syntax pipeline writes it; Reset() is a plain method call -the runner invokes, not a host-wired Func. +syntax pipeline writes it; OnSessionReset() is the +session-init hook the runner invokes through +ISessionResettable, not a host-wired Func.

The counter key is (FileName, TargetN) where FileName @@ -134,7 +136,7 @@ the project XML.

-
public class FanucGotoIterationDependency : INcDependency, IMakeXmlSource
+
public class FanucGotoIterationDependency : INcDependency, IMakeXmlSource, ISessionResettable
@@ -153,6 +155,7 @@ the project XML.
+
@@ -327,8 +330,8 @@ hit it fast.

Per-target hit counter keyed by (FileName, TargetN). -Runtime-only; not serialised. Cleared by Reset() on -the session-init edge so a brand-preset runner reused across +Runtime-only; not serialised. Cleared by OnSessionReset() +on the session-init edge so a brand-preset runner reused across sessions does not leak counts.

@@ -477,6 +480,33 @@ Since the folder can be moving with the configuration file.

+ + +

+ OnSessionReset() + +

+ +

Clears CountByTarget; leaves MaxIterationsPerTarget untouched.

+
+
+ +
+
public void OnSessionReset()
+
+ + + + + + + + + + + + +

@@ -511,33 +541,6 @@ Since the folder can be moving with the configuration file.

- - -

- Reset() - -

- -

Clears CountByTarget; leaves MaxIterationsPerTarget untouched.

-
-
- -
-
public void Reset()
-
- - - - - - - - - - - - -
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html new file mode 100644 index 00000000..6711e448 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html @@ -0,0 +1,559 @@ + + + + + Class FanucWhileDoIterationDependency | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class FanucWhileDoIterationDependency +

+ +
+
Namespace
Hi.NcParsers.Dependencys.Fanuc
+
Assembly
HiMech.dll
+
+ +

Watchdog for Fanuc Custom Macro B WHILE/END m bounded loops. Sibling +to FanucGotoIterationDependency with the same +“soft-cap + runtime counter + session-init ISessionResettable” +shape, but kept as a separate dep (rather than sharing the GOTO +bucket) so loop and jump iteration limits can be tuned independently +and so diagnostic codes do not cross.

+

+The counter key is (FileName, LoopId) where FileName +is the source-level file path of the WHILE/END pair (the relative +path form carried on FilePath). Source-level +keying means multiple inline invocations of the same subprogram +pool their counts (same source-code loop), while two different files +each with their own WHILE DO 1 stay isolated. +

+

+The consuming syntax (FanucWhileDoSyntax) +increments the counter at the END m reverse-jump step — not on the +WHILE entry — so a loop that exits on first WHILE evaluation +(condition false from the outset) consumes zero iterations. Above +MaxIterationsPerLoopId, the END m block emits a warning +and suppresses the redirect; subsequent flow falls through past END. +

+

+Default MaxIterationsPerLoopId is 10000 — higher than +the GOTO equivalent (1000) because WHILE/END is the legitimate +iteration primitive that NcOpt-generated programs (drill grids, +adaptive sweeps) depend on, and 1000 is too tight for those. +

+
+
+ +
+
public class FanucWhileDoIterationDependency : INcDependency, IMakeXmlSource, ISessionResettable
+
+ + + + +
+
Inheritance
+
+ +
FanucWhileDoIterationDependency
+
+
+ +
+
Implements
+
+ + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ +
+
Extension Methods
+
+ + + + + + + +
+ + + + + +

Constructors +

+ + + + +

+ FanucWhileDoIterationDependency() + +

+ +

Initializes a new instance with the default limit and an empty counter.

+
+
+ +
+
public FanucWhileDoIterationDependency()
+
+ + + + + + + + + + + + + + + +

+ FanucWhileDoIterationDependency(XElement) + +

+ +

Loads MaxIterationsPerLoopId from XML produced by MakeXmlSource(string, string, bool); absent element falls back to DefaultMaxIterationsPerLoopId.

+
+
+ +
+
public FanucWhileDoIterationDependency(XElement src)
+
+ +

Parameters

+
+
src XElement
+

Root element named XName.

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

Fields +

+ + + +

+ DefaultMaxIterationsPerLoopId + +

+ +

Default for MaxIterationsPerLoopId. Sized for +legitimate macro iteration (NcOpt drill grids, calibration +sweeps) while still catching runaway loops in a tractable time.

+
+
+ +
+
public const int DefaultMaxIterationsPerLoopId = 10000
+
+ + + + +

Field Value

+
+
int
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ CountByLoop + +

+ +

Per-loop hit counter keyed by (FileName, LoopId). +Runtime-only; not serialised. Cleared by OnSessionReset() +on the session-init edge so a brand-preset runner reused across +sessions does not leak counts.

+
+
+ +
+
public Dictionary<(string FileName, int LoopId), int> CountByLoop { get; }
+
+ + + + + +

Property Value

+
+
Dictionary<(string FileName, int TargetN), int>
+
+
+ + + + + + + + + + +

+ MaxIterationsPerLoopId + +

+ +

Soft cap on consecutive END m reverse-jumps for any single +(FileName, LoopId) pair. Above this the END m block emits +FanucWhileDo–IterationLimitExceeded and suppresses the +redirect; flow falls through past END.

+
+
+ +
+
public int MaxIterationsPerLoopId { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ XName + +

+ +

XML element name used to register this dependency with XFactory.

+
+
+ +
+
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.

+
+ + + + + + +

+ OnSessionReset() + +

+ +

Clears CountByLoop; leaves MaxIterationsPerLoopId untouched.

+
+
+ +
+
public void OnSessionReset()
+
+ + + + + + + + + + + + + + + +

+ Reg(XFactory) + +

+ +

Registers this type's deserializer with the given XFactory +(or Default when factory is +null). Idempotent.

+
+
+ +
+
public static void Reg(XFactory factory = null)
+
+ +

Parameters

+
+
factory XFactory
+
+
+ + + + + + + + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.Fanuc.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.Fanuc.html index e5572935..10a2124c 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.Fanuc.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.Fanuc.html @@ -101,7 +101,8 @@ Classes the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter (CountByTarget — not -serialised, cleared at session start by +serialised, cleared at session start by the +ISessionResettable sweep in RunControlLines(string, IEnumerable<string>, MachiningSession, SessionProgress, CancellationToken)).

The dependency is syntax-managed: FanucGotoSyntax reads the @@ -109,8 +110,9 @@ limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in Hi.NcParsers.Dependencys.Fanuc rather than Hi.NcParsers.Dependencys.SystemWired because nothing outside the -syntax pipeline writes it; Reset() is a plain method call -the runner invokes, not a host-wired Func. +syntax pipeline writes it; OnSessionReset() is the +session-init hook the runner invokes through +ISessionResettable, not a host-wired Func.

The counter key is (FileName, TargetN) where FileName @@ -174,6 +176,38 @@ long-lived data, only the Fanuc-style id addressing scheme. The underlying ToolOffsetTable still lives in NcDependencyList as the data dependency.

+ + +
+
FanucWhileDoIterationDependency
+

Watchdog for Fanuc Custom Macro B WHILE/END m bounded loops. Sibling +to FanucGotoIterationDependency with the same +“soft-cap + runtime counter + session-init ISessionResettable” +shape, but kept as a separate dep (rather than sharing the GOTO +bucket) so loop and jump iteration limits can be tuned independently +and so diagnostic codes do not cross.

+

+The counter key is (FileName, LoopId) where FileName +is the source-level file path of the WHILE/END pair (the relative +path form carried on FilePath). Source-level +keying means multiple inline invocations of the same subprogram +pool their counts (same source-code loop), while two different files +each with their own WHILE DO 1 stay isolated. +

+

+The consuming syntax (FanucWhileDoSyntax) +increments the counter at the END m reverse-jump step — not on the +WHILE entry — so a loop that exits on first WHILE evaluation +(condition false from the outset) consumes zero iterations. Above +MaxIterationsPerLoopId, the END m block emits a warning +and suppresses the redirect; subsequent flow falls through past END. +

+

+Default MaxIterationsPerLoopId is 10000 — higher than +the GOTO equivalent (1000) because WHILE/END is the legitimate +iteration primitive that NcOpt-generated programs (drill grids, +adaptive sweeps) depend on, and 1000 is too tight for those. +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html index ad2a6d56..bd4c9a35 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html @@ -6,7 +6,7 @@ - + @@ -99,12 +99,12 @@ Class FileIndexCounterDependency

Per-session monotonically-increasing file index allocator. Holds the counter as a private field; Allocate() returns the next -unused value and increments. Reset() rewinds to 0 — the -owning RunControlLines(string, IEnumerable<string>, MachiningSession, SessionProgress, CancellationToken) calls -Reset() on the same edge that initializes a fresh -NcRunnerSessionState, so a controller -power-reset clears both the syntax-piece pipeline and this counter -in lock-step.

+unused value and increments. OnSessionReset() rewinds to 0 — +the owning RunControlLines(string, IEnumerable<string>, MachiningSession, SessionProgress, CancellationToken) invokes it via +the ISessionResettable sweep on the same edge that +initializes a fresh NcRunnerSessionState, +so a controller power-reset clears both the syntax-piece pipeline and +this counter in lock-step.

Two consumers share one allocator:

@@ -281,7 +282,7 @@ from session-state visibility.

Returns the next unused file index and post-increments the -counter. First call after construction or Reset() +counter. First call after construction or OnSessionReset() returns 0.

@@ -351,6 +352,38 @@ the counter implicitly reset to 0.

+ + +

+ OnSessionReset() + +

+ +

Rewinds the counter to 0. Called by +RunControlLines(string, IEnumerable<string>, MachiningSession, SessionProgress, CancellationToken) via the +ISessionResettable sweep on the same edge that +initializes a fresh session pipeline so a single brand-preset +runner can be reused across sessions without leaking file +indices from the previous session.

+
+
+ +
+
public void OnSessionReset()
+
+ + + + + + + + + + + + +

@@ -385,37 +418,6 @@ the counter implicitly reset to 0.

- - -

- Reset() - -

- -

Rewinds the counter to 0. Called by -RunControlLines(string, IEnumerable<string>, MachiningSession, SessionProgress, CancellationToken) on the same edge that -initializes a fresh session pipeline so a single brand-preset -runner can be reused across sessions without leaking file -indices from the previous session.

-
-
- -
-
public void Reset()
-
- - - - - - - - - - - - -
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html new file mode 100644 index 00000000..cc6da536 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html @@ -0,0 +1,459 @@ + + + + + Class MachiningServiceDependency | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class MachiningServiceDependency +

+ +
+
Namespace
Hi.NcParsers.Dependencys.SystemWired
+
Assembly
HiMech.dll
+
+ +

Exposes the full IMachiningService surface to NC pipeline +components — currently provided for client-authored syntaxes / semantics +that need broad host access (machining equipment, session, tool house, +time mapping, …). The built-in CSV pipeline does not consume this +dependency; it uses the narrower +StepPropertyAccessDictionaryDependency instead.

+
+
+ +
+
public class MachiningServiceDependency : INcDependency, IMakeXmlSource
+
+ + + + +
+
Inheritance
+
+ +
MachiningServiceDependency
+
+
+ +
+
Implements
+
+ + +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ +
+
Extension Methods
+
+ + + + + + + +
+ + + + + +

Constructors +

+ + + + +

+ MachiningServiceDependency() + +

+ +

Initializes a new instance with no ServiceProvider; the host wires one before queries.

+
+
+ +
+
public MachiningServiceDependency()
+
+ + + + + + + + + + + + + + + +

+ MachiningServiceDependency(Func<IMachiningService>) + +

+ +

Initializes a new instance with the given ServiceProvider.

+
+
+ +
+
public MachiningServiceDependency(Func<IMachiningService> provider)
+
+ +

Parameters

+
+
provider Func<IMachiningService>
+

Delegate that resolves the live service at lookup time.

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

Properties +

+ + + + +

+ Service + +

+ +

The live machining service, or null when ServiceProvider is unset or returns null.

+
+
+ +
+
public IMachiningService Service { get; }
+
+ + + + + +

Property Value

+
+
IMachiningService
+
+
+ + + + + + + + + + +

+ ServiceProvider + +

+ +

Runtime provider for the machining service. Null provider or null +return means the host is not wired; consumers must null-check.

+
+
+ +
+
public Func<IMachiningService> ServiceProvider { get; set; }
+
+ + + + + +

Property Value

+
+
Func<IMachiningService>
+
+
+ + + + + + + + + + +

+ XName + +

+ +

XML element name used to register this dependency with XFactory.

+
+
+ +
+
public static string XName { get; }
+
+ + + + + +

Property Value

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

Methods +

+ + + + +

+ MakeXmlSource(string, string, bool) + +

+ +

Runtime-only dependency — the provider is wired per host and not +meaningful to persist; serialization writes only the empty element +so the dependency survives an XML round-trip.

+
+
+ +
+
public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly)
+
+ +

Parameters

+
+
baseDirectory string
+
+
relFile string
+
+
exhibitionOnly bool
+
+
+ +

Returns

+
+
XElement
+
+
+ + + + + + + + + + + + + +

+ Reg(XFactory) + +

+ +

Registers this type's deserializer with the given XFactory +(or Default when factory is +null). Idempotent.

+
+
+ +
+
public static void Reg(XFactory factory = null)
+
+ +

Parameters

+
+
factory XFactory
+
+
+ + + + + + + + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html new file mode 100644 index 00000000..24c098b9 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html @@ -0,0 +1,471 @@ + + + + + Class StepPropertyAccessDictionaryDependency | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class StepPropertyAccessDictionaryDependency +

+ +
+
Namespace
Hi.NcParsers.Dependencys.SystemWired
+
Assembly
HiMech.dll
+
+ +

Exposes the host's step-variable registry to NC pipeline components +(today: CsvRowSyntax) as a narrow +IStepPropertyAccessHost surface.

+

+The provider is wired by the host (e.g. LocalProjectService) so +the dependency does not carry strong references to host types; this lets +the runner be created before the host is fully constructed and reused +across project loads. +

+

+A sibling MachiningServiceDependency exposes the broader +IMachiningService surface to client-authored syntaxes. The +two dependencies are independent — production hosts typically wire both +providers to the same backing object, but a test fixture can supply just +this narrow one. +

+
+
+ +
+
public class StepPropertyAccessDictionaryDependency : INcDependency, IMakeXmlSource
+
+ + + + +
+
Inheritance
+
+ +
StepPropertyAccessDictionaryDependency
+
+
+ +
+
Implements
+
+ + +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ +
+
Extension Methods
+
+ + + + + + + +
+ + + + + +

Constructors +

+ + + + +

+ StepPropertyAccessDictionaryDependency() + +

+ +

Initializes a new instance with no HostProvider; the host wires one before queries.

+
+
+ +
+
public StepPropertyAccessDictionaryDependency()
+
+ + + + + + + + + + + + + + + +

+ StepPropertyAccessDictionaryDependency(Func<IStepPropertyAccessHost>) + +

+ +

Initializes a new instance with the given HostProvider.

+
+
+ +
+
public StepPropertyAccessDictionaryDependency(Func<IStepPropertyAccessHost> provider)
+
+ +

Parameters

+
+
provider Func<IStepPropertyAccessHost>
+

Delegate that resolves the live host at lookup time.

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

Properties +

+ + + + +

+ Host + +

+ +

The live host, or null when HostProvider is unset or returns null.

+
+
+ +
+
public IStepPropertyAccessHost Host { get; }
+
+ + + + + +

Property Value

+
+
IStepPropertyAccessHost
+
+
+ + + + + + + + + + +

+ HostProvider + +

+ +

Runtime provider for the host. Null provider or null return means +the host is not wired (e.g. the dependency sits in a runner that +runs in a unit-test fixture without a real project service). +Consumers must null-check before use.

+
+
+ +
+
public Func<IStepPropertyAccessHost> HostProvider { get; set; }
+
+ + + + + +

Property Value

+
+
Func<IStepPropertyAccessHost>
+
+
+ + + + + + + + + + +

+ XName + +

+ +

XML element name used to register this dependency with XFactory.

+
+
+ +
+
public static string XName { get; }
+
+ + + + + +

Property Value

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

Methods +

+ + + + +

+ MakeXmlSource(string, string, bool) + +

+ +

Runtime-only dependency — the provider is wired per host and not +meaningful to persist; serialization writes only the empty element +so the dependency survives an XML round-trip.

+
+
+ +
+
public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly)
+
+ +

Parameters

+
+
baseDirectory string
+
+
relFile string
+
+
exhibitionOnly bool
+
+
+ +

Returns

+
+
XElement
+
+
+ + + + + + + + + + + + + +

+ Reg(XFactory) + +

+ +

Registers this type's deserializer with the given XFactory +(or Default when factory is +null). Idempotent.

+
+
+ +
+
public static void Reg(XFactory factory = null)
+
+ +

Parameters

+
+
factory XFactory
+
+
+ + + + + + + + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.html index 1f3f634f..546d6cf3 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.html @@ -98,12 +98,12 @@ Classes
FileIndexCounterDependency

Per-session monotonically-increasing file index allocator. Holds the counter as a private field; Allocate() returns the next -unused value and increments. Reset() rewinds to 0 — the -owning RunControlLines(string, IEnumerable<string>, MachiningSession, SessionProgress, CancellationToken) calls -Reset() on the same edge that initializes a fresh -NcRunnerSessionState, so a controller -power-reset clears both the syntax-piece pipeline and this counter -in lock-step.

+unused value and increments. OnSessionReset() rewinds to 0 — +the owning RunControlLines(string, IEnumerable<string>, MachiningSession, SessionProgress, CancellationToken) invokes it via +the ISessionResettable sweep on the same edge that +initializes a fresh NcRunnerSessionState, +so a controller power-reset clears both the syntax-piece pipeline and +this counter in lock-step.

Two consumers share one allocator:

+ +
+
MachiningServiceDependency
+

Exposes the full IMachiningService surface to NC pipeline +components — currently provided for client-authored syntaxes / semantics +that need broad host access (machining equipment, session, tool house, +time mapping, …). The built-in CSV pipeline does not consume this +dependency; it uses the narrower +StepPropertyAccessDictionaryDependency instead.

@@ -173,6 +183,26 @@ start of each session run, so this dependency can sit in NcDependencyList without participating in XML serialization (see MakeXmlSource(string, string, bool)).

+ +
+
+
StepPropertyAccessDictionaryDependency
+

Exposes the host's step-variable registry to NC pipeline components +(today: CsvRowSyntax) as a narrow +IStepPropertyAccessHost surface.

+

+The provider is wired by the host (e.g. LocalProjectService) so +the dependency does not carry strong references to host types; this lets +the runner be created before the host is fully constructed and reused +across project loads. +

+

+A sibling MachiningServiceDependency exposes the broader +IMachiningService surface to client-authored syntaxes. The +two dependencies are independent — production hosts typically wire both +providers to the same backing object, but a test fixture can supply just +this narrow one. +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripService.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html similarity index 50% rename from App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripService.html rename to App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html index 9d9dee94..83b9a189 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripService.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html @@ -2,11 +2,11 @@ - Class ClStripService | HiAPI-C# 2025 + Class FanucConditionReader | HiAPI-C# 2025 - + - + @@ -84,25 +84,58 @@
-
+
-

-Class ClStripService +

+Class FanucConditionReader

-
Namespace
Hi.Grpcs
-
Assembly
HiNc.dll
+
Namespace
Hi.NcParsers.EvaluationSyntaxs.Fanuc
+
Assembly
HiMech.dll
-

milling process service based on dictionary data type.

+

Shared polymorphic reader for Fanuc Custom Macro B conditional gate +expressions (IF [...] GOTO, IF [...] THEN, +WHILE [...] DO m). The condition node is read post-evaluation — +VariableEvaluatorSyntax's pass-2 tree walk has already +substituted the original expression string with a numeric +JsonValue when evaluation succeeded; this helper maps +that node to a tri-state truthy outcome plus a display form for +diagnostics.

+

+Three states, mapping directly to the +ConditionEvaluated: true | false | null stamp shape used by +all three consumers (see FanucGotoSyntax, +FanucIfThenSyntax, and the WHILE-loop syntax): +

+
  • Truthy = true — node is a finite non-zero numeric; + gate fires.
  • Truthy = false — node is a finite numeric equal to + zero; gate falls through silently.
  • Truthy = null — node is null, still a string + (evaluator failed), or non-finite double (NaN / ±∞); gate falls + through and the caller emits its own + <Syntax>--ConditionNotEvaluated warning.
+

+The Display form is the human-readable expression text for +diagnostic messages. For resolved numerics it is the value formatted +via InvariantCulture; for unresolved +strings it is the original expression text. Diagnostics build their +own message text — the helper just provides the source string so the +caller can compose "IF [<Display>] GOTO ..." etc. +

+

+Callers typically DeepClone() the original node +before passing in here, then again before stamping back, so removing +the parsing section and writing the host-level stamp can happen in +any order without dangling references. +

-
public static class ClStripService
+
public static class FanucConditionReader
@@ -112,7 +145,7 @@ Class ClStripService
Inheritance
object
-
ClStripService
+
FanucConditionReader
@@ -149,108 +182,36 @@ Class ClStripService -

Properties -

- - - - -

- Descriptor - -

- -

Service descriptor

-
-
- -
-
public static ServiceDescriptor Descriptor { get; }
-
- - - - - -

Property Value

-
-
ServiceDescriptor
-
-
- - - - - - - -

Methods

- + -

- BindService(ServiceBinderBase, ClStripServiceBase) +

+ ReadCondition(JsonNode)

-

Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. -Note: this method is part of an experimental API that can change or be removed without any prior notice.

+

Maps a post-evaluation condition JsonNode to a +display string + tri-state truthy outcome. See class XmlDoc for +the three states' definitions.

-
public static void BindService(ServiceBinderBase serviceBinder, ClStripService.ClStripServiceBase serviceImpl)
+
public static (string Display, bool? Truthy) ReadCondition(JsonNode node)

Parameters

-
serviceBinder ServiceBinderBase
-

Service methods will be bound by calling AddMethod on this object.

-
-
serviceImpl ClStripService.ClStripServiceBase
-

An object implementing the server-side handling logic.

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

- BindService(ClStripServiceBase) - -

- -

Creates service definition that can be registered with a server

-
-
- -
-
public static ServerServiceDefinition BindService(ClStripService.ClStripServiceBase serviceImpl)
-
- -

Parameters

-
-
serviceImpl ClStripService.ClStripServiceBase
-

An object implementing the server-side handling logic.

-
+
node JsonNode
+

Returns

-
ServerServiceDefinition
+
(string Display, bool? Truthy)
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html index edf73860..711876f1 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html @@ -112,10 +112,11 @@ Both unconditional GOTO <n> and conditional form leans on VariableEvaluatorSyntax's pass-2 tree walk to substitute Parsing.FanucGoto.Condition with a numeric JsonValue when the expression -evaluates successfully — ReadCondition(JsonNode) then reads the -node polymorphically. Truthy non-zero fires the redirect; zero falls -through silently; a still-string (unresolved) Condition emits -FanucGoto--ConditionNotEvaluated and falls through. +evaluates successfully — ReadCondition(JsonNode) +then reads the node polymorphically. Truthy non-zero fires the +redirect; zero falls through silently; a still-string (unresolved) +Condition emits FanucGoto--ConditionNotEvaluated and falls +through.

Pipeline placement: tail of the Fanuc / Mazak / Syntec Evaluation diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html index 28296016..82949f4b 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html @@ -6,7 +6,7 @@ - + @@ -130,7 +130,7 @@ the lifted entries reach the readers as if they had been written by

Three condition outcomes mirror the -ReadCondition(JsonNode) shape: +FanucGotoSyntax.ReadCondition shape:

  • Truthy non-zero → lift assignments, stamp Applied=true.
  • Truthy zero → fall through silently, Applied=false.
  • Truthy null (evaluator failed, condition still a string or non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not lift, Applied=false.
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html new file mode 100644 index 00000000..3e97c47b --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html @@ -0,0 +1,629 @@ + + + + + Class FanucWhileDoSyntax | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class FanucWhileDoSyntax +

+ +
+
Namespace
Hi.NcParsers.EvaluationSyntaxs.Fanuc
+
Assembly
HiMech.dll
+
+ +

Resolves Fanuc Custom Macro B WHILE [..] DO m ... END m +bounded loops. Two phrases dispatched by +Term:

+
  • WHILE [..] DO m — entry: reads the resolved condition + via FanucConditionReader, manages the per-LoopId + frame in the top-level WhileFrames dict, and either falls + through (truthy) or forward-jumps past the matching END m + (falsy / unresolved).
  • END m — terminator: unconditionally reverse-jumps to + the WHILE block recorded in WhileFrames[LoopId].BeginLineNo + so the next iteration re-evaluates the entry condition. Increments + the per-loop iteration counter on + FanucWhileDoIterationDependency; suppresses the + redirect above MaxIterationsPerLoopId.
+

+WhileFrames carrier. The top-level WhileFrames JSON +section is a JsonObject keyed by LoopId-as-string +whose values are { BeginLineNo: int }. Frames are pushed when +a WHILE block first encounters a truthy condition with no existing +frame for that LoopId; popped when the condition becomes falsy or +unresolved; otherwise carried forward unchanged by +ModalCarrySyntax's +Logic tracked-key +list. Nested loops with distinct LoopIds coexist in the same dict; +same-LoopId nesting (spec-undefined) overwrites and is not given +special handling. +

+

+Pipeline placement. Evaluation bundle, after the variable +readers (defensive — WHILE/END blocks per spec do not carry +assignments, but the placement is consistent with GOTO). Must run +after VariableEvaluatorSyntax so the condition string +has been substituted to numeric. +

+

+Forward scan to matching END m uses the +LabelScanUtil predicate overload — probe runs the +brand-default FanucWhileDoParsingSyntax on each +candidate, predicate matches on +Parsing.FanucWhileDo.Term == "END" && LoopId == target. +

+

+Reverse scan to WHILE BeginLineNo does not need a label +predicate — the BeginLineNo is a known file-line index recorded in +the active frame, so the END side re-segments the file from the top +and returns the slice starting at the first piece whose +CharIndexSegment.Begin.LineIndex +matches. +

+
+
+ +
+
public class FanucWhileDoSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource
+
+ + + + +
+
Inheritance
+
+ +
FanucWhileDoSyntax
+
+
+ +
+
Implements
+
+ + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ +
+
Extension Methods
+
+ + + + + + + +
+ + + +

Remarks

+

Worked Example — Three-iteration WHILE [..] DO m ... END m

+

Given this Custom Macro B source:

+
#100 = 0
+WHILE [#100 LT 3] DO 1
+#100 = #100 + 1
+END 1
+X5
+
+

Each block flows through the runtime as below. The WhileFrames lifeline +represents the per-block active-loop state carried block-to-block by the +modal-carry pipeline; the END block consults it to find the WHILE line +to reverse-jump to. The runaway-loop counter ticks on every successful +END reverse-jump and suppresses further jumps above the configured +iteration limit.

+
sequenceDiagram
+    participant W as WHILE block
+    participant B as body
+    participant E as END block
+    participant X as X5
+    participant F as WhileFrames
+
+    Note over F: empty
+    Note over W: iter 1: cond=true (0 LT 3)
+    W->>F: push {LoopId 1, BeginLineNo}
+    W->>B: fall through
+    B->>E: 
+    Note over E: counter 0 to 1 (≤Max)
+    E-->>W: reverse jump
+
+    Note over W: iter 2: cond=true (1 LT 3)
+    Note over W,F: frame exists, skip push
+    W->>B: fall through
+    B->>E: 
+    Note over E: counter 1 to 2 (≤Max)
+    E-->>W: reverse jump
+
+    Note over W: iter 3: cond=true (2 LT 3)
+    W->>B: 
+    B->>E: 
+    Note over E: counter 2 to 3 (≤Max)
+    E-->>W: reverse jump
+
+    Note over W: iter 4: cond=false (3 LT 3)
+    W->>F: pop LoopId 1
+    Note over W: forward jump past END
+    W->>X: 
+
+

After the loop exits, X5 executes with #100 = 3 in Vars.Volatile.

+
+ + +

Constructors +

+ + + + +

+ FanucWhileDoSyntax() + +

+ +

Parameterless instance.

+
+
+ +
+
public FanucWhileDoSyntax()
+
+ + + + + + + + + + + + + + + +

+ FanucWhileDoSyntax(XElement) + +

+ +

XML ctor (no child elements; reserved for forward compatibility).

+
+
+ +
+
public FanucWhileDoSyntax(XElement src)
+
+ +

Parameters

+
+
src XElement
+
+
+ + + + + + + + + + + + +

Fields +

+ + + +

+ BeginLineNoKey + +

+ +

Schema field inside each WhileFrames entry: the WHILE block's file-line index.

+
+
+ +
+
public const string BeginLineNoKey = "BeginLineNo"
+
+ + + + +

Field Value

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

+ WhileFramesKey + +

+ +

Top-level JSON key for the active-loop frame dict.

+
+
+ +
+
public const string WhileFramesKey = "WhileFrames"
+
+ + + + +

Field Value

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

Properties +

+ + + + +

+ Name + +

+ +

Syntax kind name (typically the concrete type name).

+
+
+ +
+
public string Name { get; }
+
+ + + + + +

Property Value

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

+ XName + +

+ +

XML element name used to register this syntax with XFactory.

+
+
+ +
+
public static string XName { get; }
+
+ + + + + +

Property Value

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

Methods +

+ + + + +

+ Build(LazyLinkedListNode<SyntaxPiece>, List<INcDependency>, NcDiagnosticProgress) + +

+ +

Build syntax arrangement into the +syntaxPieceNode in-place.

+
+
+ +
+
public void Build(LazyLinkedListNode<SyntaxPiece> syntaxPieceNode, List<INcDependency> ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress)
+
+ +

Parameters

+
+
syntaxPieceNode LazyLinkedListNode<SyntaxPiece>
+
+
ncDependencyList List<INcDependency>
+
+
ncDiagnosticProgress NcDiagnosticProgress
+
+
+ + + + + + + + + + + + + + +

+ 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.

+
+ + + + + + +

+ Reg(XFactory) + +

+ +

Registers this type's deserializer with the given XFactory +(or Default when factory is +null). Idempotent.

+
+
+ +
+
public static void Reg(XFactory factory = null)
+
+ +

Parameters

+
+
factory XFactory
+
+
+ + + + + + + + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.html index 816ea5bf..0836cf16 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.html @@ -94,6 +94,44 @@

Classes

+
+
FanucConditionReader
+

Shared polymorphic reader for Fanuc Custom Macro B conditional gate +expressions (IF [...] GOTO, IF [...] THEN, +WHILE [...] DO m). The condition node is read post-evaluation — +VariableEvaluatorSyntax's pass-2 tree walk has already +substituted the original expression string with a numeric +JsonValue when evaluation succeeded; this helper maps +that node to a tri-state truthy outcome plus a display form for +diagnostics.

+

+Three states, mapping directly to the +ConditionEvaluated: true | false | null stamp shape used by +all three consumers (see FanucGotoSyntax, +FanucIfThenSyntax, and the WHILE-loop syntax): +

+
  • Truthy = true — node is a finite non-zero numeric; + gate fires.
  • Truthy = false — node is a finite numeric equal to + zero; gate falls through silently.
  • Truthy = null — node is null, still a string + (evaluator failed), or non-finite double (NaN / ±∞); gate falls + through and the caller emits its own + <Syntax>--ConditionNotEvaluated warning.
+

+The Display form is the human-readable expression text for +diagnostic messages. For resolved numerics it is the value formatted +via InvariantCulture; for unresolved +strings it is the original expression text. Diagnostics build their +own message text — the helper just provides the source string so the +caller can compose "IF [<Display>] GOTO ..." etc. +

+

+Callers typically DeepClone() the original node +before passing in here, then again before stamping back, so removing +the parsing section and writing the host-level stamp can happen in +any order without dangling references. +

+
+
FanucGotoSyntax

Resolves Fanuc Custom Macro B GOTO control flow. @@ -111,10 +149,11 @@ Both unconditional GOTO <n> and conditional form leans on VariableEvaluatorSyntax's pass-2 tree walk to substitute Parsing.FanucGoto.Condition with a numeric JsonValue when the expression -evaluates successfully — ReadCondition(JsonNode) then reads the -node polymorphically. Truthy non-zero fires the redirect; zero falls -through silently; a still-string (unresolved) Condition emits -FanucGoto--ConditionNotEvaluated and falls through. +evaluates successfully — ReadCondition(JsonNode) +then reads the node polymorphically. Truthy non-zero fires the +redirect; zero falls through silently; a still-string (unresolved) +Condition emits FanucGoto--ConditionNotEvaluated and falls +through.

Pipeline placement: tail of the Fanuc / Mazak / Syntec Evaluation @@ -171,7 +210,7 @@ the lifted entries reach the readers as if they had been written by

Three condition outcomes mirror the -ReadCondition(JsonNode) shape: +FanucGotoSyntax.ReadCondition shape:

  • Truthy non-zero → lift assignments, stamp Applied=true.
  • Truthy zero → fall through silently, Applied=false.
  • Truthy null (evaluator failed, condition still a string or non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not lift, Applied=false.
@@ -356,6 +395,58 @@ Fanuc-family only — Siemens uses named system variables ($AC_TIME, $A_DAY, …) and Heidenhain uses FN18: SYSREAD; neither flows through Parsing.Assignments.#nnn.

+
+
+
+
FanucWhileDoSyntax
+

Resolves Fanuc Custom Macro B WHILE [..] DO m ... END m +bounded loops. Two phrases dispatched by +Term:

+
  • WHILE [..] DO m — entry: reads the resolved condition + via FanucConditionReader, manages the per-LoopId + frame in the top-level WhileFrames dict, and either falls + through (truthy) or forward-jumps past the matching END m + (falsy / unresolved).
  • END m — terminator: unconditionally reverse-jumps to + the WHILE block recorded in WhileFrames[LoopId].BeginLineNo + so the next iteration re-evaluates the entry condition. Increments + the per-loop iteration counter on + FanucWhileDoIterationDependency; suppresses the + redirect above MaxIterationsPerLoopId.
+

+WhileFrames carrier. The top-level WhileFrames JSON +section is a JsonObject keyed by LoopId-as-string +whose values are { BeginLineNo: int }. Frames are pushed when +a WHILE block first encounters a truthy condition with no existing +frame for that LoopId; popped when the condition becomes falsy or +unresolved; otherwise carried forward unchanged by +ModalCarrySyntax's +Logic tracked-key +list. Nested loops with distinct LoopIds coexist in the same dict; +same-LoopId nesting (spec-undefined) overwrites and is not given +special handling. +

+

+Pipeline placement. Evaluation bundle, after the variable +readers (defensive — WHILE/END blocks per spec do not carry +assignments, but the placement is consistent with GOTO). Must run +after VariableEvaluatorSyntax so the condition string +has been substituted to numeric. +

+

+Forward scan to matching END m uses the +LabelScanUtil predicate overload — probe runs the +brand-default FanucWhileDoParsingSyntax on each +candidate, predicate matches on +Parsing.FanucWhileDo.Term == "END" && LoopId == target. +

+

+Reverse scan to WHILE BeginLineNo does not need a label +predicate — the BeginLineNo is a known file-line index recorded in +the active frame, so the END side re-segments the file from the top +and returns the slice starting at the first piece whose +CharIndexSegment.Begin.LineIndex +matches. +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html index b97566be..eaf140e2 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html @@ -172,8 +172,82 @@ parenthesised comment stripped). -

- SegmentAndSkipUntilLabel(ISegmenter, string, string, int, int, int, List<ISituNcSyntax>, NcDiagnosticProgress) +

+ SegmentAndSkipUntilLabel(ISegmenter, List<INcDependency>, string, string, int, int, List<ISituNcSyntax>, Func<JsonObject, bool>, NcDiagnosticProgress) + +

+ +

Predicate-driven overload. The caller supplies match +as the per-candidate gate (run on the candidate block's +JsonObject after the probe syntaxes have +finished stamping). This unblocks scans whose label representation +differs from IndexNote.Number — +for example END m blocks identified by a custom probe-written +section, where reusing IndexNote would collide with +real N{m} head indices in the same file.

+

+The default targetN overload delegates here with the +IndexNote.Number == targetN predicate baked in; existing +callers (Fanuc unconditional GOTO, M99 P{seq} jump) are unchanged. +

+
+
+ +
+
public static List<SyntaxPiece> SegmentAndSkipUntilLabel(ISegmenter segmenter, List<INcDependency> ncDependencyList, string absPath, string labelPath, int fileIndex, int sentenceIndexBegin, List<ISituNcSyntax> probeSyntaxes, Func<JsonObject, bool> match, NcDiagnosticProgress diag)
+
+ +

Parameters

+
+
segmenter ISegmenter
+

Segmenter used to slice the file into Sentence blocks.

+
+
ncDependencyList List<INcDependency>
+

NC dependency list forwarded to GetSyntaxPieces(ISegmenter, List<INcDependency>, IEnumerable<IndexedFileLine>, int, NcDiagnosticProgress, CancellationToken) while re-segmenting the scanned file.

+
+
absPath string
+

Absolute path to read line content from.

+
+
labelPath string
+

Project-relative path to stamp on each line's IndexedFileLine label.

+
+
fileIndex int
+

Fresh file index to stamp on each scanned line, allocated by the caller from FileIndexCounterDependency.

+
+
sentenceIndexBegin int
+

Starting execution-order index for the produced pieces.

+
+
probeSyntaxes List<ISituNcSyntax>
+

Ordered list of helper syntaxes to run on each candidate block before the predicate check. May be null.

+
+
match Func<JsonObject, bool>
+

Per-candidate predicate; true selects the first match.

+
+
diag NcDiagnosticProgress
+

Sink for any diagnostics produced by the probe syntaxes.

+
+
+ +

Returns

+
+
List<SyntaxPiece>
+
+
+ + + + + + + + + + + + + +

+ SegmentAndSkipUntilLabel(ISegmenter, List<INcDependency>, string, string, int, int, int, List<ISituNcSyntax>, NcDiagnosticProgress)

@@ -183,7 +257,7 @@ a block whose probeSyntaxes have stamped it in-place), and returns the sub-list of pieces from that block to EOF. Pieces are produced via -GetSyntaxPieces(ISegmenter, IEnumerable<IndexedFileLine>, int, NcDiagnosticProgress, CancellationToken) with +GetSyntaxPieces(ISegmenter, List<INcDependency>, IEnumerable<IndexedFileLine>, int, NcDiagnosticProgress, CancellationToken) with SentenceIndex stamped starting at sentenceIndexBegin. Returns null when no match is found; the caller emits its own brand-specific @@ -203,13 +277,16 @@ participating in this scan.
-
public static List<SyntaxPiece> SegmentAndSkipUntilLabel(ISegmenter segmenter, string absPath, string labelPath, int fileIndex, int sentenceIndexBegin, int targetN, List<ISituNcSyntax> probeSyntaxes, NcDiagnosticProgress diag)
+
public static List<SyntaxPiece> SegmentAndSkipUntilLabel(ISegmenter segmenter, List<INcDependency> ncDependencyList, string absPath, string labelPath, int fileIndex, int sentenceIndexBegin, int targetN, List<ISituNcSyntax> probeSyntaxes, NcDiagnosticProgress diag)

Parameters

segmenter ISegmenter

Segmenter used to slice the file into Sentence blocks.

+
+
ncDependencyList List<INcDependency>
+

NC dependency list forwarded to GetSyntaxPieces(ISegmenter, List<INcDependency>, IEnumerable<IndexedFileLine>, int, NcDiagnosticProgress, CancellationToken) while re-segmenting the scanned file.

absPath string

Absolute path to read line content from.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html index 22d04d7b..8a052351 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html @@ -209,8 +209,8 @@ bodies this is a fresh stamp.

-

- BuildInlinedPieces(ResolvedFile, int, IReadOnlyDictionary<string, double>, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, int, NcDiagnosticProgress) +

+ BuildInlinedPieces(ResolvedFile, int, IReadOnlyDictionary<string, double>, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, List<INcDependency>, int, NcDiagnosticProgress)

@@ -226,7 +226,7 @@ the source layer.

-
public static IEnumerable<SyntaxPiece> BuildInlinedPieces(MacroFileResolver.ResolvedFile resolvedFile, int l, IReadOnlyDictionary<string, double> bindings, JsonObject callRecord, JsonObject pushedCallStack, FileIndexCounterDependency counterDep, ISegmenter segmenter, int sentenceIndexBegin, NcDiagnosticProgress ncDiagnosticProgress)
+
public static IEnumerable<SyntaxPiece> BuildInlinedPieces(MacroFileResolver.ResolvedFile resolvedFile, int l, IReadOnlyDictionary<string, double> bindings, JsonObject callRecord, JsonObject pushedCallStack, FileIndexCounterDependency counterDep, ISegmenter segmenter, List<INcDependency> ncDependencyList, int sentenceIndexBegin, NcDiagnosticProgress ncDiagnosticProgress)

Parameters

@@ -245,6 +245,8 @@ the source layer.

segmenter ISegmenter
+
ncDependencyList List<INcDependency>
+
sentenceIndexBegin int
ncDiagnosticProgress NcDiagnosticProgress
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html index 97f1bfd6..d75159e2 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html @@ -6,7 +6,7 @@ - + @@ -112,7 +112,7 @@ caller's N{seq} block via ReplaceSource(IEnumerable<T>). The caller's file is resolved from the popped frame's CallerFilePath; the scan uses the same -SegmentAndSkipUntilLabel(ISegmenter, string, string, int, int, int, List<ISituNcSyntax>, NcDiagnosticProgress) helper as +LabelScanUtil.SegmentAndSkipUntilLabel helper as FanucGotoSyntax, with hardcoded Fanuc-default probes (QuoteCommentSyntax + HeadIndexSyntax with symbol "N") because the M99 P semantic itself is diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html index e57d1405..b861caa2 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html @@ -6,7 +6,7 @@ - + @@ -163,6 +163,22 @@ emitted per such RHS so the user is told the source-order semantics were not honoured. Practical impact is near-zero for typical CAM-emitted NC (one assignment per line).

+

+Formula mirror tree — when either pass actually performs a +non-trivial expression evaluation (i.e. the RHS / tag value was not +already a pure literal and the evaluator returned a finite value), +the original expression string is mirrored to a parallel +Formula.<same path> entry at the root of the block JSON. +The Parsing.* subtree carries the resolved value (R-format +string for Assignments; numeric JsonValue for tags); +the Formula.* subtree preserves the source-text expression +for diagnostics, round-trip reconstruction, and downstream +inspection. Pure-literal RHS / tag values produce no Formula entry — +the Parsing value is already the original text. Evaluation failures +(parse error, vacant variable, non-finite result) also produce no +Formula entry — the original string is still in Parsing.* +untouched, no preservation needed. +

@@ -310,6 +326,41 @@ CAM-emitted NC (one assignment per line). +

Fields +

+ + + +

+ FormulaKey + +

+ +

Top-level key under which the Formula mirror tree is written.

+
+
+ +
+
public const string FormulaKey = "Formula"
+
+ + + + +

Field Value

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

Properties

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.html index d11b5fcd..93cf6853 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.html @@ -273,7 +273,7 @@ caller's N{seq} block via ReplaceSource(IEnumerable<T>). The caller's file is resolved from the popped frame's CallerFilePath; the scan uses the same -SegmentAndSkipUntilLabel(ISegmenter, string, string, int, int, int, List<ISituNcSyntax>, NcDiagnosticProgress) helper as +LabelScanUtil.SegmentAndSkipUntilLabel helper as FanucGotoSyntax, with hardcoded Fanuc-default probes (QuoteCommentSyntax + HeadIndexSyntax with symbol "N") because the M99 P semantic itself is @@ -373,6 +373,22 @@ emitted per such RHS so the user is told the source-order semantics were not honoured. Practical impact is near-zero for typical CAM-emitted NC (one assignment per line).

+

+Formula mirror tree — when either pass actually performs a +non-trivial expression evaluation (i.e. the RHS / tag value was not +already a pure literal and the evaluator returned a finite value), +the original expression string is mirrored to a parallel +Formula.<same path> entry at the root of the block JSON. +The Parsing.* subtree carries the resolved value (R-format +string for Assignments; numeric JsonValue for tags); +the Formula.* subtree preserves the source-text expression +for diagnostics, round-trip reconstruction, and downstream +inspection. Pure-literal RHS / tag values produce no Formula entry — +the Parsing value is already the original text. Evaluation failures +(parse error, vacant variable, non-finite result) also produce no +Formula entry — the original string is still in Parsing.* +untouched, no preservation needed. +

diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.NumericalServiceBase.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.ISessionResettable.html similarity index 61% rename from App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.NumericalServiceBase.html rename to App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.ISessionResettable.html index 4211e930..ad7e1748 100644 --- a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.NumericalServiceBase.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.ISessionResettable.html @@ -2,11 +2,11 @@ - Class NumericalService.NumericalServiceBase | HiAPI-C# 2025 + Interface ISessionResettable | HiAPI-C# 2025 - + - + @@ -84,70 +84,62 @@
-
+
-

-Class NumericalService.NumericalServiceBase +

+Interface ISessionResettable

-
Namespace
numerical
-
Assembly
HiGeom.dll
+
Namespace
Hi.NcParsers
+
Assembly
HiMech.dll
-

Base class for server-side implementations of NumericalService

+

Marker for objects that hold session-scoped runtime state which must be +cleared when RunControlLines(string, IEnumerable<string>, MachiningSession, SessionProgress, CancellationToken) initializes a new +session pipeline (the state.IsInitialized == false edge).

+

+Implementers may live on either chain: INcDependency +or INcSyntax. SoftNcRunner scans +NcDependencyList and +NcSyntaxList on the session-init edge and calls +OnSessionReset() on every match. +

+

+Distinct from IPowerResettable: power-reset clears +retained-but-volatile state on a controller power cycle (e.g., Fanuc +#100-#499), an edge that survives ordinary session boundaries. +Session-reset clears state whose lifetime is one pipeline pass (iteration +counters, file-index allocators, etc.). +

-
[BindServiceMethod(typeof(NumericalService), "BindService")]
-public abstract class NumericalService.NumericalServiceBase
+
public interface ISessionResettable
-
-
Inheritance
-
- -
NumericalService.NumericalServiceBase
-
-
-
-
Inherited Members
-
- - - - - - - -
Extension Methods
+ + + @@ -160,15 +152,6 @@ public abstract class NumericalService.NumericalServiceBase - - -
@@ -179,33 +162,26 @@ public abstract class NumericalService.NumericalServiceBase - + -

- GetNcStepGrpcCsvRowDictionary(Empty, ServerCallContext) +

+ OnSessionReset()

-
+

Clears the session-scoped subset owned by this object. Called by +RunControlLines(string, IEnumerable<string>, MachiningSession, SessionProgress, CancellationToken) on the same edge that +rebuilds the syntax-piece pipeline so a runner reused across +sessions does not leak counters / allocators / accumulators from +the previous session.

+
-
public virtual Task<GrpcCsvRowDictionary> GetNcStepGrpcCsvRowDictionary(Empty request, ServerCallContext context)
+
void OnSessionReset()
-

Parameters

-
-
request Empty
-
-
context ServerCallContext
-
-
-

Returns

-
-
Task<GrpcCsvRowDictionary>
-
-
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.FanucGoto.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.FanucGoto.html index ff93508b..90953c95 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.FanucGoto.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.FanucGoto.html @@ -6,7 +6,7 @@ - + @@ -116,6 +116,16 @@ substitutes a resolved literal back into the same field in the Evaluation bundle; FanucGotoSyntax then int.TryParses the final string to produce an int target.

+

+Lifecycle of the condition fields. +

  • Condition is written at Parsing time as the raw + expression text and substituted in place by + VariableEvaluatorSyntax pass-2 — the + original text is preserved at Formula.FanucGoto.Condition + when substitution succeeds.
  • ConditionEvaluated is the host-level stamp + written by FanucGotoSyntax + carrying the tri-state truthy outcome.
+
@@ -204,10 +214,13 @@ Evaluation bundle;

Raw boolean expression text from inside the IF [...] -brackets, or null for the unconditional form. Evaluator boolean -support is pending — until then, -FanucGotoSyntax emits a warning -and falls through for any non-null Condition.

+brackets at Parsing time; substituted to a numeric +JsonValue in place by +VariableEvaluatorSyntax when the +expression evaluates successfully. The original text survives at +Formula.FanucGoto.Condition. Null for the unconditional +form. Note: not written on the host-level stamp; the gate +outcome lives at ConditionEvaluated.

@@ -232,6 +245,46 @@ and falls through for any non-null + +

+ ConditionEvaluated + +

+ +

Tri-state outcome of evaluating the IF-form's boolean condition, +stamped on the host block by +FanucGotoSyntax:

+
  • true — condition met (gate fires).
  • false — condition not met (gate falls through silently).
  • null — evaluator could not produce a finite truth + value (vacant variable, parse error, NaN / ±∞), or the host + block is the unconditional GOTO form.
+The original expression text is preserved at +Formula.FanucGoto.Condition by +VariableEvaluatorSyntax. +
+
+ +
+
public bool? ConditionEvaluated { get; set; }
+
+ + + + + +

Property Value

+
+
bool?
+
+
+ + + + + + + +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.FanucIfThen.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.FanucIfThen.html index b3ca873f..cf9c8d53 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.FanucIfThen.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.FanucIfThen.html @@ -283,13 +283,14 @@ parsing syntax via -

Raw boolean expression text from inside the IF [...] brackets. -String at parsing time; +

Raw boolean expression text from inside the IF [...] brackets +at Parsing time; substituted to a numeric +JsonValue in place by VariableEvaluatorSyntax's pass-2 tree -walk substitutes a numeric literal in place when the expression -evaluates successfully. FanucIfThenSyntax reads the resulting -JSON node polymorphically (number → truthy gate; remaining string → -unevaluated warning).

+walk when the expression evaluates successfully. The original text +survives at Formula.FanucIfThen.Condition. Note: not written +on the host-level stamp; the gate outcome lives at +ConditionEvaluated.

@@ -314,6 +315,45 @@ unevaluated warning).

+ + +

+ ConditionEvaluated + +

+ +

Tri-state outcome of evaluating the IF-form's boolean condition, +stamped on the host block by +FanucIfThenSyntax:

+
  • true — condition met (body fires).
  • false — condition not met (body skipped silently).
  • null — evaluator could not produce a finite truth + value (vacant variable, parse error, NaN / ±∞).
+The original expression text is preserved at +Formula.FanucIfThen.Condition by +VariableEvaluatorSyntax. +
+
+ +
+
public bool? ConditionEvaluated { get; set; }
+
+ + + + + +

Property Value

+
+
bool?
+
+
+ + + + + + + +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.FanucWhileDo.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.FanucWhileDo.html new file mode 100644 index 00000000..c19e4988 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.FanucWhileDo.html @@ -0,0 +1,388 @@ + + + + + Class FanucWhileDo | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class FanucWhileDo +

+ +
+
Namespace
Hi.NcParsers.Keywords
+
Assembly
HiMech.dll
+
+ +

Fanuc Custom Macro B WHILE/END bounded-loop record. Stamped on the +host block by +FanucWhileDoSyntax after the +control-flow decision has been made; produced earlier by +FanucWhileDoParsingSyntax as a +parsing-stage sub-section (Parsing.FanucWhileDo) carrying the +raw captured fields.

+

+Two phrases map to the same shape, distinguished by Term: +

  • WHILE [<bool-expr>] DO <m> — loop entry. + Condition holds the expression text from inside the + brackets at parsing time; substituted to a numeric + JsonValue by + VariableEvaluatorSyntax in place. + ConditionEvaluated carries the host-level truthy + outcome at stamp time.
  • END <m> — loop terminator. Carries no condition; + unconditionally reverse-jumps to the matching WHILE block on every + execution (re-evaluation of the entry condition is the WHILE block's + responsibility).
+ +

+LoopId is the spec-named "identification number for +nesting" (the m in DO m / END m). Nested loops +must use distinct LoopIds; matching is by exact value. Same-LoopId +nesting is spec-undefined and not given special handling here. +

+

+Active loop frames are carried block-to-block via the top-level +WhileFrames JSON section (a JsonObject +keyed by LoopId-as-string, each entry recording the +BeginLineNo of the WHILE block that opened that frame). +Carried by ModalCarrySyntax as part +of its Logic tracked +keys (mutated in Evaluation, must reach Logic-stage consumers and +downstream blocks unchanged). +

+
+
+ +
+
public class FanucWhileDo
+
+ + + + +
+
Inheritance
+
+ +
FanucWhileDo
+
+
+ + + +
+
Inherited Members
+
+ + + + + + + +
+ +
+
Extension Methods
+
+ + + + + + + +
+ + + + + +

Properties +

+ + + + +

+ Condition + +

+ +

Raw boolean expression text from inside the WHILE's [...] +brackets at Parsing time; substituted to a numeric +JsonValue in place by +VariableEvaluatorSyntax when the +expression evaluates successfully. The original text survives at +Formula.FanucWhileDo.Condition. Null on the END phrase. +Note: not written on the host-level stamp; the gate outcome lives at +ConditionEvaluated.

+
+
+ +
+
public string Condition { get; set; }
+
+ + + + + +

Property Value

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

+ ConditionEvaluated + +

+ +

Tri-state outcome of evaluating the WHILE's boolean condition, +stamped on the host block by +FanucWhileDoSyntax:

+
  • true — condition met (body executes; loop continues).
  • false — condition not met (loop exits; forward-jump + past matching END).
  • null — evaluator could not produce a finite truth + value (vacant variable, parse error, NaN / ±∞); loop exits + defensively and emits + FanucWhileDo--ConditionNotEvaluated.
+Null also on the END phrase (no condition to evaluate). The original +expression text is preserved at Formula.FanucWhileDo.Condition +by VariableEvaluatorSyntax. +
+
+ +
+
public bool? ConditionEvaluated { get; set; }
+
+ + + + + +

Property Value

+
+
bool?
+
+
+ + + + + + + + + + +

+ LoopId + +

+ +

The m identifier from DO m / END m — the +spec-named “identification number for nesting”. Nested loops use +distinct LoopIds (1–3 typical); WHILE and END pair by exact match.

+
+
+ +
+
public int LoopId { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ Term + +

+ +

Triggering phrase: “WHILE...DO” for the loop entry form, +“END” for the loop terminator.

+
+
+ +
+
public string Term { get; set; }
+
+ + + + + +

Property Value

+
+
string
+
+
+ + + + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.IArcMotionDef.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.IArcMotionDef.html index 2f1ab2a9..3ea51f09 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.IArcMotionDef.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.IArcMotionDef.html @@ -6,7 +6,7 @@ - + @@ -98,8 +98,12 @@ Interface IArcMotionDef

Arc motion data written by CircularMotionSyntax. -Stored under the Hi.Motion JSON section alongside -IMotionEventDef properties.

+Stored under the MotionEvent JSON section alongside +IMotionEventDef properties. The arc plane is read from the +modal PlaneSelect section via +GetPlaneNormalDir(JsonObject) rather than +cached on the event — same source of truth as +IsoG68RotationSyntax.

@@ -142,11 +146,9 @@ Stored under the Hi.Motion JSON sectio

Examples

-
"Motion": {
-  "Mode": "G02",
+  
"MotionEvent": {
   "Form": "McArc",
   "ArcCenter": { "X": 10.0, "Y": 5.0, "Z": 0.0 },
-  "PlaneNormalDir": 2,
   "IsCcw": false,
   "AdditionalCircleNum": 0
 }
@@ -254,38 +256,6 @@ Stored under the Hi.Motion JSON sectio - - -

- PlaneNormalDir - -

- -

Perpendicular axis direction (0=X, 1=Y, 2=Z). G17→2, G18→1, G19→0.

-
-
- -
-
int PlaneNormalDir { get; }
-
- - - - - -

Property Value

-
-
int
-
-
- - - - - - - -
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.html index 539819c7..d1c35260 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.html @@ -217,6 +217,16 @@ substitutes a resolved literal back into the same field in the Evaluation bundle; FanucGotoSyntax then int.TryParses the final string to produce an int target.

+

+Lifecycle of the condition fields. +

  • Condition is written at Parsing time as the raw + expression text and substituted in place by + VariableEvaluatorSyntax pass-2 — the + original text is preserved at Formula.FanucGoto.Condition + when substitution succeeds.
  • ConditionEvaluated is the host-level stamp + written by FanucGotoSyntax + carrying the tri-state truthy outcome.
+
@@ -298,6 +308,46 @@ G66 modal" via the carried section. TapeBoundary line — e.g. O1234 or <O1234>. Wrapper records the surface form so a parsed block can be emitted back to the original notation.

+ +
+
+
FanucWhileDo
+

Fanuc Custom Macro B WHILE/END bounded-loop record. Stamped on the +host block by +FanucWhileDoSyntax after the +control-flow decision has been made; produced earlier by +FanucWhileDoParsingSyntax as a +parsing-stage sub-section (Parsing.FanucWhileDo) carrying the +raw captured fields.

+

+Two phrases map to the same shape, distinguished by Term: +

  • WHILE [<bool-expr>] DO <m> — loop entry. + Condition holds the expression text from inside the + brackets at parsing time; substituted to a numeric + JsonValue by + VariableEvaluatorSyntax in place. + ConditionEvaluated carries the host-level truthy + outcome at stamp time.
  • END <m> — loop terminator. Carries no condition; + unconditionally reverse-jumps to the matching WHILE block on every + execution (re-evaluation of the entry condition is the WHILE block's + responsibility).
+ +

+LoopId is the spec-named "identification number for +nesting" (the m in DO m / END m). Nested loops +must use distinct LoopIds; matching is by exact value. Same-LoopId +nesting is spec-undefined and not given special handling here. +

+

+Active loop frames are carried block-to-block via the top-level +WhileFrames JSON section (a JsonObject +keyed by LoopId-as-string, each entry recording the +BeginLineNo of the WHILE block that opened that frame). +Carried by ModalCarrySyntax as part +of its Logic tracked +keys (mutated in Evaluation, must reach Logic-stage consumers and +downstream blocks unchanged). +

@@ -498,8 +548,12 @@ Interfaces
IArcMotionDef

Arc motion data written by CircularMotionSyntax. -Stored under the Hi.Motion JSON section alongside -IMotionEventDef properties.

+Stored under the MotionEvent JSON section alongside +IMotionEventDef properties. The arc plane is read from the +modal PlaneSelect section via +GetPlaneNormalDir(JsonObject) rather than +cached on the event — same source of truth as +IsoG68RotationSyntax.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html index ca8ce9a3..df645f16 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html @@ -194,6 +194,49 @@ syntax runs.
+

Examples

+

G87 G98 — pre-populated CannedCycle, no +#Previous: so initZ = 0, F=600 → 10 mm/s, shift Q=1. +Eleven items — the longest canned-cycle item list — split into three +phases: enter shifted (OSS, shifted-init, shifted-bottom, back-to- +center, spindle-CW); cut upward (feed bottom → R); retract shifted +(OSS again, shifted-at-R, shifted-final, back-to-center, spindle- +restart). Note that the feed step goes UP (Z=-10 → Z=2), not down, +which is the defining feature of back boring: +#BeforeBuild:

+
{
+  "Parsing": { "G87": { "X": 50, "Y": 30, "Z": -10, "R": 2, "Q": 1, "F": 600 } },
+  "CannedCycle": {
+    "Term": "G87", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2, "Q": 1 }
+  }
+}
+

#AfterBuild:

+
{
+  "CannedCycle": {
+    "Term": "G87", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2, "Q": 1 }
+  },
+  "Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
+  "CompoundMotion": {
+    "Term": "G87",
+    "Items": [
+      { "SpindleOrientation": { "Angle_deg": 0 } },
+      { "ProgramXyz": { "X": 51, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 51, "Y": 30, "Z": -10 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -10 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "SpindleControl": { "Direction": "CW" } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },   "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "SpindleOrientation": { "Angle_deg": 0 } },
+      { "ProgramXyz": { "X": 51, "Y": 30, "Z": 2 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 51, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "SpindleControl": { "Direction": "CW" } }
+    ]
+  },
+  "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
+}
+ diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html index 6aef403e..27bbc45e 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html @@ -6,7 +6,7 @@ - + @@ -98,19 +98,12 @@ Enum BareG28Behavior
Assembly
HiMech.dll
-

Writes ICompoundMotionDef section for G28 reference point return. -Reads intermediate XYZ from Parsing.G28 -(written by G28Syntax) -and converts to machine coordinates via -ResolveProgramXyz(JsonNode, LazyLinkedListNode<SyntaxPiece>, ISentenceCarrier, NcDiagnosticProgress).

-

-Must be placed after LinearMotionSyntax in the syntax chain. -Removes the IMotionEventDef section written by -LinearMotionSyntax (G28 handles its own motion). -Overwrites root MachineCoordinateState -and ProgramXyz with reference position -for subsequent block lookback. -

+

Configurable handling for a G28 block with no axis specifiers +(“bare G28”) — value of BareG28. +Real Fanuc-class controllers vary: older 0i-M alarms (PS010), some +30i variants send every configured axis to home. Default to +Alarm so silent NC bugs surface; opt into +AllAxesHome per syntax instance.

@@ -172,193 +165,6 @@ the syntax falls back to Examples -

All cases hardcode a TestDeps.HomeMc with X/Y home at 0 and Z -home at 100 (typical mill where Z-home is above the table) and leave -the ProgramToMcTransform chain at identity so the final -ProgramXyz equals MachineCoordinateState. The G28 -pattern emits a 2-item CompoundMotion: item 0 is the -intermediate point in ProgramXyz, item 1 is the final position -in MachineCoordinateState. Axes not present in the G28 block -keep the previous-block MC value rather than going home.

-

-G91 G28 X0 Y0 Z0 with a #Previous: block carrying -MachineCoordinateState=(50,60,70) — all three axes go home, -so the final MC is the configured home (0,0,100): -

-#Previous: -
{ "MachineCoordinateState": { "X": 50, "Y": 60, "Z": 70 } }
-#BeforeBuild: -
{ "Parsing": { "G28": { "X": 0, "Y": 0, "Z": 0 } } }
-#AfterBuild: -
{
-  "CompoundMotion": {
-    "Term": "G28",
-    "Items": [
-      {
-        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
-        "ProgramXyz": { "X": 0, "Y": 0, "Z": 0 }
-      },
-      {
-        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
-        "MachineCoordinateState": { "X": 0, "Y": 0, "Z": 100 }
-      }
-    ]
-  },
-  "ProgramXyz": { "X": 0, "Y": 0, "Z": 100 }
-}
-G91 G28 Z0 — only Z goes to its home; X/Y inherit from the -previous block's MC. Item 0's intermediate ProgramXyz takes -X/Y from the inherited program XYZ (= previous MC under identity -transform) and Z from the literal 0 in the G28 block: -#Previous: -
{ "MachineCoordinateState": { "X": 50, "Y": 60, "Z": 70 } }
-#BeforeBuild: -
{ "Parsing": { "G28": { "Z": 0 } } }
-#AfterBuild: -
{
-  "CompoundMotion": {
-    "Term": "G28",
-    "Items": [
-      {
-        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
-        "ProgramXyz": { "X": 50, "Y": 60, "Z": 0 }
-      },
-      {
-        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
-        "MachineCoordinateState": { "X": 50, "Y": 60, "Z": 100 }
-      }
-    ]
-  },
-  "ProgramXyz": { "X": 50, "Y": 60, "Z": 100 }
-}
-No
IHomeMcConfig dep on the dependency list — the -syntax early-returns and the G28 sub-section stays in Parsing -for an upstream consumer or downstream syntax to handle: -#BeforeBuild: -
{ "Parsing": { "G28": { "X": 0, "Y": 0, "Z": 0 } } }
-#AfterBuild: -
{ "Parsing": { "G28": { "X": 0, "Y": 0, "Z": 0 } } }
-

-Rotary cases below add TestDeps.AxisConfig declaring B as -rotary and extend HomeMc with the conventional B home at 0°. -Each rotary block uses literal B = 45° so item 0's intermediate -(45°), item 1's home (0°), and #Previous: modal B (30°) are -pairwise distinct — a test that swaps any two values for any other -is caught by the assertion. The wrap pass -(McAbcCyclicPathSyntax) is a different syntax, so -these per-SUT conformance assertions show only the raw literal / -canonical-home values written by this syntax, before any cyclic -normalization runs. -

-G91 G28 B45. — pure rotary G28. Emits a 2-item -CompoundMotion whose items carry only ABC keys in MC; no XYZ -ProgramXyz and no XYZ MC because the block doesn't reference -X/Y/Z (and the conformance harness doesn't run -McXyzSyntax downstream — in the full pipeline that -syntax fills root MachineCoordinateState's XYZ from root -ProgramXyz, but with no XYZ in the block there's nothing to -fill anyway). Root MC.B holds the canonical home for modal -carry-forward; root ProgramXyz is not written: -#BeforeBuild: -
{ "Parsing": { "G28": { "B": 45 } } }
-#AfterBuild: -
{
-  "MachineCoordinateState": { "B": 0 },
-  "CompoundMotion": {
-    "Term": "G28",
-    "Items": [
-      {
-        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
-        "MachineCoordinateState": { "B": 45 }
-      },
-      {
-        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
-        "MachineCoordinateState": { "B": 0 }
-      }
-    ]
-  }
-}
-G28 X0. B45. mixed XYZ + rotary. Both axis kinds occupy the -same two items: item 0 carries the XYZ intermediate -ProgramXyz alongside the rotary literal in MC; item 1 -carries the final XYZ MC alongside the rotary home in MC. Root -MachineCoordinateState here holds only the rotary modal value -(B = 0, the home); the XYZ portion of root MC would be filled by -the downstream McXyzSyntax in the full pipeline -(out of scope for this per-SUT conformance). Root -MachineCoordinateState appears first because the -rotary-home write happens before CompoundMotion / -ProgramXyz are inserted. #Previous: carries B = 30 so -the prev rotary modal is distinct from both the literal (45) and -the home (0): -#Previous: -
{ "MachineCoordinateState": { "X": 50, "Y": 60, "Z": 70, "B": 30 } }
-#BeforeBuild: -
{ "Parsing": { "G28": { "X": 0, "B": 45 } } }
-#AfterBuild: -
{
-  "MachineCoordinateState": { "B": 0 },
-  "CompoundMotion": {
-    "Term": "G28",
-    "Items": [
-      {
-        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
-        "ProgramXyz": { "X": 0, "Y": 60, "Z": 70 },
-        "MachineCoordinateState": { "B": 45 }
-      },
-      {
-        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
-        "MachineCoordinateState": { "X": 0, "Y": 60, "Z": 70, "B": 0 }
-      }
-    ]
-  },
-  "ProgramXyz": { "X": 0, "Y": 60, "Z": 70 }
-}
-

-Bare G28 — no axis specifiers — exercises the configurable -BareG28 policy. Default Alarm -emits Coord-RefReturn--003 and consumes the G28 without -motion (the diagnostic surfaces through the -NcDiagnosticProgress sink, not the block JSON, so the -canonical #AfterBuild is just an empty object): -

-#BeforeBuild: -
{ "Parsing": { "G28": {} } }
-#AfterBuild: -
{}
-Bare G28 with BareG28 set to -AllAxesHome: the syntax synthesises a -literal at the inherited program position for every configured -linear axis and the previous modal angle for every configured -rotary axis (here X/Y/Z taken from the #Previous: MC under -the identity ProgramToMcTransform, B taken from the prev -modal). Item 0's intermediate therefore equals current (no motion -in stage 1) and item 1 sends each axis to its home: -#Previous: -
{ "MachineCoordinateState": { "X": 10, "Y": 20, "Z": 30, "B": 45 } }
-#BeforeBuild: -
{ "Parsing": { "G28": {} } }
-#AfterBuild: -
{
-  "MachineCoordinateState": { "B": 0 },
-  "CompoundMotion": {
-    "Term": "G28",
-    "Items": [
-      {
-        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
-        "ProgramXyz": { "X": 10, "Y": 20, "Z": 30 },
-        "MachineCoordinateState": { "B": 45 }
-      },
-      {
-        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
-        "MachineCoordinateState": { "X": 0, "Y": 0, "Z": 100, "B": 0 }
-      }
-    ]
-  },
-  "ProgramXyz": { "X": 0, "Y": 0, "Z": 100 }
-}
-
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html index f1b6ce04..ac248a36 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html @@ -195,6 +195,109 @@ Must be placed after Examples +

All cases below pre-populate CannedCycle as +CannedCycleResolveSyntax would have written it. There +is no #Previous:, so GetLastProgramXyz returns +Vec3d.ZeroinitZ = 0. F is supplied inside the cycle +section so ResolveFeedrate(JsonObject, JsonObject, ISentenceCarrier, NcDiagnosticProgress) +writes block-level Feedrate (G94 default, 600 mm/min +→ 10 mm/s) before items are emitted. All cases use G98 return mode +so finalZ = initZ = 0.

+

+G85 — feed to bottom, feed retract (smooth bore finish). The retract +item carries the same Feedrate_mmds as the down-stroke. Four +items: +

+#BeforeBuild: +
{
+  "Parsing": { "G85": { "X": 50, "Y": 30, "Z": -10, "R": 2, "F": 600 } },
+  "CannedCycle": {
+    "Term": "G85", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  }
+}
+#AfterBuild: +
{
+  "CannedCycle": {
+    "Term": "G85", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  },
+  "Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
+  "CompoundMotion": {
+    "Term": "G85",
+    "Items": [
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -10 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } }
+    ]
+  },
+  "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
+}
+G86 — feed to bottom, spindle stop, rapid retract, spindle restart +CW. First marker to spell out +{ "SpindleControl": { "Direction": ... } } items. The retract +item carries IsRapid: true rather than a feedrate. Six items: +#BeforeBuild: +
{
+  "Parsing": { "G86": { "X": 50, "Y": 30, "Z": -10, "R": 2, "F": 600 } },
+  "CannedCycle": {
+    "Term": "G86", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  }
+}
+#AfterBuild: +
{
+  "CannedCycle": {
+    "Term": "G86", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  },
+  "Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
+  "CompoundMotion": {
+    "Term": "G86",
+    "Items": [
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -10 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "SpindleControl": { "Direction": "STOP" } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "SpindleControl": { "Direction": "CW" } }
+    ]
+  },
+  "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
+}
+G89 with P=0.3s dwell — like G85 but inserts a +{ Dwell: { Time: 0.3 } } item at the bottom before the feed +retract. Five items: +#BeforeBuild: +
{
+  "Parsing": { "G89": { "X": 50, "Y": 30, "Z": -10, "R": 2, "F": 600, "P": 0.3 } },
+  "CannedCycle": {
+    "Term": "G89", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  }
+}
+#AfterBuild: +
{
+  "CannedCycle": {
+    "Term": "G89", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  },
+  "Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
+  "CompoundMotion": {
+    "Term": "G89",
+    "Items": [
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -10 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "Dwell": { "Time": 0.3 } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } }
+    ]
+  },
+  "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
+}
+

Remarks

G86 emits SpindleControl items for spindle stop (before diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html index 7b98d8de..32c52330 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html @@ -195,6 +195,65 @@ the individual cycle syntaxes in the chain. +

Examples

+

Direct G81 active cycle, no #Previous: (so +lastProgramXyz = Vec3d.Zero) and no +Positioning mode (so the absolute-coordinate path +runs, not G91 incremental). The resolved cycle sub-section is left +in Parsing under the cycle code for downstream cycle +syntaxes to consume; the CannedCycle section +carries the snapshot used for modal lookback. +ReturnMode defaults to G98 when +neither the current block nor a previous block declares G98/G99: +#BeforeBuild:

+
{ "Parsing": { "G81": { "X": 50, "Y": 30, "Z": -10, "R": 2 } } }
+

#AfterBuild:

+
{
+  "Parsing": { "G81": { "X": 50, "Y": 30, "Z": -10, "R": 2 } },
+  "CannedCycle": {
+    "Term": "G81",
+    "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  }
+}
+

Modal repeat: the current block carries only an X override and no +cycle code, but #Previous: has an active G81 with stored +params. MergeModalCycleSection(JsonObject, JsonObject, ISentenceCarrier, NcDiagnosticProgress) +merges X=60 (override) with Y/Z/R from stored params, removes the +consumed X from Parsing root, and writes the merged section +back to Parsing.G81. ReturnMode inherits “G98” from +the previous block's ReturnMode: +#Previous:

+
{
+  "CannedCycle": {
+    "Term": "G81",
+    "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  },
+  "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
+}
+

#BeforeBuild:

+
{ "Parsing": { "X": 60 } }
+

#AfterBuild:

+
{
+  "Parsing": { "G81": { "X": 60, "Y": 30, "Z": -10, "R": 2 } },
+  "CannedCycle": {
+    "Term": "G81",
+    "ReturnMode": "G98",
+    "Params": { "X": 60, "Y": 30, "Z": -10, "R": 2 }
+  }
+}
+

Explicit G80 cancel: standalone G80 flag with no cycle data. The +G80 flag is consumed and CannedCycle = { Term: G80 } +is written as a hard sentinel that +FindPreviousActiveCycle(LazyLinkedListNode<SyntaxPiece>, string[]) reads +to terminate modal lookback. No ReturnMode hint here (no +G98/G99 flag on the same block): +#BeforeBuild:

+
{ "Parsing": { "Flags": ["G80"] } }
+

#AfterBuild:

+
{ "CannedCycle": { "Term": "G80" } }
+ diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html index 8ec559ee..189bcb6f 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html @@ -200,7 +200,9 @@ writes a MotionEve set (as a prior ProgramXyzSyntax would have produced) and run with no #Previous:, so GetLastProgramXyz returns Vec3d.Zero. The G17 XY plane is implicit -(no PlaneSelect section means PlaneNormalDir = 2).

+(no PlaneSelect section means +GetPlaneNormalDir(JsonObject) returns 2 — the +XY-plane default — so arc math runs with Z as the perpendicular axis).

G02 with I/J — quarter arc from (0,0,0) to (10,0,0) around (5,0,0); I=5 J=0 are incremental offsets from start @@ -219,7 +221,6 @@ once empty); MotionState + MotionEvent are written: "MotionEvent": { "Form": "McArc", "ArcCenter": { "X": 5, "Y": 0, "Z": 0 }, - "PlaneNormalDir": 2, "IsCcw": false, "AdditionalCircleNum": 0 } @@ -242,7 +243,6 @@ the same way: "MotionEvent": { "Form": "McArc", "ArcCenter": { "X": 5, "Y": 0, "Z": 0 }, - "PlaneNormalDir": 2, "IsCcw": false, "AdditionalCircleNum": 0 } @@ -277,14 +277,13 @@ sqrt drift on this branch: "MotionEvent": { "Form": "McArc", "ArcCenter": { "X": 5, "Y": 0, "Z": 0 }, - "PlaneNormalDir": 2, "IsCcw": false, "AdditionalCircleNum": 0 } } R-format non-trivial: G02 90° arc from (0,0,0) to (10,10,0) with R=10. The center comes from the cross-product -+ sqrt + normalize path inside ResolveCenterFromR(Vec3d, Vec3d, int, bool, double), ++ sqrt + normalize path inside ResolveCenterFromSignedRadius(Vec3d, Vec3d, int, bool, double), but for this particular axis-aligned chord the rounding errors cancel and the center lands at exactly (10, 0, 0) — i.e. no ULP drift here, in contrast to e.g. @@ -301,7 +300,6 @@ no ULP drift here, in contrast to e.g. "MotionEvent": { "Form": "McArc", "ArcCenter": { "X": 10, "Y": 0, "Z": 0 }, - "PlaneNormalDir": 2, "IsCcw": false, "AdditionalCircleNum": 0 } @@ -322,16 +320,15 @@ differentiating output; arc-center math is unchanged: "MotionEvent": { "Form": "McArc", "ArcCenter": { "X": 5, "Y": 0, "Z": 0 }, - "PlaneNormalDir": 2, "IsCcw": true, "AdditionalCircleNum": 0 } } Full circle G02 — start == end (both (0,0,0)), I=5 J=0 -places center off-start at (5,0,0). The -isFullCircle guard (chord length < 1e-6 and -center-to-start > 1e-6) flips AdditionalCircleNum to 1 -so a downstream motion semantic knows to draw the closed loop: +places center off-start at (5,0,0). Plane-restricted +closure (IsClosedOnPlane(Vec3d, Vec3d, int, double)) +flips AdditionalCircleNum to 1 so a downstream motion +semantic knows to draw the closed loop: #BeforeBuild:

{
   "Parsing": { "Flags": ["G02"], "I": 5, "J": 0 },
@@ -344,11 +341,54 @@ so a downstream motion semantic knows to draw the closed loop:
   "MotionEvent": {
     "Form": "McArc",
     "ArcCenter": { "X": 5, "Y": 0, "Z": 0 },
-    "PlaneNormalDir": 2,
     "IsCcw": false,
     "AdditionalCircleNum": 1
   }
 }
+Fanuc L parameter (helix turn count, 1-based) — L3 on a +start==end closed loop means three total turns, so +AdditionalCircleNum = L − 1 = 2. Matches legacy +NcProc.cs:442; the L parameter is consumed alongside I/J/K/R: +#BeforeBuild: +
{
+  "Parsing": { "Flags": ["G02"], "I": 5, "J": 0, "L": 3 },
+  "ProgramXyz": { "X": 0, "Y": 0, "Z": 0 }
+}
+#AfterBuild: +
{
+  "ProgramXyz": { "X": 0, "Y": 0, "Z": 0 },
+  "MotionState": { "Term": "G02" },
+  "MotionEvent": {
+    "Form": "McArc",
+    "ArcCenter": { "X": 5, "Y": 0, "Z": 0 },
+    "IsCcw": false,
+    "AdditionalCircleNum": 2
+  }
+}
+K-as-pitch helix on G17 (XY plane) — when the plane-normal axis +letter (K for G17, J for G18, I for G19) is present on an IJK-format +arc, it is the per-turn axial pitch, not a center offset. Here +K = −3 mm/turn over ΔZ = −9 mm gives +AdditionalCircleNum = floor(−9 / −3) = 3. The center stays +on the begin-plane (Z = 0) — ResolveCenterFromIjk zeros the +plane-normal component before adding to begin. Matches legacy +NcProc.cs:458: +#BeforeBuild: +
{
+  "Parsing": { "Flags": ["G02"], "I": 5, "J": 0, "K": -3 },
+  "ProgramXyz": { "X": 0, "Y": 0, "Z": -9 }
+}
+#AfterBuild: +
{
+  "ProgramXyz": { "X": 0, "Y": 0, "Z": -9 },
+  "MotionState": { "Term": "G02" },
+  "MotionEvent": {
+    "Form": "McArc",
+    "ArcCenter": { "X": 5, "Y": 0, "Z": 0 },
+    "IsCcw": false,
+    "AdditionalCircleNum": 3
+  }
+}
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html index a8a4b20e..0c7203d4 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html @@ -191,6 +191,80 @@ Must be placed after Examples +

All cases below pre-populate CannedCycle as +CannedCycleResolveSyntax would have written it (term, +return mode, snapshot params) and leave the resolved cycle +sub-section in Parsing for this syntax to consume. There is +no #Previous:, so GetLastProgramXyz returns +Vec3d.ZeroinitZ = 0. F is supplied inside the +cycle section so ResolveFeedrate(JsonObject, JsonObject, ISentenceCarrier, NcDiagnosticProgress) +writes the block-level Feedrate (G94 default, mm/min +→ mm/s) before the items are emitted.

+

+G81 G98 — rapid to init (z=0), rapid to R, feed to bottom Z=-10 at +F=600 mm/min → 10 mm/s, rapid back to init Z=0. Four items. The +resolved cycle sub-section is removed by +CleanupParsing(JsonObject, JsonObject, string); the empty +Parsing drops off through CleanupParsing(JsonObject): +

+#BeforeBuild: +
{
+  "Parsing": { "G81": { "X": 50, "Y": 30, "Z": -10, "R": 2, "F": 600 } },
+  "CannedCycle": {
+    "Term": "G81", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  }
+}
+#AfterBuild: +
{
+  "CannedCycle": {
+    "Term": "G81", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  },
+  "Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
+  "CompoundMotion": {
+    "Term": "G81",
+    "Items": [
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -10 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } }
+    ]
+  },
+  "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
+}
+G82 with dwell P=0.5s — inserts a Dwell item between +the feed-to-bottom rapid and the final retract, otherwise identical +to G81. Five items total: +#BeforeBuild: +
{
+  "Parsing": { "G82": { "X": 50, "Y": 30, "Z": -10, "R": 2, "F": 600, "P": 0.5 } },
+  "CannedCycle": {
+    "Term": "G82", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  }
+}
+#AfterBuild: +
{
+  "CannedCycle": {
+    "Term": "G82", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  },
+  "Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
+  "CompoundMotion": {
+    "Term": "G82",
+    "Items": [
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -10 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "Dwell": { "Time": 0.5 } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } }
+    ]
+  },
+  "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
+}
+

Remarks

G85 (feed retract) and G86 (spindle-stop retract) have different diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html index d5456ac4..95c96daa 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html @@ -193,6 +193,48 @@ syntax runs. +

Examples

+

G76 G98 — pre-populated CannedCycle (as +CannedCycleResolveSyntax would have written), no +#Previous: so initZ = 0, F=600 → 10 mm/s, shift Q=1 +(lateral +X clearance for retract). First marker to spell out +{ “SpindleOrientation”: { “Angle_deg”: 0 } } — the OSS +item produced by +CreateSpindleOrientationItem(double). +Eight items: init, R, feed-down, OSS, shifted-at-bottom (X=51), +shifted-retract (X=51, Z=0), back-to-center (X=50, Z=0), +spindle-restart CW: +#BeforeBuild:

+
{
+  "Parsing": { "G76": { "X": 50, "Y": 30, "Z": -10, "R": 2, "Q": 1, "F": 600 } },
+  "CannedCycle": {
+    "Term": "G76", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2, "Q": 1 }
+  }
+}
+

#AfterBuild:

+
{
+  "CannedCycle": {
+    "Term": "G76", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2, "Q": 1 }
+  },
+  "Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
+  "CompoundMotion": {
+    "Term": "G76",
+    "Items": [
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -10 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "SpindleOrientation": { "Angle_deg": 0 } },
+      { "ProgramXyz": { "X": 51, "Y": 30, "Z": -10 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 51, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "SpindleControl": { "Direction": "CW" } }
+    ]
+  },
+  "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
+}
+ diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html index 5253922c..f684d272 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html @@ -207,6 +207,97 @@ ToolHeightCompensation entry when RTCP is active) and before +

Examples

+

Explicit G43.4 H1 activation with no IMachineKinematics +and no IToolOffsetConfig in the dependency list — +exercises the activate path on its identity-matrix corner. The +section is written with Offset_mm = 0 (no offset table +→ rawHeight = 0); the height-mat falls back to the +no-kinematics branch new Mat4d { Trans = UnitZ * 0 } which +collapses to identity; abcChanged is false (no current MC, +no previous block) so the entry is tagged KindStatic. +#BeforeBuild:

+
{ "Parsing": { "G43.4": { "H": "1" } } }
+

#AfterBuild:

+
{
+  "ToolHeightCompensation": { "Offset_mm": 0, "Term": "G43.4", "OffsetId": 1 },
+  "ProgramToMcTransform": [
+    {
+      "Source": "ToolHeightCompensation",
+      "Kind": "Static",
+      "Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]
+    }
+  ]
+}
+

G43.4 H1 with ToolOffset(1 → 10 mm), a real +XyzabcSolver (table-A / head-B +5-axis), and current block already carrying all three rotary axes +in MachineCoordinateState (A=0, B=30, C=0 — as a prior +McAbcSyntax in the chain would have written). The +height-mat goes through +MakeToolHeightMat(IMachineKinematics, Vec3d, double) which probes +kinematics.McToPn(Zero, abc).Normal at abc = (0, π/6, 0) +to get the tool orientation, then scales by 10 mm. With no +previous block, abcChanged is false → entry stays Static. +Note: all three ABC must be present (or fall back to the per-axis +modal lookback path); a partial section with only B set leaves A/C +as NaN and the resulting Mat4d.Trans would serialise as +non-finite numbers. +#BeforeBuild:

+
{
+  "Parsing": { "G43.4": { "H": "1" } },
+  "MachineCoordinateState": { "A": 0, "B": 30, "C": 0 }
+}
+

#AfterBuild:

+
{
+  "MachineCoordinateState": { "A": 0, "B": 30, "C": 0 },
+  "ToolHeightCompensation": { "Offset_mm": 10, "Term": "G43.4", "OffsetId": 1 },
+  "ProgramToMcTransform": [
+    {
+      "Source": "ToolHeightCompensation",
+      "Kind": "Static",
+      "Mat4d": [
+        1, 0, 0, 0,
+        0, 1, 0, 0,
+        0, 0, 1, 0,
+        4.999999999999999, 0, 8.660254037844387, 1
+      ]
+    }
+  ]
+}
+

Same setup plus a #Previous: block with +MachineCoordinateState.B = 0 + XYZ origin — +DidAbcChange(LazyLinkedListNode<SyntaxPiece>, IMachineAxisConfig) compares the rotary deltas and finds B +changed across the block, so the entry is tagged +KindDynamic (signalling that the +tool orientation varies along the contour): +#Previous:

+
{
+  "MachineCoordinateState": { "X": 0, "Y": 0, "Z": 0, "A": 0, "B": 0, "C": 0 }
+}
+

#BeforeBuild:

+
{
+  "Parsing": { "G43.4": { "H": "1" } },
+  "MachineCoordinateState": { "A": 0, "B": 30, "C": 0 }
+}
+

#AfterBuild:

+
{
+  "MachineCoordinateState": { "A": 0, "B": 30, "C": 0 },
+  "ToolHeightCompensation": { "Offset_mm": 10, "Term": "G43.4", "OffsetId": 1 },
+  "ProgramToMcTransform": [
+    {
+      "Source": "ToolHeightCompensation",
+      "Kind": "Dynamic",
+      "Mat4d": [
+        1, 0, 0, 0,
+        0, 1, 0, 0,
+        0, 0, 1, 0,
+        4.999999999999999, 0, 8.660254037844387, 1
+      ]
+    }
+  ]
+}
+ diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html index 625a417e..461b7306 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html @@ -194,6 +194,81 @@ Motion is handled by Examples +

No-kinematics dep-guard early-return: standalone G53.1 with +no IMachineKinematics dep in the list — the syntax +detects the flag, finds no kinematics, and silently consumes the +flag via ConsumeFlag. Empty Parsing is then removed +by CleanupParsing(JsonObject), so the post-Build block +is empty: +#BeforeBuild:

+
{ "Parsing": { "Flags": ["G53.1"] } }
+

#AfterBuild:

+
{}
+

IK happy path — G53.1 with active G68.2 tilt on +#Previous:, real XyzabcSolver +(table-A / head-B 5-axis), and a +TestDeps.AxisConfig(A=Rotary, B=Rotary) dep. The syntax +reads the previous block's tilt Mat4d, solves +OrientationToMcAbc(tiltMat.AxialNormal) for the rotary ABC, +converts radians → degrees, writes MachineCoordinateState +with both rotary axes (XYZ inherited from prevMc = Vec3d.Zero +when no previous MC exists), and stamps ProgramXyz: +#Previous:

+
{
+  "TiltTransform": { "Term": "G68.2", "X": 0, "Y": 0, "Z": 0, "I": 0, "J": 30, "K": 0 },
+  "ProgramToMcTransform": [
+    {
+      "Source": "TiltTransform",
+      "Kind": "Static",
+      "Mat4d": [
+        1, 0, 0, 0,
+        0, 0.8660254037844388, 0.5, 0,
+        0, -0.5, 0.8660254037844388, 0,
+        0, 0, 0, 1
+      ]
+    }
+  ]
+}
+

#BeforeBuild:

+
{ "Parsing": { "Flags": ["G53.1"] } }
+

#AfterBuild:

+
{
+  "MachineCoordinateState": { "X": 0, "Y": 0, "Z": 0, "A": 29.942194198514308, "B": 0 },
+  "ProgramXyz": { "X": 0, "Y": 0, "Z": 0 }
+}
+

Explicit ABC override — G53.1 A0 B45 on top of the same +G68.2 tilt + kinematics + axis-config set up. The IK still solves, +but the explicit A=0 and B=45 overrides what IK +returned for those axes; C stays at the IK-solved value (C-axis +is not present in the table-A/head-B layout, so the rotaryAxes +loop only writes A and B): +#Previous:

+
{
+  "TiltTransform": { "Term": "G68.2", "X": 0, "Y": 0, "Z": 0, "I": 0, "J": 30, "K": 0 },
+  "ProgramToMcTransform": [
+    {
+      "Source": "TiltTransform",
+      "Kind": "Static",
+      "Mat4d": [
+        1, 0, 0, 0,
+        0, 0.8660254037844388, 0.5, 0,
+        0, -0.5, 0.8660254037844388, 0,
+        0, 0, 0, 1
+      ]
+    }
+  ]
+}
+

#BeforeBuild:

+
{
+  "Parsing": { "Flags": ["G53.1"], "A": 0, "B": 45 }
+}
+

#AfterBuild:

+
{
+  "MachineCoordinateState": { "X": 0, "Y": 0, "Z": 0, "A": 0, "B": 45 },
+  "ProgramXyz": { "X": 0, "Y": 0, "Z": 0 }
+}
+

Remarks

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html index 269ab137..8754a7d6 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html @@ -193,6 +193,51 @@ Must be placed after Examples +

G73 G98 two-stroke chip-break — pre-populated CannedCycle +(as CannedCycleResolveSyntax would have written), no +#Previous: so initZ = 0, F=600 in the cycle section +translated to 10 mm/s. Geometry: R=2, Z=-18, Q=10 → +totalFeedLength = 20strokeCount = 2, no remainder. +FallbackConfig default +PeckRetractionDistance_mm = 5 sets the partial retract amount +d. Per stroke, the chip-break rapid retracts to +strokeZ + d (a small jump, in contrast to +PeckDrillingCycleSyntax which rapids fully back to R). +G98 final rapid is always emitted (no finalZ != rPoint guard +here, unlike the G83 path). Seven items: init, R, feed-stroke1 +(z=-8), rapid-to-strokeZ+d (z=-3), feed-stroke2 (z=-18), +rapid-to-strokeZ+d (z=-13), final-init (z=0): +#BeforeBuild:

+
{
+  "Parsing": { "G73": { "X": 50, "Y": 30, "Z": -18, "R": 2, "Q": 10, "F": 600 } },
+  "CannedCycle": {
+    "Term": "G73", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -18, "R": 2, "Q": 10 }
+  }
+}
+

#AfterBuild:

+
{
+  "CannedCycle": {
+    "Term": "G73", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -18, "R": 2, "Q": 10 }
+  },
+  "Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
+  "CompoundMotion": {
+    "Term": "G73",
+    "Items": [
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -8 },  "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -3 },  "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -18 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -13 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } }
+    ]
+  },
+  "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
+}
+ diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html index 17111296..0c9706a9 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html @@ -187,6 +187,116 @@ Heidenhain equivalent: PLANE SPATIAL (separate syntax). +

Examples

+

G69 cancel via TryHandleG69(JsonObject, JsonObject) — the +kinematics-free short-circuit path that writes the identity tilt.

+

+Standalone G69 — the flag is consumed, +TiltTransform is written with Term: "G69", +and an identity Mat4d entry is added to +ProgramToMcTransform so any +previously composed tilt rotation is reset: +

+#BeforeBuild: +
{ "Parsing": { "Flags": ["G69"] } }
+#AfterBuild: +
{
+  "TiltTransform": { "Term": "G69" },
+  "ProgramToMcTransform": [
+    {
+      "Source": "TiltTransform",
+      "Kind": "Static",
+      "Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]
+    }
+  ]
+}
+G68.2 with IJK = (0, 30, 0) and no kinematics dep — exercises the +pure ZXZ Fanuc euler math +(Rz(K=0) * Rx(J=30°) * Rz(I=0) * Translate(0) = Rx(30°)) +without any IK refinement. The TiltTransform section +retains the G68.2 ctor params for debug; the chain entry's Mat4d +is the rotation matrix: +#BeforeBuild: +
{ "Parsing": { "G68.2": { "X": 0, "Y": 0, "Z": 0, "I": 0, "J": 30, "K": 0 } } }
+#AfterBuild: +
{
+  "TiltTransform": { "Term": "G68.2", "X": 0, "Y": 0, "Z": 0, "I": 0, "J": 30, "K": 0 },
+  "ProgramToMcTransform": [
+    {
+      "Source": "TiltTransform",
+      "Kind": "Static",
+      "Mat4d": [
+        1, 0, 0, 0,
+        0, 0.8660254037844387, 0.49999999999999994, 0,
+        0, -0.49999999999999994, 0.8660254037844387, 0,
+        0, 0, 0, 1
+      ]
+    }
+  ]
+}
+Same G68.2 IJK with a real +XyzabcSolver (table-A / head-B +5-axis layout) — hasPostAbc is false but the kinematics +solves OrientationToMcAbc(tiltByIjk) successfully, so the +refinement path +ijkAbcOrientation * orientationDelta * Translate(origin) +runs. The resulting Mat4d preserves the IJK orientation but +aligns it with the kinematic ABC solution: +#BeforeBuild: +
{ "Parsing": { "G68.2": { "X": 0, "Y": 0, "Z": 0, "I": 0, "J": 30, "K": 0 } } }
+#AfterBuild: +
{
+  "TiltTransform": { "Term": "G68.2", "X": 0, "Y": 0, "Z": 0, "I": 0, "J": 30, "K": 0 },
+  "ProgramToMcTransform": [
+    {
+      "Source": "TiltTransform",
+      "Kind": "Static",
+      "Mat4d": [
+        1, 0, 0, 0,
+        0, 0.8660254037844388, 0.5, 0,
+        0, -0.5, 0.8660254037844388, 0,
+        0, 0, 0, 1
+      ]
+    }
+  ]
+}
+G68.2 IJK with explicit post-processor rotary hints A=0, B=30 — +hasPostAbc is true, kinematics first solves +tiltByIjk → ijkMcAbc, then overrides A/B with the explicit +values to form postMcAbc; the final Mat4d combines +postAbcOrient * orientationDeltaIjkToPost * Translate(origin). +The TiltTransform section gains the consumed +A and B entries: +#BeforeBuild: +
{
+  "Parsing": {
+    "G68.2": { "X": 0, "Y": 0, "Z": 0, "I": 0, "J": 30, "K": 0 },
+    "A": 0,
+    "B": 30
+  }
+}
+#AfterBuild: +
{
+  "TiltTransform": {
+    "Term": "G68.2",
+    "X": 0, "Y": 0, "Z": 0,
+    "I": 0, "J": 30, "K": 0,
+    "A": 0, "B": 30
+  },
+  "ProgramToMcTransform": [
+    {
+      "Source": "TiltTransform",
+      "Kind": "Static",
+      "Mat4d": [
+        0.8660254037844387, 0.0002477343364339079, -0.4999999386276948, 0,
+        0, 0.9999998772553897, 0.0004954686728678159, 0,
+        0.49999999999999994, -0.00042908845748289027, 0.8660252974844881, 0,
+        0, 0, 0, 1
+      ]
+    }
+  ]
+}
+

Remarks

G68.2 optionally uses IMachineKinematics dependency for IK refinement. diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html index 86ff7868..0f30f59b 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html @@ -197,6 +197,80 @@ Must be placed after Examples +

Both cases below pre-populate CannedCycle as +CannedCycleResolveSyntax would have written it. There +is no #Previous:, so GetLastProgramXyz returns +Vec3d.ZeroinitZ = 0. A +FallbackConfig dep with the +default PeckRetractionDistance_mm = 5 is injected via +BuildAndDump(..., deps:). Cycle parameters are chosen so +totalFeedLength = R − bottomZ = 10 and Q = 10 → +exactly one stroke, no remainder; the items list stays minimal.

+

+G83 G98 — rapid to init (z=0), rapid to R=2, feed to bottom Z=-8 at +F=600 mm/min → 10 mm/s, rapid back to R=2, then a final rapid to +init Z=0 (G98). Five items: +

+#BeforeBuild: +
{
+  "Parsing": { "G83": { "X": 50, "Y": 30, "Z": -8, "R": 2, "Q": 10, "F": 600 } },
+  "CannedCycle": {
+    "Term": "G83", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -8, "R": 2, "Q": 10 }
+  }
+}
+#AfterBuild: +
{
+  "CannedCycle": {
+    "Term": "G83", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -8, "R": 2, "Q": 10 }
+  },
+  "Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
+  "CompoundMotion": {
+    "Term": "G83",
+    "Items": [
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },  "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },  "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -8 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },  "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },  "MotionEvent": { "Form": "McLinear", "IsRapid": true } }
+    ]
+  },
+  "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
+}
+G83 G99 — same cycle but the return mode is R-point. Since the +retract-to-R rapid already lands at z = R, the +finalZ != rPoint guard skips the extra final-rapid item. +Four items, and the block's ProgramXyz lookback anchor lands +at R-point: +#BeforeBuild: +
{
+  "Parsing": { "G83": { "X": 50, "Y": 30, "Z": -8, "R": 2, "Q": 10, "F": 600 } },
+  "CannedCycle": {
+    "Term": "G83", "ReturnMode": "G99",
+    "Params": { "X": 50, "Y": 30, "Z": -8, "R": 2, "Q": 10 }
+  }
+}
+#AfterBuild: +
{
+  "CannedCycle": {
+    "Term": "G83", "ReturnMode": "G99",
+    "Params": { "X": 50, "Y": 30, "Z": -8, "R": 2, "Q": 10 }
+  },
+  "Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
+  "CompoundMotion": {
+    "Term": "G83",
+    "Items": [
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },  "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },  "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -8 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },  "MotionEvent": { "Form": "McLinear", "IsRapid": true } }
+    ]
+  },
+  "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 }
+}
+

Remarks

G73 (high-speed peck) retracts only a small distance instead of fully diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html index 074b6bfb..89bf3f97 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html @@ -209,6 +209,88 @@ Silently no-ops when Examples +

Identity probe — a TestDeps.Kinematics stub that +makes McToPn pass through XYZ and return a fixed UnitZ +normal, so MakePivotTransformMat(IMachineKinematics, Vec3d)'s +four-basis probing returns identity K(0) and K(abc), +and the product K(0) * K(abc).GetInverse() collapses to +identity. With no current or previous MachineCoordinateState, +endpoint ABC defaults to (0,0,0); no dynamic entries exist +yet so the entry is tagged KindStatic. +Case for the dep-guard contract only; the real kinematics paths are +covered by the cases below. +#BeforeBuild:

+
{}
+

#AfterBuild:

+
{
+  "ProgramToMcTransform": [
+    {
+      "Source": "PivotTransform",
+      "Kind": "Static",
+      "Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]
+    }
+  ]
+}
+

Real XyzabcSolver (table-A / head-B 5-axis layout +[O][Z][A][w];[O][Y][X][B][S][t]) with current block declaring +MachineCoordinateState.A = 45 — endpoint ABC = +(π/4, 0, 0) radians. Table-side A rotation moves the tool +position in the workpiece frame, so +MakePivotTransformMat's four-basis probe returns a +non-identity rigid matrix. The exact Mat4d below was captured from +BuildAndDump's actual output (per gotcha #2: rad/deg trig +drift, always dump first): +#BeforeBuild:

+
{ "MachineCoordinateState": { "A": 45 } }
+

#AfterBuild:

+
{
+  "MachineCoordinateState": { "A": 45 },
+  "ProgramToMcTransform": [
+    {
+      "Source": "PivotTransform",
+      "Kind": "Static",
+      "Mat4d": [
+        1, 0, 0, 0,
+        0, 0.7071067811865475, -0.7071067811865475, 0,
+        0, 0.7071067811865475, 0.7071067811865475, 0,
+        0, 0, 0, 1
+      ]
+    }
+  ]
+}
+

Stub TestDeps.Kinematics with a pre-existing Dynamic +chain entry on the current block (as G43p4RtcpSyntax +would have written when RTCP is dynamic). HasDynamicEntry(JsonObject) +returns true so the PivotTransform entry is tagged +KindDynamic even though the math +itself collapses to identity: +#BeforeBuild:

+
{
+  "ProgramToMcTransform": [
+    {
+      "Source": "ToolHeightCompensation",
+      "Kind": "Dynamic",
+      "Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]
+    }
+  ]
+}
+

#AfterBuild:

+
{
+  "ProgramToMcTransform": [
+    {
+      "Source": "ToolHeightCompensation",
+      "Kind": "Dynamic",
+      "Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]
+    },
+    {
+      "Source": "PivotTransform",
+      "Kind": "Dynamic",
+      "Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]
+    }
+  ]
+}
+ diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html index 1e7e85a3..052deef7 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html @@ -6,7 +6,7 @@ - + @@ -97,10 +97,19 @@ Class ReferenceReturnSyntax
Assembly
HiMech.dll
-

G28 reference point return syntax. Behaviour is documented in detail -on the example attached to BareG28Behavior; this class -is the ISituNcSyntax implementation that the -BareG28 property configures.

+

Writes ICompoundMotionDef section for G28 reference point return. +Reads intermediate XYZ from Parsing.G28 +(written by G28Syntax) +and converts to machine coordinates via +ResolveProgramXyz(JsonNode, LazyLinkedListNode<SyntaxPiece>, ISentenceCarrier, NcDiagnosticProgress).

+

+Must be placed after LinearMotionSyntax in the syntax chain. +Removes the IMotionEventDef section written by +LinearMotionSyntax (G28 handles its own motion). +Overwrites root MachineCoordinateState +and ProgramXyz with reference position +for subsequent block lookback. +

@@ -182,6 +191,193 @@ is the ISituNcSyn +

Examples

+

All cases hardcode a TestDeps.HomeMc with X/Y home at 0 and Z +home at 100 (typical mill where Z-home is above the table) and leave +the ProgramToMcTransform chain at identity so the final +ProgramXyz equals MachineCoordinateState. The G28 +pattern emits a 2-item CompoundMotion: item 0 is the +intermediate point in ProgramXyz, item 1 is the final position +in MachineCoordinateState. Axes not present in the G28 block +keep the previous-block MC value rather than going home.

+

+G91 G28 X0 Y0 Z0 with a #Previous: block carrying +MachineCoordinateState=(50,60,70) — all three axes go home, +so the final MC is the configured home (0,0,100): +

+#Previous: +
{ "MachineCoordinateState": { "X": 50, "Y": 60, "Z": 70 } }
+#BeforeBuild: +
{ "Parsing": { "G28": { "X": 0, "Y": 0, "Z": 0 } } }
+#AfterBuild: +
{
+  "CompoundMotion": {
+    "Term": "G28",
+    "Items": [
+      {
+        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
+        "ProgramXyz": { "X": 0, "Y": 0, "Z": 0 }
+      },
+      {
+        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
+        "MachineCoordinateState": { "X": 0, "Y": 0, "Z": 100 }
+      }
+    ]
+  },
+  "ProgramXyz": { "X": 0, "Y": 0, "Z": 100 }
+}
+G91 G28 Z0 — only Z goes to its home; X/Y inherit from the +previous block's MC. Item 0's intermediate ProgramXyz takes +X/Y from the inherited program XYZ (= previous MC under identity +transform) and Z from the literal 0 in the G28 block: +#Previous: +
{ "MachineCoordinateState": { "X": 50, "Y": 60, "Z": 70 } }
+#BeforeBuild: +
{ "Parsing": { "G28": { "Z": 0 } } }
+#AfterBuild: +
{
+  "CompoundMotion": {
+    "Term": "G28",
+    "Items": [
+      {
+        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
+        "ProgramXyz": { "X": 50, "Y": 60, "Z": 0 }
+      },
+      {
+        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
+        "MachineCoordinateState": { "X": 50, "Y": 60, "Z": 100 }
+      }
+    ]
+  },
+  "ProgramXyz": { "X": 50, "Y": 60, "Z": 100 }
+}
+No
IHomeMcConfig dep on the dependency list — the +syntax early-returns and the G28 sub-section stays in Parsing +for an upstream consumer or downstream syntax to handle: +#BeforeBuild: +
{ "Parsing": { "G28": { "X": 0, "Y": 0, "Z": 0 } } }
+#AfterBuild: +
{ "Parsing": { "G28": { "X": 0, "Y": 0, "Z": 0 } } }
+

+Rotary cases below add TestDeps.AxisConfig declaring B as +rotary and extend HomeMc with the conventional B home at 0°. +Each rotary block uses literal B = 45° so item 0's intermediate +(45°), item 1's home (0°), and #Previous: modal B (30°) are +pairwise distinct — a test that swaps any two values for any other +is caught by the assertion. The wrap pass +(McAbcCyclicPathSyntax) is a different syntax, so +these per-SUT conformance assertions show only the raw literal / +canonical-home values written by this syntax, before any cyclic +normalization runs. +

+G91 G28 B45. — pure rotary G28. Emits a 2-item +CompoundMotion whose items carry only ABC keys in MC; no XYZ +ProgramXyz and no XYZ MC because the block doesn't reference +X/Y/Z (and the conformance harness doesn't run +McXyzSyntax downstream — in the full pipeline that +syntax fills root MachineCoordinateState's XYZ from root +ProgramXyz, but with no XYZ in the block there's nothing to +fill anyway). Root MC.B holds the canonical home for modal +carry-forward; root ProgramXyz is not written: +#BeforeBuild: +
{ "Parsing": { "G28": { "B": 45 } } }
+#AfterBuild: +
{
+  "MachineCoordinateState": { "B": 0 },
+  "CompoundMotion": {
+    "Term": "G28",
+    "Items": [
+      {
+        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
+        "MachineCoordinateState": { "B": 45 }
+      },
+      {
+        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
+        "MachineCoordinateState": { "B": 0 }
+      }
+    ]
+  }
+}
+G28 X0. B45. mixed XYZ + rotary. Both axis kinds occupy the +same two items: item 0 carries the XYZ intermediate +ProgramXyz alongside the rotary literal in MC; item 1 +carries the final XYZ MC alongside the rotary home in MC. Root +MachineCoordinateState here holds only the rotary modal value +(B = 0, the home); the XYZ portion of root MC would be filled by +the downstream McXyzSyntax in the full pipeline +(out of scope for this per-SUT conformance). Root +MachineCoordinateState appears first because the +rotary-home write happens before CompoundMotion / +ProgramXyz are inserted. #Previous: carries B = 30 so +the prev rotary modal is distinct from both the literal (45) and +the home (0): +#Previous: +
{ "MachineCoordinateState": { "X": 50, "Y": 60, "Z": 70, "B": 30 } }
+#BeforeBuild: +
{ "Parsing": { "G28": { "X": 0, "B": 45 } } }
+#AfterBuild: +
{
+  "MachineCoordinateState": { "B": 0 },
+  "CompoundMotion": {
+    "Term": "G28",
+    "Items": [
+      {
+        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
+        "ProgramXyz": { "X": 0, "Y": 60, "Z": 70 },
+        "MachineCoordinateState": { "B": 45 }
+      },
+      {
+        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
+        "MachineCoordinateState": { "X": 0, "Y": 60, "Z": 70, "B": 0 }
+      }
+    ]
+  },
+  "ProgramXyz": { "X": 0, "Y": 60, "Z": 70 }
+}
+

+Bare G28 — no axis specifiers — exercises the configurable +BareG28 policy. Default Alarm +emits Coord-RefReturn--003 and consumes the G28 without +motion (the diagnostic surfaces through the +NcDiagnosticProgress sink, not the block JSON, so the +canonical #AfterBuild is just an empty object): +

+#BeforeBuild: +
{ "Parsing": { "G28": {} } }
+#AfterBuild: +
{}
+Bare G28 with BareG28 set to +AllAxesHome: the syntax synthesises a +literal at the inherited program position for every configured +linear axis and the previous modal angle for every configured +rotary axis (here X/Y/Z taken from the #Previous: MC under +the identity ProgramToMcTransform, B taken from the prev +modal). Item 0's intermediate therefore equals current (no motion +in stage 1) and item 1 sends each axis to its home: +#Previous: +
{ "MachineCoordinateState": { "X": 10, "Y": 20, "Z": 30, "B": 45 } }
+#BeforeBuild: +
{ "Parsing": { "G28": {} } }
+#AfterBuild: +
{
+  "MachineCoordinateState": { "B": 0 },
+  "CompoundMotion": {
+    "Term": "G28",
+    "Items": [
+      {
+        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
+        "ProgramXyz": { "X": 10, "Y": 20, "Z": 30 },
+        "MachineCoordinateState": { "B": 45 }
+      },
+      {
+        "MotionEvent": { "Form": "McLinear", "IsRapid": true },
+        "MachineCoordinateState": { "X": 0, "Y": 0, "Z": 100, "B": 0 }
+      }
+    ]
+  },
+  "ProgramXyz": { "X": 0, "Y": 0, "Z": 100 }
+}
+ diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html index 05974111..e327a0a3 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html @@ -195,6 +195,78 @@ Must be placed after Examples +

Both cases G98 — pre-populated CannedCycle, no +#Previous: so initZ = 0, F=600 → 10 mm/s. Six items +each: init, R, feed-down, spindle reverse, feed retract, spindle +restore. The retract is a feed (not a rapid) because the tap is +physically threaded into the workpiece and a rapid would strip the +threads.

+

+G84 right-hand — forward CW (M03), reverse CCW (M04) at the bottom +to back out, then restore CW after retract: +

+#BeforeBuild: +
{
+  "Parsing": { "G84": { "X": 50, "Y": 30, "Z": -10, "R": 2, "F": 600 } },
+  "CannedCycle": {
+    "Term": "G84", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  }
+}
+#AfterBuild: +
{
+  "CannedCycle": {
+    "Term": "G84", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  },
+  "Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
+  "CompoundMotion": {
+    "Term": "G84",
+    "Items": [
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -10 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "SpindleControl": { "Direction": "CCW" } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "SpindleControl": { "Direction": "CW" } }
+    ]
+  },
+  "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
+}
+G74 left-hand — same shape but the two spindle items are flipped: +forward CCW (M04), reverse CW (M03) at the bottom, restore CCW +after retract. Tests that the syntax dispatches on +cycleCode == G84 to pick the right pair: +#BeforeBuild: +
{
+  "Parsing": { "G74": { "X": 50, "Y": 30, "Z": -10, "R": 2, "F": 600 } },
+  "CannedCycle": {
+    "Term": "G74", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  }
+}
+#AfterBuild: +
{
+  "CannedCycle": {
+    "Term": "G74", "ReturnMode": "G98",
+    "Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
+  },
+  "Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
+  "CompoundMotion": {
+    "Term": "G74",
+    "Items": [
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 },   "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": -10 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "SpindleControl": { "Direction": "CW" } },
+      { "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },   "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
+      { "SpindleControl": { "Direction": "CCW" } }
+    ]
+  },
+  "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
+}
+ diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.html index 8bacc90d..cac1dc54 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.LogicSyntaxs.html @@ -798,10 +798,19 @@ MC vs predecessor lookback, picks strategy from
ReferenceReturnSyntax
-

G28 reference point return syntax. Behaviour is documented in detail -on the example attached to BareG28Behavior; this class -is the ISituNcSyntax implementation that the -BareG28 property configures.

+

Writes ICompoundMotionDef section for G28 reference point return. +Reads intermediate XYZ from Parsing.G28 +(written by G28Syntax) +and converts to machine coordinates via +ResolveProgramXyz(JsonNode, LazyLinkedListNode<SyntaxPiece>, ISentenceCarrier, NcDiagnosticProgress).

+

+Must be placed after LinearMotionSyntax in the syntax chain. +Removes the IMotionEventDef section written by +LinearMotionSyntax (G28 handles its own motion). +Overwrites root MachineCoordinateState +and ProgramXyz with reference position +for subsequent block lookback. +

@@ -895,19 +904,12 @@ Enums
BareG28Behavior
-

Writes ICompoundMotionDef section for G28 reference point return. -Reads intermediate XYZ from Parsing.G28 -(written by G28Syntax) -and converts to machine coordinates via -ResolveProgramXyz(JsonNode, LazyLinkedListNode<SyntaxPiece>, ISentenceCarrier, NcDiagnosticProgress).

-

-Must be placed after LinearMotionSyntax in the syntax chain. -Removes the IMotionEventDef section written by -LinearMotionSyntax (G28 handles its own motion). -Overwrites root MachineCoordinateState -and ProgramXyz with reference position -for subsequent block lookback. -

+

Configurable handling for a G28 block with no axis specifiers +(“bare G28”) — value of BareG28. +Real Fanuc-class controllers vary: older 0i-M alarms (PS010), some +30i variants send every configured axis to home. Default to +Alarm so silent NC bugs surface; opt into +AllAxesHome per syntax instance.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html new file mode 100644 index 00000000..1549214d --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html @@ -0,0 +1,513 @@ + + + + + Class FanucWhileDoParsingSyntax | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class FanucWhileDoParsingSyntax +

+ +
+
Namespace
Hi.NcParsers.ParsingSyntaxs.Fanuc
+
Assembly
HiMech.dll
+
+ +

Parses the two Fanuc Custom Macro B WHILE/END phrases out of +UnparsedText into a +Parsing.FanucWhileDo sub-object:

+
  • WHILE [<bool-expr>] DO <m> — loop entry, + writes { Term: "WHILE...DO", LoopId, Condition }.
  • END <m> — loop terminator, writes + { Term: "END", LoopId }.
+

+Pipeline placement. This syntax must run before +TagAssignmentSyntax in the Parsing bundle — same lesson +as FanucIfThenParsingSyntax: although the WHILE / END +phrases per Fanuc spec do not coexist with assignments on the same +block, the defensive ordering prevents a body fragment from being +half-eaten as a stand-alone assignment if a non-spec NC file appears. +

+

+LoopId is captured as an int directly (Fanuc spec +restricts the m identifier to small literal integers 1–3 +typical, no expression form). The WHILE's Condition is captured +as a string and substituted in place by +VariableEvaluatorSyntax's pass-2 tree +walk; FanucWhileDoSyntax then +reads it via the shared +FanucConditionReader. +

+
+
+ +
+
public class FanucWhileDoParsingSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource
+
+ + + + +
+
Inheritance
+
+ +
FanucWhileDoParsingSyntax
+
+
+ +
+
Implements
+
+ + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ +
+
Extension Methods
+
+ + + + + + + +
+ + +

Examples

+

#Input: WHILE [#100 LT 3] DO 1 +#Output:

+
{
+  "Parsing": {
+    "FanucWhileDo": {
+      "Term": "WHILE...DO",
+      "LoopId": 1,
+      "Condition": "#100 LT 3"
+    }
+  }
+}
+

#Input: END 1 +#Output:

+
{
+  "Parsing": {
+    "FanucWhileDo": {
+      "Term": "END",
+      "LoopId": 1
+    }
+  }
+}
+ + + + +

Constructors +

+ + + + +

+ FanucWhileDoParsingSyntax() + +

+ +

Parameterless instance for bundle composition (no XML state).

+
+
+ +
+
public FanucWhileDoParsingSyntax()
+
+ + + + + + + + + + + + + + + +

+ FanucWhileDoParsingSyntax(XElement) + +

+ +

XML ctor (no child elements; reserved for forward compatibility).

+
+
+ +
+
public FanucWhileDoParsingSyntax(XElement src)
+
+ +

Parameters

+
+
src XElement
+

Root element named XName.

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

Properties +

+ + + + +

+ Name + +

+ +

Syntax kind name (typically the concrete type name).

+
+
+ +
+
public string Name { get; }
+
+ + + + + +

Property Value

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

+ XName + +

+ +

XML element name used to register this syntax with XFactory.

+
+
+ +
+
public static string XName { get; }
+
+ + + + + +

Property Value

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

Methods +

+ + + + +

+ Build(LazyLinkedListNode<SyntaxPiece>, List<INcDependency>, NcDiagnosticProgress) + +

+ +

Build syntax arrangement into the +syntaxPieceNode in-place.

+
+
+ +
+
public void Build(LazyLinkedListNode<SyntaxPiece> syntaxPieceNode, List<INcDependency> ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress)
+
+ +

Parameters

+
+
syntaxPieceNode LazyLinkedListNode<SyntaxPiece>
+
+
ncDependencyList List<INcDependency>
+
+
ncDiagnosticProgress NcDiagnosticProgress
+
+
+ + + + + + + + + + + + + + +

+ 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.

+
+ + + + + + +

+ Reg(XFactory) + +

+ +

Registers this type's deserializer with the given XFactory +(or Default when factory is +null). Idempotent.

+
+
+ +
+
public static void Reg(XFactory factory = null)
+
+ +

Parameters

+
+
factory XFactory
+
+
+ + + + + + + + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.ParsingSyntaxs.Fanuc.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.ParsingSyntaxs.Fanuc.html index fdf733a0..d73910f1 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.ParsingSyntaxs.Fanuc.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.ParsingSyntaxs.Fanuc.html @@ -180,6 +180,34 @@ line, and records it under Wrapper so the block can be emitted back to its original notation.

+ +
+
+
FanucWhileDoParsingSyntax
+

Parses the two Fanuc Custom Macro B WHILE/END phrases out of +UnparsedText into a +Parsing.FanucWhileDo sub-object:

+
  • WHILE [<bool-expr>] DO <m> — loop entry, + writes { Term: "WHILE...DO", LoopId, Condition }.
  • END <m> — loop terminator, writes + { Term: "END", LoopId }.
+

+Pipeline placement. This syntax must run before +TagAssignmentSyntax in the Parsing bundle — same lesson +as FanucIfThenParsingSyntax: although the WHILE / END +phrases per Fanuc spec do not coexist with assignments on the same +block, the defensive ordering prevents a body fragment from being +half-eaten as a stand-alone assignment if a non-spec NC file appears. +

+

+LoopId is captured as an int directly (Fanuc spec +restricts the m identifier to small literal integers 1–3 +typical, no expression form). The WHILE's Condition is captured +as a string and substituted in place by +VariableEvaluatorSyntax's pass-2 tree +walk; FanucWhileDoSyntax then +reads it via the shared +FanucConditionReader. +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html index 63f72d5a..91d41e45 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html @@ -287,8 +287,8 @@ Also support single line NC block.

-

- GetSentences(LazyLinkedList<IndexedFileLine>, NcDiagnosticProgress) +

+ GetSentences(LazyLinkedList<IndexedFileLine>, List<INcDependency>, NcDiagnosticProgress)

@@ -297,13 +297,19 @@ Also support single line NC block.

-
public IEnumerable<Sentence> GetSentences(LazyLinkedList<IndexedFileLine> indexedFileLines, NcDiagnosticProgress ncDiagnosticProgress)
+
public IEnumerable<Sentence> GetSentences(LazyLinkedList<IndexedFileLine> indexedFileLines, List<INcDependency> ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress)

Parameters

indexedFileLines LazyLinkedList<IndexedFileLine>

The lazy linked list of indexed file lines.

+
+
ncDependencyList List<INcDependency>
+

Dependency list of the owning runner; segmenters that consume +header rows (e.g. CsvSegmenter) read host-wired +dependencies from here. May be null in lightweight test fixtures — implementations +that need a dependency must null-check.

ncDiagnosticProgress NcDiagnosticProgress

Diagnostic progress reporter.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.ISegmenter.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.ISegmenter.html index a6690146..4872c5bc 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.ISegmenter.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.ISegmenter.html @@ -191,8 +191,8 @@ Interface ISegmenter -

- GetSentences(LazyLinkedList<IndexedFileLine>, NcDiagnosticProgress) +

+ GetSentences(LazyLinkedList<IndexedFileLine>, List<INcDependency>, NcDiagnosticProgress)

@@ -201,13 +201,19 @@ Interface ISegmenter
-
IEnumerable<Sentence> GetSentences(LazyLinkedList<IndexedFileLine> indexedFileLines, NcDiagnosticProgress ncDiagnosticProgress)
+
IEnumerable<Sentence> GetSentences(LazyLinkedList<IndexedFileLine> indexedFileLines, List<INcDependency> ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress)

Parameters

indexedFileLines LazyLinkedList<IndexedFileLine>

The lazy linked list of indexed file lines.

+
+
ncDependencyList List<INcDependency>
+

Dependency list of the owning runner; segmenters that consume +header rows (e.g. CsvSegmenter) read host-wired +dependencies from here. May be null in lightweight test fixtures — implementations +that need a dependency must null-check.

ncDiagnosticProgress NcDiagnosticProgress

Diagnostic progress reporter.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html index 3b8dee00..6220f466 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html @@ -388,8 +388,8 @@ Lines without the delimiter produce a single -

- GetSentences(LazyLinkedList<IndexedFileLine>, NcDiagnosticProgress) +

+ GetSentences(LazyLinkedList<IndexedFileLine>, List<INcDependency>, NcDiagnosticProgress)

@@ -398,13 +398,19 @@ Lines without the delimiter produce a single
-
public IEnumerable<Sentence> GetSentences(LazyLinkedList<IndexedFileLine> indexedFileLines, NcDiagnosticProgress ncDiagnosticProgress)
+
public IEnumerable<Sentence> GetSentences(LazyLinkedList<IndexedFileLine> indexedFileLines, List<INcDependency> ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress)

Parameters

indexedFileLines LazyLinkedList<IndexedFileLine>

The lazy linked list of indexed file lines.

+
+
ncDependencyList List<INcDependency>
+

Dependency list of the owning runner; segmenters that consume +header rows (e.g. CsvSegmenter) read host-wired +dependencies from here. May be null in lightweight test fixtures — implementations +that need a dependency must null-check.

ncDiagnosticProgress NcDiagnosticProgress

Diagnostic progress reporter.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html index 45326ef7..31c17050 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html @@ -255,8 +255,8 @@ Class SingleLineSegmenter -

- GetSentences(LazyLinkedList<IndexedFileLine>, NcDiagnosticProgress) +

+ GetSentences(LazyLinkedList<IndexedFileLine>, List<INcDependency>, NcDiagnosticProgress)

@@ -265,13 +265,19 @@ Class SingleLineSegmenter
-
public IEnumerable<Sentence> GetSentences(LazyLinkedList<IndexedFileLine> indexedFileLines, NcDiagnosticProgress ncDiagnosticProgress)
+
public IEnumerable<Sentence> GetSentences(LazyLinkedList<IndexedFileLine> indexedFileLines, List<INcDependency> ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress)

Parameters

indexedFileLines LazyLinkedList<IndexedFileLine>

The lazy linked list of indexed file lines.

+
+
ncDependencyList List<INcDependency>
+

Dependency list of the owning runner; segmenters that consume +header rows (e.g. CsvSegmenter) read host-wired +dependencies from here. May be null in lightweight test fixtures — implementations +that need a dependency must null-check.

ncDiagnosticProgress NcDiagnosticProgress

Diagnostic progress reporter.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Syntaxs.SyntaxPiece.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Syntaxs.SyntaxPiece.html index 1fa42c1b..914cdad7 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Syntaxs.SyntaxPiece.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Syntaxs.SyntaxPiece.html @@ -310,7 +310,7 @@ to store typed values at parse time.

0-based ordinal in NC execution order. Stamped at piece construction -time by GetSyntaxPieces(ISegmenter, IEnumerable<IndexedFileLine>, int, NcDiagnosticProgress, CancellationToken) from the destination +time by GetSyntaxPieces(ISegmenter, List<INcDependency>, IEnumerable<IndexedFileLine>, int, NcDiagnosticProgress, CancellationToken) from the destination layers[0]'s running count, so subprogram pieces inlined by SubProgramCallSyntax get sequential indices that interleave correctly between host blocks. Useful as a cross-process alignment diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.html index 969379a9..9a666310 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.html @@ -167,6 +167,27 @@ MachiningStep, etc.) when source order (MixedIndex(IFileLineIndex)) is not enough because SubProgram inline reorders blocks relative to (FileIndex, LineIndex).

+
+
+
+
ISessionResettable
+

Marker for objects that hold session-scoped runtime state which must be +cleared when RunControlLines(string, IEnumerable<string>, MachiningSession, SessionProgress, CancellationToken) initializes a new +session pipeline (the state.IsInitialized == false edge).

+

+Implementers may live on either chain: INcDependency +or INcSyntax. SoftNcRunner scans +NcDependencyList and +NcSyntaxList on the session-init edge and calls +OnSessionReset() on every match. +

+

+Distinct from IPowerResettable: power-reset clears +retained-but-volatile state on a controller power cycle (e.g., Fanuc +#100-#499), an edge that survives ordinary session boundaries. +Session-reset clears state whose lifetime is one pipeline pass (iteration +counters, file-index allocators, etc.). +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvRowSemantic.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvRowSemantic.html new file mode 100644 index 00000000..1258e2b8 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvRowSemantic.html @@ -0,0 +1,423 @@ + + + + + Class CsvRowSemantic | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class CsvRowSemantic +

+ +
+
Namespace
Hi.Numerical.CsvParsers
+
Assembly
HiMech.dll
+
+ +

Final-stage semantic that turns each row JSON stamped by +CsvRowSyntax into the same IAct sequence the +legacy CsvRunner produced: optional ActLineCsScript +(begin), ActActualTime, ActToolingTeleport, +ActFeedrate, ActSpindleDirection, +ActSpindleSpeed, ActMcXyzabcStep / +ActMcXyzabcLinearContour, ActData, and +optional ActLineCsScript (end).

+

+Stateless — the previous machine coordinate is recovered by walking back +through the SyntaxPiece chain and reading the typed +double cells CsvRowSyntax already stamped, so +no carry-state lives on the semantic instance or in extra JSON sections. +The previous actual time is recovered the same way; that cell stays as a +string (the source format may be TimeSpan or DateTime) and is re-parsed +on demand — at most once per row. +

+
+
+ +
+
public class CsvRowSemantic : INcSemantic, IMakeXmlSource
+
+ + + + +
+
Inheritance
+
+ +
CsvRowSemantic
+
+
+ +
+
Implements
+
+ + +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ +
+
Extension Methods
+
+ + + + + + + +
+ + + + + +

Properties +

+ + + + +

+ DisplayName + +

+ +

The process name shown on UI.

+
+
+ +
+
public string DisplayName { get; }
+
+ + + + + +

Property Value

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

+ XName + +

+ +

XML element name for Generators registration.

+
+
+ +
+
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.

+
+ + + + + + +

+ Reg(XFactory) + +

+ +

Registers this type's deserializer with the given XFactory +(or Default when factory is +null). Idempotent.

+
+
+ +
+
public static void Reg(XFactory factory = null)
+
+ +

Parameters

+
+
factory XFactory
+
+
+ + + + + + + + + + + + + + +

+ Resolve(LazyLinkedListNode<SyntaxPiece>, List<INcDependency>, NcDiagnosticProgress) + +

+ +

Resolve the syntaxPieceNode into a sequence of IAct. +May also mutate SyntaxPiece.JsonObject for downstream semantics.

+
+
+ +
+
public IEnumerable<IAct> Resolve(LazyLinkedListNode<SyntaxPiece> syntaxPieceNode, List<INcDependency> dependencyList, NcDiagnosticProgress ncDiagnosticProgress)
+
+ +

Parameters

+
+
syntaxPieceNode LazyLinkedListNode<SyntaxPiece>
+
+
dependencyList List<INcDependency>
+
+
ncDiagnosticProgress NcDiagnosticProgress
+
+
+ +

Returns

+
+
IEnumerable<IAct>
+
+
+ + + + + + + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/HiNc.Grpcs.MachiningProjectGrpcServer.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvRowSyntax.html similarity index 54% rename from App/wwwroot/HiAPI-docsite/api/HiNc.Grpcs.MachiningProjectGrpcServer.html rename to App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvRowSyntax.html index 1a070123..d040cbc0 100644 --- a/App/wwwroot/HiAPI-docsite/api/HiNc.Grpcs.MachiningProjectGrpcServer.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvRowSyntax.html @@ -2,11 +2,11 @@ - Class MachiningProjectGrpcServer | HiAPI-C# 2025 + Class CsvRowSyntax | HiAPI-C# 2025 - + - + @@ -84,25 +84,41 @@

-
+
-

-Class MachiningProjectGrpcServer +

+Class CsvRowSyntax

-
Namespace
HiNc.Grpcs
-
Assembly
HiNc.dll
+
Namespace
Hi.Numerical.CsvParsers
+
Assembly
HiMech.dll
-

Server for exposing machining project functionality via gRPC.

+

Per-row CSV parsing syntax for the soft NC runner. Reads the active +TitleList via +SegmenterDependency, splits the row text using +GetCsvDictionary(IList<string>, string), and +stamps the resulting column→value map into +JsonObject under the CsvRowKey +property for CsvRowSemantic to consume.

+

+Numeric cells are pre-typed to double (or bool) +at this stage so downstream readers — including +CsvRowSemantic's backwards walk for the previous machine +coordinate — touch native JSON numbers instead of re-parsing strings on +every visit. Columns kept as strings: the script / time / spindle-direction +tags whose semantic interpretation is non-numeric, plus any column whose +key appears in ParsingDictionary (the +caller-supplied parsing function expects the raw cell text). +

-
public class MachiningProjectGrpcServer : IDisposable, IMakeXmlSource
+
public class CsvRowSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource
@@ -112,14 +128,15 @@ Class MachiningProjectGrpcServer
Inheritance
-
MachiningProjectGrpcServer
+
CsvRowSyntax
Implements
- + +
@@ -181,28 +198,30 @@ Class MachiningProjectGrpcServer -

Constructors +

Fields

- -

- MachiningProjectGrpcServer(LocalProjectService) +

+ CsvRowKey

-

Initializes a new instance of the MachiningProjectGrpcServer class.

+

JSON property name under which the parsed row dictionary is stored.

-
public MachiningProjectGrpcServer(LocalProjectService localProjectService)
+
public const string CsvRowKey = "CsvRow"
-

Parameters

+ + + +

Field Value

-
localProjectService LocalProjectService
+
string
@@ -214,62 +233,23 @@ Class MachiningProjectGrpcServer - - - - - -

- MachiningProjectGrpcServer(XElement, LocalProjectService) - -

- -

Initializes a new instance of the MachiningProjectGrpcServer class from XML.

-
-
- -
-
public MachiningProjectGrpcServer(XElement src, LocalProjectService localProjectService)
-
- -

Parameters

-
-
src XElement
-

XML source element

-
-
localProjectService LocalProjectService
-

The local project service.

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

Properties

- + -

- IsServiceRunning +

+ Name

-

Gets whether the service is currently running.

+

Syntax kind name (typically the concrete type name).

-
public bool IsServiceRunning { get; }
+
public string Name { get; }
@@ -278,7 +258,7 @@ Class MachiningProjectGrpcServer

Property Value

-
bool
+
string
@@ -289,78 +269,14 @@ Class MachiningProjectGrpcServer - + -

- ServicePort - -

- -

Gets or sets the port used by the gRPC service.

-
-
- -
-
public int ServicePort { get; set; }
-
- - - - - -

Property Value

-
-
int
-
-
- - - - - - - - - - -

- WebApplication - -

- -

Gets the web application instance for the gRPC server.

-
-
- -
-
public WebApplication WebApplication { get; }
-
- - - - - -

Property Value

-
-
WebApplication
-
-
- - - - - - - - - - -

+

XName

-

Name for XML IO.

+

XML element name for Generators registration.

@@ -389,50 +305,29 @@ Class MachiningProjectGrpcServer - + -

- Dispose() +

+ Build(LazyLinkedListNode<SyntaxPiece>, List<INcDependency>, NcDiagnosticProgress)

-

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

+

Build syntax arrangement into the +syntaxPieceNode in-place.

-
public void Dispose()
-
- - - - - - - - - - - - - - - -

- Dispose(bool) - -

- -
-
- -
-
protected virtual void Dispose(bool disposing)
+
public void Build(LazyLinkedListNode<SyntaxPiece> syntaxPieceNode, List<INcDependency> ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress)

Parameters

-
disposing bool
+
syntaxPieceNode LazyLinkedListNode<SyntaxPiece>
+
+
ncDependencyList List<INcDependency>
+
+
ncDiagnosticProgress NcDiagnosticProgress
@@ -447,9 +342,9 @@ Class MachiningProjectGrpcServer - + -

+

MakeXmlSource(string, string, bool)

@@ -489,7 +384,7 @@ This method may also generate additional resources such as related files.

-

Remarks

+

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.

@@ -498,16 +393,16 @@ Since the folder can be moving with the configuration file.

- + -

+

Reg(XFactory)

-

Registers this type's deserializer (and its legacy alias) with the -given XFactory (or Default when -factory is null). Idempotent.

+

Registers this type's deserializer with the given XFactory +(or Default when factory is +null). Idempotent.

@@ -532,72 +427,6 @@ given XFactory (or < - - -

- StartAsync() - -

- -

Starts the gRPC server asynchronously.

-
-
- -
-
public Task StartAsync()
-
- - -

Returns

-
-
Task
-

A task representing the asynchronous operation

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

- StopAsync() - -

- -

Stops the gRPC server asynchronously.

-
-
- -
-
public Task StopAsync()
-
- - -

Returns

-
-
Task
-

A task representing the asynchronous operation

-
-
- - - - - - - - - - -
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html similarity index 76% rename from App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html rename to App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html index f0974b94..2fd5223b 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html @@ -6,7 +6,7 @@ - + @@ -84,25 +84,28 @@
-
+
-

+

Class CsvRunnerConfig

-
Namespace
Hi.Numerical.FilePlayers
-
Assembly
HiNc.dll
+
Namespace
Hi.Numerical.CsvParsers
+
Assembly
HiMech.dll
-

Configuration class for CSV Runner.

+

Configuration class for CSV Runner. Lives in +NcDependencyList when wired with +CsvSoftRunner; consumed by CsvRowSyntax and +CsvRowSemantic for tag-name lookup and custom-field parsing.

-
public class CsvRunnerConfig : IMakeXmlSource
+
public class CsvRunnerConfig : INcDependency, IMakeXmlSource
@@ -119,6 +122,7 @@ Class CsvRunnerConfig
Implements
+
@@ -184,9 +188,9 @@ Class CsvRunnerConfig - + -

+

CsvRunnerConfig()

@@ -211,9 +215,9 @@ Class CsvRunnerConfig - + -

+

CsvRunnerConfig(XElement)

@@ -248,9 +252,9 @@ Class CsvRunnerConfig - + -

+

ActualTimeTag

@@ -280,9 +284,9 @@ Class CsvRunnerConfig - + -

+

CutterLocationPrefix

@@ -312,9 +316,9 @@ Class CsvRunnerConfig - + -

+

DurationTag

@@ -344,9 +348,9 @@ Class CsvRunnerConfig - + -

+

FeedrateTag_mmdmin

@@ -376,9 +380,9 @@ Class CsvRunnerConfig - + -

+

LineBeginCsScriptTag

@@ -408,9 +412,9 @@ Class CsvRunnerConfig - + -

+

LineEndCsScriptTag

@@ -440,9 +444,9 @@ Class CsvRunnerConfig - + -

+

MachineCoordinatePrefix

@@ -472,9 +476,9 @@ Class CsvRunnerConfig - + -

+

ParsingDictionary

@@ -505,9 +509,9 @@ Note: This dictionary cannot be serialized to XML as it contains functions.

- + -

+

SpindleDirectionTag

@@ -537,9 +541,9 @@ Note: This dictionary cannot be serialized to XML as it contains functions.

- + -

+

SpindleSpeedTag_rpm

@@ -569,9 +573,9 @@ Note: This dictionary cannot be serialized to XML as it contains functions.

- + -

+

ToolIdTag

@@ -601,9 +605,9 @@ Note: This dictionary cannot be serialized to XML as it contains functions.

- + -

+

XName

@@ -637,9 +641,9 @@ Note: This dictionary cannot be serialized to XML as it contains functions.

- + -

+

MakeXmlSource(string, string, bool)

@@ -679,7 +683,7 @@ This method may also generate additional resources such as related files.

-

Remarks

+

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.

@@ -688,9 +692,9 @@ Since the folder can be moving with the configuration file.

- + -

+

Reg(XFactory)

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerServiceRunner.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvSegmenter.html similarity index 50% rename from App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerServiceRunner.html rename to App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvSegmenter.html index 137d1c57..ab0545fc 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerServiceRunner.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvSegmenter.html @@ -2,11 +2,11 @@ - Class PlayerServiceRunner | HiAPI-C# 2025 + Class CsvSegmenter | HiAPI-C# 2025 - + - + @@ -84,25 +84,31 @@
-
+
-

-Class PlayerServiceRunner +

+Class CsvSegmenter

-
Namespace
Hi.Grpcs
-
Assembly
HiNc.dll
+
Namespace
Hi.Numerical.CsvParsers
+
Assembly
HiMech.dll
-

Service runner for the Player gRPC service.

+

Segments a CSV stream for the SoftNcRunner +pipeline. Consumes the first IndexedFileLine as the title +row (populating TitleList and registering any new columns +as step variables via +StepPropertyAccessDictionaryDependency), then yields each +subsequent line as a one-line Sentence for +CsvRowSyntax to parse.

-
public class PlayerServiceRunner : PlayerService.PlayerServiceBase
+
public class CsvSegmenter : ISegmenter, IToXElement
@@ -112,11 +118,17 @@ Class PlayerServiceRunner
Inheritance
- -
PlayerServiceRunner
+
CsvSegmenter
+
+
Implements
+
+ + +
+
@@ -175,28 +187,181 @@ Class PlayerServiceRunner -

Constructors +

Properties

- + -

- PlayerServiceRunner(LocalProjectService) +

+ Name

-

Initializes a new instance of the PlayerServiceRunner class.

+

Display name of this segmenter.

-
public PlayerServiceRunner(LocalProjectService localProjectService)
+
public string Name { get; }
+
+ + + + + +

Property Value

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

+ TitleList + +

+ +

Column titles parsed from the first row of the most recent +GetSentences(LazyLinkedList<IndexedFileLine>, List<INcDependency>, NcDiagnosticProgress) invocation. Quote- and whitespace-trimmed to +match the convention established in the legacy CsvRunner. Reset on each +new call so per-file headers stay accurate across multi-file sessions.

+
+
+ +
+
public List<string> TitleList { get; }
+
+ + + + + +

Property Value

+
+
List<string>
+
+
+ + + + + + + + + + +

+ XName + +

+ +

XML element name for Generators registration.

+
+
+ +
+
public static string XName { get; }
+
+ + + + + +

Property Value

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

Methods +

+ + + + +

+ GetSentences(LazyLinkedList<IndexedFileLine>, List<INcDependency>, NcDiagnosticProgress) + +

+ +

Segments the indexed file lines into Sentences.

+
+
+ +
+
public IEnumerable<Sentence> GetSentences(LazyLinkedList<IndexedFileLine> indexedFileLines, List<INcDependency> ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress)

Parameters

-
localProjectService LocalProjectService
+
indexedFileLines LazyLinkedList<IndexedFileLine>
+

The lazy linked list of indexed file lines.

+
+
ncDependencyList List<INcDependency>
+

Dependency list of the owning runner; segmenters that consume +header rows (e.g. CsvSegmenter) read host-wired +dependencies from here. May be null in lightweight test fixtures — implementations +that need a dependency must null-check.

+
+
ncDiagnosticProgress NcDiagnosticProgress
+

Diagnostic progress reporter.

+
+
+ +

Returns

+
+
IEnumerable<Sentence>
+

A sequence of Sentences.

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

+ Reg(XFactory) + +

+ +

Registers this type's deserializer with the given XFactory +(or Default when factory is +null). Idempotent.

+
+
+ +
+
public static void Reg(XFactory factory = null)
+
+ +

Parameters

+
+
factory XFactory
@@ -211,165 +376,26 @@ Class PlayerServiceRunner -

Methods -

+ - - - -

- Pause(Empty, ServerCallContext) +

+ ToXElement()

-

Pauses the player.

+

Get the XElement to represent the object.

-
public override Task<Empty> Pause(Empty request, ServerCallContext context)
+
public XElement ToXElement()
-

Parameters

-
-
request Empty
-

The empty request.

-
-
context ServerCallContext
-

The server call context.

-
-

Returns

-
Task<Empty>
-

Empty response.

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

- Reset(Empty, ServerCallContext) - -

- -

Resets the player.

-
-
- -
-
public override Task<Empty> Reset(Empty request, ServerCallContext context)
-
- -

Parameters

-
-
request Empty
-

The empty request.

-
-
context ServerCallContext
-

The server call context.

-
-
- -

Returns

-
-
Task<Empty>
-

Empty response.

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

- Resume(Empty, ServerCallContext) - -

- -

Resumes the player.

-
-
- -
-
public override Task<Empty> Resume(Empty request, ServerCallContext context)
-
- -

Parameters

-
-
request Empty
-

The empty request.

-
-
context ServerCallContext
-

The server call context.

-
-
- -

Returns

-
-
Task<Empty>
-

Empty response.

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

- Start(Empty, ServerCallContext) - -

- -

Starts the player.

-
-
- -
-
public override Task<Empty> Start(Empty request, ServerCallContext context)
-
- -

Parameters

-
-
request Empty
-

The empty request.

-
-
context ServerCallContext
-

The server call context.

-
-
- -

Returns

-
-
Task<Empty>
-

Empty response.

+
XElement
+

XElement to represent the object.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerService.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvSoftRunner.html similarity index 56% rename from App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerService.html rename to App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvSoftRunner.html index 391e5ac7..c354a709 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerService.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvSoftRunner.html @@ -2,11 +2,11 @@ - Class PlayerService | HiAPI-C# 2025 + Class CsvSoftRunner | HiAPI-C# 2025 - + - + @@ -84,25 +84,39 @@
-
+
-

-Class PlayerService +

+Class CsvSoftRunner

-
Namespace
Hi.Grpcs
-
Assembly
HiNc.dll
+
Namespace
Hi.Numerical.CsvParsers
+
Assembly
HiMech.dll
-

numerical file player service.

+

Factory for a SoftNcRunner wired to replay CSV files +(deprecates the legacy CsvRunner). The returned runner has a +single-syntax pipeline: CsvSegmenter → +CsvRowSyntaxCsvRowSemantic.

+

+Default NcDependencyList: +

+MachiningServiceDependency is intentionally not included by +default; clients that build custom syntaxes around CsvSoftRunner +can append it themselves. +
-
public static class PlayerService
+
public static class CsvSoftRunner
@@ -112,7 +126,7 @@ Class PlayerService
Inheritance
-
PlayerService
+
CsvSoftRunner
@@ -149,108 +163,39 @@ Class PlayerService -

Properties -

- - - - -

- Descriptor - -

- -

Service descriptor

-
-
- -
-
public static ServiceDescriptor Descriptor { get; }
-
- - - - - -

Property Value

-
-
ServiceDescriptor
-
-
- - - - - - - -

Methods

- + -

- BindService(ServiceBinderBase, PlayerServiceBase) +

+ Create(CsvRunnerConfig)

-

Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. -Note: this method is part of an experimental API that can change or be removed without any prior notice.

+

Builds a fresh SoftNcRunner pre-configured to consume CSV +input. Call once per machining session so the runner's per-session +state starts clean (mirrors the legacy CsvRunner's reset on +project change).

-
public static void BindService(ServiceBinderBase serviceBinder, PlayerService.PlayerServiceBase serviceImpl)
+
public static SoftNcRunner Create(CsvRunnerConfig config = null)

Parameters

-
serviceBinder ServiceBinderBase
-

Service methods will be bound by calling AddMethod on this object.

-
-
serviceImpl PlayerService.PlayerServiceBase
-

An object implementing the server-side handling logic.

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

- BindService(PlayerServiceBase) - -

- -

Creates service definition that can be registered with a server

-
-
- -
-
public static ServerServiceDefinition BindService(PlayerService.PlayerServiceBase serviceImpl)
-
- -

Parameters

-
-
serviceImpl PlayerService.PlayerServiceBase
-

An object implementing the server-side handling logic.

+
config CsvRunnerConfig
+

Optional CSV column-tag configuration; a default +CsvRunnerConfig is created when null.

Returns

-
ServerServiceDefinition
+
SoftNcRunner
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.html new file mode 100644 index 00000000..3578ff9c --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.html @@ -0,0 +1,202 @@ + + + + + Namespace Hi.Numerical.CsvParsers | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ +

Namespace Hi.Numerical.CsvParsers

+
+
+
+ +

+Classes +

+
+
CsvRowSemantic
+

Final-stage semantic that turns each row JSON stamped by +CsvRowSyntax into the same IAct sequence the +legacy CsvRunner produced: optional ActLineCsScript +(begin), ActActualTime, ActToolingTeleport, +ActFeedrate, ActSpindleDirection, +ActSpindleSpeed, ActMcXyzabcStep / +ActMcXyzabcLinearContour, ActData, and +optional ActLineCsScript (end).

+

+Stateless — the previous machine coordinate is recovered by walking back +through the SyntaxPiece chain and reading the typed +double cells CsvRowSyntax already stamped, so +no carry-state lives on the semantic instance or in extra JSON sections. +The previous actual time is recovered the same way; that cell stays as a +string (the source format may be TimeSpan or DateTime) and is re-parsed +on demand — at most once per row. +

+
+
+
+
CsvRowSyntax
+

Per-row CSV parsing syntax for the soft NC runner. Reads the active +TitleList via +SegmenterDependency, splits the row text using +GetCsvDictionary(IList<string>, string), and +stamps the resulting column→value map into +JsonObject under the CsvRowKey +property for CsvRowSemantic to consume.

+

+Numeric cells are pre-typed to double (or bool) +at this stage so downstream readers — including +CsvRowSemantic's backwards walk for the previous machine +coordinate — touch native JSON numbers instead of re-parsing strings on +every visit. Columns kept as strings: the script / time / spindle-direction +tags whose semantic interpretation is non-numeric, plus any column whose +key appears in ParsingDictionary (the +caller-supplied parsing function expects the raw cell text). +

+
+
+
+
CsvRunnerConfig
+

Configuration class for CSV Runner. Lives in +NcDependencyList when wired with +CsvSoftRunner; consumed by CsvRowSyntax and +CsvRowSemantic for tag-name lookup and custom-field parsing.

+
+
+
+
CsvSegmenter
+

Segments a CSV stream for the SoftNcRunner +pipeline. Consumes the first IndexedFileLine as the title +row (populating TitleList and registering any new columns +as step variables via +StepPropertyAccessDictionaryDependency), then yields each +subsequent line as a one-line Sentence for +CsvRowSyntax to parse.

+
+
+
+
CsvSoftRunner
+

Factory for a SoftNcRunner wired to replay CSV files +(deprecates the legacy CsvRunner). The returned runner has a +single-syntax pipeline: CsvSegmenter → +CsvRowSyntaxCsvRowSemantic.

+

+Default NcDependencyList: +

+MachiningServiceDependency is intentionally not included by +default; clients that build custom syntaxes around CsvSoftRunner +can append it themselves. + +
+
+ + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunner.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunner.html index ab3923c2..fd05ac6a 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunner.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunner.html @@ -242,7 +242,7 @@ Class CsvRunner

Property Value

-
CsvRunnerConfig
+
CsvRunnerConfig
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.HardNcRunner.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.HardNcRunner.html index c916643e..21371916 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.HardNcRunner.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.HardNcRunner.html @@ -244,7 +244,8 @@ Class HardNcRunner

The enumerable collection of NC code lines

machiningSession MachiningSession
-
+

The machining session that owns runtime state for this run.

+
sessionProgress SessionProgress

The session message host for logging.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.html index 44802662..d4b26e74 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.html @@ -97,11 +97,6 @@ Classes
CsvRunner

Provides functionality for running and processing csv lines.

-
-
-
-
CsvRunnerConfig
-

Configuration class for CSV Runner.

diff --git a/App/wwwroot/HiAPI-docsite/api/HiNc.Grpcs.html b/App/wwwroot/HiAPI-docsite/api/HiNc.Grpcs.html deleted file mode 100644 index f86d5359..00000000 --- a/App/wwwroot/HiAPI-docsite/api/HiNc.Grpcs.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - Namespace HiNc.Grpcs | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
-
-
-
Table of Contents
- -
-
- -
-
-
- -
-
- - - -
- -
- -

Namespace HiNc.Grpcs

-
-
-
- -

-Classes -

-
-
MachiningProjectGrpcServer
-

Server for exposing machining project functionality via gRPC.

-
-
- - -
- -
-
- - -
- -
- -
-
- -
- - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.Empty.html b/App/wwwroot/HiAPI-docsite/api/numerical.Empty.html deleted file mode 100644 index 2d775111..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.Empty.html +++ /dev/null @@ -1,642 +0,0 @@ - - - - - Class Empty | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
-
-
-
Table of Contents
- -
-
- -
-
-
- -
-
- - - -
- -
- - - -

-Class Empty -

- -
-
Namespace
numerical
-
Assembly
HiGeom.dll
-
- -
-
- -
-
public sealed class Empty : IMessage<Empty>, IEquatable<Empty>, IDeepCloneable<Empty>, IBufferMessage, IMessage
-
- - - - -
-
Inheritance
-
- -
Empty
-
-
- -
-
Implements
-
-
IMessage<Empty>
- -
IDeepCloneable<Empty>
-
IBufferMessage
-
IMessage
-
-
- - -
-
Inherited Members
-
- - - -
- -
-
Extension Methods
-
- - - - - - - -
- - - - - -

Constructors -

- - - - -

- Empty() - -

- -
-
- -
-
public Empty()
-
- - - - - - - - - - - - - - - -

- Empty(Empty) - -

- -
-
- -
-
public Empty(Empty other)
-
- -

Parameters

-
-
other Empty
-
-
- - - - - - - - - - - - -

Properties -

- - - - -

- Descriptor - -

- -
-
- -
-
public static MessageDescriptor Descriptor { get; }
-
- - - - - -

Property Value

-
-
MessageDescriptor
-
-
- - - - - - - - - - -

- Parser - -

- -
-
- -
-
public static MessageParser<Empty> Parser { get; }
-
- - - - - -

Property Value

-
-
MessageParser<Empty>
-
-
- - - - - - - - -

Methods -

- - - - -

- CalculateSize() - -

- -

Calculates the size of this message in Protocol Buffer wire format, in bytes.

-
-
- -
-
public int CalculateSize()
-
- - -

Returns

-
-
int
-

The number of bytes required to write this message -to a coded output stream.

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

- Clone() - -

- -

Creates a deep clone of this object.

-
-
- -
-
public Empty Clone()
-
- - -

Returns

-
-
Empty
-

A deep clone of this object.

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

- Equals(object) - -

- -

Determines whether the specified object is equal to the current object.

-
-
- -
-
public override bool Equals(object other)
-
- -

Parameters

-
-
other object
-
-
- -

Returns

-
-
bool
-

true if the specified object is equal to the current object; otherwise, false.

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

- Equals(Empty) - -

- -

Indicates whether the current object is equal to another object of the same type.

-
-
- -
-
public bool Equals(Empty other)
-
- -

Parameters

-
-
other Empty
-

An object to compare with this object.

-
-
- -

Returns

-
-
bool
-

true if the current object is equal to the other parameter; otherwise, false.

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

- GetHashCode() - -

- -

Serves as the default hash function.

-
-
- -
-
public override int GetHashCode()
-
- - -

Returns

-
-
int
-

A hash code for the current object.

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

- MergeFrom(CodedInputStream) - -

- -

Merges the data from the specified coded input stream with the current message.

-
-
- -
-
public void MergeFrom(CodedInputStream input)
-
- -

Parameters

-
-
input CodedInputStream
-
-
- - - - - - - - -

Remarks

-

See the user guide for precise merge semantics.

-
- - - - - - -

- MergeFrom(Empty) - -

- -

Merges the given message into this one.

-
-
- -
-
public void MergeFrom(Empty other)
-
- -

Parameters

-
-
other Empty
-
-
- - - - - - - - -

Remarks

-

See the user guide for precise merge semantics.

-
- - - - - - -

- ToString() - -

- -

Returns a string that represents the current object.

-
-
- -
-
public override string ToString()
-
- - -

Returns

-
-
string
-

A string that represents the current object.

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

- WriteTo(CodedOutputStream) - -

- -

Writes the data to the given coded output stream.

-
-
- -
-
public void WriteTo(CodedOutputStream output)
-
- -

Parameters

-
-
output CodedOutputStream
-

Coded output stream to write the data to. Must not be null.

-
-
- - - - - - - - - - - - - -
- -
-
- - -
- -
- -
-
- -
- - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.GrpcCsvRowDictionary.html b/App/wwwroot/HiAPI-docsite/api/numerical.GrpcCsvRowDictionary.html deleted file mode 100644 index ee93077a..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.GrpcCsvRowDictionary.html +++ /dev/null @@ -1,771 +0,0 @@ - - - - - Class GrpcCsvRowDictionary | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
-
-
-
Table of Contents
- -
-
- -
-
-
- -
-
- - - -
- -
- - - -

-Class GrpcCsvRowDictionary -

- -
-
Namespace
numerical
-
Assembly
HiGeom.dll
-
- -
-
- -
-
public sealed class GrpcCsvRowDictionary : IMessage<GrpcCsvRowDictionary>, IEquatable<GrpcCsvRowDictionary>, IDeepCloneable<GrpcCsvRowDictionary>, IBufferMessage, IMessage
-
- - - - -
-
Inheritance
-
- -
GrpcCsvRowDictionary
-
-
- -
-
Implements
-
- - -
IDeepCloneable<GrpcCsvRowDictionary>
-
IBufferMessage
-
IMessage
-
-
- - -
-
Inherited Members
-
- - - -
- -
-
Extension Methods
-
- - - - - - - -
- - - - - -

Constructors -

- - - - -

- GrpcCsvRowDictionary() - -

- -
-
- -
-
public GrpcCsvRowDictionary()
-
- - - - - - - - - - - - - - - -

- GrpcCsvRowDictionary(GrpcCsvRowDictionary) - -

- -
-
- -
-
public GrpcCsvRowDictionary(GrpcCsvRowDictionary other)
-
- -

Parameters

-
-
other GrpcCsvRowDictionary
-
-
- - - - - - - - - - - - -

Fields -

- - - -

- CsvRowDictionaryFieldNumber - -

- -

Field number for the “CsvRowDictionary” field.

-
-
- -
-
public const int CsvRowDictionaryFieldNumber = 2
-
- - - - -

Field Value

-
-
int
-
-
- - - - - - - - - - -

- StatusFieldNumber - -

- -

Field number for the “Status” field.

-
-
- -
-
public const int StatusFieldNumber = 1
-
- - - - -

Field Value

-
-
int
-
-
- - - - - - - - - -

Properties -

- - - - -

- CsvRowDictionary - -

- -
-
- -
-
public MapField<string, string> CsvRowDictionary { get; }
-
- - - - - -

Property Value

-
-
MapField<string, string>
-
-
- - - - - - - - - - -

- Descriptor - -

- -
-
- -
-
public static MessageDescriptor Descriptor { get; }
-
- - - - - -

Property Value

-
-
MessageDescriptor
-
-
- - - - - - - - - - -

- Parser - -

- -
-
- -
-
public static MessageParser<GrpcCsvRowDictionary> Parser { get; }
-
- - - - - -

Property Value

-
-
MessageParser<GrpcCsvRowDictionary>
-
-
- - - - - - - - - - -

- Status - -

- -

Status: 0:ok; 1: failed.

-
-
- -
-
public int Status { get; set; }
-
- - - - - -

Property Value

-
-
int
-
-
- - - - - - - - -

Methods -

- - - - -

- CalculateSize() - -

- -

Calculates the size of this message in Protocol Buffer wire format, in bytes.

-
-
- -
-
public int CalculateSize()
-
- - -

Returns

-
-
int
-

The number of bytes required to write this message -to a coded output stream.

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

- Clone() - -

- -

Creates a deep clone of this object.

-
-
- -
-
public GrpcCsvRowDictionary Clone()
-
- - -

Returns

-
-
GrpcCsvRowDictionary
-

A deep clone of this object.

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

- Equals(object) - -

- -

Determines whether the specified object is equal to the current object.

-
-
- -
-
public override bool Equals(object other)
-
- -

Parameters

-
-
other object
-
-
- -

Returns

-
-
bool
-

true if the specified object is equal to the current object; otherwise, false.

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

- Equals(GrpcCsvRowDictionary) - -

- -

Indicates whether the current object is equal to another object of the same type.

-
-
- -
-
public bool Equals(GrpcCsvRowDictionary other)
-
- -

Parameters

-
-
other GrpcCsvRowDictionary
-

An object to compare with this object.

-
-
- -

Returns

-
-
bool
-

true if the current object is equal to the other parameter; otherwise, false.

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

- GetHashCode() - -

- -

Serves as the default hash function.

-
-
- -
-
public override int GetHashCode()
-
- - -

Returns

-
-
int
-

A hash code for the current object.

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

- MergeFrom(CodedInputStream) - -

- -

Merges the data from the specified coded input stream with the current message.

-
-
- -
-
public void MergeFrom(CodedInputStream input)
-
- -

Parameters

-
-
input CodedInputStream
-
-
- - - - - - - - -

Remarks

-

See the user guide for precise merge semantics.

-
- - - - - - -

- MergeFrom(GrpcCsvRowDictionary) - -

- -

Merges the given message into this one.

-
-
- -
-
public void MergeFrom(GrpcCsvRowDictionary other)
-
- -

Parameters

-
-
other GrpcCsvRowDictionary
-
-
- - - - - - - - -

Remarks

-

See the user guide for precise merge semantics.

-
- - - - - - -

- ToString() - -

- -

Returns a string that represents the current object.

-
-
- -
-
public override string ToString()
-
- - -

Returns

-
-
string
-

A string that represents the current object.

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

- WriteTo(CodedOutputStream) - -

- -

Writes the data to the given coded output stream.

-
-
- -
-
public void WriteTo(CodedOutputStream output)
-
- -

Parameters

-
-
output CodedOutputStream
-

Coded output stream to write the data to. Must not be null.

-
-
- - - - - - - - - - - - - -
- -
-
- - -
- -
- -
-
- -
- - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.GrpcNcStep.html b/App/wwwroot/HiAPI-docsite/api/numerical.GrpcNcStep.html deleted file mode 100644 index 3e5d50e6..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.GrpcNcStep.html +++ /dev/null @@ -1,1328 +0,0 @@ - - - - - Class GrpcNcStep | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
-
-
-
Table of Contents
- -
-
- -
-
-
- -
-
- - - -
- -
- - - -

-Class GrpcNcStep -

- -
-
Namespace
numerical
-
Assembly
HiGeom.dll
-
- -
-
- -
-
public sealed class GrpcNcStep : IMessage<GrpcNcStep>, IEquatable<GrpcNcStep>, IDeepCloneable<GrpcNcStep>, IBufferMessage, IMessage
-
- - - - -
-
Inheritance
-
- -
GrpcNcStep
-
-
- -
-
Implements
-
-
IMessage<GrpcNcStep>
- -
IDeepCloneable<GrpcNcStep>
-
IBufferMessage
-
IMessage
-
-
- - -
-
Inherited Members
-
- - - -
- -
-
Extension Methods
-
- - - - - - - -
- - - - - -

Constructors -

- - - - -

- GrpcNcStep() - -

- -
-
- -
-
public GrpcNcStep()
-
- - - - - - - - - - - - - - - -

- GrpcNcStep(GrpcNcStep) - -

- -
-
- -
-
public GrpcNcStep(GrpcNcStep other)
-
- -

Parameters

-
-
other GrpcNcStep
-
-
- - - - - - - - - - - - -

Fields -

- - - -

- CsvRowDictionaryFieldNumber - -

- -

Field number for the “CsvRowDictionary” field.

-
-
- -
-
public const int CsvRowDictionaryFieldNumber = 11
-
- - - - -

Field Value

-
-
int
-
-
- - - - - - - - - - -

- FeedrateMmdminFieldNumber - -

- -

Field number for the “Feedrate_mmdmin” field.

-
-
- -
-
public const int FeedrateMmdminFieldNumber = 8
-
- - - - -

Field Value

-
-
int
-
-
- - - - - - - - - - -

- FileIndexFieldNumber - -

- -

Field number for the “FileIndex” field.

-
-
- -
-
public const int FileIndexFieldNumber = 4
-
- - - - -

Field Value

-
-
int
-
-
- - - - - - - - - - -

- FilePathFieldNumber - -

- -

Field number for the “FilePath” field.

-
-
- -
-
public const int FilePathFieldNumber = 2
-
- - - - -

Field Value

-
-
int
-
-
- - - - - - - - - - -

- LineFieldNumber - -

- -

Field number for the “Line” field.

-
-
- -
-
public const int LineFieldNumber = 3
-
- - - - -

Field Value

-
-
int
-
-
- - - - - - - - - - -

- LineIndexFieldNumber - -

- -

Field number for the “LineIndex” field.

-
-
- -
-
public const int LineIndexFieldNumber = 5
-
- - - - -

Field Value

-
-
int
-
-
- - - - - - - - - - -

- SpindleDirectionFieldNumber - -

- -

Field number for the “SpindleDirection” field.

-
-
- -
-
public const int SpindleDirectionFieldNumber = 10
-
- - - - -

Field Value

-
-
int
-
-
- - - - - - - - - - -

- SpindleSpeedRpmFieldNumber - -

- -

Field number for the “SpindleSpeed_rpm” field.

-
-
- -
-
public const int SpindleSpeedRpmFieldNumber = 9
-
- - - - -

Field Value

-
-
int
-
-
- - - - - - - - - - -

- StepIndexFieldNumber - -

- -

Field number for the “StepIndex” field.

-
-
- -
-
public const int StepIndexFieldNumber = 1
-
- - - - -

Field Value

-
-
int
-
-
- - - - - - - - - - -

- ToolIdFieldNumber - -

- -

Field number for the “ToolId” field.

-
-
- -
-
public const int ToolIdFieldNumber = 7
-
- - - - -

Field Value

-
-
int
-
-
- - - - - - - - - - -

- WorkTimeFieldNumber - -

- -

Field number for the “WorkTime” field.

-
-
- -
-
public const int WorkTimeFieldNumber = 6
-
- - - - -

Field Value

-
-
int
-
-
- - - - - - - - - -

Properties -

- - - - -

- CsvRowDictionary - -

- -
-
- -
-
public MapField<string, string> CsvRowDictionary { get; }
-
- - - - - -

Property Value

-
-
MapField<string, string>
-
-
- - - - - - - - - - -

- Descriptor - -

- -
-
- -
-
public static MessageDescriptor Descriptor { get; }
-
- - - - - -

Property Value

-
-
MessageDescriptor
-
-
- - - - - - - - - - -

- FeedrateMmdmin - -

- -
-
- -
-
public double FeedrateMmdmin { get; set; }
-
- - - - - -

Property Value

-
-
double
-
-
- - - - - - - - - - -

- FileIndex - -

- -
-
- -
-
public int FileIndex { get; set; }
-
- - - - - -

Property Value

-
-
int
-
-
- - - - - - - - - - -

- FilePath - -

- -
-
- -
-
public string FilePath { get; set; }
-
- - - - - -

Property Value

-
-
string
-
-
- - - - - - - - - - -

- Line - -

- -
-
- -
-
public string Line { get; set; }
-
- - - - - -

Property Value

-
-
string
-
-
- - - - - - - - - - -

- LineIndex - -

- -
-
- -
-
public int LineIndex { get; set; }
-
- - - - - -

Property Value

-
-
int
-
-
- - - - - - - - - - -

- Parser - -

- -
-
- -
-
public static MessageParser<GrpcNcStep> Parser { get; }
-
- - - - - -

Property Value

-
-
MessageParser<GrpcNcStep>
-
-
- - - - - - - - - - -

- SpindleDirection - -

- -
-
- -
-
public int SpindleDirection { get; set; }
-
- - - - - -

Property Value

-
-
int
-
-
- - - - - - - - - - -

- SpindleSpeedRpm - -

- -
-
- -
-
public double SpindleSpeedRpm { get; set; }
-
- - - - - -

Property Value

-
-
double
-
-
- - - - - - - - - - -

- StepIndex - -

- -
-
- -
-
public int StepIndex { get; set; }
-
- - - - - -

Property Value

-
-
int
-
-
- - - - - - - - - - -

- ToolId - -

- -
-
- -
-
public int ToolId { get; set; }
-
- - - - - -

Property Value

-
-
int
-
-
- - - - - - - - - - -

- WorkTime - -

- -
-
- -
-
public double WorkTime { get; set; }
-
- - - - - -

Property Value

-
-
double
-
-
- - - - - - - - -

Methods -

- - - - -

- CalculateSize() - -

- -

Calculates the size of this message in Protocol Buffer wire format, in bytes.

-
-
- -
-
public int CalculateSize()
-
- - -

Returns

-
-
int
-

The number of bytes required to write this message -to a coded output stream.

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

- Clone() - -

- -

Creates a deep clone of this object.

-
-
- -
-
public GrpcNcStep Clone()
-
- - -

Returns

-
-
GrpcNcStep
-

A deep clone of this object.

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

- Equals(object) - -

- -

Determines whether the specified object is equal to the current object.

-
-
- -
-
public override bool Equals(object other)
-
- -

Parameters

-
-
other object
-
-
- -

Returns

-
-
bool
-

true if the specified object is equal to the current object; otherwise, false.

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

- Equals(GrpcNcStep) - -

- -

Indicates whether the current object is equal to another object of the same type.

-
-
- -
-
public bool Equals(GrpcNcStep other)
-
- -

Parameters

-
-
other GrpcNcStep
-

An object to compare with this object.

-
-
- -

Returns

-
-
bool
-

true if the current object is equal to the other parameter; otherwise, false.

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

- GetHashCode() - -

- -

Serves as the default hash function.

-
-
- -
-
public override int GetHashCode()
-
- - -

Returns

-
-
int
-

A hash code for the current object.

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

- MergeFrom(CodedInputStream) - -

- -

Merges the data from the specified coded input stream with the current message.

-
-
- -
-
public void MergeFrom(CodedInputStream input)
-
- -

Parameters

-
-
input CodedInputStream
-
-
- - - - - - - - -

Remarks

-

See the user guide for precise merge semantics.

-
- - - - - - -

- MergeFrom(GrpcNcStep) - -

- -

Merges the given message into this one.

-
-
- -
-
public void MergeFrom(GrpcNcStep other)
-
- -

Parameters

-
-
other GrpcNcStep
-
-
- - - - - - - - -

Remarks

-

See the user guide for precise merge semantics.

-
- - - - - - -

- ToString() - -

- -

Returns a string that represents the current object.

-
-
- -
-
public override string ToString()
-
- - -

Returns

-
-
string
-

A string that represents the current object.

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

- WriteTo(CodedOutputStream) - -

- -

Writes the data to the given coded output stream.

-
-
- -
-
public void WriteTo(CodedOutputStream output)
-
- -

Parameters

-
-
output CodedOutputStream
-

Coded output stream to write the data to. Must not be null.

-
-
- - - - - - - - - - - - - -
- -
-
- - -
- -
- -
-
- -
- - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalReflection.html b/App/wwwroot/HiAPI-docsite/api/numerical.NumericalReflection.html deleted file mode 100644 index f6dbab7a..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalReflection.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - Class NumericalReflection | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
-
-
-
Table of Contents
- -
-
- -
-
-
- -
-
- - - -
- -
- - - -

-Class NumericalReflection -

- -
-
Namespace
numerical
-
Assembly
HiGeom.dll
-
- -

Holder for reflection information generated from UniversalNcs/numerical.proto

-
-
- -
-
public static class NumericalReflection
-
- - - - -
-
Inheritance
-
- -
NumericalReflection
-
-
- - - -
-
Inherited Members
-
- - - - - - - -
- - - - - - -

Properties -

- - - - -

- Descriptor - -

- -

File descriptor for UniversalNcs/numerical.proto

-
-
- -
-
public static FileDescriptor Descriptor { get; }
-
- - - - - -

Property Value

-
-
FileDescriptor
-
-
- - - - - - - - - -
- -
-
- - -
- -
- -
-
- -
- - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.NumericalServiceClient.html b/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.NumericalServiceClient.html deleted file mode 100644 index d04c0216..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.NumericalServiceClient.html +++ /dev/null @@ -1,540 +0,0 @@ - - - - - Class NumericalService.NumericalServiceClient | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
-
-
-
Table of Contents
- -
-
- -
-
-
- -
-
- - - -
- -
- - - -

-Class NumericalService.NumericalServiceClient -

- -
-
Namespace
numerical
-
Assembly
HiGeom.dll
-
- -

Client for NumericalService

-
-
- -
-
public class NumericalService.NumericalServiceClient : ClientBase<NumericalService.NumericalServiceClient>
-
- - - - -
-
Inheritance
-
- - - -
NumericalService.NumericalServiceClient
-
-
- - - -
-
Inherited Members
-
- - - - - - - - - -
- -
-
Extension Methods
-
- - - - - - - -
- - - - - -

Constructors -

- - - - -

- NumericalServiceClient() - -

- -

Protected parameterless constructor to allow creation of test doubles.

-
-
- -
-
protected NumericalServiceClient()
-
- - - - - - - - - - - - - - - -

- NumericalServiceClient(CallInvoker) - -

- -

Creates a new client for NumericalService that uses a custom CallInvoker.

-
-
- -
-
public NumericalServiceClient(CallInvoker callInvoker)
-
- -

Parameters

-
-
callInvoker CallInvoker
-

The callInvoker to use to make remote calls.

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

- NumericalServiceClient(ChannelBase) - -

- -

Creates a new client for NumericalService

-
-
- -
-
public NumericalServiceClient(ChannelBase channel)
-
- -

Parameters

-
-
channel ChannelBase
-

The channel to use to make remote calls.

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

- NumericalServiceClient(ClientBaseConfiguration) - -

- -

Protected constructor to allow creation of configured clients.

-
-
- -
-
protected NumericalServiceClient(ClientBase.ClientBaseConfiguration configuration)
-
- -

Parameters

-
-
configuration ClientBase.ClientBaseConfiguration
-

The client configuration.

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

Methods -

- - - - -

- GetNcStepGrpcCsvRowDictionary(Empty, CallOptions) - -

- -
-
- -
-
public virtual GrpcCsvRowDictionary GetNcStepGrpcCsvRowDictionary(Empty request, CallOptions options)
-
- -

Parameters

-
-
request Empty
-
-
options CallOptions
-
-
- -

Returns

-
-
GrpcCsvRowDictionary
-
-
- - - - - - - - - - - - - -

- GetNcStepGrpcCsvRowDictionary(Empty, Metadata, DateTime?, CancellationToken) - -

- -
-
- -
-
public virtual GrpcCsvRowDictionary GetNcStepGrpcCsvRowDictionary(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)
-
- -

Parameters

-
-
request Empty
-
-
headers Metadata
-
-
deadline DateTime?
-
-
cancellationToken CancellationToken
-
-
- -

Returns

-
-
GrpcCsvRowDictionary
-
-
- - - - - - - - - - - - - -

- GetNcStepGrpcCsvRowDictionaryAsync(Empty, CallOptions) - -

- -
-
- -
-
public virtual AsyncUnaryCall<GrpcCsvRowDictionary> GetNcStepGrpcCsvRowDictionaryAsync(Empty request, CallOptions options)
-
- -

Parameters

-
-
request Empty
-
-
options CallOptions
-
-
- -

Returns

-
-
AsyncUnaryCall<GrpcCsvRowDictionary>
-
-
- - - - - - - - - - - - - -

- GetNcStepGrpcCsvRowDictionaryAsync(Empty, Metadata, DateTime?, CancellationToken) - -

- -
-
- -
-
public virtual AsyncUnaryCall<GrpcCsvRowDictionary> GetNcStepGrpcCsvRowDictionaryAsync(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)
-
- -

Parameters

-
-
request Empty
-
-
headers Metadata
-
-
deadline DateTime?
-
-
cancellationToken CancellationToken
-
-
- -

Returns

-
-
AsyncUnaryCall<GrpcCsvRowDictionary>
-
-
- - - - - - - - - - - - - -

- NewInstance(ClientBaseConfiguration) - -

- -

Creates a new instance of client from given ClientBaseConfiguration.

-
-
- -
-
protected override NumericalService.NumericalServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration)
-
- -

Parameters

-
-
configuration ClientBase.ClientBaseConfiguration
-
-
- -

Returns

-
-
NumericalService.NumericalServiceClient
-
-
- - - - - - - - - - - - -
- -
-
- - -
- -
- -
-
- -
- - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.html b/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.html deleted file mode 100644 index 4249045b..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - - Class NumericalService | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
-
-
-
Table of Contents
- -
-
- -
-
-
- -
-
- - - -
- -
- - - -

-Class NumericalService -

- -
-
Namespace
numerical
-
Assembly
HiGeom.dll
-
- -
-
- -
-
public static class NumericalService
-
- - - - -
-
Inheritance
-
- -
NumericalService
-
-
- - - -
-
Inherited Members
-
- - - - - - - -
- - - - - - -

Properties -

- - - - -

- Descriptor - -

- -

Service descriptor

-
-
- -
-
public static ServiceDescriptor Descriptor { get; }
-
- - - - - -

Property Value

-
-
ServiceDescriptor
-
-
- - - - - - - - -

Methods -

- - - - -

- BindService(ServiceBinderBase, NumericalServiceBase) - -

- -

Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. -Note: this method is part of an experimental API that can change or be removed without any prior notice.

-
-
- -
-
public static void BindService(ServiceBinderBase serviceBinder, NumericalService.NumericalServiceBase serviceImpl)
-
- -

Parameters

-
-
serviceBinder ServiceBinderBase
-

Service methods will be bound by calling AddMethod on this object.

-
-
serviceImpl NumericalService.NumericalServiceBase
-

An object implementing the server-side handling logic.

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

- BindService(NumericalServiceBase) - -

- -

Creates service definition that can be registered with a server

-
-
- -
-
public static ServerServiceDefinition BindService(NumericalService.NumericalServiceBase serviceImpl)
-
- -

Parameters

-
-
serviceImpl NumericalService.NumericalServiceBase
-

An object implementing the server-side handling logic.

-
-
- -

Returns

-
-
ServerServiceDefinition
-
-
- - - - - - - - - - - - -
- -
-
- - -
- -
- -
-
- -
- - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcReflection.html b/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcReflection.html deleted file mode 100644 index 60880a5a..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcReflection.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - Class UniversalNcReflection | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
-
-
-
Table of Contents
- -
-
- -
-
-
- -
-
- - - -
- -
- - - -

-Class UniversalNcReflection -

- -
-
Namespace
numerical
-
Assembly
HiGeom.dll
-
- -

Holder for reflection information generated from UniversalNcs/universal_nc.proto

-
-
- -
-
public static class UniversalNcReflection
-
- - - - -
-
Inheritance
-
- -
UniversalNcReflection
-
-
- - - -
-
Inherited Members
-
- - - - - - - -
- - - - - - -

Properties -

- - - - -

- Descriptor - -

- -

File descriptor for UniversalNcs/universal_nc.proto

-
-
- -
-
public static FileDescriptor Descriptor { get; }
-
- - - - - -

Property Value

-
-
FileDescriptor
-
-
- - - - - - - - - -
- -
-
- - -
- -
- -
-
- -
- - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.UniversalNcServiceClient.html b/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.UniversalNcServiceClient.html deleted file mode 100644 index 512bd047..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.UniversalNcServiceClient.html +++ /dev/null @@ -1,540 +0,0 @@ - - - - - Class UniversalNcService.UniversalNcServiceClient | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
-
-
-
Table of Contents
- -
-
- -
-
-
- -
-
- - - -
- -
- - - -

-Class UniversalNcService.UniversalNcServiceClient -

- -
-
Namespace
numerical
-
Assembly
HiGeom.dll
-
- -

Client for UniversalNcService

-
-
- -
-
public class UniversalNcService.UniversalNcServiceClient : ClientBase<UniversalNcService.UniversalNcServiceClient>
-
- - - - -
-
Inheritance
-
- - - -
UniversalNcService.UniversalNcServiceClient
-
-
- - - -
-
Inherited Members
-
- - - - - - - - - -
- -
-
Extension Methods
-
- - - - - - - -
- - - - - -

Constructors -

- - - - -

- UniversalNcServiceClient() - -

- -

Protected parameterless constructor to allow creation of test doubles.

-
-
- -
-
protected UniversalNcServiceClient()
-
- - - - - - - - - - - - - - - -

- UniversalNcServiceClient(CallInvoker) - -

- -

Creates a new client for UniversalNcService that uses a custom CallInvoker.

-
-
- -
-
public UniversalNcServiceClient(CallInvoker callInvoker)
-
- -

Parameters

-
-
callInvoker CallInvoker
-

The callInvoker to use to make remote calls.

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

- UniversalNcServiceClient(ChannelBase) - -

- -

Creates a new client for UniversalNcService

-
-
- -
-
public UniversalNcServiceClient(ChannelBase channel)
-
- -

Parameters

-
-
channel ChannelBase
-

The channel to use to make remote calls.

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

- UniversalNcServiceClient(ClientBaseConfiguration) - -

- -

Protected constructor to allow creation of configured clients.

-
-
- -
-
protected UniversalNcServiceClient(ClientBase.ClientBaseConfiguration configuration)
-
- -

Parameters

-
-
configuration ClientBase.ClientBaseConfiguration
-

The client configuration.

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

Methods -

- - - - -

- GetNcStepGrpcCsvRowDictionary(GrpcNcStep, CallOptions) - -

- -
-
- -
-
public virtual GrpcNcStep GetNcStepGrpcCsvRowDictionary(GrpcNcStep request, CallOptions options)
-
- -

Parameters

-
-
request GrpcNcStep
-
-
options CallOptions
-
-
- -

Returns

-
-
GrpcNcStep
-
-
- - - - - - - - - - - - - -

- GetNcStepGrpcCsvRowDictionary(GrpcNcStep, Metadata, DateTime?, CancellationToken) - -

- -
-
- -
-
public virtual GrpcNcStep GetNcStepGrpcCsvRowDictionary(GrpcNcStep request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)
-
- -

Parameters

-
-
request GrpcNcStep
-
-
headers Metadata
-
-
deadline DateTime?
-
-
cancellationToken CancellationToken
-
-
- -

Returns

-
-
GrpcNcStep
-
-
- - - - - - - - - - - - - -

- GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, CallOptions) - -

- -
-
- -
-
public virtual AsyncUnaryCall<GrpcNcStep> GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep request, CallOptions options)
-
- -

Parameters

-
-
request GrpcNcStep
-
-
options CallOptions
-
-
- -

Returns

-
-
AsyncUnaryCall<GrpcNcStep>
-
-
- - - - - - - - - - - - - -

- GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, Metadata, DateTime?, CancellationToken) - -

- -
-
- -
-
public virtual AsyncUnaryCall<GrpcNcStep> GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)
-
- -

Parameters

-
-
request GrpcNcStep
-
-
headers Metadata
-
-
deadline DateTime?
-
-
cancellationToken CancellationToken
-
-
- -

Returns

-
-
AsyncUnaryCall<GrpcNcStep>
-
-
- - - - - - - - - - - - - -

- NewInstance(ClientBaseConfiguration) - -

- -

Creates a new instance of client from given ClientBaseConfiguration.

-
-
- -
-
protected override UniversalNcService.UniversalNcServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration)
-
- -

Parameters

-
-
configuration ClientBase.ClientBaseConfiguration
-
-
- -

Returns

-
-
UniversalNcService.UniversalNcServiceClient
-
-
- - - - - - - - - - - - -
- -
-
- - -
- -
- -
-
- -
- - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.html b/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.html deleted file mode 100644 index b44bcfdd..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - - Class UniversalNcService | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
-
-
-
Table of Contents
- -
-
- -
-
-
- -
-
- - - -
- -
- - - -

-Class UniversalNcService -

- -
-
Namespace
numerical
-
Assembly
HiGeom.dll
-
- -
-
- -
-
public static class UniversalNcService
-
- - - - -
-
Inheritance
-
- -
UniversalNcService
-
-
- - - -
-
Inherited Members
-
- - - - - - - -
- - - - - - -

Properties -

- - - - -

- Descriptor - -

- -

Service descriptor

-
-
- -
-
public static ServiceDescriptor Descriptor { get; }
-
- - - - - -

Property Value

-
-
ServiceDescriptor
-
-
- - - - - - - - -

Methods -

- - - - -

- BindService(ServiceBinderBase, UniversalNcServiceBase) - -

- -

Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. -Note: this method is part of an experimental API that can change or be removed without any prior notice.

-
-
- -
-
public static void BindService(ServiceBinderBase serviceBinder, UniversalNcService.UniversalNcServiceBase serviceImpl)
-
- -

Parameters

-
-
serviceBinder ServiceBinderBase
-

Service methods will be bound by calling AddMethod on this object.

-
-
serviceImpl UniversalNcService.UniversalNcServiceBase
-

An object implementing the server-side handling logic.

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

- BindService(UniversalNcServiceBase) - -

- -

Creates service definition that can be registered with a server

-
-
- -
-
public static ServerServiceDefinition BindService(UniversalNcService.UniversalNcServiceBase serviceImpl)
-
- -

Parameters

-
-
serviceImpl UniversalNcService.UniversalNcServiceBase
-

An object implementing the server-side handling logic.

-
-
- -

Returns

-
-
ServerServiceDefinition
-
-
- - - - - - - - - - - - -
- -
-
- - -
- -
- -
-
- -
- - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.html b/App/wwwroot/HiAPI-docsite/api/numerical.html deleted file mode 100644 index a53f52ee..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - Namespace numerical | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
-
-
-
Table of Contents
- -
-
- -
-
-
- -
-
- - - -
- -
- -

Namespace numerical

-
-
-
- -

-Classes -

-
-
Empty
-
-
-
-
GrpcCsvRowDictionary
-
-
-
-
GrpcNcStep
-
-
-
-
NumericalReflection
-

Holder for reflection information generated from UniversalNcs/numerical.proto

-
-
-
-
NumericalService
-
-
-
-
NumericalService.NumericalServiceBase
-

Base class for server-side implementations of NumericalService

-
-
-
-
NumericalService.NumericalServiceClient
-

Client for NumericalService

-
-
-
-
UniversalNcReflection
-

Holder for reflection information generated from UniversalNcs/universal_nc.proto

-
-
-
-
UniversalNcService
-
-
-
-
UniversalNcService.UniversalNcServiceBase
-

Base class for server-side implementations of UniversalNcService

-
-
-
-
UniversalNcService.UniversalNcServiceClient
-

Client for UniversalNcService

-
-
- - -
- -
-
- - -
- -
- -
-
- -
- - - - diff --git a/App/wwwroot/HiAPI-docsite/api/toc.html b/App/wwwroot/HiAPI-docsite/api/toc.html index d6b5949f..71966515 100644 --- a/App/wwwroot/HiAPI-docsite/api/toc.html +++ b/App/wwwroot/HiAPI-docsite/api/toc.html @@ -1170,46 +1170,6 @@ -
  • - - Hi.Grpcs - - -
  • Hi.HiNcKits @@ -1439,6 +1399,9 @@
  • IMachiningService
  • +
  • + IStepPropertyAccessHost +
  • MachineMotionStep
  • @@ -2387,6 +2350,9 @@
  • ISentenceIndexed
  • +
  • + ISessionResettable +
  • IndexedSentence
  • @@ -2488,6 +2454,9 @@
  • FanucToolOffsetVariableLookup
  • +
  • + FanucWhileDoIterationDependency +
  • RetainedCommonVariableTable
  • @@ -2565,6 +2534,9 @@
  • FileIndexCounterDependency
  • +
  • + MachiningServiceDependency +
  • NcKinematicsDependency
  • @@ -2574,6 +2546,9 @@
  • SegmenterDependency
  • +
  • + StepPropertyAccessDictionaryDependency +
  • SyntaxPieceLayerDependency
  • @@ -2676,6 +2651,9 @@ Hi.NcParsers.EvaluationSyntaxs.Fanuc
  • @@ -2790,6 +2771,9 @@
  • FanucProgramNumber
  • +
  • + FanucWhileDo +
  • Feedrate
  • @@ -3211,6 +3195,9 @@
  • FanucProgramNumberSyntax
  • +
  • + FanucWhileDoParsingSyntax +
  • @@ -3708,6 +3695,28 @@
  • +
  • + + Hi.Numerical.CsvParsers + + +
  • Hi.Numerical.FilePlayers @@ -3716,9 +3725,6 @@
  • CsvRunner
  • -
  • - CsvRunnerConfig -
  • HardNcRunner
  • @@ -4233,56 +4239,6 @@ -
  • - - HiNc.Grpcs - - -
  • -
  • - - numerical - - -
  • diff --git a/App/wwwroot/HiAPI-docsite/api/toc.json b/App/wwwroot/HiAPI-docsite/api/toc.json index d1858224..ebcaa417 100644 --- a/App/wwwroot/HiAPI-docsite/api/toc.json +++ b/App/wwwroot/HiAPI-docsite/api/toc.json @@ -1,2 +1,2 @@ -{"items":[{"name":"Hi.Cbtr","href":"Hi.Cbtr.html","topicHref":"Hi.Cbtr.html","topicUid":"Hi.Cbtr","type":"Namespace","items":[{"name":"CachedTris","href":"Hi.Cbtr.CachedTris.html","topicHref":"Hi.Cbtr.CachedTris.html","topicUid":"Hi.Cbtr.CachedTris","type":"Class"},{"name":"CachedTris.SweepingMode","href":"Hi.Cbtr.CachedTris.SweepingMode.html","topicHref":"Hi.Cbtr.CachedTris.SweepingMode.html","topicUid":"Hi.Cbtr.CachedTris.SweepingMode","type":"Enum"},{"name":"CbtrPickable","href":"Hi.Cbtr.CbtrPickable.html","topicHref":"Hi.Cbtr.CbtrPickable.html","topicUid":"Hi.Cbtr.CbtrPickable","type":"Class"},{"name":"ConstructionDefectDisplayee","href":"Hi.Cbtr.ConstructionDefectDisplayee.html","topicHref":"Hi.Cbtr.ConstructionDefectDisplayee.html","topicUid":"Hi.Cbtr.ConstructionDefectDisplayee","type":"Class"},{"name":"CubeTree","href":"Hi.Cbtr.CubeTree.html","topicHref":"Hi.Cbtr.CubeTree.html","topicUid":"Hi.Cbtr.CubeTree","type":"Class"},{"name":"CubeTree.DefectNodeInfo","href":"Hi.Cbtr.CubeTree.DefectNodeInfo.html","topicHref":"Hi.Cbtr.CubeTree.DefectNodeInfo.html","topicUid":"Hi.Cbtr.CubeTree.DefectNodeInfo","type":"Class"},{"name":"CubeTree.DefectNodeInfo.TriWireInfo","href":"Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo.html","topicHref":"Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo.html","topicUid":"Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo","type":"Class"},{"name":"CubeTree.DefectTriWireInfoInterop","href":"Hi.Cbtr.CubeTree.DefectTriWireInfoInterop.html","topicHref":"Hi.Cbtr.CubeTree.DefectTriWireInfoInterop.html","topicUid":"Hi.Cbtr.CubeTree.DefectTriWireInfoInterop","type":"Struct"},{"name":"CubeTree.InfNodeInfo","href":"Hi.Cbtr.CubeTree.InfNodeInfo.html","topicHref":"Hi.Cbtr.CubeTree.InfNodeInfo.html","topicUid":"Hi.Cbtr.CubeTree.InfNodeInfo","type":"Class"},{"name":"CubeTree.TriWireRelationInterop","href":"Hi.Cbtr.CubeTree.TriWireRelationInterop.html","topicHref":"Hi.Cbtr.CubeTree.TriWireRelationInterop.html","topicUid":"Hi.Cbtr.CubeTree.TriWireRelationInterop","type":"Struct"},{"name":"CubeTree.diff_response_func_t","href":"Hi.Cbtr.CubeTree.diff_response_func_t.html","topicHref":"Hi.Cbtr.CubeTree.diff_response_func_t.html","topicUid":"Hi.Cbtr.CubeTree.diff_response_func_t","type":"Delegate"},{"name":"CubeTreeExportExtensions","href":"Hi.Cbtr.CubeTreeExportExtensions.html","topicHref":"Hi.Cbtr.CubeTreeExportExtensions.html","topicUid":"Hi.Cbtr.CubeTreeExportExtensions","type":"Class"},{"name":"CubeTreeFile","href":"Hi.Cbtr.CubeTreeFile.html","topicHref":"Hi.Cbtr.CubeTreeFile.html","topicUid":"Hi.Cbtr.CubeTreeFile","type":"Class"},{"name":"DiffAttachment","href":"Hi.Cbtr.DiffAttachment.html","topicHref":"Hi.Cbtr.DiffAttachment.html","topicUid":"Hi.Cbtr.DiffAttachment","type":"Class"},{"name":"GeomBoolCache","href":"Hi.Cbtr.GeomBoolCache.html","topicHref":"Hi.Cbtr.GeomBoolCache.html","topicUid":"Hi.Cbtr.GeomBoolCache","type":"Class"},{"name":"GeomBoolCacheEnum","href":"Hi.Cbtr.GeomBoolCacheEnum.html","topicHref":"Hi.Cbtr.GeomBoolCacheEnum.html","topicUid":"Hi.Cbtr.GeomBoolCacheEnum","type":"Enum"},{"name":"IGetInitStickConvex","href":"Hi.Cbtr.IGetInitStickConvex.html","topicHref":"Hi.Cbtr.IGetInitStickConvex.html","topicUid":"Hi.Cbtr.IGetInitStickConvex","type":"Interface"},{"name":"InfDefectDisplayee","href":"Hi.Cbtr.InfDefectDisplayee.html","topicHref":"Hi.Cbtr.InfDefectDisplayee.html","topicUid":"Hi.Cbtr.InfDefectDisplayee","type":"Class"},{"name":"InitStickConvex","href":"Hi.Cbtr.InitStickConvex.html","topicHref":"Hi.Cbtr.InitStickConvex.html","topicUid":"Hi.Cbtr.InitStickConvex","type":"Class"},{"name":"LsStl","href":"Hi.Cbtr.LsStl.html","topicHref":"Hi.Cbtr.LsStl.html","topicUid":"Hi.Cbtr.LsStl","type":"Class"},{"name":"Substraction","href":"Hi.Cbtr.Substraction.html","topicHref":"Hi.Cbtr.Substraction.html","topicUid":"Hi.Cbtr.Substraction","type":"Class"},{"name":"UnhighlightablePickable","href":"Hi.Cbtr.UnhighlightablePickable.html","topicHref":"Hi.Cbtr.UnhighlightablePickable.html","topicUid":"Hi.Cbtr.UnhighlightablePickable","type":"Class"},{"name":"UnmanagedSubstraction","href":"Hi.Cbtr.UnmanagedSubstraction.html","topicHref":"Hi.Cbtr.UnmanagedSubstraction.html","topicUid":"Hi.Cbtr.UnmanagedSubstraction","type":"Class"},{"name":"WireCube","href":"Hi.Cbtr.WireCube.html","topicHref":"Hi.Cbtr.WireCube.html","topicUid":"Hi.Cbtr.WireCube","type":"Class"},{"name":"node_diff_t","href":"Hi.Cbtr.node_diff_t.html","topicHref":"Hi.Cbtr.node_diff_t.html","topicUid":"Hi.Cbtr.node_diff_t","type":"Struct"}]},{"name":"Hi.Collision","href":"Hi.Collision.html","topicHref":"Hi.Collision.html","topicUid":"Hi.Collision","type":"Namespace","items":[{"name":"AnchoredCollidableLeaf","href":"Hi.Collision.AnchoredCollidableLeaf.html","topicHref":"Hi.Collision.AnchoredCollidableLeaf.html","topicUid":"Hi.Collision.AnchoredCollidableLeaf","type":"Class"},{"name":"AnchoredCollidablePair","href":"Hi.Collision.AnchoredCollidablePair.html","topicHref":"Hi.Collision.AnchoredCollidablePair.html","topicUid":"Hi.Collision.AnchoredCollidablePair","type":"Class"},{"name":"CollidableStl","href":"Hi.Collision.CollidableStl.html","topicHref":"Hi.Collision.CollidableStl.html","topicUid":"Hi.Collision.CollidableStl","type":"Class"},{"name":"CollisionFlag","href":"Hi.Collision.CollisionFlag.html","topicHref":"Hi.Collision.CollisionFlag.html","topicUid":"Hi.Collision.CollisionFlag","type":"Enum"},{"name":"CollisionIndexPair","href":"Hi.Collision.CollisionIndexPair.html","topicHref":"Hi.Collision.CollisionIndexPair.html","topicUid":"Hi.Collision.CollisionIndexPair","type":"Class"},{"name":"CollisionUtil","href":"Hi.Collision.CollisionUtil.html","topicHref":"Hi.Collision.CollisionUtil.html","topicUid":"Hi.Collision.CollisionUtil","type":"Class"},{"name":"FuncAnchoredCollidable","href":"Hi.Collision.FuncAnchoredCollidable.html","topicHref":"Hi.Collision.FuncAnchoredCollidable.html","topicUid":"Hi.Collision.FuncAnchoredCollidable","type":"Class"},{"name":"IAnchoredCollidableBased","href":"Hi.Collision.IAnchoredCollidableBased.html","topicHref":"Hi.Collision.IAnchoredCollidableBased.html","topicUid":"Hi.Collision.IAnchoredCollidableBased","type":"Interface"},{"name":"IAnchoredCollidableLeaf","href":"Hi.Collision.IAnchoredCollidableLeaf.html","topicHref":"Hi.Collision.IAnchoredCollidableLeaf.html","topicUid":"Hi.Collision.IAnchoredCollidableLeaf","type":"Interface"},{"name":"IAnchoredCollidableNode","href":"Hi.Collision.IAnchoredCollidableNode.html","topicHref":"Hi.Collision.IAnchoredCollidableNode.html","topicUid":"Hi.Collision.IAnchoredCollidableNode","type":"Interface"},{"name":"IAnchoredCollidableStem","href":"Hi.Collision.IAnchoredCollidableStem.html","topicHref":"Hi.Collision.IAnchoredCollidableStem.html","topicUid":"Hi.Collision.IAnchoredCollidableStem","type":"Interface"},{"name":"ICollidable","href":"Hi.Collision.ICollidable.html","topicHref":"Hi.Collision.ICollidable.html","topicUid":"Hi.Collision.ICollidable","type":"Interface"},{"name":"ICollidee","href":"Hi.Collision.ICollidee.html","topicHref":"Hi.Collision.ICollidee.html","topicUid":"Hi.Collision.ICollidee","type":"Interface"},{"name":"ICollisionArena","href":"Hi.Collision.ICollisionArena.html","topicHref":"Hi.Collision.ICollisionArena.html","topicUid":"Hi.Collision.ICollisionArena","type":"Interface"},{"name":"ICollisionIndex","href":"Hi.Collision.ICollisionIndex.html","topicHref":"Hi.Collision.ICollisionIndex.html","topicUid":"Hi.Collision.ICollisionIndex","type":"Interface"},{"name":"IGetAnchoredCollidablePairs","href":"Hi.Collision.IGetAnchoredCollidablePairs.html","topicHref":"Hi.Collision.IGetAnchoredCollidablePairs.html","topicUid":"Hi.Collision.IGetAnchoredCollidablePairs","type":"Interface"},{"name":"IGetCollidable","href":"Hi.Collision.IGetCollidable.html","topicHref":"Hi.Collision.IGetCollidable.html","topicUid":"Hi.Collision.IGetCollidable","type":"Interface"},{"name":"IGetCollisionIndexPairs","href":"Hi.Collision.IGetCollisionIndexPairs.html","topicHref":"Hi.Collision.IGetCollisionIndexPairs.html","topicUid":"Hi.Collision.IGetCollisionIndexPairs","type":"Interface"},{"name":"IGetDefaultCollidablePairs","href":"Hi.Collision.IGetDefaultCollidablePairs.html","topicHref":"Hi.Collision.IGetDefaultCollidablePairs.html","topicUid":"Hi.Collision.IGetDefaultCollidablePairs","type":"Interface"},{"name":"IGetTriTree","href":"Hi.Collision.IGetTriTree.html","topicHref":"Hi.Collision.IGetTriTree.html","topicUid":"Hi.Collision.IGetTriTree","type":"Interface"},{"name":"MechCollisionResult","href":"Hi.Collision.MechCollisionResult.html","topicHref":"Hi.Collision.MechCollisionResult.html","topicUid":"Hi.Collision.MechCollisionResult","type":"Class"},{"name":"MechCollisionUtil","href":"Hi.Collision.MechCollisionUtil.html","topicHref":"Hi.Collision.MechCollisionUtil.html","topicUid":"Hi.Collision.MechCollisionUtil","type":"Class"},{"name":"TriTree","href":"Hi.Collision.TriTree.html","topicHref":"Hi.Collision.TriTree.html","topicUid":"Hi.Collision.TriTree","type":"Class"}]},{"name":"Hi.Collisions","href":"Hi.Collisions.html","topicHref":"Hi.Collisions.html","topicUid":"Hi.Collisions","type":"Namespace","items":[{"name":"AnchoredCollidabled","href":"Hi.Collisions.AnchoredCollidabled.html","topicHref":"Hi.Collisions.AnchoredCollidabled.html","topicUid":"Hi.Collisions.AnchoredCollidabled","type":"Class"},{"name":"IAnchoredCollidabled","href":"Hi.Collisions.IAnchoredCollidabled.html","topicHref":"Hi.Collisions.IAnchoredCollidabled.html","topicUid":"Hi.Collisions.IAnchoredCollidabled","type":"Interface"}]},{"name":"Hi.Coloring","href":"Hi.Coloring.html","topicHref":"Hi.Coloring.html","topicUid":"Hi.Coloring","type":"Namespace","items":[{"name":"ColorUtil","href":"Hi.Coloring.ColorUtil.html","topicHref":"Hi.Coloring.ColorUtil.html","topicUid":"Hi.Coloring.ColorUtil","type":"Class"},{"name":"DictionaryColorGuide","href":"Hi.Coloring.DictionaryColorGuide.html","topicHref":"Hi.Coloring.DictionaryColorGuide.html","topicUid":"Hi.Coloring.DictionaryColorGuide","type":"Class"},{"name":"DiscreteQuantityColorGuide","href":"Hi.Coloring.DiscreteQuantityColorGuide.html","topicHref":"Hi.Coloring.DiscreteQuantityColorGuide.html","topicUid":"Hi.Coloring.DiscreteQuantityColorGuide","type":"Class"},{"name":"FilteredColorGuide","href":"Hi.Coloring.FilteredColorGuide.html","topicHref":"Hi.Coloring.FilteredColorGuide.html","topicUid":"Hi.Coloring.FilteredColorGuide","type":"Class"},{"name":"FuncRangeColorGuide","href":"Hi.Coloring.FuncRangeColorGuide.html","topicHref":"Hi.Coloring.FuncRangeColorGuide.html","topicUid":"Hi.Coloring.FuncRangeColorGuide","type":"Class"},{"name":"IColorGuide","href":"Hi.Coloring.IColorGuide.html","topicHref":"Hi.Coloring.IColorGuide.html","topicUid":"Hi.Coloring.IColorGuide","type":"Interface"},{"name":"IColorGuideProperty","href":"Hi.Coloring.IColorGuideProperty.html","topicHref":"Hi.Coloring.IColorGuideProperty.html","topicUid":"Hi.Coloring.IColorGuideProperty","type":"Interface"},{"name":"IGetColorGuide","href":"Hi.Coloring.IGetColorGuide.html","topicHref":"Hi.Coloring.IGetColorGuide.html","topicUid":"Hi.Coloring.IGetColorGuide","type":"Interface"},{"name":"IGetRangeColorRule","href":"Hi.Coloring.IGetRangeColorRule.html","topicHref":"Hi.Coloring.IGetRangeColorRule.html","topicUid":"Hi.Coloring.IGetRangeColorRule","type":"Interface"},{"name":"IGetRgb","href":"Hi.Coloring.IGetRgb.html","topicHref":"Hi.Coloring.IGetRgb.html","topicUid":"Hi.Coloring.IGetRgb","type":"Interface"},{"name":"IGetRgbWithPriority","href":"Hi.Coloring.IGetRgbWithPriority.html","topicHref":"Hi.Coloring.IGetRgbWithPriority.html","topicUid":"Hi.Coloring.IGetRgbWithPriority","type":"Interface"},{"name":"PlainColorGuide","href":"Hi.Coloring.PlainColorGuide.html","topicHref":"Hi.Coloring.PlainColorGuide.html","topicUid":"Hi.Coloring.PlainColorGuide","type":"Class"},{"name":"QuantityColorGuide","href":"Hi.Coloring.QuantityColorGuide.html","topicHref":"Hi.Coloring.QuantityColorGuide.html","topicUid":"Hi.Coloring.QuantityColorGuide","type":"Class"},{"name":"RangeColorRule","href":"Hi.Coloring.RangeColorRule.html","topicHref":"Hi.Coloring.RangeColorRule.html","topicUid":"Hi.Coloring.RangeColorRule","type":"Class"},{"name":"RatioRgbFuncEnum","href":"Hi.Coloring.RatioRgbFuncEnum.html","topicHref":"Hi.Coloring.RatioRgbFuncEnum.html","topicUid":"Hi.Coloring.RatioRgbFuncEnum","type":"Enum"},{"name":"RgbSeed","href":"Hi.Coloring.RgbSeed.html","topicHref":"Hi.Coloring.RgbSeed.html","topicUid":"Hi.Coloring.RgbSeed","type":"Class"}]},{"name":"Hi.Common","href":"Hi.Common.html","topicHref":"Hi.Common.html","topicUid":"Hi.Common","type":"Namespace","items":[{"name":"BinIoUtil","href":"Hi.Common.BinIoUtil.html","topicHref":"Hi.Common.BinIoUtil.html","topicUid":"Hi.Common.BinIoUtil","type":"Class"},{"name":"BitUtil","href":"Hi.Common.BitUtil.html","topicHref":"Hi.Common.BitUtil.html","topicUid":"Hi.Common.BitUtil","type":"Class"},{"name":"BlockingTimer","href":"Hi.Common.BlockingTimer.html","topicHref":"Hi.Common.BlockingTimer.html","topicUid":"Hi.Common.BlockingTimer","type":"Class"},{"name":"BytesUtil","href":"Hi.Common.BytesUtil.html","topicHref":"Hi.Common.BytesUtil.html","topicUid":"Hi.Common.BytesUtil","type":"Class"},{"name":"ConcurrentTimeCounter","href":"Hi.Common.ConcurrentTimeCounter.html","topicHref":"Hi.Common.ConcurrentTimeCounter.html","topicUid":"Hi.Common.ConcurrentTimeCounter","type":"Class"},{"name":"ConsoleUtil","href":"Hi.Common.ConsoleUtil.html","topicHref":"Hi.Common.ConsoleUtil.html","topicUid":"Hi.Common.ConsoleUtil","type":"Class"},{"name":"CppLogUtil","href":"Hi.Common.CppLogUtil.html","topicHref":"Hi.Common.CppLogUtil.html","topicUid":"Hi.Common.CppLogUtil","type":"Class"},{"name":"CppLogUtil.LogDelegate","href":"Hi.Common.CppLogUtil.LogDelegate.html","topicHref":"Hi.Common.CppLogUtil.LogDelegate.html","topicUid":"Hi.Common.CppLogUtil.LogDelegate","type":"Delegate"},{"name":"CultureUtil","href":"Hi.Common.CultureUtil.html","topicHref":"Hi.Common.CultureUtil.html","topicUid":"Hi.Common.CultureUtil","type":"Class"},{"name":"DuplicateUtil","href":"Hi.Common.DuplicateUtil.html","topicHref":"Hi.Common.DuplicateUtil.html","topicUid":"Hi.Common.DuplicateUtil","type":"Class"},{"name":"EnumUtil","href":"Hi.Common.EnumUtil.html","topicHref":"Hi.Common.EnumUtil.html","topicUid":"Hi.Common.EnumUtil","type":"Class"},{"name":"EnumerablePlayer","href":"Hi.Common.EnumerablePlayer.html","topicHref":"Hi.Common.EnumerablePlayer.html","topicUid":"Hi.Common.EnumerablePlayer","type":"Class"},{"name":"IAbstractNote","href":"Hi.Common.IAbstractNote.html","topicHref":"Hi.Common.IAbstractNote.html","topicUid":"Hi.Common.IAbstractNote","type":"Interface"},{"name":"IBinaryIo","href":"Hi.Common.IBinaryIo.html","topicHref":"Hi.Common.IBinaryIo.html","topicUid":"Hi.Common.IBinaryIo","type":"Interface"},{"name":"IClearCache","href":"Hi.Common.IClearCache.html","topicHref":"Hi.Common.IClearCache.html","topicUid":"Hi.Common.IClearCache","type":"Interface"},{"name":"IDuplicate","href":"Hi.Common.IDuplicate.html","topicHref":"Hi.Common.IDuplicate.html","topicUid":"Hi.Common.IDuplicate","type":"Interface"},{"name":"IGetQuantityByKey","href":"Hi.Common.IGetQuantityByKey.html","topicHref":"Hi.Common.IGetQuantityByKey.html","topicUid":"Hi.Common.IGetQuantityByKey","type":"Interface"},{"name":"IGetSelectionName","href":"Hi.Common.IGetSelectionName.html","topicHref":"Hi.Common.IGetSelectionName.html","topicUid":"Hi.Common.IGetSelectionName","type":"Interface"},{"name":"INameNote","href":"Hi.Common.INameNote.html","topicHref":"Hi.Common.INameNote.html","topicUid":"Hi.Common.INameNote","type":"Interface"},{"name":"IPreferredFileName","href":"Hi.Common.IPreferredFileName.html","topicHref":"Hi.Common.IPreferredFileName.html","topicUid":"Hi.Common.IPreferredFileName","type":"Interface"},{"name":"IProgressFraction","href":"Hi.Common.IProgressFraction.html","topicHref":"Hi.Common.IProgressFraction.html","topicUid":"Hi.Common.IProgressFraction","type":"Interface"},{"name":"ISourceFile","href":"Hi.Common.ISourceFile.html","topicHref":"Hi.Common.ISourceFile.html","topicUid":"Hi.Common.ISourceFile","type":"Interface"},{"name":"IToPresentDto","href":"Hi.Common.IToPresentDto.html","topicHref":"Hi.Common.IToPresentDto.html","topicUid":"Hi.Common.IToPresentDto","type":"Interface"},{"name":"IUpdateByContent","href":"Hi.Common.IUpdateByContent.html","topicHref":"Hi.Common.IUpdateByContent.html","topicUid":"Hi.Common.IUpdateByContent","type":"Interface"},{"name":"IUriGetter","href":"Hi.Common.IUriGetter.html","topicHref":"Hi.Common.IUriGetter.html","topicUid":"Hi.Common.IUriGetter","type":"Interface"},{"name":"IWriteBin","href":"Hi.Common.IWriteBin.html","topicHref":"Hi.Common.IWriteBin.html","topicUid":"Hi.Common.IWriteBin","type":"Interface"},{"name":"IndexSegment","href":"Hi.Common.IndexSegment.html","topicHref":"Hi.Common.IndexSegment.html","topicUid":"Hi.Common.IndexSegment","type":"Class"},{"name":"IntegerKeyDictionaryConverter","href":"Hi.Common.IntegerKeyDictionaryConverter.html","topicHref":"Hi.Common.IntegerKeyDictionaryConverter.html","topicUid":"Hi.Common.IntegerKeyDictionaryConverter","type":"Class"},{"name":"IntegerKeyDictionaryConverter","href":"Hi.Common.IntegerKeyDictionaryConverter-1.html","topicHref":"Hi.Common.IntegerKeyDictionaryConverter-1.html","topicUid":"Hi.Common.IntegerKeyDictionaryConverter`1","type":"Class"},{"name":"InternalException","href":"Hi.Common.InternalException.html","topicHref":"Hi.Common.InternalException.html","topicUid":"Hi.Common.InternalException","type":"Class"},{"name":"InvokeUtil","href":"Hi.Common.InvokeUtil.html","topicHref":"Hi.Common.InvokeUtil.html","topicUid":"Hi.Common.InvokeUtil","type":"Class"},{"name":"JsonUtil","href":"Hi.Common.JsonUtil.html","topicHref":"Hi.Common.JsonUtil.html","topicUid":"Hi.Common.JsonUtil","type":"Class"},{"name":"LooseRunner","href":"Hi.Common.LooseRunner.html","topicHref":"Hi.Common.LooseRunner.html","topicUid":"Hi.Common.LooseRunner","type":"Class"},{"name":"LooseRunner.MergedCancellationTokenRun","href":"Hi.Common.LooseRunner.MergedCancellationTokenRun.html","topicHref":"Hi.Common.LooseRunner.MergedCancellationTokenRun.html","topicUid":"Hi.Common.LooseRunner.MergedCancellationTokenRun","type":"Delegate"},{"name":"ManualUtil","href":"Hi.Common.ManualUtil.html","topicHref":"Hi.Common.ManualUtil.html","topicUid":"Hi.Common.ManualUtil","type":"Class"},{"name":"MaskUtil","href":"Hi.Common.MaskUtil.html","topicHref":"Hi.Common.MaskUtil.html","topicUid":"Hi.Common.MaskUtil","type":"Class"},{"name":"NameUtil","href":"Hi.Common.NameUtil.html","topicHref":"Hi.Common.NameUtil.html","topicUid":"Hi.Common.NameUtil","type":"Class"},{"name":"PacePlayee","href":"Hi.Common.PacePlayee.html","topicHref":"Hi.Common.PacePlayee.html","topicUid":"Hi.Common.PacePlayee","type":"Class"},{"name":"PacePlayer","href":"Hi.Common.PacePlayer.html","topicHref":"Hi.Common.PacePlayer.html","topicUid":"Hi.Common.PacePlayer","type":"Class"},{"name":"Pair","href":"Hi.Common.Pair-2.html","topicHref":"Hi.Common.Pair-2.html","topicUid":"Hi.Common.Pair`2","type":"Class"},{"name":"ProgressFraction","href":"Hi.Common.ProgressFraction.html","topicHref":"Hi.Common.ProgressFraction.html","topicUid":"Hi.Common.ProgressFraction","type":"Class"},{"name":"Range","href":"Hi.Common.Range-1.html","topicHref":"Hi.Common.Range-1.html","topicUid":"Hi.Common.Range`1","type":"Class"},{"name":"ResourceUtil","href":"Hi.Common.ResourceUtil.html","topicHref":"Hi.Common.ResourceUtil.html","topicUid":"Hi.Common.ResourceUtil","type":"Class"},{"name":"RoutineBlocker","href":"Hi.Common.RoutineBlocker.html","topicHref":"Hi.Common.RoutineBlocker.html","topicUid":"Hi.Common.RoutineBlocker","type":"Class"},{"name":"SearchResult","href":"Hi.Common.SearchResult.html","topicHref":"Hi.Common.SearchResult.html","topicUid":"Hi.Common.SearchResult","type":"Enum"},{"name":"SeqPairUtil","href":"Hi.Common.SeqPairUtil.html","topicHref":"Hi.Common.SeqPairUtil.html","topicUid":"Hi.Common.SeqPairUtil","type":"Class"},{"name":"SeqPair","href":"Hi.Common.SeqPair-1.html","topicHref":"Hi.Common.SeqPair-1.html","topicUid":"Hi.Common.SeqPair`1","type":"Class"},{"name":"ServerFileExplorerConfig","href":"Hi.Common.ServerFileExplorerConfig.html","topicHref":"Hi.Common.ServerFileExplorerConfig.html","topicUid":"Hi.Common.ServerFileExplorerConfig","type":"Class"},{"name":"StringLocalizer","href":"Hi.Common.StringLocalizer.html","topicHref":"Hi.Common.StringLocalizer.html","topicUid":"Hi.Common.StringLocalizer","type":"Class"},{"name":"StringUtil","href":"Hi.Common.StringUtil.html","topicHref":"Hi.Common.StringUtil.html","topicUid":"Hi.Common.StringUtil","type":"Class"},{"name":"TaskUtil","href":"Hi.Common.TaskUtil.html","topicHref":"Hi.Common.TaskUtil.html","topicUid":"Hi.Common.TaskUtil","type":"Class"},{"name":"TimeCounter","href":"Hi.Common.TimeCounter.html","topicHref":"Hi.Common.TimeCounter.html","topicUid":"Hi.Common.TimeCounter","type":"Class"}]},{"name":"Hi.Common.Collections","href":"Hi.Common.Collections.html","topicHref":"Hi.Common.Collections.html","topicUid":"Hi.Common.Collections","type":"Namespace","items":[{"name":"DictionaryUtil","href":"Hi.Common.Collections.DictionaryUtil.html","topicHref":"Hi.Common.Collections.DictionaryUtil.html","topicUid":"Hi.Common.Collections.DictionaryUtil","type":"Class"},{"name":"EnumerableUtil","href":"Hi.Common.Collections.EnumerableUtil.html","topicHref":"Hi.Common.Collections.EnumerableUtil.html","topicUid":"Hi.Common.Collections.EnumerableUtil","type":"Class"},{"name":"FixedSizeConcurrentLinkedListUtil","href":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html","topicHref":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html","topicUid":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil","type":"Class"},{"name":"LazyLinkedListNode","href":"Hi.Common.Collections.LazyLinkedListNode-1.html","topicHref":"Hi.Common.Collections.LazyLinkedListNode-1.html","topicUid":"Hi.Common.Collections.LazyLinkedListNode`1","type":"Class"},{"name":"LazyLinkedList","href":"Hi.Common.Collections.LazyLinkedList-1.html","topicHref":"Hi.Common.Collections.LazyLinkedList-1.html","topicUid":"Hi.Common.Collections.LazyLinkedList`1","type":"Class"},{"name":"LinkedListUtil","href":"Hi.Common.Collections.LinkedListUtil.html","topicHref":"Hi.Common.Collections.LinkedListUtil.html","topicUid":"Hi.Common.Collections.LinkedListUtil","type":"Class"},{"name":"ListIndexBasedEnumerable","href":"Hi.Common.Collections.ListIndexBasedEnumerable-1.html","topicHref":"Hi.Common.Collections.ListIndexBasedEnumerable-1.html","topicUid":"Hi.Common.Collections.ListIndexBasedEnumerable`1","type":"Class"},{"name":"ListIndexBasedIEnumerator","href":"Hi.Common.Collections.ListIndexBasedIEnumerator-1.html","topicHref":"Hi.Common.Collections.ListIndexBasedIEnumerator-1.html","topicUid":"Hi.Common.Collections.ListIndexBasedIEnumerator`1","type":"Class"},{"name":"ListUtil","href":"Hi.Common.Collections.ListUtil.html","topicHref":"Hi.Common.Collections.ListUtil.html","topicUid":"Hi.Common.Collections.ListUtil","type":"Class"},{"name":"ListUtil.OuterPolationMode","href":"Hi.Common.Collections.ListUtil.OuterPolationMode.html","topicHref":"Hi.Common.Collections.ListUtil.OuterPolationMode.html","topicUid":"Hi.Common.Collections.ListUtil.OuterPolationMode","type":"Enum"},{"name":"SearchTargetMode","href":"Hi.Common.Collections.SearchTargetMode.html","topicHref":"Hi.Common.Collections.SearchTargetMode.html","topicUid":"Hi.Common.Collections.SearchTargetMode","type":"Enum"},{"name":"SeekDirection","href":"Hi.Common.Collections.SeekDirection.html","topicHref":"Hi.Common.Collections.SeekDirection.html","topicUid":"Hi.Common.Collections.SeekDirection","type":"Enum"},{"name":"SortedListUtil","href":"Hi.Common.Collections.SortedListUtil.html","topicHref":"Hi.Common.Collections.SortedListUtil.html","topicUid":"Hi.Common.Collections.SortedListUtil","type":"Class"},{"name":"SubList","href":"Hi.Common.Collections.SubList-1.html","topicHref":"Hi.Common.Collections.SubList-1.html","topicUid":"Hi.Common.Collections.SubList`1","type":"Class"},{"name":"SynList","href":"Hi.Common.Collections.SynList-1.html","topicHref":"Hi.Common.Collections.SynList-1.html","topicUid":"Hi.Common.Collections.SynList`1","type":"Class"}]},{"name":"Hi.Common.CsvUtils","href":"Hi.Common.CsvUtils.html","topicHref":"Hi.Common.CsvUtils.html","topicUid":"Hi.Common.CsvUtils","type":"Namespace","items":[{"name":"CsvInputKit","href":"Hi.Common.CsvUtils.CsvInputKit.html","topicHref":"Hi.Common.CsvUtils.CsvInputKit.html","topicUid":"Hi.Common.CsvUtils.CsvInputKit","type":"Class"},{"name":"CsvOutputKit","href":"Hi.Common.CsvUtils.CsvOutputKit.html","topicHref":"Hi.Common.CsvUtils.CsvOutputKit.html","topicUid":"Hi.Common.CsvUtils.CsvOutputKit","type":"Class"},{"name":"CsvUtil","href":"Hi.Common.CsvUtils.CsvUtil.html","topicHref":"Hi.Common.CsvUtils.CsvUtil.html","topicUid":"Hi.Common.CsvUtils.CsvUtil","type":"Class"},{"name":"ICsvRowIo","href":"Hi.Common.CsvUtils.ICsvRowIo.html","topicHref":"Hi.Common.CsvUtils.ICsvRowIo.html","topicUid":"Hi.Common.CsvUtils.ICsvRowIo","type":"Interface"},{"name":"IGetCsvDictionary","href":"Hi.Common.CsvUtils.IGetCsvDictionary.html","topicHref":"Hi.Common.CsvUtils.IGetCsvDictionary.html","topicUid":"Hi.Common.CsvUtils.IGetCsvDictionary","type":"Interface"}]},{"name":"Hi.Common.FileLines","href":"Hi.Common.FileLines.html","topicHref":"Hi.Common.FileLines.html","topicUid":"Hi.Common.FileLines","type":"Namespace","items":[{"name":"FileBeginEventArgs","href":"Hi.Common.FileLines.FileBeginEventArgs.html","topicHref":"Hi.Common.FileLines.FileBeginEventArgs.html","topicUid":"Hi.Common.FileLines.FileBeginEventArgs","type":"Class"},{"name":"FileEndEventArgs","href":"Hi.Common.FileLines.FileEndEventArgs.html","topicHref":"Hi.Common.FileLines.FileEndEventArgs.html","topicUid":"Hi.Common.FileLines.FileEndEventArgs","type":"Class"},{"name":"FileLineCharIndex","href":"Hi.Common.FileLines.FileLineCharIndex.html","topicHref":"Hi.Common.FileLines.FileLineCharIndex.html","topicUid":"Hi.Common.FileLines.FileLineCharIndex","type":"Class"},{"name":"FileLineCharIndexSegment","href":"Hi.Common.FileLines.FileLineCharIndexSegment.html","topicHref":"Hi.Common.FileLines.FileLineCharIndexSegment.html","topicUid":"Hi.Common.FileLines.FileLineCharIndexSegment","type":"Class"},{"name":"FileLineIndex","href":"Hi.Common.FileLines.FileLineIndex.html","topicHref":"Hi.Common.FileLines.FileLineIndex.html","topicUid":"Hi.Common.FileLines.FileLineIndex","type":"Class"},{"name":"FileLineUtil","href":"Hi.Common.FileLines.FileLineUtil.html","topicHref":"Hi.Common.FileLines.FileLineUtil.html","topicUid":"Hi.Common.FileLines.FileLineUtil","type":"Class"},{"name":"FileUtil","href":"Hi.Common.FileLines.FileUtil.html","topicHref":"Hi.Common.FileLines.FileUtil.html","topicUid":"Hi.Common.FileLines.FileUtil","type":"Class"},{"name":"IFileChangedEventSupport","href":"Hi.Common.FileLines.IFileChangedEventSupport.html","topicHref":"Hi.Common.FileLines.IFileChangedEventSupport.html","topicUid":"Hi.Common.FileLines.IFileChangedEventSupport","type":"Interface"},{"name":"IFileLine","href":"Hi.Common.FileLines.IFileLine.html","topicHref":"Hi.Common.FileLines.IFileLine.html","topicUid":"Hi.Common.FileLines.IFileLine","type":"Interface"},{"name":"IFileLineCharIndex","href":"Hi.Common.FileLines.IFileLineCharIndex.html","topicHref":"Hi.Common.FileLines.IFileLineCharIndex.html","topicUid":"Hi.Common.FileLines.IFileLineCharIndex","type":"Interface"},{"name":"IFileLineIndex","href":"Hi.Common.FileLines.IFileLineIndex.html","topicHref":"Hi.Common.FileLines.IFileLineIndex.html","topicUid":"Hi.Common.FileLines.IFileLineIndex","type":"Interface"},{"name":"IGetFileLineIndex","href":"Hi.Common.FileLines.IGetFileLineIndex.html","topicHref":"Hi.Common.FileLines.IGetFileLineIndex.html","topicUid":"Hi.Common.FileLines.IGetFileLineIndex","type":"Interface"},{"name":"IGetIndexedFileLine","href":"Hi.Common.FileLines.IGetIndexedFileLine.html","topicHref":"Hi.Common.FileLines.IGetIndexedFileLine.html","topicUid":"Hi.Common.FileLines.IGetIndexedFileLine","type":"Interface"},{"name":"IIndexedFileLine","href":"Hi.Common.FileLines.IIndexedFileLine.html","topicHref":"Hi.Common.FileLines.IIndexedFileLine.html","topicUid":"Hi.Common.FileLines.IIndexedFileLine","type":"Interface"},{"name":"ILineChangedEventSupport","href":"Hi.Common.FileLines.ILineChangedEventSupport.html","topicHref":"Hi.Common.FileLines.ILineChangedEventSupport.html","topicUid":"Hi.Common.FileLines.ILineChangedEventSupport","type":"Interface"},{"name":"IndexedFile","href":"Hi.Common.FileLines.IndexedFile.html","topicHref":"Hi.Common.FileLines.IndexedFile.html","topicUid":"Hi.Common.FileLines.IndexedFile","type":"Class"},{"name":"IndexedFileLine","href":"Hi.Common.FileLines.IndexedFileLine.html","topicHref":"Hi.Common.FileLines.IndexedFileLine.html","topicUid":"Hi.Common.FileLines.IndexedFileLine","type":"Class"},{"name":"IndexedFileLineChar","href":"Hi.Common.FileLines.IndexedFileLineChar.html","topicHref":"Hi.Common.FileLines.IndexedFileLineChar.html","topicUid":"Hi.Common.FileLines.IndexedFileLineChar","type":"Class"},{"name":"LineBeginEventArgs","href":"Hi.Common.FileLines.LineBeginEventArgs.html","topicHref":"Hi.Common.FileLines.LineBeginEventArgs.html","topicUid":"Hi.Common.FileLines.LineBeginEventArgs","type":"Class"},{"name":"LineEndEventArgs","href":"Hi.Common.FileLines.LineEndEventArgs.html","topicHref":"Hi.Common.FileLines.LineEndEventArgs.html","topicUid":"Hi.Common.FileLines.LineEndEventArgs","type":"Class"}]},{"name":"Hi.Common.Messages","href":"Hi.Common.Messages.html","topicHref":"Hi.Common.Messages.html","topicUid":"Hi.Common.Messages","type":"Namespace","items":[{"name":"ActionProgress","href":"Hi.Common.Messages.ActionProgress-1.html","topicHref":"Hi.Common.Messages.ActionProgress-1.html","topicUid":"Hi.Common.Messages.ActionProgress`1","type":"Class"},{"name":"BootstrapTheme","href":"Hi.Common.Messages.BootstrapTheme.html","topicHref":"Hi.Common.Messages.BootstrapTheme.html","topicUid":"Hi.Common.Messages.BootstrapTheme","type":"Enum"},{"name":"DebugUtil","href":"Hi.Common.Messages.DebugUtil.html","topicHref":"Hi.Common.Messages.DebugUtil.html","topicUid":"Hi.Common.Messages.DebugUtil","type":"Class"},{"name":"ExceptionUtil","href":"Hi.Common.Messages.ExceptionUtil.html","topicHref":"Hi.Common.Messages.ExceptionUtil.html","topicUid":"Hi.Common.Messages.ExceptionUtil","type":"Class"},{"name":"MessageBoardUtil","href":"Hi.Common.Messages.MessageBoardUtil.html","topicHref":"Hi.Common.Messages.MessageBoardUtil.html","topicUid":"Hi.Common.Messages.MessageBoardUtil","type":"Class"},{"name":"MessageFlag","href":"Hi.Common.Messages.MessageFlag.html","topicHref":"Hi.Common.Messages.MessageFlag.html","topicUid":"Hi.Common.Messages.MessageFlag","type":"Enum"},{"name":"MultiTagMessage","href":"Hi.Common.Messages.MultiTagMessage.html","topicHref":"Hi.Common.Messages.MultiTagMessage.html","topicUid":"Hi.Common.Messages.MultiTagMessage","type":"Class"},{"name":"MultiTagMessageUtil","href":"Hi.Common.Messages.MultiTagMessageUtil.html","topicHref":"Hi.Common.Messages.MultiTagMessageUtil.html","topicUid":"Hi.Common.Messages.MultiTagMessageUtil","type":"Class"},{"name":"ShowMessageBoardDelegate","href":"Hi.Common.Messages.ShowMessageBoardDelegate.html","topicHref":"Hi.Common.Messages.ShowMessageBoardDelegate.html","topicUid":"Hi.Common.Messages.ShowMessageBoardDelegate","type":"Delegate"}]},{"name":"Hi.Common.MinMaxUtils","href":"Hi.Common.MinMaxUtils.html","topicHref":"Hi.Common.MinMaxUtils.html","topicUid":"Hi.Common.MinMaxUtils","type":"Namespace","items":[{"name":"IndexedMinMaxPos","href":"Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html","topicHref":"Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html","topicUid":"Hi.Common.MinMaxUtils.IndexedMinMaxPos`2","type":"Class"},{"name":"MinMaxUtil","href":"Hi.Common.MinMaxUtils.MinMaxUtil.html","topicHref":"Hi.Common.MinMaxUtils.MinMaxUtil.html","topicUid":"Hi.Common.MinMaxUtils.MinMaxUtil","type":"Class"}]},{"name":"Hi.Common.NativeProgresses","href":"Hi.Common.NativeProgresses.html","topicHref":"Hi.Common.NativeProgresses.html","topicUid":"Hi.Common.NativeProgresses","type":"Namespace","items":[{"name":"NativeProgressFraction","href":"Hi.Common.NativeProgresses.NativeProgressFraction.html","topicHref":"Hi.Common.NativeProgresses.NativeProgressFraction.html","topicUid":"Hi.Common.NativeProgresses.NativeProgressFraction","type":"Class"},{"name":"progress_monitor_t","href":"Hi.Common.NativeProgresses.progress_monitor_t.html","topicHref":"Hi.Common.NativeProgresses.progress_monitor_t.html","topicUid":"Hi.Common.NativeProgresses.progress_monitor_t","type":"Struct"},{"name":"report_progress_func_t","href":"Hi.Common.NativeProgresses.report_progress_func_t.html","topicHref":"Hi.Common.NativeProgresses.report_progress_func_t.html","topicUid":"Hi.Common.NativeProgresses.report_progress_func_t","type":"Delegate"}]},{"name":"Hi.Common.ParallelBulkUtils","href":"Hi.Common.ParallelBulkUtils.html","topicHref":"Hi.Common.ParallelBulkUtils.html","topicUid":"Hi.Common.ParallelBulkUtils","type":"Namespace","items":[{"name":"ParallelBulkReader","href":"Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ParallelBulkReader`1","type":"Class"},{"name":"ParallelBulkWriter","href":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter`1","type":"Class"},{"name":"ReadBulkDelegate","href":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate`1","type":"Delegate"},{"name":"SequentialBulkReader","href":"Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html","topicHref":"Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html","topicUid":"Hi.Common.ParallelBulkUtils.SequentialBulkReader`1","type":"Class"}]},{"name":"Hi.Common.PathUtils","href":"Hi.Common.PathUtils.html","topicHref":"Hi.Common.PathUtils.html","topicUid":"Hi.Common.PathUtils","type":"Namespace","items":[{"name":"ExtendedNamedPath","href":"Hi.Common.PathUtils.ExtendedNamedPath.html","topicHref":"Hi.Common.PathUtils.ExtendedNamedPath.html","topicUid":"Hi.Common.PathUtils.ExtendedNamedPath","type":"Class"},{"name":"HttpUtil","href":"Hi.Common.PathUtils.HttpUtil.html","topicHref":"Hi.Common.PathUtils.HttpUtil.html","topicUid":"Hi.Common.PathUtils.HttpUtil","type":"Class"},{"name":"Lang","href":"Hi.Common.PathUtils.Lang.html","topicHref":"Hi.Common.PathUtils.Lang.html","topicUid":"Hi.Common.PathUtils.Lang","type":"Class"},{"name":"NamedPath","href":"Hi.Common.PathUtils.NamedPath.html","topicHref":"Hi.Common.PathUtils.NamedPath.html","topicUid":"Hi.Common.PathUtils.NamedPath","type":"Class"},{"name":"PathUtil","href":"Hi.Common.PathUtils.PathUtil.html","topicHref":"Hi.Common.PathUtils.PathUtil.html","topicUid":"Hi.Common.PathUtils.PathUtil","type":"Class"}]},{"name":"Hi.Common.QueueCacheUtils","href":"Hi.Common.QueueCacheUtils.html","topicHref":"Hi.Common.QueueCacheUtils.html","topicUid":"Hi.Common.QueueCacheUtils","type":"Namespace","items":[{"name":"QueueCacherHost","href":"Hi.Common.QueueCacheUtils.QueueCacherHost-1.html","topicHref":"Hi.Common.QueueCacheUtils.QueueCacherHost-1.html","topicUid":"Hi.Common.QueueCacheUtils.QueueCacherHost`1","type":"Class"},{"name":"QueueCacher","href":"Hi.Common.QueueCacheUtils.QueueCacher-1.html","topicHref":"Hi.Common.QueueCacheUtils.QueueCacher-1.html","topicUid":"Hi.Common.QueueCacheUtils.QueueCacher`1","type":"Class"}]},{"name":"Hi.Common.XmlUtils","href":"Hi.Common.XmlUtils.html","topicHref":"Hi.Common.XmlUtils.html","topicUid":"Hi.Common.XmlUtils","type":"Namespace","items":[{"name":"FileRefSource","href":"Hi.Common.XmlUtils.FileRefSource-1.html","topicHref":"Hi.Common.XmlUtils.FileRefSource-1.html","topicUid":"Hi.Common.XmlUtils.FileRefSource`1","type":"Class"},{"name":"IMakeXmlSource","href":"Hi.Common.XmlUtils.IMakeXmlSource.html","topicHref":"Hi.Common.XmlUtils.IMakeXmlSource.html","topicUid":"Hi.Common.XmlUtils.IMakeXmlSource","type":"Interface"},{"name":"IToXElement","href":"Hi.Common.XmlUtils.IToXElement.html","topicHref":"Hi.Common.XmlUtils.IToXElement.html","topicUid":"Hi.Common.XmlUtils.IToXElement","type":"Interface"},{"name":"ProjectApiVersion","href":"Hi.Common.XmlUtils.ProjectApiVersion.html","topicHref":"Hi.Common.XmlUtils.ProjectApiVersion.html","topicUid":"Hi.Common.XmlUtils.ProjectApiVersion","type":"Class"},{"name":"SetFileDelegate","href":"Hi.Common.XmlUtils.SetFileDelegate.html","topicHref":"Hi.Common.XmlUtils.SetFileDelegate.html","topicUid":"Hi.Common.XmlUtils.SetFileDelegate","type":"Delegate"},{"name":"XFactory","href":"Hi.Common.XmlUtils.XFactory.html","topicHref":"Hi.Common.XmlUtils.XFactory.html","topicUid":"Hi.Common.XmlUtils.XFactory","type":"Class"},{"name":"XFactory.XGeneratorDelegate","href":"Hi.Common.XmlUtils.XFactory.XGeneratorDelegate.html","topicHref":"Hi.Common.XmlUtils.XFactory.XGeneratorDelegate.html","topicUid":"Hi.Common.XmlUtils.XFactory.XGeneratorDelegate","type":"Delegate"},{"name":"XFactory.XmlExceptionDelegate","href":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html","topicHref":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html","topicUid":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate","type":"Delegate"},{"name":"XmlUtil","href":"Hi.Common.XmlUtils.XmlUtil.html","topicHref":"Hi.Common.XmlUtils.XmlUtil.html","topicUid":"Hi.Common.XmlUtils.XmlUtil","type":"Class"}]},{"name":"Hi.CutterLocations","href":"Hi.CutterLocations.html","topicHref":"Hi.CutterLocations.html","topicUid":"Hi.CutterLocations","type":"Namespace","items":[{"name":"IGetProgramCl","href":"Hi.CutterLocations.IGetProgramCl.html","topicHref":"Hi.CutterLocations.IGetProgramCl.html","topicUid":"Hi.CutterLocations.IGetProgramCl","type":"Interface"},{"name":"SimpleCl","href":"Hi.CutterLocations.SimpleCl.html","topicHref":"Hi.CutterLocations.SimpleCl.html","topicUid":"Hi.CutterLocations.SimpleCl","type":"Class"}]},{"name":"Hi.CutterLocations.ClPath","href":"Hi.CutterLocations.ClPath.html","topicHref":"Hi.CutterLocations.ClPath.html","topicUid":"Hi.CutterLocations.ClPath","type":"Namespace","items":[{"name":"ClCircleArc","href":"Hi.CutterLocations.ClPath.ClCircleArc.html","topicHref":"Hi.CutterLocations.ClPath.ClCircleArc.html","topicUid":"Hi.CutterLocations.ClPath.ClCircleArc","type":"Class"},{"name":"ClLinear","href":"Hi.CutterLocations.ClPath.ClLinear.html","topicHref":"Hi.CutterLocations.ClPath.ClLinear.html","topicUid":"Hi.CutterLocations.ClPath.ClLinear","type":"Class"},{"name":"IClPath","href":"Hi.CutterLocations.ClPath.IClPath.html","topicHref":"Hi.CutterLocations.ClPath.IClPath.html","topicUid":"Hi.CutterLocations.ClPath.IClPath","type":"Interface"}]},{"name":"Hi.CutterLocations.ClStrips","href":"Hi.CutterLocations.ClStrips.html","topicHref":"Hi.CutterLocations.ClStrips.html","topicUid":"Hi.CutterLocations.ClStrips","type":"Namespace","items":[{"name":"ClStrip","href":"Hi.CutterLocations.ClStrips.ClStrip.html","topicHref":"Hi.CutterLocations.ClStrips.ClStrip.html","topicUid":"Hi.CutterLocations.ClStrips.ClStrip","type":"Class"},{"name":"ClStripPos","href":"Hi.CutterLocations.ClStrips.ClStripPos.html","topicHref":"Hi.CutterLocations.ClStrips.ClStripPos.html","topicUid":"Hi.CutterLocations.ClStrips.ClStripPos","type":"Class"},{"name":"RgbFunc","href":"Hi.CutterLocations.ClStrips.RgbFunc.html","topicHref":"Hi.CutterLocations.ClStrips.RgbFunc.html","topicUid":"Hi.CutterLocations.ClStrips.RgbFunc","type":"Delegate"}]},{"name":"Hi.Disp","href":"Hi.Disp.html","topicHref":"Hi.Disp.html","topicUid":"Hi.Disp","type":"Namespace","items":[{"name":"Bind","href":"Hi.Disp.Bind.html","topicHref":"Hi.Disp.Bind.html","topicUid":"Hi.Disp.Bind","type":"Class"},{"name":"Box3dDispUtil","href":"Hi.Disp.Box3dDispUtil.html","topicHref":"Hi.Disp.Box3dDispUtil.html","topicUid":"Hi.Disp.Box3dDispUtil","type":"Class"},{"name":"Box3dDispUtil.BoxableExpandToBox3dDel","href":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html","topicHref":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html","topicUid":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel","type":"Delegate"},{"name":"DelegateFuncDisplayee","href":"Hi.Disp.DelegateFuncDisplayee.html","topicHref":"Hi.Disp.DelegateFuncDisplayee.html","topicUid":"Hi.Disp.DelegateFuncDisplayee","type":"Class"},{"name":"DispEngine","href":"Hi.Disp.DispEngine.html","topicHref":"Hi.Disp.DispEngine.html","topicUid":"Hi.Disp.DispEngine","type":"Class"},{"name":"DispEngine.ImageRequestedDelegate","href":"Hi.Disp.DispEngine.ImageRequestedDelegate.html","topicHref":"Hi.Disp.DispEngine.ImageRequestedDelegate.html","topicUid":"Hi.Disp.DispEngine.ImageRequestedDelegate","type":"Delegate"},{"name":"DispEngineConfig","href":"Hi.Disp.DispEngineConfig.html","topicHref":"Hi.Disp.DispEngineConfig.html","topicUid":"Hi.Disp.DispEngineConfig","type":"Class"},{"name":"DispFrameUtil","href":"Hi.Disp.DispFrameUtil.html","topicHref":"Hi.Disp.DispFrameUtil.html","topicUid":"Hi.Disp.DispFrameUtil","type":"Class"},{"name":"DispList","href":"Hi.Disp.DispList.html","topicHref":"Hi.Disp.DispList.html","topicUid":"Hi.Disp.DispList","type":"Class"},{"name":"DispUtil","href":"Hi.Disp.DispUtil.html","topicHref":"Hi.Disp.DispUtil.html","topicUid":"Hi.Disp.DispUtil","type":"Class"},{"name":"Drawing","href":"Hi.Disp.Drawing.html","topicHref":"Hi.Disp.Drawing.html","topicUid":"Hi.Disp.Drawing","type":"Class"},{"name":"FuncDisplayee","href":"Hi.Disp.FuncDisplayee.html","topicHref":"Hi.Disp.FuncDisplayee.html","topicUid":"Hi.Disp.FuncDisplayee","type":"Class"},{"name":"GL","href":"Hi.Disp.GL.html","topicHref":"Hi.Disp.GL.html","topicUid":"Hi.Disp.GL","type":"Class"},{"name":"IDisplayee","href":"Hi.Disp.IDisplayee.html","topicHref":"Hi.Disp.IDisplayee.html","topicUid":"Hi.Disp.IDisplayee","type":"Interface"},{"name":"IGetDispEngine","href":"Hi.Disp.IGetDispEngine.html","topicHref":"Hi.Disp.IGetDispEngine.html","topicUid":"Hi.Disp.IGetDispEngine","type":"Interface"},{"name":"IGetPickable","href":"Hi.Disp.IGetPickable.html","topicHref":"Hi.Disp.IGetPickable.html","topicUid":"Hi.Disp.IGetPickable","type":"Interface"},{"name":"IGlContextDirver","href":"Hi.Disp.IGlContextDirver.html","topicHref":"Hi.Disp.IGlContextDirver.html","topicUid":"Hi.Disp.IGlContextDirver","type":"Interface"},{"name":"MatStack","href":"Hi.Disp.MatStack.html","topicHref":"Hi.Disp.MatStack.html","topicUid":"Hi.Disp.MatStack","type":"Class"},{"name":"MatStack.ItemDisposable","href":"Hi.Disp.MatStack.ItemDisposable.html","topicHref":"Hi.Disp.MatStack.ItemDisposable.html","topicUid":"Hi.Disp.MatStack.ItemDisposable","type":"Class"},{"name":"MvpBoxRelation","href":"Hi.Disp.MvpBoxRelation.html","topicHref":"Hi.Disp.MvpBoxRelation.html","topicUid":"Hi.Disp.MvpBoxRelation","type":"Enum"},{"name":"Pickable","href":"Hi.Disp.Pickable.html","topicHref":"Hi.Disp.Pickable.html","topicUid":"Hi.Disp.Pickable","type":"Class"},{"name":"PopModelMat","href":"Hi.Disp.PopModelMat.html","topicHref":"Hi.Disp.PopModelMat.html","topicUid":"Hi.Disp.PopModelMat","type":"Class"},{"name":"PushModelMat","href":"Hi.Disp.PushModelMat.html","topicHref":"Hi.Disp.PushModelMat.html","topicUid":"Hi.Disp.PushModelMat","type":"Class"},{"name":"Segment3dDispUtil","href":"Hi.Disp.Segment3dDispUtil.html","topicHref":"Hi.Disp.Segment3dDispUtil.html","topicUid":"Hi.Disp.Segment3dDispUtil","type":"Class"},{"name":"ShowEventPickable","href":"Hi.Disp.ShowEventPickable.html","topicHref":"Hi.Disp.ShowEventPickable.html","topicUid":"Hi.Disp.ShowEventPickable","type":"Class"},{"name":"Stamp","href":"Hi.Disp.Stamp.html","topicHref":"Hi.Disp.Stamp.html","topicUid":"Hi.Disp.Stamp","type":"Enum"},{"name":"StringDrawing","href":"Hi.Disp.StringDrawing.html","topicHref":"Hi.Disp.StringDrawing.html","topicUid":"Hi.Disp.StringDrawing","type":"Class"},{"name":"Tri3dDispUtil","href":"Hi.Disp.Tri3dDispUtil.html","topicHref":"Hi.Disp.Tri3dDispUtil.html","topicUid":"Hi.Disp.Tri3dDispUtil","type":"Class"},{"name":"Vec3dDispUtil","href":"Hi.Disp.Vec3dDispUtil.html","topicHref":"Hi.Disp.Vec3dDispUtil.html","topicUid":"Hi.Disp.Vec3dDispUtil","type":"Class"},{"name":"WrappedDisplayee","href":"Hi.Disp.WrappedDisplayee.html","topicHref":"Hi.Disp.WrappedDisplayee.html","topicUid":"Hi.Disp.WrappedDisplayee","type":"Class"}]},{"name":"Hi.Disp.Flag","href":"Hi.Disp.Flag.html","topicHref":"Hi.Disp.Flag.html","topicUid":"Hi.Disp.Flag","type":"Namespace","items":[{"name":"ColorScaleBar","href":"Hi.Disp.Flag.ColorScaleBar.html","topicHref":"Hi.Disp.Flag.ColorScaleBar.html","topicUid":"Hi.Disp.Flag.ColorScaleBar","type":"Class"},{"name":"CoordinateDrawing","href":"Hi.Disp.Flag.CoordinateDrawing.html","topicHref":"Hi.Disp.Flag.CoordinateDrawing.html","topicUid":"Hi.Disp.Flag.CoordinateDrawing","type":"Class"},{"name":"CubicalFlagDrawing","href":"Hi.Disp.Flag.CubicalFlagDrawing.html","topicHref":"Hi.Disp.Flag.CubicalFlagDrawing.html","topicUid":"Hi.Disp.Flag.CubicalFlagDrawing","type":"Class"},{"name":"DimensionBar","href":"Hi.Disp.Flag.DimensionBar.html","topicHref":"Hi.Disp.Flag.DimensionBar.html","topicUid":"Hi.Disp.Flag.DimensionBar","type":"Class"},{"name":"DispCoverUtil","href":"Hi.Disp.Flag.DispCoverUtil.html","topicHref":"Hi.Disp.Flag.DispCoverUtil.html","topicUid":"Hi.Disp.Flag.DispCoverUtil","type":"Class"}]},{"name":"Hi.Disp.Treat","href":"Hi.Disp.Treat.html","topicHref":"Hi.Disp.Treat.html","topicUid":"Hi.Disp.Treat","type":"Namespace","items":[{"name":"LineWidthSwap","href":"Hi.Disp.Treat.LineWidthSwap.html","topicHref":"Hi.Disp.Treat.LineWidthSwap.html","topicUid":"Hi.Disp.Treat.LineWidthSwap","type":"Class"},{"name":"LineWidthTreat","href":"Hi.Disp.Treat.LineWidthTreat.html","topicHref":"Hi.Disp.Treat.LineWidthTreat.html","topicUid":"Hi.Disp.Treat.LineWidthTreat","type":"Class"},{"name":"PointSizeSwap","href":"Hi.Disp.Treat.PointSizeSwap.html","topicHref":"Hi.Disp.Treat.PointSizeSwap.html","topicUid":"Hi.Disp.Treat.PointSizeSwap","type":"Class"},{"name":"PointSizeTreat","href":"Hi.Disp.Treat.PointSizeTreat.html","topicHref":"Hi.Disp.Treat.PointSizeTreat.html","topicUid":"Hi.Disp.Treat.PointSizeTreat","type":"Class"},{"name":"RgbSwap","href":"Hi.Disp.Treat.RgbSwap.html","topicHref":"Hi.Disp.Treat.RgbSwap.html","topicUid":"Hi.Disp.Treat.RgbSwap","type":"Class"},{"name":"RgbTreat","href":"Hi.Disp.Treat.RgbTreat.html","topicHref":"Hi.Disp.Treat.RgbTreat.html","topicUid":"Hi.Disp.Treat.RgbTreat","type":"Class"},{"name":"RgbWrapper","href":"Hi.Disp.Treat.RgbWrapper.html","topicHref":"Hi.Disp.Treat.RgbWrapper.html","topicUid":"Hi.Disp.Treat.RgbWrapper","type":"Class"},{"name":"TransformationWrapper","href":"Hi.Disp.Treat.TransformationWrapper.html","topicHref":"Hi.Disp.Treat.TransformationWrapper.html","topicUid":"Hi.Disp.Treat.TransformationWrapper","type":"Class"}]},{"name":"Hi.Fanuc","href":"Hi.Fanuc.html","topicHref":"Hi.Fanuc.html","topicUid":"Hi.Fanuc","type":"Namespace","items":[{"name":"FanucVarTable","href":"Hi.Fanuc.FanucVarTable.html","topicHref":"Hi.Fanuc.FanucVarTable.html","topicUid":"Hi.Fanuc.FanucVarTable","type":"Class"},{"name":"FanucVarValue","href":"Hi.Fanuc.FanucVarValue.html","topicHref":"Hi.Fanuc.FanucVarValue.html","topicUid":"Hi.Fanuc.FanucVarValue","type":"Struct"}]},{"name":"Hi.Geom","href":"Hi.Geom.html","topicHref":"Hi.Geom.html","topicUid":"Hi.Geom","type":"Namespace","items":[{"name":"ArrayUtil","href":"Hi.Geom.ArrayUtil.html","topicHref":"Hi.Geom.ArrayUtil.html","topicUid":"Hi.Geom.ArrayUtil","type":"Class"},{"name":"AxisAngle4d","href":"Hi.Geom.AxisAngle4d.html","topicHref":"Hi.Geom.AxisAngle4d.html","topicUid":"Hi.Geom.AxisAngle4d","type":"Class"},{"name":"Box2d","href":"Hi.Geom.Box2d.html","topicHref":"Hi.Geom.Box2d.html","topicUid":"Hi.Geom.Box2d","type":"Class"},{"name":"Box2d.NoInit","href":"Hi.Geom.Box2d.NoInit.html","topicHref":"Hi.Geom.Box2d.NoInit.html","topicUid":"Hi.Geom.Box2d.NoInit","type":"Class"},{"name":"Box3d","href":"Hi.Geom.Box3d.html","topicHref":"Hi.Geom.Box3d.html","topicUid":"Hi.Geom.Box3d","type":"Class"},{"name":"Box3d.NoInit","href":"Hi.Geom.Box3d.NoInit.html","topicHref":"Hi.Geom.Box3d.NoInit.html","topicUid":"Hi.Geom.Box3d.NoInit","type":"Class"},{"name":"Cylindroid","href":"Hi.Geom.Cylindroid.html","topicHref":"Hi.Geom.Cylindroid.html","topicUid":"Hi.Geom.Cylindroid","type":"Class"},{"name":"DVec3d","href":"Hi.Geom.DVec3d.html","topicHref":"Hi.Geom.DVec3d.html","topicUid":"Hi.Geom.DVec3d","type":"Class"},{"name":"Dir","href":"Hi.Geom.Dir.html","topicHref":"Hi.Geom.Dir.html","topicUid":"Hi.Geom.Dir","type":"Enum"},{"name":"ExtendedCylinder","href":"Hi.Geom.ExtendedCylinder.html","topicHref":"Hi.Geom.ExtendedCylinder.html","topicUid":"Hi.Geom.ExtendedCylinder","type":"Class"},{"name":"Flat3d","href":"Hi.Geom.Flat3d.html","topicHref":"Hi.Geom.Flat3d.html","topicUid":"Hi.Geom.Flat3d","type":"Class"},{"name":"FractionStatus","href":"Hi.Geom.FractionStatus.html","topicHref":"Hi.Geom.FractionStatus.html","topicUid":"Hi.Geom.FractionStatus","type":"Enum"},{"name":"Fraction","href":"Hi.Geom.Fraction-1.html","topicHref":"Hi.Geom.Fraction-1.html","topicUid":"Hi.Geom.Fraction`1","type":"Struct"},{"name":"GeomCombination","href":"Hi.Geom.GeomCombination.html","topicHref":"Hi.Geom.GeomCombination.html","topicUid":"Hi.Geom.GeomCombination","type":"Class"},{"name":"GeomUtil","href":"Hi.Geom.GeomUtil.html","topicHref":"Hi.Geom.GeomUtil.html","topicUid":"Hi.Geom.GeomUtil","type":"Class"},{"name":"IExpandToBox2d","href":"Hi.Geom.IExpandToBox2d.html","topicHref":"Hi.Geom.IExpandToBox2d.html","topicUid":"Hi.Geom.IExpandToBox2d","type":"Interface"},{"name":"IExpandToBox3d","href":"Hi.Geom.IExpandToBox3d.html","topicHref":"Hi.Geom.IExpandToBox3d.html","topicUid":"Hi.Geom.IExpandToBox3d","type":"Interface"},{"name":"IFlat3d","href":"Hi.Geom.IFlat3d.html","topicHref":"Hi.Geom.IFlat3d.html","topicUid":"Hi.Geom.IFlat3d","type":"Interface"},{"name":"IGenStl","href":"Hi.Geom.IGenStl.html","topicHref":"Hi.Geom.IGenStl.html","topicUid":"Hi.Geom.IGenStl","type":"Interface"},{"name":"IGeomProperty","href":"Hi.Geom.IGeomProperty.html","topicHref":"Hi.Geom.IGeomProperty.html","topicUid":"Hi.Geom.IGeomProperty","type":"Interface"},{"name":"IGetStl","href":"Hi.Geom.IGetStl.html","topicHref":"Hi.Geom.IGetStl.html","topicUid":"Hi.Geom.IGetStl","type":"Interface"},{"name":"IGetZrContour","href":"Hi.Geom.IGetZrContour.html","topicHref":"Hi.Geom.IGetZrContour.html","topicUid":"Hi.Geom.IGetZrContour","type":"Interface"},{"name":"IGetZrList","href":"Hi.Geom.IGetZrList.html","topicHref":"Hi.Geom.IGetZrList.html","topicUid":"Hi.Geom.IGetZrList","type":"Interface"},{"name":"IStlSource","href":"Hi.Geom.IStlSource.html","topicHref":"Hi.Geom.IStlSource.html","topicUid":"Hi.Geom.IStlSource","type":"Interface"},{"name":"ITri3d","href":"Hi.Geom.ITri3d.html","topicHref":"Hi.Geom.ITri3d.html","topicUid":"Hi.Geom.ITri3d","type":"Interface"},{"name":"IVec","href":"Hi.Geom.IVec-1.html","topicHref":"Hi.Geom.IVec-1.html","topicUid":"Hi.Geom.IVec`1","type":"Interface"},{"name":"IZrListSourceProperty","href":"Hi.Geom.IZrListSourceProperty.html","topicHref":"Hi.Geom.IZrListSourceProperty.html","topicUid":"Hi.Geom.IZrListSourceProperty","type":"Interface"},{"name":"Mat4d","href":"Hi.Geom.Mat4d.html","topicHref":"Hi.Geom.Mat4d.html","topicUid":"Hi.Geom.Mat4d","type":"Class"},{"name":"Mat4d.IndexFlag","href":"Hi.Geom.Mat4d.IndexFlag.html","topicHref":"Hi.Geom.Mat4d.IndexFlag.html","topicUid":"Hi.Geom.Mat4d.IndexFlag","type":"Enum"},{"name":"MathNetUtil","href":"Hi.Geom.MathNetUtil.html","topicHref":"Hi.Geom.MathNetUtil.html","topicUid":"Hi.Geom.MathNetUtil","type":"Class"},{"name":"MathUtil","href":"Hi.Geom.MathUtil.html","topicHref":"Hi.Geom.MathUtil.html","topicUid":"Hi.Geom.MathUtil","type":"Class"},{"name":"NativeFraction","href":"Hi.Geom.NativeFraction.html","topicHref":"Hi.Geom.NativeFraction.html","topicUid":"Hi.Geom.NativeFraction","type":"Class"},{"name":"NativeStl","href":"Hi.Geom.NativeStl.html","topicHref":"Hi.Geom.NativeStl.html","topicUid":"Hi.Geom.NativeStl","type":"Class"},{"name":"NativeTopoStld","href":"Hi.Geom.NativeTopoStld.html","topicHref":"Hi.Geom.NativeTopoStld.html","topicUid":"Hi.Geom.NativeTopoStld","type":"Class"},{"name":"NativeTopoStlfr","href":"Hi.Geom.NativeTopoStlfr.html","topicHref":"Hi.Geom.NativeTopoStlfr.html","topicUid":"Hi.Geom.NativeTopoStlfr","type":"Class"},{"name":"ObjUtil","href":"Hi.Geom.ObjUtil.html","topicHref":"Hi.Geom.ObjUtil.html","topicUid":"Hi.Geom.ObjUtil","type":"Class"},{"name":"PairZr","href":"Hi.Geom.PairZr.html","topicHref":"Hi.Geom.PairZr.html","topicUid":"Hi.Geom.PairZr","type":"Class"},{"name":"PairZrUtil","href":"Hi.Geom.PairZrUtil.html","topicHref":"Hi.Geom.PairZrUtil.html","topicUid":"Hi.Geom.PairZrUtil","type":"Class"},{"name":"PlyUtil","href":"Hi.Geom.PlyUtil.html","topicHref":"Hi.Geom.PlyUtil.html","topicUid":"Hi.Geom.PlyUtil","type":"Class"},{"name":"Polar3d","href":"Hi.Geom.Polar3d.html","topicHref":"Hi.Geom.Polar3d.html","topicUid":"Hi.Geom.Polar3d","type":"Class"},{"name":"Segment3d","href":"Hi.Geom.Segment3d.html","topicHref":"Hi.Geom.Segment3d.html","topicUid":"Hi.Geom.Segment3d","type":"Class"},{"name":"Stl","href":"Hi.Geom.Stl.html","topicHref":"Hi.Geom.Stl.html","topicUid":"Hi.Geom.Stl","type":"Class"},{"name":"Stl.StlType","href":"Hi.Geom.Stl.StlType.html","topicHref":"Hi.Geom.Stl.StlType.html","topicUid":"Hi.Geom.Stl.StlType","type":"Enum"},{"name":"StlFile","href":"Hi.Geom.StlFile.html","topicHref":"Hi.Geom.StlFile.html","topicUid":"Hi.Geom.StlFile","type":"Class"},{"name":"StlFuncHost","href":"Hi.Geom.StlFuncHost.html","topicHref":"Hi.Geom.StlFuncHost.html","topicUid":"Hi.Geom.StlFuncHost","type":"Class"},{"name":"StlUtil","href":"Hi.Geom.StlUtil.html","topicHref":"Hi.Geom.StlUtil.html","topicUid":"Hi.Geom.StlUtil","type":"Class"},{"name":"TransformationGeom","href":"Hi.Geom.TransformationGeom.html","topicHref":"Hi.Geom.TransformationGeom.html","topicUid":"Hi.Geom.TransformationGeom","type":"Class"},{"name":"Tri3d","href":"Hi.Geom.Tri3d.html","topicHref":"Hi.Geom.Tri3d.html","topicUid":"Hi.Geom.Tri3d","type":"Class"},{"name":"Tri3dUtil","href":"Hi.Geom.Tri3dUtil.html","topicHref":"Hi.Geom.Tri3dUtil.html","topicUid":"Hi.Geom.Tri3dUtil","type":"Class"},{"name":"Vec2d","href":"Hi.Geom.Vec2d.html","topicHref":"Hi.Geom.Vec2d.html","topicUid":"Hi.Geom.Vec2d","type":"Class"},{"name":"Vec2i","href":"Hi.Geom.Vec2i.html","topicHref":"Hi.Geom.Vec2i.html","topicUid":"Hi.Geom.Vec2i","type":"Class"},{"name":"Vec3d","href":"Hi.Geom.Vec3d.html","topicHref":"Hi.Geom.Vec3d.html","topicUid":"Hi.Geom.Vec3d","type":"Class"}]},{"name":"Hi.Geom.Resolution","href":"Hi.Geom.Resolution.html","topicHref":"Hi.Geom.Resolution.html","topicUid":"Hi.Geom.Resolution","type":"Namespace","items":[{"name":"IPolarResolution2d","href":"Hi.Geom.Resolution.IPolarResolution2d.html","topicHref":"Hi.Geom.Resolution.IPolarResolution2d.html","topicUid":"Hi.Geom.Resolution.IPolarResolution2d","type":"Interface"},{"name":"IPolarResolution2dSourceProperty","href":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html","topicHref":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html","topicUid":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty","type":"Interface"},{"name":"PolarResolution2d","href":"Hi.Geom.Resolution.PolarResolution2d.html","topicHref":"Hi.Geom.Resolution.PolarResolution2d.html","topicUid":"Hi.Geom.Resolution.PolarResolution2d","type":"Class"}]},{"name":"Hi.Geom.Solvers","href":"Hi.Geom.Solvers.html","topicHref":"Hi.Geom.Solvers.html","topicUid":"Hi.Geom.Solvers","type":"Namespace","items":[{"name":"BinarySolverUtil","href":"Hi.Geom.Solvers.BinarySolverUtil.html","topicHref":"Hi.Geom.Solvers.BinarySolverUtil.html","topicUid":"Hi.Geom.Solvers.BinarySolverUtil","type":"Class"},{"name":"BinarySolvingEntry","href":"Hi.Geom.Solvers.BinarySolvingEntry.html","topicHref":"Hi.Geom.Solvers.BinarySolvingEntry.html","topicUid":"Hi.Geom.Solvers.BinarySolvingEntry","type":"Class"},{"name":"DeepSolvingStatus","href":"Hi.Geom.Solvers.DeepSolvingStatus.html","topicHref":"Hi.Geom.Solvers.DeepSolvingStatus.html","topicUid":"Hi.Geom.Solvers.DeepSolvingStatus","type":"Class"},{"name":"NumericalSolver","href":"Hi.Geom.Solvers.NumericalSolver.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.html","topicUid":"Hi.Geom.Solvers.NumericalSolver","type":"Class"},{"name":"NumericalSolver.GetRepondsDelegate","href":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html","topicUid":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate","type":"Delegate"},{"name":"NumericalSolver.SetParasDelegate","href":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html","topicUid":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate","type":"Delegate"},{"name":"SolverUtil","href":"Hi.Geom.Solvers.SolverUtil.html","topicHref":"Hi.Geom.Solvers.SolverUtil.html","topicUid":"Hi.Geom.Solvers.SolverUtil","type":"Class"},{"name":"SolvingResult","href":"Hi.Geom.Solvers.SolvingResult.html","topicHref":"Hi.Geom.Solvers.SolvingResult.html","topicUid":"Hi.Geom.Solvers.SolvingResult","type":"Class"},{"name":"SolvingStatus","href":"Hi.Geom.Solvers.SolvingStatus.html","topicHref":"Hi.Geom.Solvers.SolvingStatus.html","topicUid":"Hi.Geom.Solvers.SolvingStatus","type":"Enum"},{"name":"SolvingTerm","href":"Hi.Geom.Solvers.SolvingTerm.html","topicHref":"Hi.Geom.Solvers.SolvingTerm.html","topicUid":"Hi.Geom.Solvers.SolvingTerm","type":"Enum"}]},{"name":"Hi.Geom.Topo","href":"Hi.Geom.Topo.html","topicHref":"Hi.Geom.Topo.html","topicUid":"Hi.Geom.Topo","type":"Namespace","items":[{"name":"TopoLine3Hfr","href":"Hi.Geom.Topo.TopoLine3Hfr.html","topicHref":"Hi.Geom.Topo.TopoLine3Hfr.html","topicUid":"Hi.Geom.Topo.TopoLine3Hfr","type":"Class"},{"name":"TopoLine3StockHfr","href":"Hi.Geom.Topo.TopoLine3StockHfr.html","topicHref":"Hi.Geom.Topo.TopoLine3StockHfr.html","topicUid":"Hi.Geom.Topo.TopoLine3StockHfr","type":"Class"},{"name":"TopoPoint3Hfr","href":"Hi.Geom.Topo.TopoPoint3Hfr.html","topicHref":"Hi.Geom.Topo.TopoPoint3Hfr.html","topicUid":"Hi.Geom.Topo.TopoPoint3Hfr","type":"Class"},{"name":"TopoPoint3StockHfr","href":"Hi.Geom.Topo.TopoPoint3StockHfr.html","topicHref":"Hi.Geom.Topo.TopoPoint3StockHfr.html","topicUid":"Hi.Geom.Topo.TopoPoint3StockHfr","type":"Class"},{"name":"TopoStl3Hfr","href":"Hi.Geom.Topo.TopoStl3Hfr.html","topicHref":"Hi.Geom.Topo.TopoStl3Hfr.html","topicUid":"Hi.Geom.Topo.TopoStl3Hfr","type":"Class"},{"name":"TopoStl3HfrFlatDisplayee","href":"Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.html","topicHref":"Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.html","topicUid":"Hi.Geom.Topo.TopoStl3HfrFlatDisplayee","type":"Class"},{"name":"TopoStl3HfrSmoothDisplayee","href":"Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html","topicHref":"Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html","topicUid":"Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee","type":"Class"},{"name":"TopoTri3Hfr","href":"Hi.Geom.Topo.TopoTri3Hfr.html","topicHref":"Hi.Geom.Topo.TopoTri3Hfr.html","topicUid":"Hi.Geom.Topo.TopoTri3Hfr","type":"Class"},{"name":"TopoTri3StockHfr","href":"Hi.Geom.Topo.TopoTri3StockHfr.html","topicHref":"Hi.Geom.Topo.TopoTri3StockHfr.html","topicUid":"Hi.Geom.Topo.TopoTri3StockHfr","type":"Class"},{"name":"Vec3Hfr","href":"Hi.Geom.Topo.Vec3Hfr.html","topicHref":"Hi.Geom.Topo.Vec3Hfr.html","topicUid":"Hi.Geom.Topo.Vec3Hfr","type":"Struct"}]},{"name":"Hi.Geom.UnitUtils","href":"Hi.Geom.UnitUtils.html","topicHref":"Hi.Geom.UnitUtils.html","topicUid":"Hi.Geom.UnitUtils","type":"Namespace","items":[{"name":"PhysicsUnit","href":"Hi.Geom.UnitUtils.PhysicsUnit.html","topicHref":"Hi.Geom.UnitUtils.PhysicsUnit.html","topicUid":"Hi.Geom.UnitUtils.PhysicsUnit","type":"Enum"},{"name":"StringValueAttribute","href":"Hi.Geom.UnitUtils.StringValueAttribute.html","topicHref":"Hi.Geom.UnitUtils.StringValueAttribute.html","topicUid":"Hi.Geom.UnitUtils.StringValueAttribute","type":"Class"},{"name":"UnitConvertUtil","href":"Hi.Geom.UnitUtils.UnitConvertUtil.html","topicHref":"Hi.Geom.UnitUtils.UnitConvertUtil.html","topicUid":"Hi.Geom.UnitUtils.UnitConvertUtil","type":"Class"}]},{"name":"Hi.Grpcs","href":"Hi.Grpcs.html","topicHref":"Hi.Grpcs.html","topicUid":"Hi.Grpcs","type":"Namespace","items":[{"name":"ClStripService","href":"Hi.Grpcs.ClStripService.html","topicHref":"Hi.Grpcs.ClStripService.html","topicUid":"Hi.Grpcs.ClStripService","type":"Class"},{"name":"ClStripService.ClStripServiceBase","href":"Hi.Grpcs.ClStripService.ClStripServiceBase.html","topicHref":"Hi.Grpcs.ClStripService.ClStripServiceBase.html","topicUid":"Hi.Grpcs.ClStripService.ClStripServiceBase","type":"Class"},{"name":"ClStripService.ClStripServiceClient","href":"Hi.Grpcs.ClStripService.ClStripServiceClient.html","topicHref":"Hi.Grpcs.ClStripService.ClStripServiceClient.html","topicUid":"Hi.Grpcs.ClStripService.ClStripServiceClient","type":"Class"},{"name":"ClStripServiceReflection","href":"Hi.Grpcs.ClStripServiceReflection.html","topicHref":"Hi.Grpcs.ClStripServiceReflection.html","topicUid":"Hi.Grpcs.ClStripServiceReflection","type":"Class"},{"name":"ClStripServiceRunner","href":"Hi.Grpcs.ClStripServiceRunner.html","topicHref":"Hi.Grpcs.ClStripServiceRunner.html","topicUid":"Hi.Grpcs.ClStripServiceRunner","type":"Class"},{"name":"DictionaryStep","href":"Hi.Grpcs.DictionaryStep.html","topicHref":"Hi.Grpcs.DictionaryStep.html","topicUid":"Hi.Grpcs.DictionaryStep","type":"Class"},{"name":"PlayerService","href":"Hi.Grpcs.PlayerService.html","topicHref":"Hi.Grpcs.PlayerService.html","topicUid":"Hi.Grpcs.PlayerService","type":"Class"},{"name":"PlayerService.PlayerServiceBase","href":"Hi.Grpcs.PlayerService.PlayerServiceBase.html","topicHref":"Hi.Grpcs.PlayerService.PlayerServiceBase.html","topicUid":"Hi.Grpcs.PlayerService.PlayerServiceBase","type":"Class"},{"name":"PlayerService.PlayerServiceClient","href":"Hi.Grpcs.PlayerService.PlayerServiceClient.html","topicHref":"Hi.Grpcs.PlayerService.PlayerServiceClient.html","topicUid":"Hi.Grpcs.PlayerService.PlayerServiceClient","type":"Class"},{"name":"PlayerServiceReflection","href":"Hi.Grpcs.PlayerServiceReflection.html","topicHref":"Hi.Grpcs.PlayerServiceReflection.html","topicUid":"Hi.Grpcs.PlayerServiceReflection","type":"Class"},{"name":"PlayerServiceRunner","href":"Hi.Grpcs.PlayerServiceRunner.html","topicHref":"Hi.Grpcs.PlayerServiceRunner.html","topicUid":"Hi.Grpcs.PlayerServiceRunner","type":"Class"}]},{"name":"Hi.HiNcKits","href":"Hi.HiNcKits.html","topicHref":"Hi.HiNcKits.html","topicUid":"Hi.HiNcKits","type":"Namespace","items":[{"name":"BasePathEnum","href":"Hi.HiNcKits.BasePathEnum.html","topicHref":"Hi.HiNcKits.BasePathEnum.html","topicUid":"Hi.HiNcKits.BasePathEnum","type":"Enum"},{"name":"HiNcHost","href":"Hi.HiNcKits.HiNcHost.html","topicHref":"Hi.HiNcKits.HiNcHost.html","topicUid":"Hi.HiNcKits.HiNcHost","type":"Class"},{"name":"LocalApp","href":"Hi.HiNcKits.LocalApp.html","topicHref":"Hi.HiNcKits.LocalApp.html","topicUid":"Hi.HiNcKits.LocalApp","type":"Class"},{"name":"LocalAppConfig","href":"Hi.HiNcKits.LocalAppConfig.html","topicHref":"Hi.HiNcKits.LocalAppConfig.html","topicUid":"Hi.HiNcKits.LocalAppConfig","type":"Class"},{"name":"PlayerDivConfig","href":"Hi.HiNcKits.PlayerDivConfig.html","topicHref":"Hi.HiNcKits.PlayerDivConfig.html","topicUid":"Hi.HiNcKits.PlayerDivConfig","type":"Class"},{"name":"ProxyConfig","href":"Hi.HiNcKits.ProxyConfig.html","topicHref":"Hi.HiNcKits.ProxyConfig.html","topicUid":"Hi.HiNcKits.ProxyConfig","type":"Class"},{"name":"UserConfig","href":"Hi.HiNcKits.UserConfig.html","topicHref":"Hi.HiNcKits.UserConfig.html","topicUid":"Hi.HiNcKits.UserConfig","type":"Class"},{"name":"UserService","href":"Hi.HiNcKits.UserService.html","topicHref":"Hi.HiNcKits.UserService.html","topicUid":"Hi.HiNcKits.UserService","type":"Class"}]},{"name":"Hi.Licenses","href":"Hi.Licenses.html","topicHref":"Hi.Licenses.html","topicUid":"Hi.Licenses","type":"Namespace","items":[{"name":"AuthFeature","href":"Hi.Licenses.AuthFeature.html","topicHref":"Hi.Licenses.AuthFeature.html","topicUid":"Hi.Licenses.AuthFeature","type":"Enum"},{"name":"AuthorizationFailedEventArgs","href":"Hi.Licenses.AuthorizationFailedEventArgs.html","topicHref":"Hi.Licenses.AuthorizationFailedEventArgs.html","topicUid":"Hi.Licenses.AuthorizationFailedEventArgs","type":"Class"},{"name":"BlockType","href":"Hi.Licenses.BlockType.html","topicHref":"Hi.Licenses.BlockType.html","topicUid":"Hi.Licenses.BlockType","type":"Enum"},{"name":"License","href":"Hi.Licenses.License.html","topicHref":"Hi.Licenses.License.html","topicUid":"Hi.Licenses.License","type":"Class"},{"name":"LicenseType","href":"Hi.Licenses.LicenseType.html","topicHref":"Hi.Licenses.LicenseType.html","topicUid":"Hi.Licenses.LicenseType","type":"Enum"}]},{"name":"Hi.Machining","href":"Hi.Machining.html","topicHref":"Hi.Machining.html","topicUid":"Hi.Machining","type":"Namespace","items":[{"name":"FreeformRemover","href":"Hi.Machining.FreeformRemover.html","topicHref":"Hi.Machining.FreeformRemover.html","topicUid":"Hi.Machining.FreeformRemover","type":"Class"},{"name":"ICutter","href":"Hi.Machining.ICutter.html","topicHref":"Hi.Machining.ICutter.html","topicUid":"Hi.Machining.ICutter","type":"Interface"},{"name":"ICutterAnchorable","href":"Hi.Machining.ICutterAnchorable.html","topicHref":"Hi.Machining.ICutterAnchorable.html","topicUid":"Hi.Machining.ICutterAnchorable","type":"Interface"},{"name":"IGetSweptable","href":"Hi.Machining.IGetSweptable.html","topicHref":"Hi.Machining.IGetSweptable.html","topicUid":"Hi.Machining.IGetSweptable","type":"Interface"},{"name":"IMachiningTool","href":"Hi.Machining.IMachiningTool.html","topicHref":"Hi.Machining.IMachiningTool.html","topicUid":"Hi.Machining.IMachiningTool","type":"Interface"},{"name":"IVolumeRemover","href":"Hi.Machining.IVolumeRemover.html","topicHref":"Hi.Machining.IVolumeRemover.html","topicUid":"Hi.Machining.IVolumeRemover","type":"Interface"},{"name":"MachiningToolHouse","href":"Hi.Machining.MachiningToolHouse.html","topicHref":"Hi.Machining.MachiningToolHouse.html","topicUid":"Hi.Machining.MachiningToolHouse","type":"Class"},{"name":"MachiningVolumeRemovalProc","href":"Hi.Machining.MachiningVolumeRemovalProc.html","topicHref":"Hi.Machining.MachiningVolumeRemovalProc.html","topicUid":"Hi.Machining.MachiningVolumeRemovalProc","type":"Class"},{"name":"MachiningVolumeRemovalProc.StepMotionSnapshot","href":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html","topicHref":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html","topicUid":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot","type":"Class"},{"name":"MatInterpolationKit","href":"Hi.Machining.MatInterpolationKit.html","topicHref":"Hi.Machining.MatInterpolationKit.html","topicUid":"Hi.Machining.MatInterpolationKit","type":"Class"},{"name":"MatRelation","href":"Hi.Machining.MatRelation.html","topicHref":"Hi.Machining.MatRelation.html","topicUid":"Hi.Machining.MatRelation","type":"Enum"},{"name":"MatRelationUtil","href":"Hi.Machining.MatRelationUtil.html","topicHref":"Hi.Machining.MatRelationUtil.html","topicUid":"Hi.Machining.MatRelationUtil","type":"Class"},{"name":"Sweptable","href":"Hi.Machining.Sweptable.html","topicHref":"Hi.Machining.Sweptable.html","topicUid":"Hi.Machining.Sweptable","type":"Class"},{"name":"SweptableUtil","href":"Hi.Machining.SweptableUtil.html","topicHref":"Hi.Machining.SweptableUtil.html","topicUid":"Hi.Machining.SweptableUtil","type":"Class"},{"name":"ToolNotFoundException","href":"Hi.Machining.ToolNotFoundException.html","topicHref":"Hi.Machining.ToolNotFoundException.html","topicUid":"Hi.Machining.ToolNotFoundException","type":"Class"}]},{"name":"Hi.Machining.MachiningEquipmentUtils","href":"Hi.Machining.MachiningEquipmentUtils.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.html","topicUid":"Hi.Machining.MachiningEquipmentUtils","type":"Namespace","items":[{"name":"CollidableComponentEnum","href":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum","type":"Enum"},{"name":"IGetMachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment","type":"Interface"},{"name":"IMachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment","type":"Interface"},{"name":"MachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment","type":"Class"},{"name":"MachiningEquipmentCollisionIndex","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex","type":"Class"},{"name":"MachiningEquipmentCollisionIndexPairsSource","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource","type":"Class"},{"name":"MachiningEquipmentUtil","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil","type":"Class"}]},{"name":"Hi.MachiningProcs","href":"Hi.MachiningProcs.html","topicHref":"Hi.MachiningProcs.html","topicUid":"Hi.MachiningProcs","type":"Namespace","items":[{"name":"ConfigStepFunc","href":"Hi.MachiningProcs.ConfigStepFunc.html","topicHref":"Hi.MachiningProcs.ConfigStepFunc.html","topicUid":"Hi.MachiningProcs.ConfigStepFunc","type":"Delegate"},{"name":"IMachiningProjectGetter","href":"Hi.MachiningProcs.IMachiningProjectGetter.html","topicHref":"Hi.MachiningProcs.IMachiningProjectGetter.html","topicUid":"Hi.MachiningProcs.IMachiningProjectGetter","type":"Interface"},{"name":"IProjectService","href":"Hi.MachiningProcs.IProjectService.html","topicHref":"Hi.MachiningProcs.IProjectService.html","topicUid":"Hi.MachiningProcs.IProjectService","type":"Interface"},{"name":"LocalProjectService","href":"Hi.MachiningProcs.LocalProjectService.html","topicHref":"Hi.MachiningProcs.LocalProjectService.html","topicUid":"Hi.MachiningProcs.LocalProjectService","type":"Class"},{"name":"LocalProjectService.MachiningProjectChangedDelegate","href":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html","topicHref":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html","topicUid":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate","type":"Delegate"},{"name":"MachiningActRunner","href":"Hi.MachiningProcs.MachiningActRunner.html","topicHref":"Hi.MachiningProcs.MachiningActRunner.html","topicUid":"Hi.MachiningProcs.MachiningActRunner","type":"Class"},{"name":"MachiningActRunner.MachiningStepBuiltDelegate","href":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html","topicHref":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html","topicUid":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate","type":"Delegate"},{"name":"MachiningActRunnerConfig","href":"Hi.MachiningProcs.MachiningActRunnerConfig.html","topicHref":"Hi.MachiningProcs.MachiningActRunnerConfig.html","topicUid":"Hi.MachiningProcs.MachiningActRunnerConfig","type":"Class"},{"name":"MachiningParallelProc","href":"Hi.MachiningProcs.MachiningParallelProc.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc","type":"Class"},{"name":"MachiningParallelProc.StepTaskBundle","href":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle","type":"Class"},{"name":"MachiningParallelProc.SubstractionResult","href":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult","type":"Class"},{"name":"MachiningProject","href":"Hi.MachiningProcs.MachiningProject.html","topicHref":"Hi.MachiningProcs.MachiningProject.html","topicUid":"Hi.MachiningProcs.MachiningProject","type":"Class"},{"name":"MachiningProjectDisplayee","href":"Hi.MachiningProcs.MachiningProjectDisplayee.html","topicHref":"Hi.MachiningProcs.MachiningProjectDisplayee.html","topicUid":"Hi.MachiningProcs.MachiningProjectDisplayee","type":"Class"},{"name":"MachiningSession","href":"Hi.MachiningProcs.MachiningSession.html","topicHref":"Hi.MachiningProcs.MachiningSession.html","topicUid":"Hi.MachiningProcs.MachiningSession","type":"Class"},{"name":"MillingUtil","href":"Hi.MachiningProcs.MillingUtil.html","topicHref":"Hi.MachiningProcs.MillingUtil.html","topicUid":"Hi.MachiningProcs.MillingUtil","type":"Class"},{"name":"NcRunnerSessionState","href":"Hi.MachiningProcs.NcRunnerSessionState.html","topicHref":"Hi.MachiningProcs.NcRunnerSessionState.html","topicUid":"Hi.MachiningProcs.NcRunnerSessionState","type":"Class"},{"name":"ProxyProjectService","href":"Hi.MachiningProcs.ProxyProjectService.html","topicHref":"Hi.MachiningProcs.ProxyProjectService.html","topicUid":"Hi.MachiningProcs.ProxyProjectService","type":"Class"},{"name":"RenderingFlag","href":"Hi.MachiningProcs.RenderingFlag.html","topicHref":"Hi.MachiningProcs.RenderingFlag.html","topicUid":"Hi.MachiningProcs.RenderingFlag","type":"Enum"},{"name":"SessionMessage","href":"Hi.MachiningProcs.SessionMessage.html","topicHref":"Hi.MachiningProcs.SessionMessage.html","topicUid":"Hi.MachiningProcs.SessionMessage","type":"Class"},{"name":"SessionMessagePack","href":"Hi.MachiningProcs.SessionMessagePack.html","topicHref":"Hi.MachiningProcs.SessionMessagePack.html","topicUid":"Hi.MachiningProcs.SessionMessagePack","type":"Class"},{"name":"SessionProgress","href":"Hi.MachiningProcs.SessionProgress.html","topicHref":"Hi.MachiningProcs.SessionProgress.html","topicUid":"Hi.MachiningProcs.SessionProgress","type":"Class"},{"name":"SessionProgress.FilterFlag","href":"Hi.MachiningProcs.SessionProgress.FilterFlag.html","topicHref":"Hi.MachiningProcs.SessionProgress.FilterFlag.html","topicUid":"Hi.MachiningProcs.SessionProgress.FilterFlag","type":"Enum"},{"name":"SessionShell","href":"Hi.MachiningProcs.SessionShell.html","topicHref":"Hi.MachiningProcs.SessionShell.html","topicUid":"Hi.MachiningProcs.SessionShell","type":"Class"},{"name":"SessionShellController","href":"Hi.MachiningProcs.SessionShellController.html","topicHref":"Hi.MachiningProcs.SessionShellController.html","topicUid":"Hi.MachiningProcs.SessionShellController","type":"Class"},{"name":"SetupController","href":"Hi.MachiningProcs.SetupController.html","topicHref":"Hi.MachiningProcs.SetupController.html","topicUid":"Hi.MachiningProcs.SetupController","type":"Class"},{"name":"SpindleSpeedCache","href":"Hi.MachiningProcs.SpindleSpeedCache.html","topicHref":"Hi.MachiningProcs.SpindleSpeedCache.html","topicUid":"Hi.MachiningProcs.SpindleSpeedCache","type":"Class"}]},{"name":"Hi.MachiningSteps","href":"Hi.MachiningSteps.html","topicHref":"Hi.MachiningSteps.html","topicUid":"Hi.MachiningSteps","type":"Namespace","items":[{"name":"IFlagText","href":"Hi.MachiningSteps.IFlagText.html","topicHref":"Hi.MachiningSteps.IFlagText.html","topicUid":"Hi.MachiningSteps.IFlagText","type":"Interface"},{"name":"IMachiningService","href":"Hi.MachiningSteps.IMachiningService.html","topicHref":"Hi.MachiningSteps.IMachiningService.html","topicUid":"Hi.MachiningSteps.IMachiningService","type":"Interface"},{"name":"MachineMotionStep","href":"Hi.MachiningSteps.MachineMotionStep.html","topicHref":"Hi.MachiningSteps.MachineMotionStep.html","topicUid":"Hi.MachiningSteps.MachineMotionStep","type":"Class"},{"name":"MachiningStep","href":"Hi.MachiningSteps.MachiningStep.html","topicHref":"Hi.MachiningSteps.MachiningStep.html","topicUid":"Hi.MachiningSteps.MachiningStep","type":"Class"},{"name":"MachiningStep.CollidedKeyPair","href":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html","topicHref":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html","topicUid":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair","type":"Class"},{"name":"MachiningStepUtil","href":"Hi.MachiningSteps.MachiningStepUtil.html","topicHref":"Hi.MachiningSteps.MachiningStepUtil.html","topicUid":"Hi.MachiningSteps.MachiningStepUtil","type":"Class"},{"name":"PresentAccess","href":"Hi.MachiningSteps.PresentAccess.html","topicHref":"Hi.MachiningSteps.PresentAccess.html","topicUid":"Hi.MachiningSteps.PresentAccess","type":"Class"},{"name":"PresentAttribute","href":"Hi.MachiningSteps.PresentAttribute.html","topicHref":"Hi.MachiningSteps.PresentAttribute.html","topicUid":"Hi.MachiningSteps.PresentAttribute","type":"Class"},{"name":"PropertyAccess","href":"Hi.MachiningSteps.PropertyAccess-1.html","topicHref":"Hi.MachiningSteps.PropertyAccess-1.html","topicUid":"Hi.MachiningSteps.PropertyAccess`1","type":"Class"}]},{"name":"Hi.Mapping","href":"Hi.Mapping.html","topicHref":"Hi.Mapping.html","topicUid":"Hi.Mapping","type":"Namespace","items":[{"name":"CsvNcStep","href":"Hi.Mapping.CsvNcStep.html","topicHref":"Hi.Mapping.CsvNcStep.html","topicUid":"Hi.Mapping.CsvNcStep","type":"Class"},{"name":"FileToTimeShotMapping","href":"Hi.Mapping.FileToTimeShotMapping.html","topicHref":"Hi.Mapping.FileToTimeShotMapping.html","topicUid":"Hi.Mapping.FileToTimeShotMapping","type":"Class"},{"name":"IAccelerationShot","href":"Hi.Mapping.IAccelerationShot.html","topicHref":"Hi.Mapping.IAccelerationShot.html","topicUid":"Hi.Mapping.IAccelerationShot","type":"Interface"},{"name":"IForceShot","href":"Hi.Mapping.IForceShot.html","topicHref":"Hi.Mapping.IForceShot.html","topicUid":"Hi.Mapping.IForceShot","type":"Interface"},{"name":"IMomentShot","href":"Hi.Mapping.IMomentShot.html","topicHref":"Hi.Mapping.IMomentShot.html","topicUid":"Hi.Mapping.IMomentShot","type":"Interface"},{"name":"ITimeShot","href":"Hi.Mapping.ITimeShot.html","topicHref":"Hi.Mapping.ITimeShot.html","topicUid":"Hi.Mapping.ITimeShot","type":"Interface"},{"name":"MappingUtil","href":"Hi.Mapping.MappingUtil.html","topicHref":"Hi.Mapping.MappingUtil.html","topicUid":"Hi.Mapping.MappingUtil","type":"Class"},{"name":"StepTimeShotUtil","href":"Hi.Mapping.StepTimeShotUtil.html","topicHref":"Hi.Mapping.StepTimeShotUtil.html","topicUid":"Hi.Mapping.StepTimeShotUtil","type":"Class"},{"name":"StepTimeShotUtil.CycleSamplingMode","href":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html","topicHref":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html","topicUid":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode","type":"Enum"},{"name":"StepTimeShotUtil.GetTimeShotByFileDelegate","href":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html","topicHref":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html","topicUid":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate","type":"Delegate"},{"name":"TimeMapping","href":"Hi.Mapping.TimeMapping.html","topicHref":"Hi.Mapping.TimeMapping.html","topicUid":"Hi.Mapping.TimeMapping","type":"Class"}]},{"name":"Hi.Mappings","href":"Hi.Mappings.html","topicHref":"Hi.Mappings.html","topicUid":"Hi.Mappings","type":"Namespace","items":[{"name":"FileTimeSection","href":"Hi.Mappings.FileTimeSection.html","topicHref":"Hi.Mappings.FileTimeSection.html","topicUid":"Hi.Mappings.FileTimeSection","type":"Class"},{"name":"FileTimeSection.TimeOption","href":"Hi.Mappings.FileTimeSection.TimeOption.html","topicHref":"Hi.Mappings.FileTimeSection.TimeOption.html","topicUid":"Hi.Mappings.FileTimeSection.TimeOption","type":"Enum"}]},{"name":"Hi.Mech","href":"Hi.Mech.html","topicHref":"Hi.Mech.html","topicUid":"Hi.Mech","type":"Namespace","items":[{"name":"GeneralMechanism","href":"Hi.Mech.GeneralMechanism.html","topicHref":"Hi.Mech.GeneralMechanism.html","topicUid":"Hi.Mech.GeneralMechanism","type":"Class"},{"name":"IGetAnchorToSolidDictionary","href":"Hi.Mech.IGetAnchorToSolidDictionary.html","topicHref":"Hi.Mech.IGetAnchorToSolidDictionary.html","topicUid":"Hi.Mech.IGetAnchorToSolidDictionary","type":"Interface"},{"name":"IGetMachiningChain","href":"Hi.Mech.IGetMachiningChain.html","topicHref":"Hi.Mech.IGetMachiningChain.html","topicUid":"Hi.Mech.IGetMachiningChain","type":"Interface"},{"name":"IMachiningChain","href":"Hi.Mech.IMachiningChain.html","topicHref":"Hi.Mech.IMachiningChain.html","topicUid":"Hi.Mech.IMachiningChain","type":"Interface"},{"name":"IMachiningChainSource","href":"Hi.Mech.IMachiningChainSource.html","topicHref":"Hi.Mech.IMachiningChainSource.html","topicUid":"Hi.Mech.IMachiningChainSource","type":"Interface"},{"name":"MachiningChainUtil","href":"Hi.Mech.MachiningChainUtil.html","topicHref":"Hi.Mech.MachiningChainUtil.html","topicUid":"Hi.Mech.MachiningChainUtil","type":"Class"}]},{"name":"Hi.Mech.Topo","href":"Hi.Mech.Topo.html","topicHref":"Hi.Mech.Topo.html","topicUid":"Hi.Mech.Topo","type":"Namespace","items":[{"name":"Anchor","href":"Hi.Mech.Topo.Anchor.html","topicHref":"Hi.Mech.Topo.Anchor.html","topicUid":"Hi.Mech.Topo.Anchor","type":"Class"},{"name":"AnchorFuncSource","href":"Hi.Mech.Topo.AnchorFuncSource.html","topicHref":"Hi.Mech.Topo.AnchorFuncSource.html","topicUid":"Hi.Mech.Topo.AnchorFuncSource","type":"Class"},{"name":"AnchoredBoxable","href":"Hi.Mech.Topo.AnchoredBoxable.html","topicHref":"Hi.Mech.Topo.AnchoredBoxable.html","topicUid":"Hi.Mech.Topo.AnchoredBoxable","type":"Class"},{"name":"AnchoredDisplayee","href":"Hi.Mech.Topo.AnchoredDisplayee.html","topicHref":"Hi.Mech.Topo.AnchoredDisplayee.html","topicUid":"Hi.Mech.Topo.AnchoredDisplayee","type":"Class"},{"name":"Asmb","href":"Hi.Mech.Topo.Asmb.html","topicHref":"Hi.Mech.Topo.Asmb.html","topicUid":"Hi.Mech.Topo.Asmb","type":"Class"},{"name":"AsmbDraw","href":"Hi.Mech.Topo.AsmbDraw.html","topicHref":"Hi.Mech.Topo.AsmbDraw.html","topicUid":"Hi.Mech.Topo.AsmbDraw","type":"Class"},{"name":"Branch","href":"Hi.Mech.Topo.Branch.html","topicHref":"Hi.Mech.Topo.Branch.html","topicUid":"Hi.Mech.Topo.Branch","type":"Class"},{"name":"DirectionBranchEntry","href":"Hi.Mech.Topo.DirectionBranchEntry.html","topicHref":"Hi.Mech.Topo.DirectionBranchEntry.html","topicUid":"Hi.Mech.Topo.DirectionBranchEntry","type":"Class"},{"name":"DirectionBranchPackUtil","href":"Hi.Mech.Topo.DirectionBranchPackUtil.html","topicHref":"Hi.Mech.Topo.DirectionBranchPackUtil.html","topicUid":"Hi.Mech.Topo.DirectionBranchPackUtil","type":"Class"},{"name":"DynamicFreeform","href":"Hi.Mech.Topo.DynamicFreeform.html","topicHref":"Hi.Mech.Topo.DynamicFreeform.html","topicUid":"Hi.Mech.Topo.DynamicFreeform","type":"Class"},{"name":"DynamicRotation","href":"Hi.Mech.Topo.DynamicRotation.html","topicHref":"Hi.Mech.Topo.DynamicRotation.html","topicUid":"Hi.Mech.Topo.DynamicRotation","type":"Class"},{"name":"DynamicTranslation","href":"Hi.Mech.Topo.DynamicTranslation.html","topicHref":"Hi.Mech.Topo.DynamicTranslation.html","topicUid":"Hi.Mech.Topo.DynamicTranslation","type":"Class"},{"name":"GeneralTransform","href":"Hi.Mech.Topo.GeneralTransform.html","topicHref":"Hi.Mech.Topo.GeneralTransform.html","topicUid":"Hi.Mech.Topo.GeneralTransform","type":"Class"},{"name":"IAnchoredDisplayee","href":"Hi.Mech.Topo.IAnchoredDisplayee.html","topicHref":"Hi.Mech.Topo.IAnchoredDisplayee.html","topicUid":"Hi.Mech.Topo.IAnchoredDisplayee","type":"Interface"},{"name":"IDynamicRegular","href":"Hi.Mech.Topo.IDynamicRegular.html","topicHref":"Hi.Mech.Topo.IDynamicRegular.html","topicUid":"Hi.Mech.Topo.IDynamicRegular","type":"Interface"},{"name":"IDynamicRotation","href":"Hi.Mech.Topo.IDynamicRotation.html","topicHref":"Hi.Mech.Topo.IDynamicRotation.html","topicUid":"Hi.Mech.Topo.IDynamicRotation","type":"Interface"},{"name":"IDynamicTransformer","href":"Hi.Mech.Topo.IDynamicTransformer.html","topicHref":"Hi.Mech.Topo.IDynamicTransformer.html","topicUid":"Hi.Mech.Topo.IDynamicTransformer","type":"Interface"},{"name":"IGetAnchor","href":"Hi.Mech.Topo.IGetAnchor.html","topicHref":"Hi.Mech.Topo.IGetAnchor.html","topicUid":"Hi.Mech.Topo.IGetAnchor","type":"Interface"},{"name":"IGetAnchoredDisplayeeList","href":"Hi.Mech.Topo.IGetAnchoredDisplayeeList.html","topicHref":"Hi.Mech.Topo.IGetAnchoredDisplayeeList.html","topicUid":"Hi.Mech.Topo.IGetAnchoredDisplayeeList","type":"Interface"},{"name":"IGetAsmb","href":"Hi.Mech.Topo.IGetAsmb.html","topicHref":"Hi.Mech.Topo.IGetAsmb.html","topicUid":"Hi.Mech.Topo.IGetAsmb","type":"Interface"},{"name":"IGetFletchBuckle","href":"Hi.Mech.Topo.IGetFletchBuckle.html","topicHref":"Hi.Mech.Topo.IGetFletchBuckle.html","topicUid":"Hi.Mech.Topo.IGetFletchBuckle","type":"Interface"},{"name":"IGetInverseTransformer","href":"Hi.Mech.Topo.IGetInverseTransformer.html","topicHref":"Hi.Mech.Topo.IGetInverseTransformer.html","topicUid":"Hi.Mech.Topo.IGetInverseTransformer","type":"Interface"},{"name":"IGetTopoIndex","href":"Hi.Mech.Topo.IGetTopoIndex.html","topicHref":"Hi.Mech.Topo.IGetTopoIndex.html","topicUid":"Hi.Mech.Topo.IGetTopoIndex","type":"Interface"},{"name":"IStaticTransformer","href":"Hi.Mech.Topo.IStaticTransformer.html","topicHref":"Hi.Mech.Topo.IStaticTransformer.html","topicUid":"Hi.Mech.Topo.IStaticTransformer","type":"Interface"},{"name":"ITopo","href":"Hi.Mech.Topo.ITopo.html","topicHref":"Hi.Mech.Topo.ITopo.html","topicUid":"Hi.Mech.Topo.ITopo","type":"Interface"},{"name":"ITopoDisplayee","href":"Hi.Mech.Topo.ITopoDisplayee.html","topicHref":"Hi.Mech.Topo.ITopoDisplayee.html","topicUid":"Hi.Mech.Topo.ITopoDisplayee","type":"Interface"},{"name":"ITransformer","href":"Hi.Mech.Topo.ITransformer.html","topicHref":"Hi.Mech.Topo.ITransformer.html","topicUid":"Hi.Mech.Topo.ITransformer","type":"Interface"},{"name":"ITransformerProperty","href":"Hi.Mech.Topo.ITransformerProperty.html","topicHref":"Hi.Mech.Topo.ITransformerProperty.html","topicUid":"Hi.Mech.Topo.ITransformerProperty","type":"Interface"},{"name":"NoTransform","href":"Hi.Mech.Topo.NoTransform.html","topicHref":"Hi.Mech.Topo.NoTransform.html","topicUid":"Hi.Mech.Topo.NoTransform","type":"Class"},{"name":"StackTransformer","href":"Hi.Mech.Topo.StackTransformer.html","topicHref":"Hi.Mech.Topo.StackTransformer.html","topicUid":"Hi.Mech.Topo.StackTransformer","type":"Class"},{"name":"StaticFreeform","href":"Hi.Mech.Topo.StaticFreeform.html","topicHref":"Hi.Mech.Topo.StaticFreeform.html","topicUid":"Hi.Mech.Topo.StaticFreeform","type":"Class"},{"name":"StaticRotation","href":"Hi.Mech.Topo.StaticRotation.html","topicHref":"Hi.Mech.Topo.StaticRotation.html","topicUid":"Hi.Mech.Topo.StaticRotation","type":"Class"},{"name":"StaticTranslation","href":"Hi.Mech.Topo.StaticTranslation.html","topicHref":"Hi.Mech.Topo.StaticTranslation.html","topicUid":"Hi.Mech.Topo.StaticTranslation","type":"Class"},{"name":"TopoDisplayee","href":"Hi.Mech.Topo.TopoDisplayee.html","topicHref":"Hi.Mech.Topo.TopoDisplayee.html","topicUid":"Hi.Mech.Topo.TopoDisplayee","type":"Class"},{"name":"TopoDisplayeeUtil","href":"Hi.Mech.Topo.TopoDisplayeeUtil.html","topicHref":"Hi.Mech.Topo.TopoDisplayeeUtil.html","topicUid":"Hi.Mech.Topo.TopoDisplayeeUtil","type":"Class"},{"name":"TopoReflection","href":"Hi.Mech.Topo.TopoReflection.html","topicHref":"Hi.Mech.Topo.TopoReflection.html","topicUid":"Hi.Mech.Topo.TopoReflection","type":"Class"},{"name":"TopoUtil","href":"Hi.Mech.Topo.TopoUtil.html","topicHref":"Hi.Mech.Topo.TopoUtil.html","topicUid":"Hi.Mech.Topo.TopoUtil","type":"Class"},{"name":"TransformerUtil","href":"Hi.Mech.Topo.TransformerUtil.html","topicHref":"Hi.Mech.Topo.TransformerUtil.html","topicUid":"Hi.Mech.Topo.TransformerUtil","type":"Class"}]},{"name":"Hi.Milling","href":"Hi.Milling.html","topicHref":"Hi.Milling.html","topicUid":"Hi.Milling","type":"Namespace","items":[{"name":"IGetDiameter","href":"Hi.Milling.IGetDiameter.html","topicHref":"Hi.Milling.IGetDiameter.html","topicUid":"Hi.Milling.IGetDiameter","type":"Interface"},{"name":"IGetFluteHeight","href":"Hi.Milling.IGetFluteHeight.html","topicHref":"Hi.Milling.IGetFluteHeight.html","topicUid":"Hi.Milling.IGetFluteHeight","type":"Interface"},{"name":"IGetMillingGeomBrief","href":"Hi.Milling.IGetMillingGeomBrief.html","topicHref":"Hi.Milling.IGetMillingGeomBrief.html","topicUid":"Hi.Milling.IGetMillingGeomBrief","type":"Interface"},{"name":"IGetRadialReliefAngle","href":"Hi.Milling.IGetRadialReliefAngle.html","topicHref":"Hi.Milling.IGetRadialReliefAngle.html","topicUid":"Hi.Milling.IGetRadialReliefAngle","type":"Interface"},{"name":"IMillingGeomBriefAccessor","href":"Hi.Milling.IMillingGeomBriefAccessor.html","topicHref":"Hi.Milling.IMillingGeomBriefAccessor.html","topicUid":"Hi.Milling.IMillingGeomBriefAccessor","type":"Interface"},{"name":"MillingGeomBrief","href":"Hi.Milling.MillingGeomBrief.html","topicHref":"Hi.Milling.MillingGeomBrief.html","topicUid":"Hi.Milling.MillingGeomBrief","type":"Class"},{"name":"MillingRemovalUtil","href":"Hi.Milling.MillingRemovalUtil.html","topicHref":"Hi.Milling.MillingRemovalUtil.html","topicUid":"Hi.Milling.MillingRemovalUtil","type":"Class"},{"name":"SpindleCapability","href":"Hi.Milling.SpindleCapability.html","topicHref":"Hi.Milling.SpindleCapability.html","topicUid":"Hi.Milling.SpindleCapability","type":"Class"}]},{"name":"Hi.Milling.Apts","href":"Hi.Milling.Apts.html","topicHref":"Hi.Milling.Apts.html","topicUid":"Hi.Milling.Apts","type":"Namespace","items":[{"name":"AptDerivative","href":"Hi.Milling.Apts.AptDerivative.html","topicHref":"Hi.Milling.Apts.AptDerivative.html","topicUid":"Hi.Milling.Apts.AptDerivative","type":"Class"},{"name":"BallApt","href":"Hi.Milling.Apts.BallApt.html","topicHref":"Hi.Milling.Apts.BallApt.html","topicUid":"Hi.Milling.Apts.BallApt","type":"Class"},{"name":"BullNoseApt","href":"Hi.Milling.Apts.BullNoseApt.html","topicHref":"Hi.Milling.Apts.BullNoseApt.html","topicUid":"Hi.Milling.Apts.BullNoseApt","type":"Class"},{"name":"ColumnApt","href":"Hi.Milling.Apts.ColumnApt.html","topicHref":"Hi.Milling.Apts.ColumnApt.html","topicUid":"Hi.Milling.Apts.ColumnApt","type":"Class"},{"name":"ConeApt","href":"Hi.Milling.Apts.ConeApt.html","topicHref":"Hi.Milling.Apts.ConeApt.html","topicUid":"Hi.Milling.Apts.ConeApt","type":"Class"},{"name":"ExactColumnApt","href":"Hi.Milling.Apts.ExactColumnApt.html","topicHref":"Hi.Milling.Apts.ExactColumnApt.html","topicUid":"Hi.Milling.Apts.ExactColumnApt","type":"Class"},{"name":"GeneralApt","href":"Hi.Milling.Apts.GeneralApt.html","topicHref":"Hi.Milling.Apts.GeneralApt.html","topicUid":"Hi.Milling.Apts.GeneralApt","type":"Class"},{"name":"IAptAlpha","href":"Hi.Milling.Apts.IAptAlpha.html","topicHref":"Hi.Milling.Apts.IAptAlpha.html","topicUid":"Hi.Milling.Apts.IAptAlpha","type":"Interface"},{"name":"IAptBased","href":"Hi.Milling.Apts.IAptBased.html","topicHref":"Hi.Milling.Apts.IAptBased.html","topicUid":"Hi.Milling.Apts.IAptBased","type":"Interface"},{"name":"IAptBeta","href":"Hi.Milling.Apts.IAptBeta.html","topicHref":"Hi.Milling.Apts.IAptBeta.html","topicUid":"Hi.Milling.Apts.IAptBeta","type":"Interface"},{"name":"IAptRc","href":"Hi.Milling.Apts.IAptRc.html","topicHref":"Hi.Milling.Apts.IAptRc.html","topicUid":"Hi.Milling.Apts.IAptRc","type":"Interface"},{"name":"IAptRr","href":"Hi.Milling.Apts.IAptRr.html","topicHref":"Hi.Milling.Apts.IAptRr.html","topicUid":"Hi.Milling.Apts.IAptRr","type":"Interface"},{"name":"IAptRz","href":"Hi.Milling.Apts.IAptRz.html","topicHref":"Hi.Milling.Apts.IAptRz.html","topicUid":"Hi.Milling.Apts.IAptRz","type":"Interface"},{"name":"IGetApt","href":"Hi.Milling.Apts.IGetApt.html","topicHref":"Hi.Milling.Apts.IGetApt.html","topicUid":"Hi.Milling.Apts.IGetApt","type":"Interface"},{"name":"IGetGeneralApt","href":"Hi.Milling.Apts.IGetGeneralApt.html","topicHref":"Hi.Milling.Apts.IGetGeneralApt.html","topicUid":"Hi.Milling.Apts.IGetGeneralApt","type":"Interface"},{"name":"TaperApt","href":"Hi.Milling.Apts.TaperApt.html","topicHref":"Hi.Milling.Apts.TaperApt.html","topicUid":"Hi.Milling.Apts.TaperApt","type":"Class"},{"name":"apt_t","href":"Hi.Milling.Apts.apt_t.html","topicHref":"Hi.Milling.Apts.apt_t.html","topicUid":"Hi.Milling.Apts.apt_t","type":"Struct"}]},{"name":"Hi.Milling.Cutters","href":"Hi.Milling.Cutters.html","topicHref":"Hi.Milling.Cutters.html","topicUid":"Hi.Milling.Cutters","type":"Namespace","items":[{"name":"AptProfile","href":"Hi.Milling.Cutters.AptProfile.html","topicHref":"Hi.Milling.Cutters.AptProfile.html","topicUid":"Hi.Milling.Cutters.AptProfile","type":"Class"},{"name":"ConstRatioProfile","href":"Hi.Milling.Cutters.ConstRatioProfile.html","topicHref":"Hi.Milling.Cutters.ConstRatioProfile.html","topicUid":"Hi.Milling.Cutters.ConstRatioProfile","type":"Class"},{"name":"CustomSpinningProfile","href":"Hi.Milling.Cutters.CustomSpinningProfile.html","topicHref":"Hi.Milling.Cutters.CustomSpinningProfile.html","topicUid":"Hi.Milling.Cutters.CustomSpinningProfile","type":"Class"},{"name":"CutterUtil","href":"Hi.Milling.Cutters.CutterUtil.html","topicHref":"Hi.Milling.Cutters.CutterUtil.html","topicUid":"Hi.Milling.Cutters.CutterUtil","type":"Class"},{"name":"FluteContourDisplayee","href":"Hi.Milling.Cutters.FluteContourDisplayee.html","topicHref":"Hi.Milling.Cutters.FluteContourDisplayee.html","topicUid":"Hi.Milling.Cutters.FluteContourDisplayee","type":"Class"},{"name":"FluteDependentRatioProfile","href":"Hi.Milling.Cutters.FluteDependentRatioProfile.html","topicHref":"Hi.Milling.Cutters.FluteDependentRatioProfile.html","topicUid":"Hi.Milling.Cutters.FluteDependentRatioProfile","type":"Class"},{"name":"IShaperProfile","href":"Hi.Milling.Cutters.IShaperProfile.html","topicHref":"Hi.Milling.Cutters.IShaperProfile.html","topicUid":"Hi.Milling.Cutters.IShaperProfile","type":"Interface"},{"name":"MillingCutter","href":"Hi.Milling.Cutters.MillingCutter.html","topicHref":"Hi.Milling.Cutters.MillingCutter.html","topicUid":"Hi.Milling.Cutters.MillingCutter","type":"Class"},{"name":"MillingCutter.IntegralModeEnum","href":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html","topicHref":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html","topicUid":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum","type":"Enum"},{"name":"MillingCutter.MassAssignmentMode","href":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html","topicHref":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html","topicUid":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode","type":"Enum"},{"name":"MillingCutterEditorDisplayee","href":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.html","topicHref":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.html","topicUid":"Hi.Milling.Cutters.MillingCutterEditorDisplayee","type":"Class"},{"name":"MillingCutterEditorDisplayee.ShapeModeEnum","href":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html","topicHref":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html","topicUid":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum","type":"Enum"}]},{"name":"Hi.Milling.Engagements","href":"Hi.Milling.Engagements.html","topicHref":"Hi.Milling.Engagements.html","topicUid":"Hi.Milling.Engagements","type":"Namespace","items":[{"name":"BitwiseMillingEngagement","href":"Hi.Milling.Engagements.BitwiseMillingEngagement.html","topicHref":"Hi.Milling.Engagements.BitwiseMillingEngagement.html","topicUid":"Hi.Milling.Engagements.BitwiseMillingEngagement","type":"Class"},{"name":"EngagementLayer","href":"Hi.Milling.Engagements.EngagementLayer.html","topicHref":"Hi.Milling.Engagements.EngagementLayer.html","topicUid":"Hi.Milling.Engagements.EngagementLayer","type":"Class"},{"name":"EngagementSlice","href":"Hi.Milling.Engagements.EngagementSlice.html","topicHref":"Hi.Milling.Engagements.EngagementSlice.html","topicUid":"Hi.Milling.Engagements.EngagementSlice","type":"Class"},{"name":"IBitwiseMillingEngagementSupport","href":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html","topicHref":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html","topicUid":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport","type":"Interface"},{"name":"IGetLayerMillingEngagement","href":"Hi.Milling.Engagements.IGetLayerMillingEngagement.html","topicHref":"Hi.Milling.Engagements.IGetLayerMillingEngagement.html","topicUid":"Hi.Milling.Engagements.IGetLayerMillingEngagement","type":"Interface"},{"name":"LayerMillingEngagement","href":"Hi.Milling.Engagements.LayerMillingEngagement.html","topicHref":"Hi.Milling.Engagements.LayerMillingEngagement.html","topicUid":"Hi.Milling.Engagements.LayerMillingEngagement","type":"Class"},{"name":"MillingEngagementUtil","href":"Hi.Milling.Engagements.MillingEngagementUtil.html","topicHref":"Hi.Milling.Engagements.MillingEngagementUtil.html","topicUid":"Hi.Milling.Engagements.MillingEngagementUtil","type":"Class"}]},{"name":"Hi.Milling.FluteContours","href":"Hi.Milling.FluteContours.html","topicHref":"Hi.Milling.FluteContours.html","topicUid":"Hi.Milling.FluteContours","type":"Namespace","items":[{"name":"ConstHelixSideContour","href":"Hi.Milling.FluteContours.ConstHelixSideContour.html","topicHref":"Hi.Milling.FluteContours.ConstHelixSideContour.html","topicUid":"Hi.Milling.FluteContours.ConstHelixSideContour","type":"Class"},{"name":"FluteContour","href":"Hi.Milling.FluteContours.FluteContour.html","topicHref":"Hi.Milling.FluteContours.FluteContour.html","topicUid":"Hi.Milling.FluteContours.FluteContour","type":"Class"},{"name":"FluteContourUtil","href":"Hi.Milling.FluteContours.FluteContourUtil.html","topicHref":"Hi.Milling.FluteContours.FluteContourUtil.html","topicUid":"Hi.Milling.FluteContours.FluteContourUtil","type":"Class"},{"name":"FreeContourTray","href":"Hi.Milling.FluteContours.FreeContourTray.html","topicHref":"Hi.Milling.FluteContours.FreeContourTray.html","topicUid":"Hi.Milling.FluteContours.FreeContourTray","type":"Class"},{"name":"FreeformSideContour","href":"Hi.Milling.FluteContours.FreeformSideContour.html","topicHref":"Hi.Milling.FluteContours.FreeformSideContour.html","topicUid":"Hi.Milling.FluteContours.FreeformSideContour","type":"Class"},{"name":"IBottomContour","href":"Hi.Milling.FluteContours.IBottomContour.html","topicHref":"Hi.Milling.FluteContours.IBottomContour.html","topicUid":"Hi.Milling.FluteContours.IBottomContour","type":"Interface"},{"name":"IContourTray","href":"Hi.Milling.FluteContours.IContourTray.html","topicHref":"Hi.Milling.FluteContours.IContourTray.html","topicUid":"Hi.Milling.FluteContours.IContourTray","type":"Interface"},{"name":"IFluteNumSourceProperty","href":"Hi.Milling.FluteContours.IFluteNumSourceProperty.html","topicHref":"Hi.Milling.FluteContours.IFluteNumSourceProperty.html","topicUid":"Hi.Milling.FluteContours.IFluteNumSourceProperty","type":"Interface"},{"name":"IGetFluteNum","href":"Hi.Milling.FluteContours.IGetFluteNum.html","topicHref":"Hi.Milling.FluteContours.IGetFluteNum.html","topicUid":"Hi.Milling.FluteContours.IGetFluteNum","type":"Interface"},{"name":"ISideContour","href":"Hi.Milling.FluteContours.ISideContour.html","topicHref":"Hi.Milling.FluteContours.ISideContour.html","topicUid":"Hi.Milling.FluteContours.ISideContour","type":"Interface"},{"name":"IWorkingContour","href":"Hi.Milling.FluteContours.IWorkingContour.html","topicHref":"Hi.Milling.FluteContours.IWorkingContour.html","topicUid":"Hi.Milling.FluteContours.IWorkingContour","type":"Interface"},{"name":"ShiftedWorkingContour","href":"Hi.Milling.FluteContours.ShiftedWorkingContour.html","topicHref":"Hi.Milling.FluteContours.ShiftedWorkingContour.html","topicUid":"Hi.Milling.FluteContours.ShiftedWorkingContour","type":"Class"},{"name":"SideContourDisplayee","href":"Hi.Milling.FluteContours.SideContourDisplayee.html","topicHref":"Hi.Milling.FluteContours.SideContourDisplayee.html","topicUid":"Hi.Milling.FluteContours.SideContourDisplayee","type":"Class"},{"name":"SlideBottomContour","href":"Hi.Milling.FluteContours.SlideBottomContour.html","topicHref":"Hi.Milling.FluteContours.SlideBottomContour.html","topicUid":"Hi.Milling.FluteContours.SlideBottomContour","type":"Class"},{"name":"SpanContourPos4d","href":"Hi.Milling.FluteContours.SpanContourPos4d.html","topicHref":"Hi.Milling.FluteContours.SpanContourPos4d.html","topicUid":"Hi.Milling.FluteContours.SpanContourPos4d","type":"Class"},{"name":"UniformContourTray","href":"Hi.Milling.FluteContours.UniformContourTray.html","topicHref":"Hi.Milling.FluteContours.UniformContourTray.html","topicUid":"Hi.Milling.FluteContours.UniformContourTray","type":"Class"}]},{"name":"Hi.Milling.MillingTools","href":"Hi.Milling.MillingTools.html","topicHref":"Hi.Milling.MillingTools.html","topicUid":"Hi.Milling.MillingTools","type":"Namespace","items":[{"name":"MillingTool","href":"Hi.Milling.MillingTools.MillingTool.html","topicHref":"Hi.Milling.MillingTools.MillingTool.html","topicUid":"Hi.Milling.MillingTools.MillingTool","type":"Class"},{"name":"MillingToolAnchorReference","href":"Hi.Milling.MillingTools.MillingToolAnchorReference.html","topicHref":"Hi.Milling.MillingTools.MillingToolAnchorReference.html","topicUid":"Hi.Milling.MillingTools.MillingToolAnchorReference","type":"Enum"},{"name":"MillingToolEditorDisplayee","href":"Hi.Milling.MillingTools.MillingToolEditorDisplayee.html","topicHref":"Hi.Milling.MillingTools.MillingToolEditorDisplayee.html","topicUid":"Hi.Milling.MillingTools.MillingToolEditorDisplayee","type":"Class"},{"name":"MillingToolUtil","href":"Hi.Milling.MillingTools.MillingToolUtil.html","topicHref":"Hi.Milling.MillingTools.MillingToolUtil.html","topicUid":"Hi.Milling.MillingTools.MillingToolUtil","type":"Class"}]},{"name":"Hi.MillingForces","href":"Hi.MillingForces.html","topicHref":"Hi.MillingForces.html","topicUid":"Hi.MillingForces","type":"Namespace","items":[{"name":"FluteZData","href":"Hi.MillingForces.FluteZData.html","topicHref":"Hi.MillingForces.FluteZData.html","topicUid":"Hi.MillingForces.FluteZData","type":"Class"},{"name":"IGetMillingForce","href":"Hi.MillingForces.IGetMillingForce.html","topicHref":"Hi.MillingForces.IGetMillingForce.html","topicUid":"Hi.MillingForces.IGetMillingForce","type":"Interface"},{"name":"IMillingForceAccessor","href":"Hi.MillingForces.IMillingForceAccessor.html","topicHref":"Hi.MillingForces.IMillingForceAccessor.html","topicUid":"Hi.MillingForces.IMillingForceAccessor","type":"Interface"},{"name":"MillingForce","href":"Hi.MillingForces.MillingForce.html","topicHref":"Hi.MillingForces.MillingForce.html","topicUid":"Hi.MillingForces.MillingForce","type":"Class"},{"name":"MillingForceLicense","href":"Hi.MillingForces.MillingForceLicense.html","topicHref":"Hi.MillingForces.MillingForceLicense.html","topicUid":"Hi.MillingForces.MillingForceLicense","type":"Class"},{"name":"MillingForceLuggage","href":"Hi.MillingForces.MillingForceLuggage.html","topicHref":"Hi.MillingForces.MillingForceLuggage.html","topicUid":"Hi.MillingForces.MillingForceLuggage","type":"Class"},{"name":"MillingForceUtil","href":"Hi.MillingForces.MillingForceUtil.html","topicHref":"Hi.MillingForces.MillingForceUtil.html","topicUid":"Hi.MillingForces.MillingForceUtil","type":"Class"},{"name":"MillingForceUtil.AnglePack","href":"Hi.MillingForces.MillingForceUtil.AnglePack.html","topicHref":"Hi.MillingForces.MillingForceUtil.AnglePack.html","topicUid":"Hi.MillingForces.MillingForceUtil.AnglePack","type":"Class"},{"name":"MillingPhysicsBrief","href":"Hi.MillingForces.MillingPhysicsBrief.html","topicHref":"Hi.MillingForces.MillingPhysicsBrief.html","topicUid":"Hi.MillingForces.MillingPhysicsBrief","type":"Class"},{"name":"PhysicsUtil","href":"Hi.MillingForces.PhysicsUtil.html","topicHref":"Hi.MillingForces.PhysicsUtil.html","topicUid":"Hi.MillingForces.PhysicsUtil","type":"Class"},{"name":"ToolObservationReference","href":"Hi.MillingForces.ToolObservationReference.html","topicHref":"Hi.MillingForces.ToolObservationReference.html","topicUid":"Hi.MillingForces.ToolObservationReference","type":"Enum"}]},{"name":"Hi.MillingForces.Fittings","href":"Hi.MillingForces.Fittings.html","topicHref":"Hi.MillingForces.Fittings.html","topicUid":"Hi.MillingForces.Fittings","type":"Namespace","items":[{"name":"CuttingParaUtil","href":"Hi.MillingForces.Fittings.CuttingParaUtil.html","topicHref":"Hi.MillingForces.Fittings.CuttingParaUtil.html","topicUid":"Hi.MillingForces.Fittings.CuttingParaUtil","type":"Class"},{"name":"ICuttingPara","href":"Hi.MillingForces.Fittings.ICuttingPara.html","topicHref":"Hi.MillingForces.Fittings.ICuttingPara.html","topicUid":"Hi.MillingForces.Fittings.ICuttingPara","type":"Interface"},{"name":"IGetCuttingPara","href":"Hi.MillingForces.Fittings.IGetCuttingPara.html","topicHref":"Hi.MillingForces.Fittings.IGetCuttingPara.html","topicUid":"Hi.MillingForces.Fittings.IGetCuttingPara","type":"Interface"},{"name":"SampleCategory","href":"Hi.MillingForces.Fittings.SampleCategory.html","topicHref":"Hi.MillingForces.Fittings.SampleCategory.html","topicUid":"Hi.MillingForces.Fittings.SampleCategory","type":"Class"},{"name":"SampleFlag","href":"Hi.MillingForces.Fittings.SampleFlag.html","topicHref":"Hi.MillingForces.Fittings.SampleFlag.html","topicUid":"Hi.MillingForces.Fittings.SampleFlag","type":"Enum"},{"name":"SampleFlagUtil","href":"Hi.MillingForces.Fittings.SampleFlagUtil.html","topicHref":"Hi.MillingForces.Fittings.SampleFlagUtil.html","topicUid":"Hi.MillingForces.Fittings.SampleFlagUtil","type":"Class"},{"name":"SampleInstance","href":"Hi.MillingForces.Fittings.SampleInstance.html","topicHref":"Hi.MillingForces.Fittings.SampleInstance.html","topicUid":"Hi.MillingForces.Fittings.SampleInstance","type":"Class"},{"name":"TimeForce","href":"Hi.MillingForces.Fittings.TimeForce.html","topicHref":"Hi.MillingForces.Fittings.TimeForce.html","topicUid":"Hi.MillingForces.Fittings.TimeForce","type":"Class"},{"name":"TimeForceFrequencyDomain","href":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html","topicHref":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html","topicUid":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain","type":"Class"},{"name":"TimeForceSeries","href":"Hi.MillingForces.Fittings.TimeForceSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeForceSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeForceSeries","type":"Class"},{"name":"TimeForceUtil","href":"Hi.MillingForces.Fittings.TimeForceUtil.html","topicHref":"Hi.MillingForces.Fittings.TimeForceUtil.html","topicUid":"Hi.MillingForces.Fittings.TimeForceUtil","type":"Class"},{"name":"TimeVsForceSeries","href":"Hi.MillingForces.Fittings.TimeVsForceSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeVsForceSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeVsForceSeries","type":"Class"},{"name":"TimeVsTorqueSeries","href":"Hi.MillingForces.Fittings.TimeVsTorqueSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeVsTorqueSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeVsTorqueSeries","type":"Class"},{"name":"TrainingSample","href":"Hi.MillingForces.Fittings.TrainingSample.html","topicHref":"Hi.MillingForces.Fittings.TrainingSample.html","topicUid":"Hi.MillingForces.Fittings.TrainingSample","type":"Class"}]},{"name":"Hi.MillingForces.ProfileMillingParas","href":"Hi.MillingForces.ProfileMillingParas.html","topicHref":"Hi.MillingForces.ProfileMillingParas.html","topicUid":"Hi.MillingForces.ProfileMillingParas","type":"Namespace","items":[{"name":"IGetLocalProfileMillingPara","href":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html","topicHref":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html","topicUid":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara","type":"Interface"},{"name":"LocalProfileMillingPara","href":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html","topicHref":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html","topicUid":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara","type":"Class"},{"name":"ProfileMillingParaMap","href":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html","topicHref":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html","topicUid":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap","type":"Class"},{"name":"RtaMillingParaKey","href":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html","topicHref":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html","topicUid":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey","type":"Enum"}]},{"name":"Hi.MillingForces.RakeFaceCuttingParas","href":"Hi.MillingForces.RakeFaceCuttingParas.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas","type":"Namespace","items":[{"name":"IRakeFaceCuttingPara","href":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara","type":"Interface"},{"name":"MillingPhysicsUtil","href":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil","type":"Class"},{"name":"MultiFormRakeFaceCuttingPara","href":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara","type":"Class"},{"name":"RakeFaceCuttingPara2d","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d","type":"Class"},{"name":"RakeFaceCuttingPara3d","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d","type":"Class"},{"name":"RakeFaceCuttingParaMap","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap","type":"Class"}]},{"name":"Hi.MillingForces.Training","href":"Hi.MillingForces.Training.html","topicHref":"Hi.MillingForces.Training.html","topicUid":"Hi.MillingForces.Training","type":"Namespace","items":[{"name":"MillingTraining","href":"Hi.MillingForces.Training.MillingTraining.html","topicHref":"Hi.MillingForces.Training.MillingTraining.html","topicUid":"Hi.MillingForces.Training.MillingTraining","type":"Class"}]},{"name":"Hi.MillingProcs","href":"Hi.MillingProcs.html","topicHref":"Hi.MillingProcs.html","topicUid":"Hi.MillingProcs","type":"Namespace","items":[{"name":"MillingGuide","href":"Hi.MillingProcs.MillingGuide.html","topicHref":"Hi.MillingProcs.MillingGuide.html","topicUid":"Hi.MillingProcs.MillingGuide","type":"Class"}]},{"name":"Hi.MillingStepUtils","href":"Hi.MillingStepUtils.html","topicHref":"Hi.MillingStepUtils.html","topicUid":"Hi.MillingStepUtils","type":"Namespace","items":[{"name":"ClStripChartConfig","href":"Hi.MillingStepUtils.ClStripChartConfig.html","topicHref":"Hi.MillingStepUtils.ClStripChartConfig.html","topicUid":"Hi.MillingStepUtils.ClStripChartConfig","type":"Class"},{"name":"ClStripChartItemConfig","href":"Hi.MillingStepUtils.ClStripChartItemConfig.html","topicHref":"Hi.MillingStepUtils.ClStripChartItemConfig.html","topicUid":"Hi.MillingStepUtils.ClStripChartItemConfig","type":"Class"},{"name":"ForceCycleFlag","href":"Hi.MillingStepUtils.ForceCycleFlag.html","topicHref":"Hi.MillingStepUtils.ForceCycleFlag.html","topicUid":"Hi.MillingStepUtils.ForceCycleFlag","type":"Enum"},{"name":"ForceCycleLineDivConfig","href":"Hi.MillingStepUtils.ForceCycleLineDivConfig.html","topicHref":"Hi.MillingStepUtils.ForceCycleLineDivConfig.html","topicUid":"Hi.MillingStepUtils.ForceCycleLineDivConfig","type":"Class"},{"name":"LineChartVRangeMode","href":"Hi.MillingStepUtils.LineChartVRangeMode.html","topicHref":"Hi.MillingStepUtils.LineChartVRangeMode.html","topicUid":"Hi.MillingStepUtils.LineChartVRangeMode","type":"Enum"},{"name":"SpindleMomentCycleLineDivConfig","href":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html","topicHref":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html","topicUid":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig","type":"Class"},{"name":"TimeChartYConfig","href":"Hi.MillingStepUtils.TimeChartYConfig.html","topicHref":"Hi.MillingStepUtils.TimeChartYConfig.html","topicUid":"Hi.MillingStepUtils.TimeChartYConfig","type":"Class"}]},{"name":"Hi.MillingSteps","href":"Hi.MillingSteps.html","topicHref":"Hi.MillingSteps.html","topicUid":"Hi.MillingSteps","type":"Namespace","items":[{"name":"MillingInstance","href":"Hi.MillingSteps.MillingInstance.html","topicHref":"Hi.MillingSteps.MillingInstance.html","topicUid":"Hi.MillingSteps.MillingInstance","type":"Class"},{"name":"MillingStepLuggage","href":"Hi.MillingSteps.MillingStepLuggage.html","topicHref":"Hi.MillingSteps.MillingStepLuggage.html","topicUid":"Hi.MillingSteps.MillingStepLuggage","type":"Class"}]},{"name":"Hi.Motion","href":"Hi.Motion.html","topicHref":"Hi.Motion.html","topicUid":"Hi.Motion","type":"Namespace","items":[{"name":"MotionUtil","href":"Hi.Motion.MotionUtil.html","topicHref":"Hi.Motion.MotionUtil.html","topicUid":"Hi.Motion.MotionUtil","type":"Class"}]},{"name":"Hi.Motion.MatValves","href":"Hi.Motion.MatValves.html","topicHref":"Hi.Motion.MatValves.html","topicUid":"Hi.Motion.MatValves","type":"Namespace","items":[{"name":"ClMachiningValve","href":"Hi.Motion.MatValves.ClMachiningValve.html","topicHref":"Hi.Motion.MatValves.ClMachiningValve.html","topicUid":"Hi.Motion.MatValves.ClMachiningValve","type":"Class"},{"name":"IMotionValve","href":"Hi.Motion.MatValves.IMotionValve.html","topicHref":"Hi.Motion.MatValves.IMotionValve.html","topicUid":"Hi.Motion.MatValves.IMotionValve","type":"Interface"},{"name":"MacroMotionValve","href":"Hi.Motion.MatValves.MacroMotionValve.html","topicHref":"Hi.Motion.MatValves.MacroMotionValve.html","topicUid":"Hi.Motion.MatValves.MacroMotionValve","type":"Class"},{"name":"StepMotionValve","href":"Hi.Motion.MatValves.StepMotionValve.html","topicHref":"Hi.Motion.MatValves.StepMotionValve.html","topicUid":"Hi.Motion.MatValves.StepMotionValve","type":"Class"}]},{"name":"Hi.Native","href":"Hi.Native.html","topicHref":"Hi.Native.html","topicUid":"Hi.Native","type":"Namespace","items":[{"name":"StopSource","href":"Hi.Native.StopSource.html","topicHref":"Hi.Native.StopSource.html","topicUid":"Hi.Native.StopSource","type":"Class"},{"name":"StopToken","href":"Hi.Native.StopToken.html","topicHref":"Hi.Native.StopToken.html","topicUid":"Hi.Native.StopToken","type":"Class"},{"name":"StopTokenKit","href":"Hi.Native.StopTokenKit.html","topicHref":"Hi.Native.StopTokenKit.html","topicUid":"Hi.Native.StopTokenKit","type":"Class"},{"name":"StopTokenUtil","href":"Hi.Native.StopTokenUtil.html","topicHref":"Hi.Native.StopTokenUtil.html","topicUid":"Hi.Native.StopTokenUtil","type":"Class"},{"name":"bind_t","href":"Hi.Native.bind_t.html","topicHref":"Hi.Native.bind_t.html","topicUid":"Hi.Native.bind_t","type":"Struct"},{"name":"box2d","href":"Hi.Native.box2d.html","topicHref":"Hi.Native.box2d.html","topicUid":"Hi.Native.box2d","type":"Struct"},{"name":"box3d","href":"Hi.Native.box3d.html","topicHref":"Hi.Native.box3d.html","topicUid":"Hi.Native.box3d","type":"Struct"},{"name":"expand_to_box3d_func_t","href":"Hi.Native.expand_to_box3d_func_t.html","topicHref":"Hi.Native.expand_to_box3d_func_t.html","topicUid":"Hi.Native.expand_to_box3d_func_t","type":"Delegate"},{"name":"key_event_t","href":"Hi.Native.key_event_t.html","topicHref":"Hi.Native.key_event_t.html","topicUid":"Hi.Native.key_event_t","type":"Struct"},{"name":"key_table__transform_view_by_key_pressing_t","href":"Hi.Native.key_table__transform_view_by_key_pressing_t.html","topicHref":"Hi.Native.key_table__transform_view_by_key_pressing_t.html","topicUid":"Hi.Native.key_table__transform_view_by_key_pressing_t","type":"Struct"},{"name":"mat4d","href":"Hi.Native.mat4d.html","topicHref":"Hi.Native.mat4d.html","topicUid":"Hi.Native.mat4d","type":"Struct"},{"name":"mat_stack_t","href":"Hi.Native.mat_stack_t.html","topicHref":"Hi.Native.mat_stack_t.html","topicUid":"Hi.Native.mat_stack_t","type":"Struct"},{"name":"mouse_button_event_t","href":"Hi.Native.mouse_button_event_t.html","topicHref":"Hi.Native.mouse_button_event_t.html","topicUid":"Hi.Native.mouse_button_event_t","type":"Struct"},{"name":"mouse_button_table__transform_view_by_mouse_drag_t","href":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html","topicHref":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html","topicUid":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t","type":"Struct"},{"name":"mouse_move_event_t","href":"Hi.Native.mouse_move_event_t.html","topicHref":"Hi.Native.mouse_move_event_t.html","topicUid":"Hi.Native.mouse_move_event_t","type":"Struct"},{"name":"mouse_wheel_event_t","href":"Hi.Native.mouse_wheel_event_t.html","topicHref":"Hi.Native.mouse_wheel_event_t.html","topicUid":"Hi.Native.mouse_wheel_event_t","type":"Struct"},{"name":"panel_state_t","href":"Hi.Native.panel_state_t.html","topicHref":"Hi.Native.panel_state_t.html","topicUid":"Hi.Native.panel_state_t","type":"Struct"},{"name":"picking_event_t","href":"Hi.Native.picking_event_t.html","topicHref":"Hi.Native.picking_event_t.html","topicUid":"Hi.Native.picking_event_t","type":"Struct"},{"name":"picking_mark_t","href":"Hi.Native.picking_mark_t.html","topicHref":"Hi.Native.picking_mark_t.html","topicUid":"Hi.Native.picking_mark_t","type":"Struct"},{"name":"tri3d","href":"Hi.Native.tri3d.html","topicHref":"Hi.Native.tri3d.html","topicUid":"Hi.Native.tri3d","type":"Struct"},{"name":"ui_event_type","href":"Hi.Native.ui_event_type.html","topicHref":"Hi.Native.ui_event_type.html","topicUid":"Hi.Native.ui_event_type","type":"Enum"},{"name":"vec2d","href":"Hi.Native.vec2d.html","topicHref":"Hi.Native.vec2d.html","topicUid":"Hi.Native.vec2d","type":"Struct"},{"name":"vec3d","href":"Hi.Native.vec3d.html","topicHref":"Hi.Native.vec3d.html","topicUid":"Hi.Native.vec3d","type":"Struct"},{"name":"vec3f","href":"Hi.Native.vec3f.html","topicHref":"Hi.Native.vec3f.html","topicUid":"Hi.Native.vec3f","type":"Struct"}]},{"name":"Hi.NcMech","href":"Hi.NcMech.html","topicHref":"Hi.NcMech.html","topicUid":"Hi.NcMech","type":"Namespace","items":[{"name":"ICollisionIndexPairsSource","href":"Hi.NcMech.ICollisionIndexPairsSource.html","topicHref":"Hi.NcMech.ICollisionIndexPairsSource.html","topicUid":"Hi.NcMech.ICollisionIndexPairsSource","type":"Interface"}]},{"name":"Hi.NcMech.Fixtures","href":"Hi.NcMech.Fixtures.html","topicHref":"Hi.NcMech.Fixtures.html","topicUid":"Hi.NcMech.Fixtures","type":"Namespace","items":[{"name":"Fixture","href":"Hi.NcMech.Fixtures.Fixture.html","topicHref":"Hi.NcMech.Fixtures.Fixture.html","topicUid":"Hi.NcMech.Fixtures.Fixture","type":"Class"},{"name":"FixtureEditorDisplayee","href":"Hi.NcMech.Fixtures.FixtureEditorDisplayee.html","topicHref":"Hi.NcMech.Fixtures.FixtureEditorDisplayee.html","topicUid":"Hi.NcMech.Fixtures.FixtureEditorDisplayee","type":"Class"},{"name":"FixtureEditorDisplayeeConfig","href":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html","topicHref":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html","topicUid":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig","type":"Class"}]},{"name":"Hi.NcMech.Holders","href":"Hi.NcMech.Holders.html","topicHref":"Hi.NcMech.Holders.html","topicUid":"Hi.NcMech.Holders","type":"Namespace","items":[{"name":"CylindroidHolder","href":"Hi.NcMech.Holders.CylindroidHolder.html","topicHref":"Hi.NcMech.Holders.CylindroidHolder.html","topicUid":"Hi.NcMech.Holders.CylindroidHolder","type":"Class"},{"name":"FreeformHolder","href":"Hi.NcMech.Holders.FreeformHolder.html","topicHref":"Hi.NcMech.Holders.FreeformHolder.html","topicUid":"Hi.NcMech.Holders.FreeformHolder","type":"Class"},{"name":"HolderEditorDisplayee","href":"Hi.NcMech.Holders.HolderEditorDisplayee.html","topicHref":"Hi.NcMech.Holders.HolderEditorDisplayee.html","topicUid":"Hi.NcMech.Holders.HolderEditorDisplayee","type":"Class"},{"name":"IHolder","href":"Hi.NcMech.Holders.IHolder.html","topicHref":"Hi.NcMech.Holders.IHolder.html","topicUid":"Hi.NcMech.Holders.IHolder","type":"Interface"}]},{"name":"Hi.NcMech.Solids","href":"Hi.NcMech.Solids.html","topicHref":"Hi.NcMech.Solids.html","topicUid":"Hi.NcMech.Solids","type":"Namespace","items":[{"name":"IGetSolid","href":"Hi.NcMech.Solids.IGetSolid.html","topicHref":"Hi.NcMech.Solids.IGetSolid.html","topicUid":"Hi.NcMech.Solids.IGetSolid","type":"Interface"},{"name":"Solid","href":"Hi.NcMech.Solids.Solid.html","topicHref":"Hi.NcMech.Solids.Solid.html","topicUid":"Hi.NcMech.Solids.Solid","type":"Class"},{"name":"Solid.RenderingModeEnum","href":"Hi.NcMech.Solids.Solid.RenderingModeEnum.html","topicHref":"Hi.NcMech.Solids.Solid.RenderingModeEnum.html","topicUid":"Hi.NcMech.Solids.Solid.RenderingModeEnum","type":"Enum"},{"name":"SolidFuncSource","href":"Hi.NcMech.Solids.SolidFuncSource.html","topicHref":"Hi.NcMech.Solids.SolidFuncSource.html","topicUid":"Hi.NcMech.Solids.SolidFuncSource","type":"Class"}]},{"name":"Hi.NcMech.Topo","href":"Hi.NcMech.Topo.html","topicHref":"Hi.NcMech.Topo.html","topicUid":"Hi.NcMech.Topo","type":"Namespace","items":[{"name":"INcStroke","href":"Hi.NcMech.Topo.INcStroke.html","topicHref":"Hi.NcMech.Topo.INcStroke.html","topicUid":"Hi.NcMech.Topo.INcStroke","type":"Interface"},{"name":"INcTransformer","href":"Hi.NcMech.Topo.INcTransformer.html","topicHref":"Hi.NcMech.Topo.INcTransformer.html","topicUid":"Hi.NcMech.Topo.INcTransformer","type":"Interface"},{"name":"ITopoBrick","href":"Hi.NcMech.Topo.ITopoBrick.html","topicHref":"Hi.NcMech.Topo.ITopoBrick.html","topicUid":"Hi.NcMech.Topo.ITopoBrick","type":"Interface"},{"name":"NcRotation","href":"Hi.NcMech.Topo.NcRotation.html","topicHref":"Hi.NcMech.Topo.NcRotation.html","topicUid":"Hi.NcMech.Topo.NcRotation","type":"Class"},{"name":"NcTranslation","href":"Hi.NcMech.Topo.NcTranslation.html","topicHref":"Hi.NcMech.Topo.NcTranslation.html","topicUid":"Hi.NcMech.Topo.NcTranslation","type":"Class"},{"name":"SolidSourceTopoBrick","href":"Hi.NcMech.Topo.SolidSourceTopoBrick.html","topicHref":"Hi.NcMech.Topo.SolidSourceTopoBrick.html","topicUid":"Hi.NcMech.Topo.SolidSourceTopoBrick","type":"Class"},{"name":"StlSourceTopoBrick","href":"Hi.NcMech.Topo.StlSourceTopoBrick.html","topicHref":"Hi.NcMech.Topo.StlSourceTopoBrick.html","topicUid":"Hi.NcMech.Topo.StlSourceTopoBrick","type":"Class"}]},{"name":"Hi.NcMech.Workpieces","href":"Hi.NcMech.Workpieces.html","topicHref":"Hi.NcMech.Workpieces.html","topicUid":"Hi.NcMech.Workpieces","type":"Namespace","items":[{"name":"Workpiece","href":"Hi.NcMech.Workpieces.Workpiece.html","topicHref":"Hi.NcMech.Workpieces.Workpiece.html","topicUid":"Hi.NcMech.Workpieces.Workpiece","type":"Class"},{"name":"WorkpieceEditorDisplayee","href":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee","type":"Class"},{"name":"WorkpieceEditorDisplayeeConfig","href":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig","type":"Class"},{"name":"WorkpieceService","href":"Hi.NcMech.Workpieces.WorkpieceService.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceService.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceService","type":"Class"}]},{"name":"Hi.NcMech.Xyzabc","href":"Hi.NcMech.Xyzabc.html","topicHref":"Hi.NcMech.Xyzabc.html","topicUid":"Hi.NcMech.Xyzabc","type":"Namespace","items":[{"name":"CodeXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool","type":"Class"},{"name":"CodeXyzabcMachineToolUri","href":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html","topicHref":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html","topicUid":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri","type":"Class"},{"name":"GeneralXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool","type":"Class"},{"name":"IGetCodeXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool","type":"Interface"},{"name":"IXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.IXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.IXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.IXyzabcMachineTool","type":"Interface"}]},{"name":"Hi.NcOpt","href":"Hi.NcOpt.html","topicHref":"Hi.NcOpt.html","topicUid":"Hi.NcOpt","type":"Namespace","items":[{"name":"CuttingVelocityOptLimit","href":"Hi.NcOpt.CuttingVelocityOptLimit.html","topicHref":"Hi.NcOpt.CuttingVelocityOptLimit.html","topicUid":"Hi.NcOpt.CuttingVelocityOptLimit","type":"Class"},{"name":"FixedFeedPerCycleOptLimit","href":"Hi.NcOpt.FixedFeedPerCycleOptLimit.html","topicHref":"Hi.NcOpt.FixedFeedPerCycleOptLimit.html","topicUid":"Hi.NcOpt.FixedFeedPerCycleOptLimit","type":"Class"},{"name":"FixedFeedPerToothOptLimit","href":"Hi.NcOpt.FixedFeedPerToothOptLimit.html","topicHref":"Hi.NcOpt.FixedFeedPerToothOptLimit.html","topicUid":"Hi.NcOpt.FixedFeedPerToothOptLimit","type":"Class"},{"name":"ICutterOptLimitHost","href":"Hi.NcOpt.ICutterOptLimitHost.html","topicHref":"Hi.NcOpt.ICutterOptLimitHost.html","topicUid":"Hi.NcOpt.ICutterOptLimitHost","type":"Interface"},{"name":"ICutterOptOption","href":"Hi.NcOpt.ICutterOptOption.html","topicHref":"Hi.NcOpt.ICutterOptOption.html","topicUid":"Hi.NcOpt.ICutterOptOption","type":"Interface"},{"name":"ICuttingVelocityOptLimit","href":"Hi.NcOpt.ICuttingVelocityOptLimit.html","topicHref":"Hi.NcOpt.ICuttingVelocityOptLimit.html","topicUid":"Hi.NcOpt.ICuttingVelocityOptLimit","type":"Interface"},{"name":"IFeedPerToothOptLimit","href":"Hi.NcOpt.IFeedPerToothOptLimit.html","topicHref":"Hi.NcOpt.IFeedPerToothOptLimit.html","topicUid":"Hi.NcOpt.IFeedPerToothOptLimit","type":"Interface"},{"name":"MillingCutterOptOption","href":"Hi.NcOpt.MillingCutterOptOption.html","topicHref":"Hi.NcOpt.MillingCutterOptOption.html","topicUid":"Hi.NcOpt.MillingCutterOptOption","type":"Class"},{"name":"NcOptOption","href":"Hi.NcOpt.NcOptOption.html","topicHref":"Hi.NcOpt.NcOptOption.html","topicUid":"Hi.NcOpt.NcOptOption","type":"Class"},{"name":"NcOptProc","href":"Hi.NcOpt.NcOptProc.html","topicHref":"Hi.NcOpt.NcOptProc.html","topicUid":"Hi.NcOpt.NcOptProc","type":"Class"},{"name":"NcOptimizationEmbeddedLogMode","href":"Hi.NcOpt.NcOptimizationEmbeddedLogMode.html","topicHref":"Hi.NcOpt.NcOptimizationEmbeddedLogMode.html","topicUid":"Hi.NcOpt.NcOptimizationEmbeddedLogMode","type":"Enum"},{"name":"ShapeBasedCutterOptLimit","href":"Hi.NcOpt.ShapeBasedCutterOptLimit.html","topicHref":"Hi.NcOpt.ShapeBasedCutterOptLimit.html","topicUid":"Hi.NcOpt.ShapeBasedCutterOptLimit","type":"Class"}]},{"name":"Hi.NcParsers","href":"Hi.NcParsers.html","topicHref":"Hi.NcParsers.html","topicUid":"Hi.NcParsers","type":"Namespace","items":[{"name":"IGetSentence","href":"Hi.NcParsers.IGetSentence.html","topicHref":"Hi.NcParsers.IGetSentence.html","topicUid":"Hi.NcParsers.IGetSentence","type":"Interface"},{"name":"ISentenceCarrier","href":"Hi.NcParsers.ISentenceCarrier.html","topicHref":"Hi.NcParsers.ISentenceCarrier.html","topicUid":"Hi.NcParsers.ISentenceCarrier","type":"Interface"},{"name":"ISentenceIndexed","href":"Hi.NcParsers.ISentenceIndexed.html","topicHref":"Hi.NcParsers.ISentenceIndexed.html","topicUid":"Hi.NcParsers.ISentenceIndexed","type":"Interface"},{"name":"IndexedSentence","href":"Hi.NcParsers.IndexedSentence.html","topicHref":"Hi.NcParsers.IndexedSentence.html","topicUid":"Hi.NcParsers.IndexedSentence","type":"Class"},{"name":"NcDiagnostic","href":"Hi.NcParsers.NcDiagnostic.html","topicHref":"Hi.NcParsers.NcDiagnostic.html","topicUid":"Hi.NcParsers.NcDiagnostic","type":"Class"},{"name":"NcDiagnosticCategory","href":"Hi.NcParsers.NcDiagnosticCategory.html","topicHref":"Hi.NcParsers.NcDiagnosticCategory.html","topicUid":"Hi.NcParsers.NcDiagnosticCategory","type":"Enum"},{"name":"NcDiagnosticProgress","href":"Hi.NcParsers.NcDiagnosticProgress.html","topicHref":"Hi.NcParsers.NcDiagnosticProgress.html","topicUid":"Hi.NcParsers.NcDiagnosticProgress","type":"Class"},{"name":"NcDiagnosticSeverity","href":"Hi.NcParsers.NcDiagnosticSeverity.html","topicHref":"Hi.NcParsers.NcDiagnosticSeverity.html","topicUid":"Hi.NcParsers.NcDiagnosticSeverity","type":"Enum"},{"name":"Sentence","href":"Hi.NcParsers.Sentence.html","topicHref":"Hi.NcParsers.Sentence.html","topicUid":"Hi.NcParsers.Sentence","type":"Class"},{"name":"SoftNcRunner","href":"Hi.NcParsers.SoftNcRunner.html","topicHref":"Hi.NcParsers.SoftNcRunner.html","topicUid":"Hi.NcParsers.SoftNcRunner","type":"Class"},{"name":"SoftNcUtil","href":"Hi.NcParsers.SoftNcUtil.html","topicHref":"Hi.NcParsers.SoftNcUtil.html","topicUid":"Hi.NcParsers.SoftNcUtil","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys","href":"Hi.NcParsers.Dependencys.html","topicHref":"Hi.NcParsers.Dependencys.html","topicUid":"Hi.NcParsers.Dependencys","type":"Namespace","items":[{"name":"AxisType","href":"Hi.NcParsers.Dependencys.AxisType.html","topicHref":"Hi.NcParsers.Dependencys.AxisType.html","topicUid":"Hi.NcParsers.Dependencys.AxisType","type":"Enum"},{"name":"CncBrandDependency","href":"Hi.NcParsers.Dependencys.CncBrandDependency.html","topicHref":"Hi.NcParsers.Dependencys.CncBrandDependency.html","topicUid":"Hi.NcParsers.Dependencys.CncBrandDependency","type":"Class"},{"name":"ControllerParameterTableBase","href":"Hi.NcParsers.Dependencys.ControllerParameterTableBase.html","topicHref":"Hi.NcParsers.Dependencys.ControllerParameterTableBase.html","topicUid":"Hi.NcParsers.Dependencys.ControllerParameterTableBase","type":"Class"},{"name":"HeidenhainDatumTable","href":"Hi.NcParsers.Dependencys.HeidenhainDatumTable.html","topicHref":"Hi.NcParsers.Dependencys.HeidenhainDatumTable.html","topicUid":"Hi.NcParsers.Dependencys.HeidenhainDatumTable","type":"Class"},{"name":"IBlockSkipConfig","href":"Hi.NcParsers.Dependencys.IBlockSkipConfig.html","topicHref":"Hi.NcParsers.Dependencys.IBlockSkipConfig.html","topicUid":"Hi.NcParsers.Dependencys.IBlockSkipConfig","type":"Interface"},{"name":"ICannedCycleConfig","href":"Hi.NcParsers.Dependencys.ICannedCycleConfig.html","topicHref":"Hi.NcParsers.Dependencys.ICannedCycleConfig.html","topicUid":"Hi.NcParsers.Dependencys.ICannedCycleConfig","type":"Interface"},{"name":"IHomeMcConfig","href":"Hi.NcParsers.Dependencys.IHomeMcConfig.html","topicHref":"Hi.NcParsers.Dependencys.IHomeMcConfig.html","topicUid":"Hi.NcParsers.Dependencys.IHomeMcConfig","type":"Interface"},{"name":"IIsoCoordinateConfig","href":"Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html","topicHref":"Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html","topicUid":"Hi.NcParsers.Dependencys.IIsoCoordinateConfig","type":"Interface"},{"name":"IMachineAxisConfig","href":"Hi.NcParsers.Dependencys.IMachineAxisConfig.html","topicHref":"Hi.NcParsers.Dependencys.IMachineAxisConfig.html","topicUid":"Hi.NcParsers.Dependencys.IMachineAxisConfig","type":"Interface"},{"name":"INcDependency","href":"Hi.NcParsers.Dependencys.INcDependency.html","topicHref":"Hi.NcParsers.Dependencys.INcDependency.html","topicUid":"Hi.NcParsers.Dependencys.INcDependency","type":"Interface"},{"name":"IPowerResettable","href":"Hi.NcParsers.Dependencys.IPowerResettable.html","topicHref":"Hi.NcParsers.Dependencys.IPowerResettable.html","topicUid":"Hi.NcParsers.Dependencys.IPowerResettable","type":"Interface"},{"name":"IRapidFeedrateConfig","href":"Hi.NcParsers.Dependencys.IRapidFeedrateConfig.html","topicHref":"Hi.NcParsers.Dependencys.IRapidFeedrateConfig.html","topicUid":"Hi.NcParsers.Dependencys.IRapidFeedrateConfig","type":"Interface"},{"name":"IStrokeLimitConfig","href":"Hi.NcParsers.Dependencys.IStrokeLimitConfig.html","topicHref":"Hi.NcParsers.Dependencys.IStrokeLimitConfig.html","topicUid":"Hi.NcParsers.Dependencys.IStrokeLimitConfig","type":"Interface"},{"name":"IToolOffsetConfig","href":"Hi.NcParsers.Dependencys.IToolOffsetConfig.html","topicHref":"Hi.NcParsers.Dependencys.IToolOffsetConfig.html","topicUid":"Hi.NcParsers.Dependencys.IToolOffsetConfig","type":"Interface"},{"name":"IToolingMcConfig","href":"Hi.NcParsers.Dependencys.IToolingMcConfig.html","topicHref":"Hi.NcParsers.Dependencys.IToolingMcConfig.html","topicUid":"Hi.NcParsers.Dependencys.IToolingMcConfig","type":"Interface"},{"name":"IsoCoordinateAddressMap","href":"Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.html","topicHref":"Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.html","topicUid":"Hi.NcParsers.Dependencys.IsoCoordinateAddressMap","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Fanuc","href":"Hi.NcParsers.Dependencys.Fanuc.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc","type":"Namespace","items":[{"name":"CutterCompensationType","href":"Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType","type":"Enum"},{"name":"FanucGotoIterationDependency","href":"Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency","type":"Class"},{"name":"FanucParameterTable","href":"Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable","type":"Class"},{"name":"FanucPositionVariableLookup","href":"Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup","type":"Class"},{"name":"FanucToolOffsetVariableLookup","href":"Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup","type":"Class"},{"name":"RetainedCommonVariableTable","href":"Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Generic","href":"Hi.NcParsers.Dependencys.Generic.html","topicHref":"Hi.NcParsers.Dependencys.Generic.html","topicUid":"Hi.NcParsers.Dependencys.Generic","type":"Namespace","items":[{"name":"FallbackConfig","href":"Hi.NcParsers.Dependencys.Generic.FallbackConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.FallbackConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.FallbackConfig","type":"Class"},{"name":"GenericBlockSkipConfig","href":"Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig","type":"Class"},{"name":"IsoCoordinateTable","href":"Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html","topicHref":"Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html","topicUid":"Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable","type":"Class"},{"name":"SubProgramFolderConfig","href":"Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig","type":"Class"},{"name":"ToolOffsetRow","href":"Hi.NcParsers.Dependencys.Generic.ToolOffsetRow.html","topicHref":"Hi.NcParsers.Dependencys.Generic.ToolOffsetRow.html","topicUid":"Hi.NcParsers.Dependencys.Generic.ToolOffsetRow","type":"Class"},{"name":"ToolOffsetTable","href":"Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.html","topicHref":"Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.html","topicUid":"Hi.NcParsers.Dependencys.Generic.ToolOffsetTable","type":"Class"},{"name":"ToolingMcConfig","href":"Hi.NcParsers.Dependencys.Generic.ToolingMcConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.ToolingMcConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.ToolingMcConfig","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Heidenhain","href":"Hi.NcParsers.Dependencys.Heidenhain.html","topicHref":"Hi.NcParsers.Dependencys.Heidenhain.html","topicUid":"Hi.NcParsers.Dependencys.Heidenhain","type":"Namespace","items":[{"name":"HeidenhainParameterTable","href":"Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable.html","topicHref":"Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable.html","topicUid":"Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Siemens","href":"Hi.NcParsers.Dependencys.Siemens.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.html","topicUid":"Hi.NcParsers.Dependencys.Siemens","type":"Namespace","items":[{"name":"ISiemensToolOffsetConfig","href":"Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig.html","topicUid":"Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig","type":"Interface"},{"name":"SiemensFrameTable","href":"Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable.html","topicUid":"Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable","type":"Class"},{"name":"SiemensMachineDataTable","href":"Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.html","topicUid":"Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Syntec","href":"Hi.NcParsers.Dependencys.Syntec.html","topicHref":"Hi.NcParsers.Dependencys.Syntec.html","topicUid":"Hi.NcParsers.Dependencys.Syntec","type":"Namespace","items":[{"name":"SyntecParameterTable","href":"Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html","topicHref":"Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html","topicUid":"Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.SystemWired","href":"Hi.NcParsers.Dependencys.SystemWired.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired","type":"Namespace","items":[{"name":"FileIndexCounterDependency","href":"Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency","type":"Class"},{"name":"NcKinematicsDependency","href":"Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency","type":"Class"},{"name":"ProjectFolderDependency","href":"Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency","type":"Class"},{"name":"SegmenterDependency","href":"Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency","type":"Class"},{"name":"SyntaxPieceLayerDependency","href":"Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency","type":"Class"}]},{"name":"Hi.NcParsers.EvaluationSyntaxs","href":"Hi.NcParsers.EvaluationSyntaxs.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs","type":"Namespace","items":[{"name":"CallStackUtil","href":"Hi.NcParsers.EvaluationSyntaxs.CallStackUtil.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.CallStackUtil.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.CallStackUtil","type":"Class"},{"name":"LabelScanUtil","href":"Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil","type":"Class"},{"name":"MacroFileResolver","href":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver","type":"Class"},{"name":"MacroFileResolver.ResolvedFile","href":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile","type":"Struct"},{"name":"MacroInlineUtil","href":"Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil","type":"Class"},{"name":"RetainedCommonVariableReadingSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax","type":"Class"},{"name":"SubProgramCallSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax","type":"Class"},{"name":"SubProgramReturnSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax","type":"Class"},{"name":"VariableEvaluatorSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax","type":"Class"},{"name":"VolatileVariableReadingSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax","type":"Class"}]},{"name":"Hi.NcParsers.EvaluationSyntaxs.Evaluation","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation","type":"Namespace","items":[{"name":"EvalResult","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult","type":"Struct"},{"name":"IRuntimeVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup","type":"Interface"},{"name":"IVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup","type":"Interface"},{"name":"LocalVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup","type":"Class"},{"name":"NcBinaryExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr","type":"Class"},{"name":"NcBinaryOp","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp","type":"Enum"},{"name":"NcExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr","type":"Class"},{"name":"NcExpressionEvaluator","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator","type":"Class"},{"name":"NcExpressionParser","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser","type":"Class"},{"name":"NcFunctionExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr","type":"Class"},{"name":"NcIndirectVariableExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr","type":"Class"},{"name":"NcLiteralExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr","type":"Class"},{"name":"NcUnaryExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr","type":"Class"},{"name":"NcUnaryOp","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp","type":"Enum"},{"name":"NcVariableExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr","type":"Class"},{"name":"VolatileVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup","type":"Class"}]},{"name":"Hi.NcParsers.EvaluationSyntaxs.Fanuc","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc","type":"Namespace","items":[{"name":"FanucGotoSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax","type":"Class"},{"name":"FanucIfThenSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax","type":"Class"},{"name":"FanucLocalVariableReadingSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax","type":"Class"},{"name":"FanucMacroArgumentMap","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap","type":"Class"},{"name":"FanucMacroCallSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax","type":"Class"},{"name":"FanucModalMacroSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax","type":"Class"},{"name":"FanucModalMacroSyntax.SyntaxPhase","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase","type":"Enum"},{"name":"FanucSystemControlVariableSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax","type":"Class"}]},{"name":"Hi.NcParsers.Initializers","href":"Hi.NcParsers.Initializers.html","topicHref":"Hi.NcParsers.Initializers.html","topicUid":"Hi.NcParsers.Initializers","type":"Namespace","items":[{"name":"HomeMcInitializer","href":"Hi.NcParsers.Initializers.HomeMcInitializer.html","topicHref":"Hi.NcParsers.Initializers.HomeMcInitializer.html","topicUid":"Hi.NcParsers.Initializers.HomeMcInitializer","type":"Class"},{"name":"INcInitializer","href":"Hi.NcParsers.Initializers.INcInitializer.html","topicHref":"Hi.NcParsers.Initializers.INcInitializer.html","topicUid":"Hi.NcParsers.Initializers.INcInitializer","type":"Interface"},{"name":"StaticInitializer","href":"Hi.NcParsers.Initializers.StaticInitializer.html","topicHref":"Hi.NcParsers.Initializers.StaticInitializer.html","topicUid":"Hi.NcParsers.Initializers.StaticInitializer","type":"Class"}]},{"name":"Hi.NcParsers.InspectionSyntaxs","href":"Hi.NcParsers.InspectionSyntaxs.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.html","topicUid":"Hi.NcParsers.InspectionSyntaxs","type":"Namespace","items":[{"name":"CleanupSyntax","href":"Hi.NcParsers.InspectionSyntaxs.CleanupSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.CleanupSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.CleanupSyntax","type":"Class"},{"name":"ProgramXyzBackfillSyntax","href":"Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax","type":"Class"},{"name":"SnapshotSyntax","href":"Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax","type":"Class"},{"name":"UnconsumedCheckSyntax","href":"Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax","type":"Class"}]},{"name":"Hi.NcParsers.Keywords","href":"Hi.NcParsers.Keywords.html","topicHref":"Hi.NcParsers.Keywords.html","topicUid":"Hi.NcParsers.Keywords","type":"Namespace","items":[{"name":"BlockSkip","href":"Hi.NcParsers.Keywords.BlockSkip.html","topicHref":"Hi.NcParsers.Keywords.BlockSkip.html","topicUid":"Hi.NcParsers.Keywords.BlockSkip","type":"Class"},{"name":"CallFrame","href":"Hi.NcParsers.Keywords.CallFrame.html","topicHref":"Hi.NcParsers.Keywords.CallFrame.html","topicUid":"Hi.NcParsers.Keywords.CallFrame","type":"Class"},{"name":"CallStack","href":"Hi.NcParsers.Keywords.CallStack.html","topicHref":"Hi.NcParsers.Keywords.CallStack.html","topicUid":"Hi.NcParsers.Keywords.CallStack","type":"Class"},{"name":"CannedCycle","href":"Hi.NcParsers.Keywords.CannedCycle.html","topicHref":"Hi.NcParsers.Keywords.CannedCycle.html","topicUid":"Hi.NcParsers.Keywords.CannedCycle","type":"Class"},{"name":"Comment","href":"Hi.NcParsers.Keywords.Comment.html","topicHref":"Hi.NcParsers.Keywords.Comment.html","topicUid":"Hi.NcParsers.Keywords.Comment","type":"Class"},{"name":"CompoundMotion","href":"Hi.NcParsers.Keywords.CompoundMotion.html","topicHref":"Hi.NcParsers.Keywords.CompoundMotion.html","topicUid":"Hi.NcParsers.Keywords.CompoundMotion","type":"Class"},{"name":"Coolant","href":"Hi.NcParsers.Keywords.Coolant.html","topicHref":"Hi.NcParsers.Keywords.Coolant.html","topicUid":"Hi.NcParsers.Keywords.Coolant","type":"Class"},{"name":"CoordinateOffset","href":"Hi.NcParsers.Keywords.CoordinateOffset.html","topicHref":"Hi.NcParsers.Keywords.CoordinateOffset.html","topicUid":"Hi.NcParsers.Keywords.CoordinateOffset","type":"Class"},{"name":"CsScript","href":"Hi.NcParsers.Keywords.CsScript.html","topicHref":"Hi.NcParsers.Keywords.CsScript.html","topicUid":"Hi.NcParsers.Keywords.CsScript","type":"Class"},{"name":"Dwell","href":"Hi.NcParsers.Keywords.Dwell.html","topicHref":"Hi.NcParsers.Keywords.Dwell.html","topicUid":"Hi.NcParsers.Keywords.Dwell","type":"Class"},{"name":"FanucGoto","href":"Hi.NcParsers.Keywords.FanucGoto.html","topicHref":"Hi.NcParsers.Keywords.FanucGoto.html","topicUid":"Hi.NcParsers.Keywords.FanucGoto","type":"Class"},{"name":"FanucIfThen","href":"Hi.NcParsers.Keywords.FanucIfThen.html","topicHref":"Hi.NcParsers.Keywords.FanucIfThen.html","topicUid":"Hi.NcParsers.Keywords.FanucIfThen","type":"Class"},{"name":"FanucMacroCall","href":"Hi.NcParsers.Keywords.FanucMacroCall.html","topicHref":"Hi.NcParsers.Keywords.FanucMacroCall.html","topicUid":"Hi.NcParsers.Keywords.FanucMacroCall","type":"Class"},{"name":"FanucModalMacro","href":"Hi.NcParsers.Keywords.FanucModalMacro.html","topicHref":"Hi.NcParsers.Keywords.FanucModalMacro.html","topicUid":"Hi.NcParsers.Keywords.FanucModalMacro","type":"Class"},{"name":"FanucPathSmoothing","href":"Hi.NcParsers.Keywords.FanucPathSmoothing.html","topicHref":"Hi.NcParsers.Keywords.FanucPathSmoothing.html","topicUid":"Hi.NcParsers.Keywords.FanucPathSmoothing","type":"Class"},{"name":"FanucProgramNumber","href":"Hi.NcParsers.Keywords.FanucProgramNumber.html","topicHref":"Hi.NcParsers.Keywords.FanucProgramNumber.html","topicUid":"Hi.NcParsers.Keywords.FanucProgramNumber","type":"Class"},{"name":"Feedrate","href":"Hi.NcParsers.Keywords.Feedrate.html","topicHref":"Hi.NcParsers.Keywords.Feedrate.html","topicUid":"Hi.NcParsers.Keywords.Feedrate","type":"Class"},{"name":"IArcMotionDef","href":"Hi.NcParsers.Keywords.IArcMotionDef.html","topicHref":"Hi.NcParsers.Keywords.IArcMotionDef.html","topicUid":"Hi.NcParsers.Keywords.IArcMotionDef","type":"Interface"},{"name":"ICannedCycleDef","href":"Hi.NcParsers.Keywords.ICannedCycleDef.html","topicHref":"Hi.NcParsers.Keywords.ICannedCycleDef.html","topicUid":"Hi.NcParsers.Keywords.ICannedCycleDef","type":"Interface"},{"name":"ICompoundMotionDef","href":"Hi.NcParsers.Keywords.ICompoundMotionDef.html","topicHref":"Hi.NcParsers.Keywords.ICompoundMotionDef.html","topicUid":"Hi.NcParsers.Keywords.ICompoundMotionDef","type":"Interface"},{"name":"ICoolantDef","href":"Hi.NcParsers.Keywords.ICoolantDef.html","topicHref":"Hi.NcParsers.Keywords.ICoolantDef.html","topicUid":"Hi.NcParsers.Keywords.ICoolantDef","type":"Interface"},{"name":"IDwellDef","href":"Hi.NcParsers.Keywords.IDwellDef.html","topicHref":"Hi.NcParsers.Keywords.IDwellDef.html","topicUid":"Hi.NcParsers.Keywords.IDwellDef","type":"Interface"},{"name":"IFanucPathSmoothingDef","href":"Hi.NcParsers.Keywords.IFanucPathSmoothingDef.html","topicHref":"Hi.NcParsers.Keywords.IFanucPathSmoothingDef.html","topicUid":"Hi.NcParsers.Keywords.IFanucPathSmoothingDef","type":"Interface"},{"name":"IFeedrateDef","href":"Hi.NcParsers.Keywords.IFeedrateDef.html","topicHref":"Hi.NcParsers.Keywords.IFeedrateDef.html","topicUid":"Hi.NcParsers.Keywords.IFeedrateDef","type":"Interface"},{"name":"IFlagsDef","href":"Hi.NcParsers.Keywords.IFlagsDef.html","topicHref":"Hi.NcParsers.Keywords.IFlagsDef.html","topicUid":"Hi.NcParsers.Keywords.IFlagsDef","type":"Interface"},{"name":"IMachineCoordinateStateDef","href":"Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html","topicHref":"Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html","topicUid":"Hi.NcParsers.Keywords.IMachineCoordinateStateDef","type":"Interface"},{"name":"IMotionEventDef","href":"Hi.NcParsers.Keywords.IMotionEventDef.html","topicHref":"Hi.NcParsers.Keywords.IMotionEventDef.html","topicUid":"Hi.NcParsers.Keywords.IMotionEventDef","type":"Interface"},{"name":"IMotionStateDef","href":"Hi.NcParsers.Keywords.IMotionStateDef.html","topicHref":"Hi.NcParsers.Keywords.IMotionStateDef.html","topicUid":"Hi.NcParsers.Keywords.IMotionStateDef","type":"Interface"},{"name":"IParsingDef","href":"Hi.NcParsers.Keywords.IParsingDef.html","topicHref":"Hi.NcParsers.Keywords.IParsingDef.html","topicUid":"Hi.NcParsers.Keywords.IParsingDef","type":"Interface"},{"name":"IPathSmoothingDef","href":"Hi.NcParsers.Keywords.IPathSmoothingDef.html","topicHref":"Hi.NcParsers.Keywords.IPathSmoothingDef.html","topicUid":"Hi.NcParsers.Keywords.IPathSmoothingDef","type":"Interface"},{"name":"IPlaneSelectDef","href":"Hi.NcParsers.Keywords.IPlaneSelectDef.html","topicHref":"Hi.NcParsers.Keywords.IPlaneSelectDef.html","topicUid":"Hi.NcParsers.Keywords.IPlaneSelectDef","type":"Interface"},{"name":"IPositioningDef","href":"Hi.NcParsers.Keywords.IPositioningDef.html","topicHref":"Hi.NcParsers.Keywords.IPositioningDef.html","topicUid":"Hi.NcParsers.Keywords.IPositioningDef","type":"Interface"},{"name":"IProgramEndDef","href":"Hi.NcParsers.Keywords.IProgramEndDef.html","topicHref":"Hi.NcParsers.Keywords.IProgramEndDef.html","topicUid":"Hi.NcParsers.Keywords.IProgramEndDef","type":"Interface"},{"name":"IProgramStopDef","href":"Hi.NcParsers.Keywords.IProgramStopDef.html","topicHref":"Hi.NcParsers.Keywords.IProgramStopDef.html","topicUid":"Hi.NcParsers.Keywords.IProgramStopDef","type":"Interface"},{"name":"IProgramXyzDef","href":"Hi.NcParsers.Keywords.IProgramXyzDef.html","topicHref":"Hi.NcParsers.Keywords.IProgramXyzDef.html","topicUid":"Hi.NcParsers.Keywords.IProgramXyzDef","type":"Interface"},{"name":"IRadiusCompensationDef","href":"Hi.NcParsers.Keywords.IRadiusCompensationDef.html","topicHref":"Hi.NcParsers.Keywords.IRadiusCompensationDef.html","topicUid":"Hi.NcParsers.Keywords.IRadiusCompensationDef","type":"Interface"},{"name":"ISpindleControlDef","href":"Hi.NcParsers.Keywords.ISpindleControlDef.html","topicHref":"Hi.NcParsers.Keywords.ISpindleControlDef.html","topicUid":"Hi.NcParsers.Keywords.ISpindleControlDef","type":"Interface"},{"name":"ISpindleOrientationDef","href":"Hi.NcParsers.Keywords.ISpindleOrientationDef.html","topicHref":"Hi.NcParsers.Keywords.ISpindleOrientationDef.html","topicUid":"Hi.NcParsers.Keywords.ISpindleOrientationDef","type":"Interface"},{"name":"ISpindleSpeedDef","href":"Hi.NcParsers.Keywords.ISpindleSpeedDef.html","topicHref":"Hi.NcParsers.Keywords.ISpindleSpeedDef.html","topicUid":"Hi.NcParsers.Keywords.ISpindleSpeedDef","type":"Interface"},{"name":"ITiltTransformDef","href":"Hi.NcParsers.Keywords.ITiltTransformDef.html","topicHref":"Hi.NcParsers.Keywords.ITiltTransformDef.html","topicUid":"Hi.NcParsers.Keywords.ITiltTransformDef","type":"Interface"},{"name":"IToolHeightCompensationDef","href":"Hi.NcParsers.Keywords.IToolHeightCompensationDef.html","topicHref":"Hi.NcParsers.Keywords.IToolHeightCompensationDef.html","topicUid":"Hi.NcParsers.Keywords.IToolHeightCompensationDef","type":"Interface"},{"name":"ITransformationDef","href":"Hi.NcParsers.Keywords.ITransformationDef.html","topicHref":"Hi.NcParsers.Keywords.ITransformationDef.html","topicUid":"Hi.NcParsers.Keywords.ITransformationDef","type":"Interface"},{"name":"IUnitDef","href":"Hi.NcParsers.Keywords.IUnitDef.html","topicHref":"Hi.NcParsers.Keywords.IUnitDef.html","topicUid":"Hi.NcParsers.Keywords.IUnitDef","type":"Interface"},{"name":"IUnparsedTextDef","href":"Hi.NcParsers.Keywords.IUnparsedTextDef.html","topicHref":"Hi.NcParsers.Keywords.IUnparsedTextDef.html","topicUid":"Hi.NcParsers.Keywords.IUnparsedTextDef","type":"Interface"},{"name":"IndexNote","href":"Hi.NcParsers.Keywords.IndexNote.html","topicHref":"Hi.NcParsers.Keywords.IndexNote.html","topicUid":"Hi.NcParsers.Keywords.IndexNote","type":"Class"},{"name":"IsoLocalCoordinateOffset","href":"Hi.NcParsers.Keywords.IsoLocalCoordinateOffset.html","topicHref":"Hi.NcParsers.Keywords.IsoLocalCoordinateOffset.html","topicUid":"Hi.NcParsers.Keywords.IsoLocalCoordinateOffset","type":"Class"},{"name":"MachineCoordinateState","href":"Hi.NcParsers.Keywords.MachineCoordinateState.html","topicHref":"Hi.NcParsers.Keywords.MachineCoordinateState.html","topicUid":"Hi.NcParsers.Keywords.MachineCoordinateState","type":"Class"},{"name":"MacroFrame","href":"Hi.NcParsers.Keywords.MacroFrame.html","topicHref":"Hi.NcParsers.Keywords.MacroFrame.html","topicUid":"Hi.NcParsers.Keywords.MacroFrame","type":"Class"},{"name":"MotionEvent","href":"Hi.NcParsers.Keywords.MotionEvent.html","topicHref":"Hi.NcParsers.Keywords.MotionEvent.html","topicUid":"Hi.NcParsers.Keywords.MotionEvent","type":"Class"},{"name":"MotionState","href":"Hi.NcParsers.Keywords.MotionState.html","topicHref":"Hi.NcParsers.Keywords.MotionState.html","topicUid":"Hi.NcParsers.Keywords.MotionState","type":"Class"},{"name":"PathSmoothing","href":"Hi.NcParsers.Keywords.PathSmoothing.html","topicHref":"Hi.NcParsers.Keywords.PathSmoothing.html","topicUid":"Hi.NcParsers.Keywords.PathSmoothing","type":"Class"},{"name":"PlaneSelect","href":"Hi.NcParsers.Keywords.PlaneSelect.html","topicHref":"Hi.NcParsers.Keywords.PlaneSelect.html","topicUid":"Hi.NcParsers.Keywords.PlaneSelect","type":"Class"},{"name":"Positioning","href":"Hi.NcParsers.Keywords.Positioning.html","topicHref":"Hi.NcParsers.Keywords.Positioning.html","topicUid":"Hi.NcParsers.Keywords.Positioning","type":"Class"},{"name":"ProgramEnd","href":"Hi.NcParsers.Keywords.ProgramEnd.html","topicHref":"Hi.NcParsers.Keywords.ProgramEnd.html","topicUid":"Hi.NcParsers.Keywords.ProgramEnd","type":"Class"},{"name":"ProgramStop","href":"Hi.NcParsers.Keywords.ProgramStop.html","topicHref":"Hi.NcParsers.Keywords.ProgramStop.html","topicUid":"Hi.NcParsers.Keywords.ProgramStop","type":"Class"},{"name":"RadiusCompensation","href":"Hi.NcParsers.Keywords.RadiusCompensation.html","topicHref":"Hi.NcParsers.Keywords.RadiusCompensation.html","topicUid":"Hi.NcParsers.Keywords.RadiusCompensation","type":"Class"},{"name":"SpindleControl","href":"Hi.NcParsers.Keywords.SpindleControl.html","topicHref":"Hi.NcParsers.Keywords.SpindleControl.html","topicUid":"Hi.NcParsers.Keywords.SpindleControl","type":"Class"},{"name":"SpindleOrientation","href":"Hi.NcParsers.Keywords.SpindleOrientation.html","topicHref":"Hi.NcParsers.Keywords.SpindleOrientation.html","topicUid":"Hi.NcParsers.Keywords.SpindleOrientation","type":"Class"},{"name":"SpindleSpeed","href":"Hi.NcParsers.Keywords.SpindleSpeed.html","topicHref":"Hi.NcParsers.Keywords.SpindleSpeed.html","topicUid":"Hi.NcParsers.Keywords.SpindleSpeed","type":"Class"},{"name":"SubProgramCall","href":"Hi.NcParsers.Keywords.SubProgramCall.html","topicHref":"Hi.NcParsers.Keywords.SubProgramCall.html","topicUid":"Hi.NcParsers.Keywords.SubProgramCall","type":"Class"},{"name":"SubProgramReturn","href":"Hi.NcParsers.Keywords.SubProgramReturn.html","topicHref":"Hi.NcParsers.Keywords.SubProgramReturn.html","topicUid":"Hi.NcParsers.Keywords.SubProgramReturn","type":"Class"},{"name":"TapeBoundary","href":"Hi.NcParsers.Keywords.TapeBoundary.html","topicHref":"Hi.NcParsers.Keywords.TapeBoundary.html","topicUid":"Hi.NcParsers.Keywords.TapeBoundary","type":"Class"},{"name":"TiltTransform","href":"Hi.NcParsers.Keywords.TiltTransform.html","topicHref":"Hi.NcParsers.Keywords.TiltTransform.html","topicUid":"Hi.NcParsers.Keywords.TiltTransform","type":"Class"},{"name":"ToolHeightCompensation","href":"Hi.NcParsers.Keywords.ToolHeightCompensation.html","topicHref":"Hi.NcParsers.Keywords.ToolHeightCompensation.html","topicUid":"Hi.NcParsers.Keywords.ToolHeightCompensation","type":"Class"},{"name":"Unit","href":"Hi.NcParsers.Keywords.Unit.html","topicHref":"Hi.NcParsers.Keywords.Unit.html","topicUid":"Hi.NcParsers.Keywords.Unit","type":"Class"},{"name":"Vars","href":"Hi.NcParsers.Keywords.Vars.html","topicHref":"Hi.NcParsers.Keywords.Vars.html","topicUid":"Hi.NcParsers.Keywords.Vars","type":"Class"}]},{"name":"Hi.NcParsers.Keywords.Fanuc","href":"Hi.NcParsers.Keywords.Fanuc.html","topicHref":"Hi.NcParsers.Keywords.Fanuc.html","topicUid":"Hi.NcParsers.Keywords.Fanuc","type":"Namespace","items":[{"name":"FanucKeywords","href":"Hi.NcParsers.Keywords.Fanuc.FanucKeywords.html","topicHref":"Hi.NcParsers.Keywords.Fanuc.FanucKeywords.html","topicUid":"Hi.NcParsers.Keywords.Fanuc.FanucKeywords","type":"Class"}]},{"name":"Hi.NcParsers.Keywords.Generic","href":"Hi.NcParsers.Keywords.Generic.html","topicHref":"Hi.NcParsers.Keywords.Generic.html","topicUid":"Hi.NcParsers.Keywords.Generic","type":"Namespace","items":[{"name":"IsoKeywords","href":"Hi.NcParsers.Keywords.Generic.IsoKeywords.html","topicHref":"Hi.NcParsers.Keywords.Generic.IsoKeywords.html","topicUid":"Hi.NcParsers.Keywords.Generic.IsoKeywords","type":"Class"},{"name":"MotionForm","href":"Hi.NcParsers.Keywords.Generic.MotionForm.html","topicHref":"Hi.NcParsers.Keywords.Generic.MotionForm.html","topicUid":"Hi.NcParsers.Keywords.Generic.MotionForm","type":"Class"}]},{"name":"Hi.NcParsers.Keywords.Heidenhain","href":"Hi.NcParsers.Keywords.Heidenhain.html","topicHref":"Hi.NcParsers.Keywords.Heidenhain.html","topicUid":"Hi.NcParsers.Keywords.Heidenhain","type":"Namespace","items":[{"name":"ICyclDef","href":"Hi.NcParsers.Keywords.Heidenhain.ICyclDef.html","topicHref":"Hi.NcParsers.Keywords.Heidenhain.ICyclDef.html","topicUid":"Hi.NcParsers.Keywords.Heidenhain.ICyclDef","type":"Interface"}]},{"name":"Hi.NcParsers.Keywords.Siemens","href":"Hi.NcParsers.Keywords.Siemens.html","topicHref":"Hi.NcParsers.Keywords.Siemens.html","topicUid":"Hi.NcParsers.Keywords.Siemens","type":"Namespace","items":[{"name":"SiemensKeywords","href":"Hi.NcParsers.Keywords.Siemens.SiemensKeywords.html","topicHref":"Hi.NcParsers.Keywords.Siemens.SiemensKeywords.html","topicUid":"Hi.NcParsers.Keywords.Siemens.SiemensKeywords","type":"Class"}]},{"name":"Hi.NcParsers.LogicSyntaxs","href":"Hi.NcParsers.LogicSyntaxs.html","topicHref":"Hi.NcParsers.LogicSyntaxs.html","topicUid":"Hi.NcParsers.LogicSyntaxs","type":"Namespace","items":[{"name":"BackBoringSyntax","href":"Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.BackBoringSyntax","type":"Class"},{"name":"BareG28Behavior","href":"Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html","topicHref":"Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html","topicUid":"Hi.NcParsers.LogicSyntaxs.BareG28Behavior","type":"Enum"},{"name":"BoringCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax","type":"Class"},{"name":"CannedCycleResolveSyntax","href":"Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax","type":"Class"},{"name":"CircularMotionSyntax","href":"Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax","type":"Class"},{"name":"CoolantSyntax","href":"Hi.NcParsers.LogicSyntaxs.CoolantSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CoolantSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CoolantSyntax","type":"Class"},{"name":"CoordinateOffsetUtil","href":"Hi.NcParsers.LogicSyntaxs.CoordinateOffsetUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CoordinateOffsetUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CoordinateOffsetUtil","type":"Class"},{"name":"DrillingCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax","type":"Class"},{"name":"FanucPathSmoothingSyntax","href":"Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax","type":"Class"},{"name":"FeedrateSyntax","href":"Hi.NcParsers.LogicSyntaxs.FeedrateSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.FeedrateSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.FeedrateSyntax","type":"Class"},{"name":"FineBoringSyntax","href":"Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.FineBoringSyntax","type":"Class"},{"name":"G43p4RtcpSyntax","href":"Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax","type":"Class"},{"name":"G53p1RotaryPositionSyntax","href":"Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax","type":"Class"},{"name":"HighSpeedPeckCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax","type":"Class"},{"name":"IncrementalResolveSyntax","href":"Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax","type":"Class"},{"name":"IsoCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoCoordinateOffsetSyntax","type":"Class"},{"name":"IsoG68RotationSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoG68RotationSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoG68RotationSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoG68RotationSyntax","type":"Class"},{"name":"IsoG68p2TiltSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax","type":"Class"},{"name":"IsoLocalCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax","type":"Class"},{"name":"LinearMotionSyntax","href":"Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax","type":"Class"},{"name":"MachineCoordSelectSyntax","href":"Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax","type":"Class"},{"name":"McAbcCyclicPathSyntax","href":"Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax","type":"Class"},{"name":"McAbcSyntax","href":"Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McAbcSyntax","type":"Class"},{"name":"McAbcXyzFallbackSyntax","href":"Hi.NcParsers.LogicSyntaxs.McAbcXyzFallbackSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McAbcXyzFallbackSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McAbcXyzFallbackSyntax","type":"Class"},{"name":"McXyzSyntax","href":"Hi.NcParsers.LogicSyntaxs.McXyzSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McXyzSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McXyzSyntax","type":"Class"},{"name":"PeckDrillingCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax","type":"Class"},{"name":"PivotTransformationSyntax","href":"Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax","type":"Class"},{"name":"PlaneSelectSyntax","href":"Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax","type":"Class"},{"name":"PositioningSyntax","href":"Hi.NcParsers.LogicSyntaxs.PositioningSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PositioningSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PositioningSyntax","type":"Class"},{"name":"ProgramEndCleanSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramEndCleanSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramEndCleanSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramEndCleanSyntax","type":"Class"},{"name":"ProgramEndSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramEndSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramEndSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramEndSyntax","type":"Class"},{"name":"ProgramStopSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax","type":"Class"},{"name":"ProgramXyzSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramXyzSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramXyzSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramXyzSyntax","type":"Class"},{"name":"ProgramXyzUtil","href":"Hi.NcParsers.LogicSyntaxs.ProgramXyzUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramXyzUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramXyzUtil","type":"Class"},{"name":"ReferenceReturnSyntax","href":"Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax","type":"Class"},{"name":"RotaryAxisUtil","href":"Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil","type":"Class"},{"name":"SpindleSpeedSyntax","href":"Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax","type":"Class"},{"name":"TappingCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax","type":"Class"},{"name":"TiltTransformUtil","href":"Hi.NcParsers.LogicSyntaxs.TiltTransformUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.TiltTransformUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.TiltTransformUtil","type":"Class"},{"name":"ToolChangeSyntax","href":"Hi.NcParsers.LogicSyntaxs.ToolChangeSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ToolChangeSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ToolChangeSyntax","type":"Class"},{"name":"ToolHeightOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.ToolHeightOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ToolHeightOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ToolHeightOffsetSyntax","type":"Class"},{"name":"UnitModeSyntax","href":"Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.UnitModeSyntax","type":"Class"}]},{"name":"Hi.NcParsers.LogicSyntaxs.Heidenhain","href":"Hi.NcParsers.LogicSyntaxs.Heidenhain.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Heidenhain.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Heidenhain","type":"Namespace","items":[{"name":"HeidenhainCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax","type":"Class"}]},{"name":"Hi.NcParsers.LogicSyntaxs.Siemens","href":"Hi.NcParsers.LogicSyntaxs.Siemens.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Siemens.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Siemens","type":"Namespace","items":[{"name":"SiemensCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs","href":"Hi.NcParsers.ParsingSyntaxs.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.html","topicUid":"Hi.NcParsers.ParsingSyntaxs","type":"Namespace","items":[{"name":"BlockSkipSyntax","href":"Hi.NcParsers.ParsingSyntaxs.BlockSkipSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.BlockSkipSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.BlockSkipSyntax","type":"Class"},{"name":"CsScriptSyntax","href":"Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax","type":"Class"},{"name":"FlagSyntax","href":"Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.FlagSyntax","type":"Class"},{"name":"FloatTagValueSyntax","href":"Hi.NcParsers.ParsingSyntaxs.FloatTagValueSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.FloatTagValueSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.FloatTagValueSyntax","type":"Class"},{"name":"HeadIndexSyntax","href":"Hi.NcParsers.ParsingSyntaxs.HeadIndexSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.HeadIndexSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.HeadIndexSyntax","type":"Class"},{"name":"IntegerTagValueSyntax","href":"Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax","type":"Class"},{"name":"NamedVarAssignmentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax","type":"Class"},{"name":"NumberedFlagSyntax","href":"Hi.NcParsers.ParsingSyntaxs.NumberedFlagSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.NumberedFlagSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.NumberedFlagSyntax","type":"Class"},{"name":"ParameterizedFlagSyntax","href":"Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax","type":"Class"},{"name":"ShrinkIfNoDecimalPointSyntax","href":"Hi.NcParsers.ParsingSyntaxs.ShrinkIfNoDecimalPointSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.ShrinkIfNoDecimalPointSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.ShrinkIfNoDecimalPointSyntax","type":"Class"},{"name":"TagAssignmentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax","type":"Class"},{"name":"TagValueSyntax","href":"Hi.NcParsers.ParsingSyntaxs.TagValueSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.TagValueSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.TagValueSyntax","type":"Class"},{"name":"TapeBoundarySyntax","href":"Hi.NcParsers.ParsingSyntaxs.TapeBoundarySyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.TapeBoundarySyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.TapeBoundarySyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs","href":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs","type":"Namespace","items":[{"name":"QuoteCommentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax","type":"Class"},{"name":"TailCommentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.Fanuc","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc","type":"Namespace","items":[{"name":"FanucGotoParsingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax","type":"Class"},{"name":"FanucIfThenParsingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax","type":"Class"},{"name":"FanucProgramNumberSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.Heidenhain","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain","type":"Namespace","items":[{"name":"HeidenhainBlkFormSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax","type":"Class"},{"name":"HeidenhainCallSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax","type":"Class"},{"name":"HeidenhainCyclDefSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax","type":"Class"},{"name":"HeidenhainFnAssignmentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax","type":"Class"},{"name":"HeidenhainLSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax","type":"Class"},{"name":"HeidenhainLblSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax","type":"Class"},{"name":"HeidenhainPlaneSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax","type":"Class"},{"name":"HeidenhainProgramSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax","type":"Class"},{"name":"HeidenhainToolCallSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs","type":"Namespace","items":[{"name":"HeidenhainDatumSettingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax","type":"Class"},{"name":"HeidenhainDatumShiftSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax","type":"Class"}]},{"name":"Hi.NcParsers.PostLogicSyntaxs","href":"Hi.NcParsers.PostLogicSyntaxs.html","topicHref":"Hi.NcParsers.PostLogicSyntaxs.html","topicUid":"Hi.NcParsers.PostLogicSyntaxs","type":"Namespace","items":[{"name":"ModalCarrySyntax","href":"Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html","topicHref":"Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html","topicUid":"Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax","type":"Class"},{"name":"RadiusCompensationSyntax","href":"Hi.NcParsers.PostLogicSyntaxs.RadiusCompensationSyntax.html","topicHref":"Hi.NcParsers.PostLogicSyntaxs.RadiusCompensationSyntax.html","topicUid":"Hi.NcParsers.PostLogicSyntaxs.RadiusCompensationSyntax","type":"Class"}]},{"name":"Hi.NcParsers.Segmenters","href":"Hi.NcParsers.Segmenters.html","topicHref":"Hi.NcParsers.Segmenters.html","topicUid":"Hi.NcParsers.Segmenters","type":"Namespace","items":[{"name":"HeidenhainSegmenter","href":"Hi.NcParsers.Segmenters.HeidenhainSegmenter.html","topicHref":"Hi.NcParsers.Segmenters.HeidenhainSegmenter.html","topicUid":"Hi.NcParsers.Segmenters.HeidenhainSegmenter","type":"Class"},{"name":"ISegmenter","href":"Hi.NcParsers.Segmenters.ISegmenter.html","topicHref":"Hi.NcParsers.Segmenters.ISegmenter.html","topicUid":"Hi.NcParsers.Segmenters.ISegmenter","type":"Interface"},{"name":"InlineDelimiterSegmenter","href":"Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html","topicHref":"Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html","topicUid":"Hi.NcParsers.Segmenters.InlineDelimiterSegmenter","type":"Class"},{"name":"SingleLineSegmenter","href":"Hi.NcParsers.Segmenters.SingleLineSegmenter.html","topicHref":"Hi.NcParsers.Segmenters.SingleLineSegmenter.html","topicUid":"Hi.NcParsers.Segmenters.SingleLineSegmenter","type":"Class"}]},{"name":"Hi.NcParsers.Semantics","href":"Hi.NcParsers.Semantics.html","topicHref":"Hi.NcParsers.Semantics.html","topicUid":"Hi.NcParsers.Semantics","type":"Namespace","items":[{"name":"ClLinearMotionSemantic","href":"Hi.NcParsers.Semantics.ClLinearMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.ClLinearMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.ClLinearMotionSemantic","type":"Class"},{"name":"CompoundMotionSemantic","href":"Hi.NcParsers.Semantics.CompoundMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.CompoundMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.CompoundMotionSemantic","type":"Class"},{"name":"CoolantSemantic","href":"Hi.NcParsers.Semantics.CoolantSemantic.html","topicHref":"Hi.NcParsers.Semantics.CoolantSemantic.html","topicUid":"Hi.NcParsers.Semantics.CoolantSemantic","type":"Class"},{"name":"CsScriptBeginSemantic","href":"Hi.NcParsers.Semantics.CsScriptBeginSemantic.html","topicHref":"Hi.NcParsers.Semantics.CsScriptBeginSemantic.html","topicUid":"Hi.NcParsers.Semantics.CsScriptBeginSemantic","type":"Class"},{"name":"CsScriptEndSemantic","href":"Hi.NcParsers.Semantics.CsScriptEndSemantic.html","topicHref":"Hi.NcParsers.Semantics.CsScriptEndSemantic.html","topicUid":"Hi.NcParsers.Semantics.CsScriptEndSemantic","type":"Class"},{"name":"CsScriptSemantic","href":"Hi.NcParsers.Semantics.CsScriptSemantic.html","topicHref":"Hi.NcParsers.Semantics.CsScriptSemantic.html","topicUid":"Hi.NcParsers.Semantics.CsScriptSemantic","type":"Class"},{"name":"INcSemantic","href":"Hi.NcParsers.Semantics.INcSemantic.html","topicHref":"Hi.NcParsers.Semantics.INcSemantic.html","topicUid":"Hi.NcParsers.Semantics.INcSemantic","type":"Interface"},{"name":"MachineCoordinateStepSemantic","href":"Hi.NcParsers.Semantics.MachineCoordinateStepSemantic.html","topicHref":"Hi.NcParsers.Semantics.MachineCoordinateStepSemantic.html","topicUid":"Hi.NcParsers.Semantics.MachineCoordinateStepSemantic","type":"Class"},{"name":"McArcMotionSemantic","href":"Hi.NcParsers.Semantics.McArcMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.McArcMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.McArcMotionSemantic","type":"Class"},{"name":"McLinearMotionSemantic","href":"Hi.NcParsers.Semantics.McLinearMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.McLinearMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.McLinearMotionSemantic","type":"Class"},{"name":"SpindleSpeedSemantic","href":"Hi.NcParsers.Semantics.SpindleSpeedSemantic.html","topicHref":"Hi.NcParsers.Semantics.SpindleSpeedSemantic.html","topicUid":"Hi.NcParsers.Semantics.SpindleSpeedSemantic","type":"Class"},{"name":"StrokeLimitCheckSemantic","href":"Hi.NcParsers.Semantics.StrokeLimitCheckSemantic.html","topicHref":"Hi.NcParsers.Semantics.StrokeLimitCheckSemantic.html","topicUid":"Hi.NcParsers.Semantics.StrokeLimitCheckSemantic","type":"Class"},{"name":"ToolChangeSemantic","href":"Hi.NcParsers.Semantics.ToolChangeSemantic.html","topicHref":"Hi.NcParsers.Semantics.ToolChangeSemantic.html","topicUid":"Hi.NcParsers.Semantics.ToolChangeSemantic","type":"Class"}]},{"name":"Hi.NcParsers.Syntaxs","href":"Hi.NcParsers.Syntaxs.html","topicHref":"Hi.NcParsers.Syntaxs.html","topicUid":"Hi.NcParsers.Syntaxs","type":"Namespace","items":[{"name":"BundleSyntax","href":"Hi.NcParsers.Syntaxs.BundleSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.BundleSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.BundleSyntax","type":"Class"},{"name":"FanucSyntaxUtil","href":"Hi.NcParsers.Syntaxs.FanucSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.FanucSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.FanucSyntaxUtil","type":"Class"},{"name":"GenericSyntaxKit","href":"Hi.NcParsers.Syntaxs.GenericSyntaxKit.html","topicHref":"Hi.NcParsers.Syntaxs.GenericSyntaxKit.html","topicUid":"Hi.NcParsers.Syntaxs.GenericSyntaxKit","type":"Class"},{"name":"HeidenhainSyntaxUtil","href":"Hi.NcParsers.Syntaxs.HeidenhainSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.HeidenhainSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.HeidenhainSyntaxUtil","type":"Class"},{"name":"IExpandingNcSyntax","href":"Hi.NcParsers.Syntaxs.IExpandingNcSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.IExpandingNcSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.IExpandingNcSyntax","type":"Interface"},{"name":"INcSyntax","href":"Hi.NcParsers.Syntaxs.INcSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.INcSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.INcSyntax","type":"Interface"},{"name":"ISituNcSyntax","href":"Hi.NcParsers.Syntaxs.ISituNcSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.ISituNcSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.ISituNcSyntax","type":"Interface"},{"name":"MazakSyntaxUtil","href":"Hi.NcParsers.Syntaxs.MazakSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.MazakSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.MazakSyntaxUtil","type":"Class"},{"name":"NcSyntaxUtil","href":"Hi.NcParsers.Syntaxs.NcSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.NcSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.NcSyntaxUtil","type":"Class"},{"name":"SiemensSyntaxUtil","href":"Hi.NcParsers.Syntaxs.SiemensSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.SiemensSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.SiemensSyntaxUtil","type":"Class"},{"name":"SyntaxPiece","href":"Hi.NcParsers.Syntaxs.SyntaxPiece.html","topicHref":"Hi.NcParsers.Syntaxs.SyntaxPiece.html","topicUid":"Hi.NcParsers.Syntaxs.SyntaxPiece","type":"Class"},{"name":"SyntaxStageKeys","href":"Hi.NcParsers.Syntaxs.SyntaxStageKeys.html","topicHref":"Hi.NcParsers.Syntaxs.SyntaxStageKeys.html","topicUid":"Hi.NcParsers.Syntaxs.SyntaxStageKeys","type":"Class"},{"name":"SyntecSyntaxUtil","href":"Hi.NcParsers.Syntaxs.SyntecSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.SyntecSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.SyntecSyntaxUtil","type":"Class"},{"name":"TagValue","href":"Hi.NcParsers.Syntaxs.TagValue.html","topicHref":"Hi.NcParsers.Syntaxs.TagValue.html","topicUid":"Hi.NcParsers.Syntaxs.TagValue","type":"Class"},{"name":"TransformationUtil","href":"Hi.NcParsers.Syntaxs.TransformationUtil.html","topicHref":"Hi.NcParsers.Syntaxs.TransformationUtil.html","topicUid":"Hi.NcParsers.Syntaxs.TransformationUtil","type":"Class"}]},{"name":"Hi.Numerical","href":"Hi.Numerical.html","topicHref":"Hi.Numerical.html","topicUid":"Hi.Numerical","type":"Namespace","items":[{"name":"CncBrand","href":"Hi.Numerical.CncBrand.html","topicHref":"Hi.Numerical.CncBrand.html","topicUid":"Hi.Numerical.CncBrand","type":"Enum"},{"name":"CommentMark","href":"Hi.Numerical.CommentMark.html","topicHref":"Hi.Numerical.CommentMark.html","topicUid":"Hi.Numerical.CommentMark","type":"Enum"},{"name":"CoolantMode","href":"Hi.Numerical.CoolantMode.html","topicHref":"Hi.Numerical.CoolantMode.html","topicUid":"Hi.Numerical.CoolantMode","type":"Enum"},{"name":"CoordinateInterpolationMode","href":"Hi.Numerical.CoordinateInterpolationMode.html","topicHref":"Hi.Numerical.CoordinateInterpolationMode.html","topicUid":"Hi.Numerical.CoordinateInterpolationMode","type":"Enum"},{"name":"FlexDictionaryUtil","href":"Hi.Numerical.FlexDictionaryUtil.html","topicHref":"Hi.Numerical.FlexDictionaryUtil.html","topicUid":"Hi.Numerical.FlexDictionaryUtil","type":"Class"},{"name":"HardNcComment","href":"Hi.Numerical.HardNcComment.html","topicHref":"Hi.Numerical.HardNcComment.html","topicUid":"Hi.Numerical.HardNcComment","type":"Class"},{"name":"HardNcEnv","href":"Hi.Numerical.HardNcEnv.html","topicHref":"Hi.Numerical.HardNcEnv.html","topicUid":"Hi.Numerical.HardNcEnv","type":"Class"},{"name":"HardNcLine","href":"Hi.Numerical.HardNcLine.html","topicHref":"Hi.Numerical.HardNcLine.html","topicUid":"Hi.Numerical.HardNcLine","type":"Class"},{"name":"HardNcUtil","href":"Hi.Numerical.HardNcUtil.html","topicHref":"Hi.Numerical.HardNcUtil.html","topicUid":"Hi.Numerical.HardNcUtil","type":"Class"},{"name":"HeidenhainCoordinateEntryDisplayee","href":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee","type":"Class"},{"name":"IControlRunner","href":"Hi.Numerical.IControlRunner.html","topicHref":"Hi.Numerical.IControlRunner.html","topicUid":"Hi.Numerical.IControlRunner","type":"Interface"},{"name":"IFlexDictionaryHost","href":"Hi.Numerical.IFlexDictionaryHost-1.html","topicHref":"Hi.Numerical.IFlexDictionaryHost-1.html","topicUid":"Hi.Numerical.IFlexDictionaryHost`1","type":"Interface"},{"name":"IGetFeedrate","href":"Hi.Numerical.IGetFeedrate.html","topicHref":"Hi.Numerical.IGetFeedrate.html","topicUid":"Hi.Numerical.IGetFeedrate","type":"Interface"},{"name":"IGetSpindleSpeed","href":"Hi.Numerical.IGetSpindleSpeed.html","topicHref":"Hi.Numerical.IGetSpindleSpeed.html","topicUid":"Hi.Numerical.IGetSpindleSpeed","type":"Interface"},{"name":"ISetFeedrate","href":"Hi.Numerical.ISetFeedrate.html","topicHref":"Hi.Numerical.ISetFeedrate.html","topicUid":"Hi.Numerical.ISetFeedrate","type":"Interface"},{"name":"ISetSpindleSpeed","href":"Hi.Numerical.ISetSpindleSpeed.html","topicHref":"Hi.Numerical.ISetSpindleSpeed.html","topicUid":"Hi.Numerical.ISetSpindleSpeed","type":"Interface"},{"name":"IsoCoordinateEntryDisplayee","href":"Hi.Numerical.IsoCoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.IsoCoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.IsoCoordinateEntryDisplayee","type":"Class"},{"name":"MechNcUtil","href":"Hi.Numerical.MechNcUtil.html","topicHref":"Hi.Numerical.MechNcUtil.html","topicUid":"Hi.Numerical.MechNcUtil","type":"Class"},{"name":"MillingToolOffsetTable","href":"Hi.Numerical.MillingToolOffsetTable.html","topicHref":"Hi.Numerical.MillingToolOffsetTable.html","topicUid":"Hi.Numerical.MillingToolOffsetTable","type":"Class"},{"name":"MillingToolOffsetTableRow","href":"Hi.Numerical.MillingToolOffsetTableRow.html","topicHref":"Hi.Numerical.MillingToolOffsetTableRow.html","topicUid":"Hi.Numerical.MillingToolOffsetTableRow","type":"Class"},{"name":"NcFlag","href":"Hi.Numerical.NcFlag.html","topicHref":"Hi.Numerical.NcFlag.html","topicUid":"Hi.Numerical.NcFlag","type":"Enum"},{"name":"NcFlagUtil","href":"Hi.Numerical.NcFlagUtil.html","topicHref":"Hi.Numerical.NcFlagUtil.html","topicUid":"Hi.Numerical.NcFlagUtil","type":"Class"},{"name":"NcGroup00","href":"Hi.Numerical.NcGroup00.html","topicHref":"Hi.Numerical.NcGroup00.html","topicUid":"Hi.Numerical.NcGroup00","type":"Enum"},{"name":"NcGroup01","href":"Hi.Numerical.NcGroup01.html","topicHref":"Hi.Numerical.NcGroup01.html","topicUid":"Hi.Numerical.NcGroup01","type":"Enum"},{"name":"NcGroup02","href":"Hi.Numerical.NcGroup02.html","topicHref":"Hi.Numerical.NcGroup02.html","topicUid":"Hi.Numerical.NcGroup02","type":"Enum"},{"name":"NcGroup03","href":"Hi.Numerical.NcGroup03.html","topicHref":"Hi.Numerical.NcGroup03.html","topicUid":"Hi.Numerical.NcGroup03","type":"Enum"},{"name":"NcGroup05","href":"Hi.Numerical.NcGroup05.html","topicHref":"Hi.Numerical.NcGroup05.html","topicUid":"Hi.Numerical.NcGroup05","type":"Enum"},{"name":"NcGroup06","href":"Hi.Numerical.NcGroup06.html","topicHref":"Hi.Numerical.NcGroup06.html","topicUid":"Hi.Numerical.NcGroup06","type":"Enum"},{"name":"NcGroup07","href":"Hi.Numerical.NcGroup07.html","topicHref":"Hi.Numerical.NcGroup07.html","topicUid":"Hi.Numerical.NcGroup07","type":"Enum"},{"name":"NcGroup08","href":"Hi.Numerical.NcGroup08.html","topicHref":"Hi.Numerical.NcGroup08.html","topicUid":"Hi.Numerical.NcGroup08","type":"Enum"},{"name":"NcGroup09","href":"Hi.Numerical.NcGroup09.html","topicHref":"Hi.Numerical.NcGroup09.html","topicUid":"Hi.Numerical.NcGroup09","type":"Enum"},{"name":"NcGroup10","href":"Hi.Numerical.NcGroup10.html","topicHref":"Hi.Numerical.NcGroup10.html","topicUid":"Hi.Numerical.NcGroup10","type":"Enum"},{"name":"NcGroup13","href":"Hi.Numerical.NcGroup13.html","topicHref":"Hi.Numerical.NcGroup13.html","topicUid":"Hi.Numerical.NcGroup13","type":"Enum"},{"name":"NcGroup14","href":"Hi.Numerical.NcGroup14.html","topicHref":"Hi.Numerical.NcGroup14.html","topicUid":"Hi.Numerical.NcGroup14","type":"Enum"},{"name":"NcGroup15","href":"Hi.Numerical.NcGroup15.html","topicHref":"Hi.Numerical.NcGroup15.html","topicUid":"Hi.Numerical.NcGroup15","type":"Enum"},{"name":"NcGroup16","href":"Hi.Numerical.NcGroup16.html","topicHref":"Hi.Numerical.NcGroup16.html","topicUid":"Hi.Numerical.NcGroup16","type":"Enum"},{"name":"NcGroup21","href":"Hi.Numerical.NcGroup21.html","topicHref":"Hi.Numerical.NcGroup21.html","topicUid":"Hi.Numerical.NcGroup21","type":"Enum"},{"name":"NcGroupAttribute","href":"Hi.Numerical.NcGroupAttribute.html","topicHref":"Hi.Numerical.NcGroupAttribute.html","topicUid":"Hi.Numerical.NcGroupAttribute","type":"Class"},{"name":"NcGroupHeidenhainM107M108","href":"Hi.Numerical.NcGroupHeidenhainM107M108.html","topicHref":"Hi.Numerical.NcGroupHeidenhainM107M108.html","topicUid":"Hi.Numerical.NcGroupHeidenhainM107M108","type":"Enum"},{"name":"NcGroupHeidenhainPlane","href":"Hi.Numerical.NcGroupHeidenhainPlane.html","topicHref":"Hi.Numerical.NcGroupHeidenhainPlane.html","topicUid":"Hi.Numerical.NcGroupHeidenhainPlane","type":"Enum"},{"name":"NcGroupHeidenhainShortestRotaryPath","href":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.html","topicHref":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.html","topicUid":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath","type":"Enum"},{"name":"NcGroupSpindleRotation","href":"Hi.Numerical.NcGroupSpindleRotation.html","topicHref":"Hi.Numerical.NcGroupSpindleRotation.html","topicUid":"Hi.Numerical.NcGroupSpindleRotation","type":"Enum"},{"name":"NcLifeCycleAttribute","href":"Hi.Numerical.NcLifeCycleAttribute.html","topicHref":"Hi.Numerical.NcLifeCycleAttribute.html","topicUid":"Hi.Numerical.NcLifeCycleAttribute","type":"Class"},{"name":"NcLifeCycleMode","href":"Hi.Numerical.NcLifeCycleMode.html","topicHref":"Hi.Numerical.NcLifeCycleMode.html","topicUid":"Hi.Numerical.NcLifeCycleMode","type":"Enum"},{"name":"NcNameAttribute","href":"Hi.Numerical.NcNameAttribute.html","topicHref":"Hi.Numerical.NcNameAttribute.html","topicUid":"Hi.Numerical.NcNameAttribute","type":"Class"},{"name":"NcNoteCache","href":"Hi.Numerical.NcNoteCache.html","topicHref":"Hi.Numerical.NcNoteCache.html","topicUid":"Hi.Numerical.NcNoteCache","type":"Class"},{"name":"NcProc","href":"Hi.Numerical.NcProc.html","topicHref":"Hi.Numerical.NcProc.html","topicUid":"Hi.Numerical.NcProc","type":"Class"},{"name":"NcWarningSceneEnum","href":"Hi.Numerical.NcWarningSceneEnum.html","topicHref":"Hi.Numerical.NcWarningSceneEnum.html","topicUid":"Hi.Numerical.NcWarningSceneEnum","type":"Enum"},{"name":"NumericUtil","href":"Hi.Numerical.NumericUtil.html","topicHref":"Hi.Numerical.NumericUtil.html","topicUid":"Hi.Numerical.NumericUtil","type":"Class"},{"name":"PolarEntry","href":"Hi.Numerical.PolarEntry.html","topicHref":"Hi.Numerical.PolarEntry.html","topicUid":"Hi.Numerical.PolarEntry","type":"Class"},{"name":"RadiusCompensationBuf","href":"Hi.Numerical.RadiusCompensationBuf.html","topicHref":"Hi.Numerical.RadiusCompensationBuf.html","topicUid":"Hi.Numerical.RadiusCompensationBuf","type":"Class"},{"name":"SourcedActEntry","href":"Hi.Numerical.SourcedActEntry.html","topicHref":"Hi.Numerical.SourcedActEntry.html","topicUid":"Hi.Numerical.SourcedActEntry","type":"Class"},{"name":"SpindleDirection","href":"Hi.Numerical.SpindleDirection.html","topicHref":"Hi.Numerical.SpindleDirection.html","topicUid":"Hi.Numerical.SpindleDirection","type":"Enum"},{"name":"SubStringKit","href":"Hi.Numerical.SubStringKit.html","topicHref":"Hi.Numerical.SubStringKit.html","topicUid":"Hi.Numerical.SubStringKit","type":"Class"},{"name":"SubStringKit.ActivationMode","href":"Hi.Numerical.SubStringKit.ActivationMode.html","topicHref":"Hi.Numerical.SubStringKit.ActivationMode.html","topicUid":"Hi.Numerical.SubStringKit.ActivationMode","type":"Enum"},{"name":"ToolConfigNotFoundException","href":"Hi.Numerical.ToolConfigNotFoundException.html","topicHref":"Hi.Numerical.ToolConfigNotFoundException.html","topicUid":"Hi.Numerical.ToolConfigNotFoundException","type":"Class"}]},{"name":"Hi.Numerical.Acts","href":"Hi.Numerical.Acts.html","topicHref":"Hi.Numerical.Acts.html","topicUid":"Hi.Numerical.Acts","type":"Namespace","items":[{"name":"ActActualTime","href":"Hi.Numerical.Acts.ActActualTime.html","topicHref":"Hi.Numerical.Acts.ActActualTime.html","topicUid":"Hi.Numerical.Acts.ActActualTime","type":"Class"},{"name":"ActClArc","href":"Hi.Numerical.Acts.ActClArc.html","topicHref":"Hi.Numerical.Acts.ActClArc.html","topicUid":"Hi.Numerical.Acts.ActClArc","type":"Class"},{"name":"ActClDerivedMcXyzabcContour","href":"Hi.Numerical.Acts.ActClDerivedMcXyzabcContour.html","topicHref":"Hi.Numerical.Acts.ActClDerivedMcXyzabcContour.html","topicUid":"Hi.Numerical.Acts.ActClDerivedMcXyzabcContour","type":"Class"},{"name":"ActClLinear","href":"Hi.Numerical.Acts.ActClLinear.html","topicHref":"Hi.Numerical.Acts.ActClLinear.html","topicUid":"Hi.Numerical.Acts.ActClLinear","type":"Class"},{"name":"ActClStep","href":"Hi.Numerical.Acts.ActClStep.html","topicHref":"Hi.Numerical.Acts.ActClStep.html","topicUid":"Hi.Numerical.Acts.ActClStep","type":"Class"},{"name":"ActClTeleport","href":"Hi.Numerical.Acts.ActClTeleport.html","topicHref":"Hi.Numerical.Acts.ActClTeleport.html","topicUid":"Hi.Numerical.Acts.ActClTeleport","type":"Class"},{"name":"ActCooling","href":"Hi.Numerical.Acts.ActCooling.html","topicHref":"Hi.Numerical.Acts.ActCooling.html","topicUid":"Hi.Numerical.Acts.ActCooling","type":"Class"},{"name":"ActData","href":"Hi.Numerical.Acts.ActData.html","topicHref":"Hi.Numerical.Acts.ActData.html","topicUid":"Hi.Numerical.Acts.ActData","type":"Class"},{"name":"ActDelay","href":"Hi.Numerical.Acts.ActDelay.html","topicHref":"Hi.Numerical.Acts.ActDelay.html","topicUid":"Hi.Numerical.Acts.ActDelay","type":"Class"},{"name":"ActFeedrate","href":"Hi.Numerical.Acts.ActFeedrate.html","topicHref":"Hi.Numerical.Acts.ActFeedrate.html","topicUid":"Hi.Numerical.Acts.ActFeedrate","type":"Class"},{"name":"ActHiddenStateChanged","href":"Hi.Numerical.Acts.ActHiddenStateChanged.html","topicHref":"Hi.Numerical.Acts.ActHiddenStateChanged.html","topicUid":"Hi.Numerical.Acts.ActHiddenStateChanged","type":"Class"},{"name":"ActIntentionalSkip","href":"Hi.Numerical.Acts.ActIntentionalSkip.html","topicHref":"Hi.Numerical.Acts.ActIntentionalSkip.html","topicUid":"Hi.Numerical.Acts.ActIntentionalSkip","type":"Class"},{"name":"ActLineBegin","href":"Hi.Numerical.Acts.ActLineBegin.html","topicHref":"Hi.Numerical.Acts.ActLineBegin.html","topicUid":"Hi.Numerical.Acts.ActLineBegin","type":"Class"},{"name":"ActLineCsScript","href":"Hi.Numerical.Acts.ActLineCsScript.html","topicHref":"Hi.Numerical.Acts.ActLineCsScript.html","topicUid":"Hi.Numerical.Acts.ActLineCsScript","type":"Class"},{"name":"ActLineEnd","href":"Hi.Numerical.Acts.ActLineEnd.html","topicHref":"Hi.Numerical.Acts.ActLineEnd.html","topicUid":"Hi.Numerical.Acts.ActLineEnd","type":"Class"},{"name":"ActMcPolarLinearContour","href":"Hi.Numerical.Acts.ActMcPolarLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcPolarLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcPolarLinearContour","type":"Class"},{"name":"ActMcXyzLinearContour","href":"Hi.Numerical.Acts.ActMcXyzLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzLinearContour","type":"Class"},{"name":"ActMcXyzSpiralContour","href":"Hi.Numerical.Acts.ActMcXyzSpiralContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzSpiralContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzSpiralContour","type":"Class"},{"name":"ActMcXyzStep","href":"Hi.Numerical.Acts.ActMcXyzStep.html","topicHref":"Hi.Numerical.Acts.ActMcXyzStep.html","topicUid":"Hi.Numerical.Acts.ActMcXyzStep","type":"Class"},{"name":"ActMcXyzabcLinearContour","href":"Hi.Numerical.Acts.ActMcXyzabcLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzabcLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzabcLinearContour","type":"Class"},{"name":"ActMcXyzabcStep","href":"Hi.Numerical.Acts.ActMcXyzabcStep.html","topicHref":"Hi.Numerical.Acts.ActMcXyzabcStep.html","topicUid":"Hi.Numerical.Acts.ActMcXyzabcStep","type":"Class"},{"name":"ActRapid","href":"Hi.Numerical.Acts.ActRapid.html","topicHref":"Hi.Numerical.Acts.ActRapid.html","topicUid":"Hi.Numerical.Acts.ActRapid","type":"Class"},{"name":"ActSpindleDirection","href":"Hi.Numerical.Acts.ActSpindleDirection.html","topicHref":"Hi.Numerical.Acts.ActSpindleDirection.html","topicUid":"Hi.Numerical.Acts.ActSpindleDirection","type":"Class"},{"name":"ActSpindleOrientation","href":"Hi.Numerical.Acts.ActSpindleOrientation.html","topicHref":"Hi.Numerical.Acts.ActSpindleOrientation.html","topicUid":"Hi.Numerical.Acts.ActSpindleOrientation","type":"Class"},{"name":"ActSpindleSpeed","href":"Hi.Numerical.Acts.ActSpindleSpeed.html","topicHref":"Hi.Numerical.Acts.ActSpindleSpeed.html","topicUid":"Hi.Numerical.Acts.ActSpindleSpeed","type":"Class"},{"name":"ActToolingStep","href":"Hi.Numerical.Acts.ActToolingStep.html","topicHref":"Hi.Numerical.Acts.ActToolingStep.html","topicUid":"Hi.Numerical.Acts.ActToolingStep","type":"Class"},{"name":"ActToolingTeleport","href":"Hi.Numerical.Acts.ActToolingTeleport.html","topicHref":"Hi.Numerical.Acts.ActToolingTeleport.html","topicUid":"Hi.Numerical.Acts.ActToolingTeleport","type":"Class"},{"name":"ActUnknownSkip","href":"Hi.Numerical.Acts.ActUnknownSkip.html","topicHref":"Hi.Numerical.Acts.ActUnknownSkip.html","topicUid":"Hi.Numerical.Acts.ActUnknownSkip","type":"Class"},{"name":"ActUtil","href":"Hi.Numerical.Acts.ActUtil.html","topicHref":"Hi.Numerical.Acts.ActUtil.html","topicUid":"Hi.Numerical.Acts.ActUtil","type":"Class"},{"name":"IAct","href":"Hi.Numerical.Acts.IAct.html","topicHref":"Hi.Numerical.Acts.IAct.html","topicUid":"Hi.Numerical.Acts.IAct","type":"Interface"},{"name":"IActClMove","href":"Hi.Numerical.Acts.IActClMove.html","topicHref":"Hi.Numerical.Acts.IActClMove.html","topicUid":"Hi.Numerical.Acts.IActClMove","type":"Interface"},{"name":"IActDuration","href":"Hi.Numerical.Acts.IActDuration.html","topicHref":"Hi.Numerical.Acts.IActDuration.html","topicUid":"Hi.Numerical.Acts.IActDuration","type":"Interface"},{"name":"IActMachineStep","href":"Hi.Numerical.Acts.IActMachineStep.html","topicHref":"Hi.Numerical.Acts.IActMachineStep.html","topicUid":"Hi.Numerical.Acts.IActMachineStep","type":"Interface"},{"name":"IActMcXyzContour","href":"Hi.Numerical.Acts.IActMcXyzContour.html","topicHref":"Hi.Numerical.Acts.IActMcXyzContour.html","topicUid":"Hi.Numerical.Acts.IActMcXyzContour","type":"Interface"},{"name":"IActMcXyzabcContour","href":"Hi.Numerical.Acts.IActMcXyzabcContour.html","topicHref":"Hi.Numerical.Acts.IActMcXyzabcContour.html","topicUid":"Hi.Numerical.Acts.IActMcXyzabcContour","type":"Interface"},{"name":"IActSkip","href":"Hi.Numerical.Acts.IActSkip.html","topicHref":"Hi.Numerical.Acts.IActSkip.html","topicUid":"Hi.Numerical.Acts.IActSkip","type":"Interface"},{"name":"IActTooling","href":"Hi.Numerical.Acts.IActTooling.html","topicHref":"Hi.Numerical.Acts.IActTooling.html","topicUid":"Hi.Numerical.Acts.IActTooling","type":"Interface"},{"name":"IWorkTimeAttrib","href":"Hi.Numerical.Acts.IWorkTimeAttrib.html","topicHref":"Hi.Numerical.Acts.IWorkTimeAttrib.html","topicUid":"Hi.Numerical.Acts.IWorkTimeAttrib","type":"Interface"},{"name":"IWorkTimeGetter","href":"Hi.Numerical.Acts.IWorkTimeGetter.html","topicHref":"Hi.Numerical.Acts.IWorkTimeGetter.html","topicUid":"Hi.Numerical.Acts.IWorkTimeGetter","type":"Interface"},{"name":"IWorkTimeSetter","href":"Hi.Numerical.Acts.IWorkTimeSetter.html","topicHref":"Hi.Numerical.Acts.IWorkTimeSetter.html","topicUid":"Hi.Numerical.Acts.IWorkTimeSetter","type":"Interface"},{"name":"StateActRunner","href":"Hi.Numerical.Acts.StateActRunner.html","topicHref":"Hi.Numerical.Acts.StateActRunner.html","topicUid":"Hi.Numerical.Acts.StateActRunner","type":"Class"}]},{"name":"Hi.Numerical.Args","href":"Hi.Numerical.Args.html","topicHref":"Hi.Numerical.Args.html","topicUid":"Hi.Numerical.Args","type":"Namespace","items":[{"name":"OrthogonalPlaneFlag","href":"Hi.Numerical.Args.OrthogonalPlaneFlag.html","topicHref":"Hi.Numerical.Args.OrthogonalPlaneFlag.html","topicUid":"Hi.Numerical.Args.OrthogonalPlaneFlag","type":"Enum"},{"name":"PolarModeDirEnum","href":"Hi.Numerical.Args.PolarModeDirEnum.html","topicHref":"Hi.Numerical.Args.PolarModeDirEnum.html","topicUid":"Hi.Numerical.Args.PolarModeDirEnum","type":"Enum"}]},{"name":"Hi.Numerical.FilePlayers","href":"Hi.Numerical.FilePlayers.html","topicHref":"Hi.Numerical.FilePlayers.html","topicUid":"Hi.Numerical.FilePlayers","type":"Namespace","items":[{"name":"CsvRunner","href":"Hi.Numerical.FilePlayers.CsvRunner.html","topicHref":"Hi.Numerical.FilePlayers.CsvRunner.html","topicUid":"Hi.Numerical.FilePlayers.CsvRunner","type":"Class"},{"name":"CsvRunnerConfig","href":"Hi.Numerical.FilePlayers.CsvRunnerConfig.html","topicHref":"Hi.Numerical.FilePlayers.CsvRunnerConfig.html","topicUid":"Hi.Numerical.FilePlayers.CsvRunnerConfig","type":"Class"},{"name":"HardNcRunner","href":"Hi.Numerical.FilePlayers.HardNcRunner.html","topicHref":"Hi.Numerical.FilePlayers.HardNcRunner.html","topicUid":"Hi.Numerical.FilePlayers.HardNcRunner","type":"Class"}]},{"name":"Hi.Numerical.MachiningMotionResolutionUtils","href":"Hi.Numerical.MachiningMotionResolutionUtils.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils","type":"Namespace","items":[{"name":"FeedPerCycleMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution","type":"Class"},{"name":"FeedPerToothMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution","type":"Class"},{"name":"FixedMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution","type":"Class"},{"name":"IMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution","type":"Interface"}]},{"name":"Hi.Numerical.NcArgs","href":"Hi.Numerical.NcArgs.html","topicHref":"Hi.Numerical.NcArgs.html","topicUid":"Hi.Numerical.NcArgs","type":"Namespace","items":[{"name":"ArcNcArg","href":"Hi.Numerical.NcArgs.ArcNcArg.html","topicHref":"Hi.Numerical.NcArgs.ArcNcArg.html","topicUid":"Hi.Numerical.NcArgs.ArcNcArg","type":"Class"},{"name":"G28Arg","href":"Hi.Numerical.NcArgs.G28Arg.html","topicHref":"Hi.Numerical.NcArgs.G28Arg.html","topicUid":"Hi.Numerical.NcArgs.G28Arg","type":"Class"},{"name":"Group07NcArg","href":"Hi.Numerical.NcArgs.Group07NcArg.html","topicHref":"Hi.Numerical.NcArgs.Group07NcArg.html","topicUid":"Hi.Numerical.NcArgs.Group07NcArg","type":"Class"},{"name":"Group09NcArg","href":"Hi.Numerical.NcArgs.Group09NcArg.html","topicHref":"Hi.Numerical.NcArgs.Group09NcArg.html","topicUid":"Hi.Numerical.NcArgs.Group09NcArg","type":"Class"},{"name":"HeidenhainCycleDef7Arg","href":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.html","topicHref":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.html","topicUid":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg","type":"Class"},{"name":"HeidenhainPlaneSpatialArg","href":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.html","topicHref":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.html","topicUid":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg","type":"Class"},{"name":"IHeidenhainBlockCacheArg","href":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.html","topicHref":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.html","topicUid":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg","type":"Interface"},{"name":"IHeidenhainPlaneArg","href":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg.html","topicHref":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg.html","topicUid":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg","type":"Interface"},{"name":"ITiltPlaneNcArg","href":"Hi.Numerical.NcArgs.ITiltPlaneNcArg.html","topicHref":"Hi.Numerical.NcArgs.ITiltPlaneNcArg.html","topicUid":"Hi.Numerical.NcArgs.ITiltPlaneNcArg","type":"Interface"},{"name":"NcArgCycle800","href":"Hi.Numerical.NcArgs.NcArgCycle800.html","topicHref":"Hi.Numerical.NcArgs.NcArgCycle800.html","topicUid":"Hi.Numerical.NcArgs.NcArgCycle800","type":"Class"},{"name":"NcArgG68","href":"Hi.Numerical.NcArgs.NcArgG68.html","topicHref":"Hi.Numerical.NcArgs.NcArgG68.html","topicUid":"Hi.Numerical.NcArgs.NcArgG68","type":"Class"},{"name":"NcArgG68p2","href":"Hi.Numerical.NcArgs.NcArgG68p2.html","topicHref":"Hi.Numerical.NcArgs.NcArgG68p2.html","topicUid":"Hi.Numerical.NcArgs.NcArgG68p2","type":"Class"},{"name":"NcArgSiemensFrame","href":"Hi.Numerical.NcArgs.NcArgSiemensFrame.html","topicHref":"Hi.Numerical.NcArgs.NcArgSiemensFrame.html","topicUid":"Hi.Numerical.NcArgs.NcArgSiemensFrame","type":"Class"},{"name":"PausingNcArg","href":"Hi.Numerical.NcArgs.PausingNcArg.html","topicHref":"Hi.Numerical.NcArgs.PausingNcArg.html","topicUid":"Hi.Numerical.NcArgs.PausingNcArg","type":"Class"}]},{"name":"Hi.Numerical.StepSelectionUtils","href":"Hi.Numerical.StepSelectionUtils.html","topicHref":"Hi.Numerical.StepSelectionUtils.html","topicUid":"Hi.Numerical.StepSelectionUtils","type":"Namespace","items":[{"name":"AnchorMode","href":"Hi.Numerical.StepSelectionUtils.AnchorMode.html","topicHref":"Hi.Numerical.StepSelectionUtils.AnchorMode.html","topicUid":"Hi.Numerical.StepSelectionUtils.AnchorMode","type":"Enum"},{"name":"BoundSelector","href":"Hi.Numerical.StepSelectionUtils.BoundSelector.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelector.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelector","type":"Class"},{"name":"BoundSelectorHost","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost","type":"Class"},{"name":"BoundSelectorPair","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair","type":"Class"},{"name":"BoundSelectorPair.BoundLocale","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale","type":"Enum"},{"name":"BoundSelectorStepSectionBundle","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle","type":"Class"},{"name":"BoundSelectorUtil","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil","type":"Class"},{"name":"DistanceShift","href":"Hi.Numerical.StepSelectionUtils.DistanceShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.DistanceShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.DistanceShift","type":"Class"},{"name":"IStepShift","href":"Hi.Numerical.StepSelectionUtils.IStepShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.IStepShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.IStepShift","type":"Interface"},{"name":"TimeShift","href":"Hi.Numerical.StepSelectionUtils.TimeShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.TimeShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.TimeShift","type":"Class"}]},{"name":"Hi.Numerical.Xyzabc","href":"Hi.Numerical.Xyzabc.html","topicHref":"Hi.Numerical.Xyzabc.html","topicUid":"Hi.Numerical.Xyzabc","type":"Namespace","items":[{"name":"Abc","href":"Hi.Numerical.Xyzabc.Abc.html","topicHref":"Hi.Numerical.Xyzabc.Abc.html","topicUid":"Hi.Numerical.Xyzabc.Abc","type":"Struct"},{"name":"CodeXyzabcChain","href":"Hi.Numerical.Xyzabc.CodeXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.CodeXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.CodeXyzabcChain","type":"Class"},{"name":"GeneralXyzabcChain","href":"Hi.Numerical.Xyzabc.GeneralXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.GeneralXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.GeneralXyzabcChain","type":"Class"},{"name":"IGetMcXyzabc","href":"Hi.Numerical.Xyzabc.IGetMcXyzabc.html","topicHref":"Hi.Numerical.Xyzabc.IGetMcXyzabc.html","topicUid":"Hi.Numerical.Xyzabc.IGetMcXyzabc","type":"Interface"},{"name":"IGetXyzabcChain","href":"Hi.Numerical.Xyzabc.IGetXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.IGetXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.IGetXyzabcChain","type":"Interface"},{"name":"IMachineKinematics","href":"Hi.Numerical.Xyzabc.IMachineKinematics.html","topicHref":"Hi.Numerical.Xyzabc.IMachineKinematics.html","topicUid":"Hi.Numerical.Xyzabc.IMachineKinematics","type":"Interface"},{"name":"ISetMcXyzabc","href":"Hi.Numerical.Xyzabc.ISetMcXyzabc.html","topicHref":"Hi.Numerical.Xyzabc.ISetMcXyzabc.html","topicUid":"Hi.Numerical.Xyzabc.ISetMcXyzabc","type":"Interface"},{"name":"IXyzabcChain","href":"Hi.Numerical.Xyzabc.IXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.IXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.IXyzabcChain","type":"Interface"},{"name":"ReflectedXyzabcChain","href":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain","type":"Class"},{"name":"XyzabcSolver","href":"Hi.Numerical.Xyzabc.XyzabcSolver.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcSolver.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcSolver","type":"Class"},{"name":"XyzabcUtil","href":"Hi.Numerical.Xyzabc.XyzabcUtil.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcUtil.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcUtil","type":"Class"}]},{"name":"Hi.PanelModels","href":"Hi.PanelModels.html","topicHref":"Hi.PanelModels.html","topicUid":"Hi.PanelModels","type":"Namespace","items":[{"name":"HiKey","href":"Hi.PanelModels.HiKey.html","topicHref":"Hi.PanelModels.HiKey.html","topicUid":"Hi.PanelModels.HiKey","type":"Enum"},{"name":"HiKeyEvent","href":"Hi.PanelModels.HiKeyEvent.html","topicHref":"Hi.PanelModels.HiKeyEvent.html","topicUid":"Hi.PanelModels.HiKeyEvent","type":"Class"},{"name":"HiModifierKeys","href":"Hi.PanelModels.HiModifierKeys.html","topicHref":"Hi.PanelModels.HiModifierKeys.html","topicUid":"Hi.PanelModels.HiModifierKeys","type":"Enum"},{"name":"HiMouseButton","href":"Hi.PanelModels.HiMouseButton.html","topicHref":"Hi.PanelModels.HiMouseButton.html","topicUid":"Hi.PanelModels.HiMouseButton","type":"Enum"},{"name":"HiMouseButtonEvent","href":"Hi.PanelModels.HiMouseButtonEvent.html","topicHref":"Hi.PanelModels.HiMouseButtonEvent.html","topicUid":"Hi.PanelModels.HiMouseButtonEvent","type":"Class"},{"name":"HiMouseButtonMask","href":"Hi.PanelModels.HiMouseButtonMask.html","topicHref":"Hi.PanelModels.HiMouseButtonMask.html","topicUid":"Hi.PanelModels.HiMouseButtonMask","type":"Enum"},{"name":"HiMouseButtonMaskUtil","href":"Hi.PanelModels.HiMouseButtonMaskUtil.html","topicHref":"Hi.PanelModels.HiMouseButtonMaskUtil.html","topicUid":"Hi.PanelModels.HiMouseButtonMaskUtil","type":"Class"},{"name":"HiMouseMoveEvent","href":"Hi.PanelModels.HiMouseMoveEvent.html","topicHref":"Hi.PanelModels.HiMouseMoveEvent.html","topicUid":"Hi.PanelModels.HiMouseMoveEvent","type":"Class"},{"name":"HiMouseWheelEvent","href":"Hi.PanelModels.HiMouseWheelEvent.html","topicHref":"Hi.PanelModels.HiMouseWheelEvent.html","topicUid":"Hi.PanelModels.HiMouseWheelEvent","type":"Class"},{"name":"PanelModel","href":"Hi.PanelModels.PanelModel.html","topicHref":"Hi.PanelModels.PanelModel.html","topicUid":"Hi.PanelModels.PanelModel","type":"Class"}]},{"name":"Hi.Parallels","href":"Hi.Parallels.html","topicHref":"Hi.Parallels.html","topicUid":"Hi.Parallels","type":"Namespace","items":[{"name":"CurrentThreadTaskScheduler","href":"Hi.Parallels.CurrentThreadTaskScheduler.html","topicHref":"Hi.Parallels.CurrentThreadTaskScheduler.html","topicUid":"Hi.Parallels.CurrentThreadTaskScheduler","type":"Class"},{"name":"DistributedQueueTaskScheduler","href":"Hi.Parallels.DistributedQueueTaskScheduler.html","topicHref":"Hi.Parallels.DistributedQueueTaskScheduler.html","topicUid":"Hi.Parallels.DistributedQueueTaskScheduler","type":"Class"},{"name":"DistributedQueueTaskStarter","href":"Hi.Parallels.DistributedQueueTaskStarter.html","topicHref":"Hi.Parallels.DistributedQueueTaskStarter.html","topicUid":"Hi.Parallels.DistributedQueueTaskStarter","type":"Class"},{"name":"LockUtil","href":"Hi.Parallels.LockUtil.html","topicHref":"Hi.Parallels.LockUtil.html","topicUid":"Hi.Parallels.LockUtil","type":"Class"},{"name":"PriorityTaskScheduler","href":"Hi.Parallels.PriorityTaskScheduler.html","topicHref":"Hi.Parallels.PriorityTaskScheduler.html","topicUid":"Hi.Parallels.PriorityTaskScheduler","type":"Class"},{"name":"QueueTaskScheduler","href":"Hi.Parallels.QueueTaskScheduler.html","topicHref":"Hi.Parallels.QueueTaskScheduler.html","topicUid":"Hi.Parallels.QueueTaskScheduler","type":"Class"},{"name":"ReaderWriterLockUtil","href":"Hi.Parallels.ReaderWriterLockUtil.html","topicHref":"Hi.Parallels.ReaderWriterLockUtil.html","topicUid":"Hi.Parallels.ReaderWriterLockUtil","type":"Class"},{"name":"SemaphoreUtil","href":"Hi.Parallels.SemaphoreUtil.html","topicHref":"Hi.Parallels.SemaphoreUtil.html","topicUid":"Hi.Parallels.SemaphoreUtil","type":"Class"},{"name":"ThreadSafeSet","href":"Hi.Parallels.ThreadSafeSet-1.html","topicHref":"Hi.Parallels.ThreadSafeSet-1.html","topicUid":"Hi.Parallels.ThreadSafeSet`1","type":"Class"}]},{"name":"Hi.Physics","href":"Hi.Physics.html","topicHref":"Hi.Physics.html","topicUid":"Hi.Physics","type":"Namespace","items":[{"name":"AmpPhase","href":"Hi.Physics.AmpPhase.html","topicHref":"Hi.Physics.AmpPhase.html","topicUid":"Hi.Physics.AmpPhase","type":"Class"},{"name":"CoatingMaterial","href":"Hi.Physics.CoatingMaterial.html","topicHref":"Hi.Physics.CoatingMaterial.html","topicUid":"Hi.Physics.CoatingMaterial","type":"Class"},{"name":"CoolantHeatCondition","href":"Hi.Physics.CoolantHeatCondition.html","topicHref":"Hi.Physics.CoolantHeatCondition.html","topicUid":"Hi.Physics.CoolantHeatCondition","type":"Class"},{"name":"CutterMaterial","href":"Hi.Physics.CutterMaterial.html","topicHref":"Hi.Physics.CutterMaterial.html","topicUid":"Hi.Physics.CutterMaterial","type":"Class"},{"name":"IGetThermalLayerList","href":"Hi.Physics.IGetThermalLayerList.html","topicHref":"Hi.Physics.IGetThermalLayerList.html","topicUid":"Hi.Physics.IGetThermalLayerList","type":"Interface"},{"name":"IStructureMaterial","href":"Hi.Physics.IStructureMaterial.html","topicHref":"Hi.Physics.IStructureMaterial.html","topicUid":"Hi.Physics.IStructureMaterial","type":"Interface"},{"name":"ISuccessivePhysicsBriefAccessor","href":"Hi.Physics.ISuccessivePhysicsBriefAccessor.html","topicHref":"Hi.Physics.ISuccessivePhysicsBriefAccessor.html","topicUid":"Hi.Physics.ISuccessivePhysicsBriefAccessor","type":"Interface"},{"name":"ISurfaceMaterial","href":"Hi.Physics.ISurfaceMaterial.html","topicHref":"Hi.Physics.ISurfaceMaterial.html","topicUid":"Hi.Physics.ISurfaceMaterial","type":"Interface"},{"name":"ITimeGetter","href":"Hi.Physics.ITimeGetter.html","topicHref":"Hi.Physics.ITimeGetter.html","topicUid":"Hi.Physics.ITimeGetter","type":"Interface"},{"name":"MillingTemperatureUtil","href":"Hi.Physics.MillingTemperatureUtil.html","topicHref":"Hi.Physics.MillingTemperatureUtil.html","topicUid":"Hi.Physics.MillingTemperatureUtil","type":"Class"},{"name":"SeqPhysicsBrief","href":"Hi.Physics.SeqPhysicsBrief.html","topicHref":"Hi.Physics.SeqPhysicsBrief.html","topicUid":"Hi.Physics.SeqPhysicsBrief","type":"Class"},{"name":"StructureMaterial","href":"Hi.Physics.StructureMaterial.html","topicHref":"Hi.Physics.StructureMaterial.html","topicUid":"Hi.Physics.StructureMaterial","type":"Class"},{"name":"TemperatureUtil","href":"Hi.Physics.TemperatureUtil.html","topicHref":"Hi.Physics.TemperatureUtil.html","topicUid":"Hi.Physics.TemperatureUtil","type":"Class"},{"name":"TemperatureVsHardness","href":"Hi.Physics.TemperatureVsHardness.html","topicHref":"Hi.Physics.TemperatureVsHardness.html","topicUid":"Hi.Physics.TemperatureVsHardness","type":"Class"},{"name":"ThermalLayer1D","href":"Hi.Physics.ThermalLayer1D.html","topicHref":"Hi.Physics.ThermalLayer1D.html","topicUid":"Hi.Physics.ThermalLayer1D","type":"Class"},{"name":"TimeSeriesUtil","href":"Hi.Physics.TimeSeriesUtil.html","topicHref":"Hi.Physics.TimeSeriesUtil.html","topicUid":"Hi.Physics.TimeSeriesUtil","type":"Class"},{"name":"TimeValue","href":"Hi.Physics.TimeValue.html","topicHref":"Hi.Physics.TimeValue.html","topicUid":"Hi.Physics.TimeValue","type":"Class"},{"name":"WorkpieceMaterial","href":"Hi.Physics.WorkpieceMaterial.html","topicHref":"Hi.Physics.WorkpieceMaterial.html","topicUid":"Hi.Physics.WorkpieceMaterial","type":"Class"}]},{"name":"Hi.SessionCommands","href":"Hi.SessionCommands.html","topicHref":"Hi.SessionCommands.html","topicUid":"Hi.SessionCommands","type":"Namespace","items":[{"name":"EnablingWrapper","href":"Hi.SessionCommands.EnablingWrapper.html","topicHref":"Hi.SessionCommands.EnablingWrapper.html","topicUid":"Hi.SessionCommands.EnablingWrapper","type":"Class"},{"name":"GeomDiffCommand","href":"Hi.SessionCommands.GeomDiffCommand.html","topicHref":"Hi.SessionCommands.GeomDiffCommand.html","topicUid":"Hi.SessionCommands.GeomDiffCommand","type":"Class"},{"name":"ISessionCommand","href":"Hi.SessionCommands.ISessionCommand.html","topicHref":"Hi.SessionCommands.ISessionCommand.html","topicUid":"Hi.SessionCommands.ISessionCommand","type":"Interface"},{"name":"ITitleCommand","href":"Hi.SessionCommands.ITitleCommand.html","topicHref":"Hi.SessionCommands.ITitleCommand.html","topicUid":"Hi.SessionCommands.ITitleCommand","type":"Interface"},{"name":"Lang","href":"Hi.SessionCommands.Lang.html","topicHref":"Hi.SessionCommands.Lang.html","topicUid":"Hi.SessionCommands.Lang","type":"Class"},{"name":"ListCommand","href":"Hi.SessionCommands.ListCommand.html","topicHref":"Hi.SessionCommands.ListCommand.html","topicUid":"Hi.SessionCommands.ListCommand","type":"Class"},{"name":"MachiningMotionResolutionCommand","href":"Hi.SessionCommands.MachiningMotionResolutionCommand.html","topicHref":"Hi.SessionCommands.MachiningMotionResolutionCommand.html","topicUid":"Hi.SessionCommands.MachiningMotionResolutionCommand","type":"Class"},{"name":"NcCodeCommand","href":"Hi.SessionCommands.NcCodeCommand.html","topicHref":"Hi.SessionCommands.NcCodeCommand.html","topicUid":"Hi.SessionCommands.NcCodeCommand","type":"Class"},{"name":"NcFileCommand","href":"Hi.SessionCommands.NcFileCommand.html","topicHref":"Hi.SessionCommands.NcFileCommand.html","topicUid":"Hi.SessionCommands.NcFileCommand","type":"Class"},{"name":"NcFileListCommand","href":"Hi.SessionCommands.NcFileListCommand.html","topicHref":"Hi.SessionCommands.NcFileListCommand.html","topicUid":"Hi.SessionCommands.NcFileListCommand","type":"Class"},{"name":"NcOptOptionCommand","href":"Hi.SessionCommands.NcOptOptionCommand.html","topicHref":"Hi.SessionCommands.NcOptOptionCommand.html","topicUid":"Hi.SessionCommands.NcOptOptionCommand","type":"Class"},{"name":"OptimizeToFilesCommand","href":"Hi.SessionCommands.OptimizeToFilesCommand.html","topicHref":"Hi.SessionCommands.OptimizeToFilesCommand.html","topicUid":"Hi.SessionCommands.OptimizeToFilesCommand","type":"Class"},{"name":"PostExecutionCommand","href":"Hi.SessionCommands.PostExecutionCommand.html","topicHref":"Hi.SessionCommands.PostExecutionCommand.html","topicUid":"Hi.SessionCommands.PostExecutionCommand","type":"Class"},{"name":"PreSettingCommand","href":"Hi.SessionCommands.PreSettingCommand.html","topicHref":"Hi.SessionCommands.PreSettingCommand.html","topicUid":"Hi.SessionCommands.PreSettingCommand","type":"Class"},{"name":"RecordRuntimeGeomActionEnum","href":"Hi.SessionCommands.RecordRuntimeGeomActionEnum.html","topicHref":"Hi.SessionCommands.RecordRuntimeGeomActionEnum.html","topicUid":"Hi.SessionCommands.RecordRuntimeGeomActionEnum","type":"Enum"},{"name":"RecordRuntimeGeomCommand","href":"Hi.SessionCommands.RecordRuntimeGeomCommand.html","topicHref":"Hi.SessionCommands.RecordRuntimeGeomCommand.html","topicUid":"Hi.SessionCommands.RecordRuntimeGeomCommand","type":"Class"},{"name":"ScriptCommand","href":"Hi.SessionCommands.ScriptCommand.html","topicHref":"Hi.SessionCommands.ScriptCommand.html","topicUid":"Hi.SessionCommands.ScriptCommand","type":"Class"},{"name":"SimpleSessionCommand","href":"Hi.SessionCommands.SimpleSessionCommand.html","topicHref":"Hi.SessionCommands.SimpleSessionCommand.html","topicUid":"Hi.SessionCommands.SimpleSessionCommand","type":"Class"},{"name":"WriteRuntimeGeomToStlCommand","href":"Hi.SessionCommands.WriteRuntimeGeomToStlCommand.html","topicHref":"Hi.SessionCommands.WriteRuntimeGeomToStlCommand.html","topicUid":"Hi.SessionCommands.WriteRuntimeGeomToStlCommand","type":"Class"},{"name":"WriteShotFilesCommand","href":"Hi.SessionCommands.WriteShotFilesCommand.html","topicHref":"Hi.SessionCommands.WriteShotFilesCommand.html","topicUid":"Hi.SessionCommands.WriteShotFilesCommand","type":"Class"},{"name":"WriteStepFilesCommand","href":"Hi.SessionCommands.WriteStepFilesCommand.html","topicHref":"Hi.SessionCommands.WriteStepFilesCommand.html","topicUid":"Hi.SessionCommands.WriteStepFilesCommand","type":"Class"}]},{"name":"Hi.SessionShellUtils","href":"Hi.SessionShellUtils.html","topicHref":"Hi.SessionShellUtils.html","topicUid":"Hi.SessionShellUtils","type":"Namespace","items":[{"name":"ISessionShell","href":"Hi.SessionShellUtils.ISessionShell.html","topicHref":"Hi.SessionShellUtils.ISessionShell.html","topicUid":"Hi.SessionShellUtils.ISessionShell","type":"Interface"},{"name":"JsAceAttribute","href":"Hi.SessionShellUtils.JsAceAttribute.html","topicHref":"Hi.SessionShellUtils.JsAceAttribute.html","topicUid":"Hi.SessionShellUtils.JsAceAttribute","type":"Class"}]},{"name":"Hi.SqliteUtils","href":"Hi.SqliteUtils.html","topicHref":"Hi.SqliteUtils.html","topicUid":"Hi.SqliteUtils","type":"Namespace","items":[{"name":"SqliteIdentityRole","href":"Hi.SqliteUtils.SqliteIdentityRole.html","topicHref":"Hi.SqliteUtils.SqliteIdentityRole.html","topicUid":"Hi.SqliteUtils.SqliteIdentityRole","type":"Class"},{"name":"SqliteIdentityStorage","href":"Hi.SqliteUtils.SqliteIdentityStorage.html","topicHref":"Hi.SqliteUtils.SqliteIdentityStorage.html","topicUid":"Hi.SqliteUtils.SqliteIdentityStorage","type":"Class"},{"name":"SqliteIdentityStorage.RoleRow","href":"Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.html","topicHref":"Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.html","topicUid":"Hi.SqliteUtils.SqliteIdentityStorage.RoleRow","type":"Class"},{"name":"SqliteIdentityStorage.UserRow","href":"Hi.SqliteUtils.SqliteIdentityStorage.UserRow.html","topicHref":"Hi.SqliteUtils.SqliteIdentityStorage.UserRow.html","topicUid":"Hi.SqliteUtils.SqliteIdentityStorage.UserRow","type":"Class"},{"name":"SqliteIdentityUser","href":"Hi.SqliteUtils.SqliteIdentityUser.html","topicHref":"Hi.SqliteUtils.SqliteIdentityUser.html","topicUid":"Hi.SqliteUtils.SqliteIdentityUser","type":"Class"},{"name":"SqliteRoleStore","href":"Hi.SqliteUtils.SqliteRoleStore-1.html","topicHref":"Hi.SqliteUtils.SqliteRoleStore-1.html","topicUid":"Hi.SqliteUtils.SqliteRoleStore`1","type":"Class"},{"name":"SqliteStepStorage","href":"Hi.SqliteUtils.SqliteStepStorage.html","topicHref":"Hi.SqliteUtils.SqliteStepStorage.html","topicUid":"Hi.SqliteUtils.SqliteStepStorage","type":"Class"},{"name":"SqliteStepStorage.MillingStepLuggageRow","href":"Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow.html","topicHref":"Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow.html","topicUid":"Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow","type":"Class"},{"name":"SqliteUserStore","href":"Hi.SqliteUtils.SqliteUserStore-1.html","topicHref":"Hi.SqliteUtils.SqliteUserStore-1.html","topicUid":"Hi.SqliteUtils.SqliteUserStore`1","type":"Class"}]},{"name":"Hi.Test","href":"Hi.Test.html","topicHref":"Hi.Test.html","topicUid":"Hi.Test","type":"Namespace","items":[{"name":"TestCollision","href":"Hi.Test.TestCollision.html","topicHref":"Hi.Test.TestCollision.html","topicUid":"Hi.Test.TestCollision","type":"Class"}]},{"name":"Hi.UiExtensions","href":"Hi.UiExtensions.html","topicHref":"Hi.UiExtensions.html","topicUid":"Hi.UiExtensions","type":"Namespace","items":[{"name":"ChartBoundary","href":"Hi.UiExtensions.ChartBoundary.html","topicHref":"Hi.UiExtensions.ChartBoundary.html","topicUid":"Hi.UiExtensions.ChartBoundary","type":"Class"},{"name":"ChartBoundaryEnum","href":"Hi.UiExtensions.ChartBoundaryEnum.html","topicHref":"Hi.UiExtensions.ChartBoundaryEnum.html","topicUid":"Hi.UiExtensions.ChartBoundaryEnum","type":"Enum"},{"name":"NativeVisibility","href":"Hi.UiExtensions.NativeVisibility.html","topicHref":"Hi.UiExtensions.NativeVisibility.html","topicUid":"Hi.UiExtensions.NativeVisibility","type":"Enum"},{"name":"UiUtil","href":"Hi.UiExtensions.UiUtil.html","topicHref":"Hi.UiExtensions.UiUtil.html","topicUid":"Hi.UiExtensions.UiUtil","type":"Class"},{"name":"UiUtil.InvokeFunc","href":"Hi.UiExtensions.UiUtil.InvokeFunc.html","topicHref":"Hi.UiExtensions.UiUtil.InvokeFunc.html","topicUid":"Hi.UiExtensions.UiUtil.InvokeFunc","type":"Delegate"}]},{"name":"Hi.UniversalNc","href":"Hi.UniversalNc.html","topicHref":"Hi.UniversalNc.html","topicUid":"Hi.UniversalNc","type":"Namespace","items":[{"name":"Lang","href":"Hi.UniversalNc.Lang.html","topicHref":"Hi.UniversalNc.Lang.html","topicUid":"Hi.UniversalNc.Lang","type":"Class"}]},{"name":"Hi.Vibrations","href":"Hi.Vibrations.html","topicHref":"Hi.Vibrations.html","topicUid":"Hi.Vibrations","type":"Namespace","items":[{"name":"AngularVelocityUtil","href":"Hi.Vibrations.AngularVelocityUtil.html","topicHref":"Hi.Vibrations.AngularVelocityUtil.html","topicUid":"Hi.Vibrations.AngularVelocityUtil","type":"Class"},{"name":"ForceAccelAmpPhase","href":"Hi.Vibrations.ForceAccelAmpPhase.html","topicHref":"Hi.Vibrations.ForceAccelAmpPhase.html","topicUid":"Hi.Vibrations.ForceAccelAmpPhase","type":"Class"},{"name":"ForceAccelFourierSeries","href":"Hi.Vibrations.ForceAccelFourierSeries.html","topicHref":"Hi.Vibrations.ForceAccelFourierSeries.html","topicUid":"Hi.Vibrations.ForceAccelFourierSeries","type":"Class"},{"name":"ForceAccelShot","href":"Hi.Vibrations.ForceAccelShot.html","topicHref":"Hi.Vibrations.ForceAccelShot.html","topicUid":"Hi.Vibrations.ForceAccelShot","type":"Class"},{"name":"ForceAccelUtil","href":"Hi.Vibrations.ForceAccelUtil.html","topicHref":"Hi.Vibrations.ForceAccelUtil.html","topicUid":"Hi.Vibrations.ForceAccelUtil","type":"Class"},{"name":"IAngularVelocityOwner","href":"Hi.Vibrations.IAngularVelocityOwner.html","topicHref":"Hi.Vibrations.IAngularVelocityOwner.html","topicUid":"Hi.Vibrations.IAngularVelocityOwner","type":"Interface"},{"name":"VibrationUtil","href":"Hi.Vibrations.VibrationUtil.html","topicHref":"Hi.Vibrations.VibrationUtil.html","topicUid":"Hi.Vibrations.VibrationUtil","type":"Class"},{"name":"WAmpPhase","href":"Hi.Vibrations.WAmpPhase.html","topicHref":"Hi.Vibrations.WAmpPhase.html","topicUid":"Hi.Vibrations.WAmpPhase","type":"Class"},{"name":"WAmpPhaseXyzTransformation","href":"Hi.Vibrations.WAmpPhaseXyzTransformation.html","topicHref":"Hi.Vibrations.WAmpPhaseXyzTransformation.html","topicUid":"Hi.Vibrations.WAmpPhaseXyzTransformation","type":"Class"}]},{"name":"Hi.WinForm.Disp","href":"Hi.WinForm.Disp.html","topicHref":"Hi.WinForm.Disp.html","topicUid":"Hi.WinForm.Disp","type":"Namespace","items":[{"name":"RenderingCanvas","href":"Hi.WinForm.Disp.RenderingCanvas.html","topicHref":"Hi.WinForm.Disp.RenderingCanvas.html","topicUid":"Hi.WinForm.Disp.RenderingCanvas","type":"Class"},{"name":"RenderingForm","href":"Hi.WinForm.Disp.RenderingForm.html","topicHref":"Hi.WinForm.Disp.RenderingForm.html","topicUid":"Hi.WinForm.Disp.RenderingForm","type":"Class"}]},{"name":"Hi.WpfPlus.Disp","href":"Hi.WpfPlus.Disp.html","topicHref":"Hi.WpfPlus.Disp.html","topicUid":"Hi.WpfPlus.Disp","type":"Namespace","items":[{"name":"RenderingCanvas","href":"Hi.WpfPlus.Disp.RenderingCanvas.html","topicHref":"Hi.WpfPlus.Disp.RenderingCanvas.html","topicUid":"Hi.WpfPlus.Disp.RenderingCanvas","type":"Class"},{"name":"RenderingWindow","href":"Hi.WpfPlus.Disp.RenderingWindow.html","topicHref":"Hi.WpfPlus.Disp.RenderingWindow.html","topicUid":"Hi.WpfPlus.Disp.RenderingWindow","type":"Class"},{"name":"WpfDispUtil","href":"Hi.WpfPlus.Disp.WpfDispUtil.html","topicHref":"Hi.WpfPlus.Disp.WpfDispUtil.html","topicUid":"Hi.WpfPlus.Disp.WpfDispUtil","type":"Class"}]},{"name":"HiMachining.Milling","href":"HiMachining.Milling.html","topicHref":"HiMachining.Milling.html","topicUid":"HiMachining.Milling","type":"Namespace","items":[{"name":"ClMillingDevice","href":"HiMachining.Milling.ClMillingDevice.html","topicHref":"HiMachining.Milling.ClMillingDevice.html","topicUid":"HiMachining.Milling.ClMillingDevice","type":"Class"}]},{"name":"HiNc.Grpcs","href":"HiNc.Grpcs.html","topicHref":"HiNc.Grpcs.html","topicUid":"HiNc.Grpcs","type":"Namespace","items":[{"name":"MachiningProjectGrpcServer","href":"HiNc.Grpcs.MachiningProjectGrpcServer.html","topicHref":"HiNc.Grpcs.MachiningProjectGrpcServer.html","topicUid":"HiNc.Grpcs.MachiningProjectGrpcServer","type":"Class"}]},{"name":"numerical","href":"numerical.html","topicHref":"numerical.html","topicUid":"numerical","type":"Namespace","items":[{"name":"Empty","href":"numerical.Empty.html","topicHref":"numerical.Empty.html","topicUid":"numerical.Empty","type":"Class"},{"name":"GrpcCsvRowDictionary","href":"numerical.GrpcCsvRowDictionary.html","topicHref":"numerical.GrpcCsvRowDictionary.html","topicUid":"numerical.GrpcCsvRowDictionary","type":"Class"},{"name":"GrpcNcStep","href":"numerical.GrpcNcStep.html","topicHref":"numerical.GrpcNcStep.html","topicUid":"numerical.GrpcNcStep","type":"Class"},{"name":"NumericalReflection","href":"numerical.NumericalReflection.html","topicHref":"numerical.NumericalReflection.html","topicUid":"numerical.NumericalReflection","type":"Class"},{"name":"NumericalService","href":"numerical.NumericalService.html","topicHref":"numerical.NumericalService.html","topicUid":"numerical.NumericalService","type":"Class"},{"name":"NumericalService.NumericalServiceBase","href":"numerical.NumericalService.NumericalServiceBase.html","topicHref":"numerical.NumericalService.NumericalServiceBase.html","topicUid":"numerical.NumericalService.NumericalServiceBase","type":"Class"},{"name":"NumericalService.NumericalServiceClient","href":"numerical.NumericalService.NumericalServiceClient.html","topicHref":"numerical.NumericalService.NumericalServiceClient.html","topicUid":"numerical.NumericalService.NumericalServiceClient","type":"Class"},{"name":"UniversalNcReflection","href":"numerical.UniversalNcReflection.html","topicHref":"numerical.UniversalNcReflection.html","topicUid":"numerical.UniversalNcReflection","type":"Class"},{"name":"UniversalNcService","href":"numerical.UniversalNcService.html","topicHref":"numerical.UniversalNcService.html","topicUid":"numerical.UniversalNcService","type":"Class"},{"name":"UniversalNcService.UniversalNcServiceBase","href":"numerical.UniversalNcService.UniversalNcServiceBase.html","topicHref":"numerical.UniversalNcService.UniversalNcServiceBase.html","topicUid":"numerical.UniversalNcService.UniversalNcServiceBase","type":"Class"},{"name":"UniversalNcService.UniversalNcServiceClient","href":"numerical.UniversalNcService.UniversalNcServiceClient.html","topicHref":"numerical.UniversalNcService.UniversalNcServiceClient.html","topicUid":"numerical.UniversalNcService.UniversalNcServiceClient","type":"Class"}]}],"memberLayout":"SamePage"} +{"items":[{"name":"Hi.Cbtr","href":"Hi.Cbtr.html","topicHref":"Hi.Cbtr.html","topicUid":"Hi.Cbtr","type":"Namespace","items":[{"name":"CachedTris","href":"Hi.Cbtr.CachedTris.html","topicHref":"Hi.Cbtr.CachedTris.html","topicUid":"Hi.Cbtr.CachedTris","type":"Class"},{"name":"CachedTris.SweepingMode","href":"Hi.Cbtr.CachedTris.SweepingMode.html","topicHref":"Hi.Cbtr.CachedTris.SweepingMode.html","topicUid":"Hi.Cbtr.CachedTris.SweepingMode","type":"Enum"},{"name":"CbtrPickable","href":"Hi.Cbtr.CbtrPickable.html","topicHref":"Hi.Cbtr.CbtrPickable.html","topicUid":"Hi.Cbtr.CbtrPickable","type":"Class"},{"name":"ConstructionDefectDisplayee","href":"Hi.Cbtr.ConstructionDefectDisplayee.html","topicHref":"Hi.Cbtr.ConstructionDefectDisplayee.html","topicUid":"Hi.Cbtr.ConstructionDefectDisplayee","type":"Class"},{"name":"CubeTree","href":"Hi.Cbtr.CubeTree.html","topicHref":"Hi.Cbtr.CubeTree.html","topicUid":"Hi.Cbtr.CubeTree","type":"Class"},{"name":"CubeTree.DefectNodeInfo","href":"Hi.Cbtr.CubeTree.DefectNodeInfo.html","topicHref":"Hi.Cbtr.CubeTree.DefectNodeInfo.html","topicUid":"Hi.Cbtr.CubeTree.DefectNodeInfo","type":"Class"},{"name":"CubeTree.DefectNodeInfo.TriWireInfo","href":"Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo.html","topicHref":"Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo.html","topicUid":"Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo","type":"Class"},{"name":"CubeTree.DefectTriWireInfoInterop","href":"Hi.Cbtr.CubeTree.DefectTriWireInfoInterop.html","topicHref":"Hi.Cbtr.CubeTree.DefectTriWireInfoInterop.html","topicUid":"Hi.Cbtr.CubeTree.DefectTriWireInfoInterop","type":"Struct"},{"name":"CubeTree.InfNodeInfo","href":"Hi.Cbtr.CubeTree.InfNodeInfo.html","topicHref":"Hi.Cbtr.CubeTree.InfNodeInfo.html","topicUid":"Hi.Cbtr.CubeTree.InfNodeInfo","type":"Class"},{"name":"CubeTree.TriWireRelationInterop","href":"Hi.Cbtr.CubeTree.TriWireRelationInterop.html","topicHref":"Hi.Cbtr.CubeTree.TriWireRelationInterop.html","topicUid":"Hi.Cbtr.CubeTree.TriWireRelationInterop","type":"Struct"},{"name":"CubeTree.diff_response_func_t","href":"Hi.Cbtr.CubeTree.diff_response_func_t.html","topicHref":"Hi.Cbtr.CubeTree.diff_response_func_t.html","topicUid":"Hi.Cbtr.CubeTree.diff_response_func_t","type":"Delegate"},{"name":"CubeTreeExportExtensions","href":"Hi.Cbtr.CubeTreeExportExtensions.html","topicHref":"Hi.Cbtr.CubeTreeExportExtensions.html","topicUid":"Hi.Cbtr.CubeTreeExportExtensions","type":"Class"},{"name":"CubeTreeFile","href":"Hi.Cbtr.CubeTreeFile.html","topicHref":"Hi.Cbtr.CubeTreeFile.html","topicUid":"Hi.Cbtr.CubeTreeFile","type":"Class"},{"name":"DiffAttachment","href":"Hi.Cbtr.DiffAttachment.html","topicHref":"Hi.Cbtr.DiffAttachment.html","topicUid":"Hi.Cbtr.DiffAttachment","type":"Class"},{"name":"GeomBoolCache","href":"Hi.Cbtr.GeomBoolCache.html","topicHref":"Hi.Cbtr.GeomBoolCache.html","topicUid":"Hi.Cbtr.GeomBoolCache","type":"Class"},{"name":"GeomBoolCacheEnum","href":"Hi.Cbtr.GeomBoolCacheEnum.html","topicHref":"Hi.Cbtr.GeomBoolCacheEnum.html","topicUid":"Hi.Cbtr.GeomBoolCacheEnum","type":"Enum"},{"name":"IGetInitStickConvex","href":"Hi.Cbtr.IGetInitStickConvex.html","topicHref":"Hi.Cbtr.IGetInitStickConvex.html","topicUid":"Hi.Cbtr.IGetInitStickConvex","type":"Interface"},{"name":"InfDefectDisplayee","href":"Hi.Cbtr.InfDefectDisplayee.html","topicHref":"Hi.Cbtr.InfDefectDisplayee.html","topicUid":"Hi.Cbtr.InfDefectDisplayee","type":"Class"},{"name":"InitStickConvex","href":"Hi.Cbtr.InitStickConvex.html","topicHref":"Hi.Cbtr.InitStickConvex.html","topicUid":"Hi.Cbtr.InitStickConvex","type":"Class"},{"name":"LsStl","href":"Hi.Cbtr.LsStl.html","topicHref":"Hi.Cbtr.LsStl.html","topicUid":"Hi.Cbtr.LsStl","type":"Class"},{"name":"Substraction","href":"Hi.Cbtr.Substraction.html","topicHref":"Hi.Cbtr.Substraction.html","topicUid":"Hi.Cbtr.Substraction","type":"Class"},{"name":"UnhighlightablePickable","href":"Hi.Cbtr.UnhighlightablePickable.html","topicHref":"Hi.Cbtr.UnhighlightablePickable.html","topicUid":"Hi.Cbtr.UnhighlightablePickable","type":"Class"},{"name":"UnmanagedSubstraction","href":"Hi.Cbtr.UnmanagedSubstraction.html","topicHref":"Hi.Cbtr.UnmanagedSubstraction.html","topicUid":"Hi.Cbtr.UnmanagedSubstraction","type":"Class"},{"name":"WireCube","href":"Hi.Cbtr.WireCube.html","topicHref":"Hi.Cbtr.WireCube.html","topicUid":"Hi.Cbtr.WireCube","type":"Class"},{"name":"node_diff_t","href":"Hi.Cbtr.node_diff_t.html","topicHref":"Hi.Cbtr.node_diff_t.html","topicUid":"Hi.Cbtr.node_diff_t","type":"Struct"}]},{"name":"Hi.Collision","href":"Hi.Collision.html","topicHref":"Hi.Collision.html","topicUid":"Hi.Collision","type":"Namespace","items":[{"name":"AnchoredCollidableLeaf","href":"Hi.Collision.AnchoredCollidableLeaf.html","topicHref":"Hi.Collision.AnchoredCollidableLeaf.html","topicUid":"Hi.Collision.AnchoredCollidableLeaf","type":"Class"},{"name":"AnchoredCollidablePair","href":"Hi.Collision.AnchoredCollidablePair.html","topicHref":"Hi.Collision.AnchoredCollidablePair.html","topicUid":"Hi.Collision.AnchoredCollidablePair","type":"Class"},{"name":"CollidableStl","href":"Hi.Collision.CollidableStl.html","topicHref":"Hi.Collision.CollidableStl.html","topicUid":"Hi.Collision.CollidableStl","type":"Class"},{"name":"CollisionFlag","href":"Hi.Collision.CollisionFlag.html","topicHref":"Hi.Collision.CollisionFlag.html","topicUid":"Hi.Collision.CollisionFlag","type":"Enum"},{"name":"CollisionIndexPair","href":"Hi.Collision.CollisionIndexPair.html","topicHref":"Hi.Collision.CollisionIndexPair.html","topicUid":"Hi.Collision.CollisionIndexPair","type":"Class"},{"name":"CollisionUtil","href":"Hi.Collision.CollisionUtil.html","topicHref":"Hi.Collision.CollisionUtil.html","topicUid":"Hi.Collision.CollisionUtil","type":"Class"},{"name":"FuncAnchoredCollidable","href":"Hi.Collision.FuncAnchoredCollidable.html","topicHref":"Hi.Collision.FuncAnchoredCollidable.html","topicUid":"Hi.Collision.FuncAnchoredCollidable","type":"Class"},{"name":"IAnchoredCollidableBased","href":"Hi.Collision.IAnchoredCollidableBased.html","topicHref":"Hi.Collision.IAnchoredCollidableBased.html","topicUid":"Hi.Collision.IAnchoredCollidableBased","type":"Interface"},{"name":"IAnchoredCollidableLeaf","href":"Hi.Collision.IAnchoredCollidableLeaf.html","topicHref":"Hi.Collision.IAnchoredCollidableLeaf.html","topicUid":"Hi.Collision.IAnchoredCollidableLeaf","type":"Interface"},{"name":"IAnchoredCollidableNode","href":"Hi.Collision.IAnchoredCollidableNode.html","topicHref":"Hi.Collision.IAnchoredCollidableNode.html","topicUid":"Hi.Collision.IAnchoredCollidableNode","type":"Interface"},{"name":"IAnchoredCollidableStem","href":"Hi.Collision.IAnchoredCollidableStem.html","topicHref":"Hi.Collision.IAnchoredCollidableStem.html","topicUid":"Hi.Collision.IAnchoredCollidableStem","type":"Interface"},{"name":"ICollidable","href":"Hi.Collision.ICollidable.html","topicHref":"Hi.Collision.ICollidable.html","topicUid":"Hi.Collision.ICollidable","type":"Interface"},{"name":"ICollidee","href":"Hi.Collision.ICollidee.html","topicHref":"Hi.Collision.ICollidee.html","topicUid":"Hi.Collision.ICollidee","type":"Interface"},{"name":"ICollisionArena","href":"Hi.Collision.ICollisionArena.html","topicHref":"Hi.Collision.ICollisionArena.html","topicUid":"Hi.Collision.ICollisionArena","type":"Interface"},{"name":"ICollisionIndex","href":"Hi.Collision.ICollisionIndex.html","topicHref":"Hi.Collision.ICollisionIndex.html","topicUid":"Hi.Collision.ICollisionIndex","type":"Interface"},{"name":"IGetAnchoredCollidablePairs","href":"Hi.Collision.IGetAnchoredCollidablePairs.html","topicHref":"Hi.Collision.IGetAnchoredCollidablePairs.html","topicUid":"Hi.Collision.IGetAnchoredCollidablePairs","type":"Interface"},{"name":"IGetCollidable","href":"Hi.Collision.IGetCollidable.html","topicHref":"Hi.Collision.IGetCollidable.html","topicUid":"Hi.Collision.IGetCollidable","type":"Interface"},{"name":"IGetCollisionIndexPairs","href":"Hi.Collision.IGetCollisionIndexPairs.html","topicHref":"Hi.Collision.IGetCollisionIndexPairs.html","topicUid":"Hi.Collision.IGetCollisionIndexPairs","type":"Interface"},{"name":"IGetDefaultCollidablePairs","href":"Hi.Collision.IGetDefaultCollidablePairs.html","topicHref":"Hi.Collision.IGetDefaultCollidablePairs.html","topicUid":"Hi.Collision.IGetDefaultCollidablePairs","type":"Interface"},{"name":"IGetTriTree","href":"Hi.Collision.IGetTriTree.html","topicHref":"Hi.Collision.IGetTriTree.html","topicUid":"Hi.Collision.IGetTriTree","type":"Interface"},{"name":"MechCollisionResult","href":"Hi.Collision.MechCollisionResult.html","topicHref":"Hi.Collision.MechCollisionResult.html","topicUid":"Hi.Collision.MechCollisionResult","type":"Class"},{"name":"MechCollisionUtil","href":"Hi.Collision.MechCollisionUtil.html","topicHref":"Hi.Collision.MechCollisionUtil.html","topicUid":"Hi.Collision.MechCollisionUtil","type":"Class"},{"name":"TriTree","href":"Hi.Collision.TriTree.html","topicHref":"Hi.Collision.TriTree.html","topicUid":"Hi.Collision.TriTree","type":"Class"}]},{"name":"Hi.Collisions","href":"Hi.Collisions.html","topicHref":"Hi.Collisions.html","topicUid":"Hi.Collisions","type":"Namespace","items":[{"name":"AnchoredCollidabled","href":"Hi.Collisions.AnchoredCollidabled.html","topicHref":"Hi.Collisions.AnchoredCollidabled.html","topicUid":"Hi.Collisions.AnchoredCollidabled","type":"Class"},{"name":"IAnchoredCollidabled","href":"Hi.Collisions.IAnchoredCollidabled.html","topicHref":"Hi.Collisions.IAnchoredCollidabled.html","topicUid":"Hi.Collisions.IAnchoredCollidabled","type":"Interface"}]},{"name":"Hi.Coloring","href":"Hi.Coloring.html","topicHref":"Hi.Coloring.html","topicUid":"Hi.Coloring","type":"Namespace","items":[{"name":"ColorUtil","href":"Hi.Coloring.ColorUtil.html","topicHref":"Hi.Coloring.ColorUtil.html","topicUid":"Hi.Coloring.ColorUtil","type":"Class"},{"name":"DictionaryColorGuide","href":"Hi.Coloring.DictionaryColorGuide.html","topicHref":"Hi.Coloring.DictionaryColorGuide.html","topicUid":"Hi.Coloring.DictionaryColorGuide","type":"Class"},{"name":"DiscreteQuantityColorGuide","href":"Hi.Coloring.DiscreteQuantityColorGuide.html","topicHref":"Hi.Coloring.DiscreteQuantityColorGuide.html","topicUid":"Hi.Coloring.DiscreteQuantityColorGuide","type":"Class"},{"name":"FilteredColorGuide","href":"Hi.Coloring.FilteredColorGuide.html","topicHref":"Hi.Coloring.FilteredColorGuide.html","topicUid":"Hi.Coloring.FilteredColorGuide","type":"Class"},{"name":"FuncRangeColorGuide","href":"Hi.Coloring.FuncRangeColorGuide.html","topicHref":"Hi.Coloring.FuncRangeColorGuide.html","topicUid":"Hi.Coloring.FuncRangeColorGuide","type":"Class"},{"name":"IColorGuide","href":"Hi.Coloring.IColorGuide.html","topicHref":"Hi.Coloring.IColorGuide.html","topicUid":"Hi.Coloring.IColorGuide","type":"Interface"},{"name":"IColorGuideProperty","href":"Hi.Coloring.IColorGuideProperty.html","topicHref":"Hi.Coloring.IColorGuideProperty.html","topicUid":"Hi.Coloring.IColorGuideProperty","type":"Interface"},{"name":"IGetColorGuide","href":"Hi.Coloring.IGetColorGuide.html","topicHref":"Hi.Coloring.IGetColorGuide.html","topicUid":"Hi.Coloring.IGetColorGuide","type":"Interface"},{"name":"IGetRangeColorRule","href":"Hi.Coloring.IGetRangeColorRule.html","topicHref":"Hi.Coloring.IGetRangeColorRule.html","topicUid":"Hi.Coloring.IGetRangeColorRule","type":"Interface"},{"name":"IGetRgb","href":"Hi.Coloring.IGetRgb.html","topicHref":"Hi.Coloring.IGetRgb.html","topicUid":"Hi.Coloring.IGetRgb","type":"Interface"},{"name":"IGetRgbWithPriority","href":"Hi.Coloring.IGetRgbWithPriority.html","topicHref":"Hi.Coloring.IGetRgbWithPriority.html","topicUid":"Hi.Coloring.IGetRgbWithPriority","type":"Interface"},{"name":"PlainColorGuide","href":"Hi.Coloring.PlainColorGuide.html","topicHref":"Hi.Coloring.PlainColorGuide.html","topicUid":"Hi.Coloring.PlainColorGuide","type":"Class"},{"name":"QuantityColorGuide","href":"Hi.Coloring.QuantityColorGuide.html","topicHref":"Hi.Coloring.QuantityColorGuide.html","topicUid":"Hi.Coloring.QuantityColorGuide","type":"Class"},{"name":"RangeColorRule","href":"Hi.Coloring.RangeColorRule.html","topicHref":"Hi.Coloring.RangeColorRule.html","topicUid":"Hi.Coloring.RangeColorRule","type":"Class"},{"name":"RatioRgbFuncEnum","href":"Hi.Coloring.RatioRgbFuncEnum.html","topicHref":"Hi.Coloring.RatioRgbFuncEnum.html","topicUid":"Hi.Coloring.RatioRgbFuncEnum","type":"Enum"},{"name":"RgbSeed","href":"Hi.Coloring.RgbSeed.html","topicHref":"Hi.Coloring.RgbSeed.html","topicUid":"Hi.Coloring.RgbSeed","type":"Class"}]},{"name":"Hi.Common","href":"Hi.Common.html","topicHref":"Hi.Common.html","topicUid":"Hi.Common","type":"Namespace","items":[{"name":"BinIoUtil","href":"Hi.Common.BinIoUtil.html","topicHref":"Hi.Common.BinIoUtil.html","topicUid":"Hi.Common.BinIoUtil","type":"Class"},{"name":"BitUtil","href":"Hi.Common.BitUtil.html","topicHref":"Hi.Common.BitUtil.html","topicUid":"Hi.Common.BitUtil","type":"Class"},{"name":"BlockingTimer","href":"Hi.Common.BlockingTimer.html","topicHref":"Hi.Common.BlockingTimer.html","topicUid":"Hi.Common.BlockingTimer","type":"Class"},{"name":"BytesUtil","href":"Hi.Common.BytesUtil.html","topicHref":"Hi.Common.BytesUtil.html","topicUid":"Hi.Common.BytesUtil","type":"Class"},{"name":"ConcurrentTimeCounter","href":"Hi.Common.ConcurrentTimeCounter.html","topicHref":"Hi.Common.ConcurrentTimeCounter.html","topicUid":"Hi.Common.ConcurrentTimeCounter","type":"Class"},{"name":"ConsoleUtil","href":"Hi.Common.ConsoleUtil.html","topicHref":"Hi.Common.ConsoleUtil.html","topicUid":"Hi.Common.ConsoleUtil","type":"Class"},{"name":"CppLogUtil","href":"Hi.Common.CppLogUtil.html","topicHref":"Hi.Common.CppLogUtil.html","topicUid":"Hi.Common.CppLogUtil","type":"Class"},{"name":"CppLogUtil.LogDelegate","href":"Hi.Common.CppLogUtil.LogDelegate.html","topicHref":"Hi.Common.CppLogUtil.LogDelegate.html","topicUid":"Hi.Common.CppLogUtil.LogDelegate","type":"Delegate"},{"name":"CultureUtil","href":"Hi.Common.CultureUtil.html","topicHref":"Hi.Common.CultureUtil.html","topicUid":"Hi.Common.CultureUtil","type":"Class"},{"name":"DuplicateUtil","href":"Hi.Common.DuplicateUtil.html","topicHref":"Hi.Common.DuplicateUtil.html","topicUid":"Hi.Common.DuplicateUtil","type":"Class"},{"name":"EnumUtil","href":"Hi.Common.EnumUtil.html","topicHref":"Hi.Common.EnumUtil.html","topicUid":"Hi.Common.EnumUtil","type":"Class"},{"name":"EnumerablePlayer","href":"Hi.Common.EnumerablePlayer.html","topicHref":"Hi.Common.EnumerablePlayer.html","topicUid":"Hi.Common.EnumerablePlayer","type":"Class"},{"name":"IAbstractNote","href":"Hi.Common.IAbstractNote.html","topicHref":"Hi.Common.IAbstractNote.html","topicUid":"Hi.Common.IAbstractNote","type":"Interface"},{"name":"IBinaryIo","href":"Hi.Common.IBinaryIo.html","topicHref":"Hi.Common.IBinaryIo.html","topicUid":"Hi.Common.IBinaryIo","type":"Interface"},{"name":"IClearCache","href":"Hi.Common.IClearCache.html","topicHref":"Hi.Common.IClearCache.html","topicUid":"Hi.Common.IClearCache","type":"Interface"},{"name":"IDuplicate","href":"Hi.Common.IDuplicate.html","topicHref":"Hi.Common.IDuplicate.html","topicUid":"Hi.Common.IDuplicate","type":"Interface"},{"name":"IGetQuantityByKey","href":"Hi.Common.IGetQuantityByKey.html","topicHref":"Hi.Common.IGetQuantityByKey.html","topicUid":"Hi.Common.IGetQuantityByKey","type":"Interface"},{"name":"IGetSelectionName","href":"Hi.Common.IGetSelectionName.html","topicHref":"Hi.Common.IGetSelectionName.html","topicUid":"Hi.Common.IGetSelectionName","type":"Interface"},{"name":"INameNote","href":"Hi.Common.INameNote.html","topicHref":"Hi.Common.INameNote.html","topicUid":"Hi.Common.INameNote","type":"Interface"},{"name":"IPreferredFileName","href":"Hi.Common.IPreferredFileName.html","topicHref":"Hi.Common.IPreferredFileName.html","topicUid":"Hi.Common.IPreferredFileName","type":"Interface"},{"name":"IProgressFraction","href":"Hi.Common.IProgressFraction.html","topicHref":"Hi.Common.IProgressFraction.html","topicUid":"Hi.Common.IProgressFraction","type":"Interface"},{"name":"ISourceFile","href":"Hi.Common.ISourceFile.html","topicHref":"Hi.Common.ISourceFile.html","topicUid":"Hi.Common.ISourceFile","type":"Interface"},{"name":"IToPresentDto","href":"Hi.Common.IToPresentDto.html","topicHref":"Hi.Common.IToPresentDto.html","topicUid":"Hi.Common.IToPresentDto","type":"Interface"},{"name":"IUpdateByContent","href":"Hi.Common.IUpdateByContent.html","topicHref":"Hi.Common.IUpdateByContent.html","topicUid":"Hi.Common.IUpdateByContent","type":"Interface"},{"name":"IUriGetter","href":"Hi.Common.IUriGetter.html","topicHref":"Hi.Common.IUriGetter.html","topicUid":"Hi.Common.IUriGetter","type":"Interface"},{"name":"IWriteBin","href":"Hi.Common.IWriteBin.html","topicHref":"Hi.Common.IWriteBin.html","topicUid":"Hi.Common.IWriteBin","type":"Interface"},{"name":"IndexSegment","href":"Hi.Common.IndexSegment.html","topicHref":"Hi.Common.IndexSegment.html","topicUid":"Hi.Common.IndexSegment","type":"Class"},{"name":"IntegerKeyDictionaryConverter","href":"Hi.Common.IntegerKeyDictionaryConverter.html","topicHref":"Hi.Common.IntegerKeyDictionaryConverter.html","topicUid":"Hi.Common.IntegerKeyDictionaryConverter","type":"Class"},{"name":"IntegerKeyDictionaryConverter","href":"Hi.Common.IntegerKeyDictionaryConverter-1.html","topicHref":"Hi.Common.IntegerKeyDictionaryConverter-1.html","topicUid":"Hi.Common.IntegerKeyDictionaryConverter`1","type":"Class"},{"name":"InternalException","href":"Hi.Common.InternalException.html","topicHref":"Hi.Common.InternalException.html","topicUid":"Hi.Common.InternalException","type":"Class"},{"name":"InvokeUtil","href":"Hi.Common.InvokeUtil.html","topicHref":"Hi.Common.InvokeUtil.html","topicUid":"Hi.Common.InvokeUtil","type":"Class"},{"name":"JsonUtil","href":"Hi.Common.JsonUtil.html","topicHref":"Hi.Common.JsonUtil.html","topicUid":"Hi.Common.JsonUtil","type":"Class"},{"name":"LooseRunner","href":"Hi.Common.LooseRunner.html","topicHref":"Hi.Common.LooseRunner.html","topicUid":"Hi.Common.LooseRunner","type":"Class"},{"name":"LooseRunner.MergedCancellationTokenRun","href":"Hi.Common.LooseRunner.MergedCancellationTokenRun.html","topicHref":"Hi.Common.LooseRunner.MergedCancellationTokenRun.html","topicUid":"Hi.Common.LooseRunner.MergedCancellationTokenRun","type":"Delegate"},{"name":"ManualUtil","href":"Hi.Common.ManualUtil.html","topicHref":"Hi.Common.ManualUtil.html","topicUid":"Hi.Common.ManualUtil","type":"Class"},{"name":"MaskUtil","href":"Hi.Common.MaskUtil.html","topicHref":"Hi.Common.MaskUtil.html","topicUid":"Hi.Common.MaskUtil","type":"Class"},{"name":"NameUtil","href":"Hi.Common.NameUtil.html","topicHref":"Hi.Common.NameUtil.html","topicUid":"Hi.Common.NameUtil","type":"Class"},{"name":"PacePlayee","href":"Hi.Common.PacePlayee.html","topicHref":"Hi.Common.PacePlayee.html","topicUid":"Hi.Common.PacePlayee","type":"Class"},{"name":"PacePlayer","href":"Hi.Common.PacePlayer.html","topicHref":"Hi.Common.PacePlayer.html","topicUid":"Hi.Common.PacePlayer","type":"Class"},{"name":"Pair","href":"Hi.Common.Pair-2.html","topicHref":"Hi.Common.Pair-2.html","topicUid":"Hi.Common.Pair`2","type":"Class"},{"name":"ProgressFraction","href":"Hi.Common.ProgressFraction.html","topicHref":"Hi.Common.ProgressFraction.html","topicUid":"Hi.Common.ProgressFraction","type":"Class"},{"name":"Range","href":"Hi.Common.Range-1.html","topicHref":"Hi.Common.Range-1.html","topicUid":"Hi.Common.Range`1","type":"Class"},{"name":"ResourceUtil","href":"Hi.Common.ResourceUtil.html","topicHref":"Hi.Common.ResourceUtil.html","topicUid":"Hi.Common.ResourceUtil","type":"Class"},{"name":"RoutineBlocker","href":"Hi.Common.RoutineBlocker.html","topicHref":"Hi.Common.RoutineBlocker.html","topicUid":"Hi.Common.RoutineBlocker","type":"Class"},{"name":"SearchResult","href":"Hi.Common.SearchResult.html","topicHref":"Hi.Common.SearchResult.html","topicUid":"Hi.Common.SearchResult","type":"Enum"},{"name":"SeqPairUtil","href":"Hi.Common.SeqPairUtil.html","topicHref":"Hi.Common.SeqPairUtil.html","topicUid":"Hi.Common.SeqPairUtil","type":"Class"},{"name":"SeqPair","href":"Hi.Common.SeqPair-1.html","topicHref":"Hi.Common.SeqPair-1.html","topicUid":"Hi.Common.SeqPair`1","type":"Class"},{"name":"ServerFileExplorerConfig","href":"Hi.Common.ServerFileExplorerConfig.html","topicHref":"Hi.Common.ServerFileExplorerConfig.html","topicUid":"Hi.Common.ServerFileExplorerConfig","type":"Class"},{"name":"StringLocalizer","href":"Hi.Common.StringLocalizer.html","topicHref":"Hi.Common.StringLocalizer.html","topicUid":"Hi.Common.StringLocalizer","type":"Class"},{"name":"StringUtil","href":"Hi.Common.StringUtil.html","topicHref":"Hi.Common.StringUtil.html","topicUid":"Hi.Common.StringUtil","type":"Class"},{"name":"TaskUtil","href":"Hi.Common.TaskUtil.html","topicHref":"Hi.Common.TaskUtil.html","topicUid":"Hi.Common.TaskUtil","type":"Class"},{"name":"TimeCounter","href":"Hi.Common.TimeCounter.html","topicHref":"Hi.Common.TimeCounter.html","topicUid":"Hi.Common.TimeCounter","type":"Class"}]},{"name":"Hi.Common.Collections","href":"Hi.Common.Collections.html","topicHref":"Hi.Common.Collections.html","topicUid":"Hi.Common.Collections","type":"Namespace","items":[{"name":"DictionaryUtil","href":"Hi.Common.Collections.DictionaryUtil.html","topicHref":"Hi.Common.Collections.DictionaryUtil.html","topicUid":"Hi.Common.Collections.DictionaryUtil","type":"Class"},{"name":"EnumerableUtil","href":"Hi.Common.Collections.EnumerableUtil.html","topicHref":"Hi.Common.Collections.EnumerableUtil.html","topicUid":"Hi.Common.Collections.EnumerableUtil","type":"Class"},{"name":"FixedSizeConcurrentLinkedListUtil","href":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html","topicHref":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html","topicUid":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil","type":"Class"},{"name":"LazyLinkedListNode","href":"Hi.Common.Collections.LazyLinkedListNode-1.html","topicHref":"Hi.Common.Collections.LazyLinkedListNode-1.html","topicUid":"Hi.Common.Collections.LazyLinkedListNode`1","type":"Class"},{"name":"LazyLinkedList","href":"Hi.Common.Collections.LazyLinkedList-1.html","topicHref":"Hi.Common.Collections.LazyLinkedList-1.html","topicUid":"Hi.Common.Collections.LazyLinkedList`1","type":"Class"},{"name":"LinkedListUtil","href":"Hi.Common.Collections.LinkedListUtil.html","topicHref":"Hi.Common.Collections.LinkedListUtil.html","topicUid":"Hi.Common.Collections.LinkedListUtil","type":"Class"},{"name":"ListIndexBasedEnumerable","href":"Hi.Common.Collections.ListIndexBasedEnumerable-1.html","topicHref":"Hi.Common.Collections.ListIndexBasedEnumerable-1.html","topicUid":"Hi.Common.Collections.ListIndexBasedEnumerable`1","type":"Class"},{"name":"ListIndexBasedIEnumerator","href":"Hi.Common.Collections.ListIndexBasedIEnumerator-1.html","topicHref":"Hi.Common.Collections.ListIndexBasedIEnumerator-1.html","topicUid":"Hi.Common.Collections.ListIndexBasedIEnumerator`1","type":"Class"},{"name":"ListUtil","href":"Hi.Common.Collections.ListUtil.html","topicHref":"Hi.Common.Collections.ListUtil.html","topicUid":"Hi.Common.Collections.ListUtil","type":"Class"},{"name":"ListUtil.OuterPolationMode","href":"Hi.Common.Collections.ListUtil.OuterPolationMode.html","topicHref":"Hi.Common.Collections.ListUtil.OuterPolationMode.html","topicUid":"Hi.Common.Collections.ListUtil.OuterPolationMode","type":"Enum"},{"name":"SearchTargetMode","href":"Hi.Common.Collections.SearchTargetMode.html","topicHref":"Hi.Common.Collections.SearchTargetMode.html","topicUid":"Hi.Common.Collections.SearchTargetMode","type":"Enum"},{"name":"SeekDirection","href":"Hi.Common.Collections.SeekDirection.html","topicHref":"Hi.Common.Collections.SeekDirection.html","topicUid":"Hi.Common.Collections.SeekDirection","type":"Enum"},{"name":"SortedListUtil","href":"Hi.Common.Collections.SortedListUtil.html","topicHref":"Hi.Common.Collections.SortedListUtil.html","topicUid":"Hi.Common.Collections.SortedListUtil","type":"Class"},{"name":"SubList","href":"Hi.Common.Collections.SubList-1.html","topicHref":"Hi.Common.Collections.SubList-1.html","topicUid":"Hi.Common.Collections.SubList`1","type":"Class"},{"name":"SynList","href":"Hi.Common.Collections.SynList-1.html","topicHref":"Hi.Common.Collections.SynList-1.html","topicUid":"Hi.Common.Collections.SynList`1","type":"Class"}]},{"name":"Hi.Common.CsvUtils","href":"Hi.Common.CsvUtils.html","topicHref":"Hi.Common.CsvUtils.html","topicUid":"Hi.Common.CsvUtils","type":"Namespace","items":[{"name":"CsvInputKit","href":"Hi.Common.CsvUtils.CsvInputKit.html","topicHref":"Hi.Common.CsvUtils.CsvInputKit.html","topicUid":"Hi.Common.CsvUtils.CsvInputKit","type":"Class"},{"name":"CsvOutputKit","href":"Hi.Common.CsvUtils.CsvOutputKit.html","topicHref":"Hi.Common.CsvUtils.CsvOutputKit.html","topicUid":"Hi.Common.CsvUtils.CsvOutputKit","type":"Class"},{"name":"CsvUtil","href":"Hi.Common.CsvUtils.CsvUtil.html","topicHref":"Hi.Common.CsvUtils.CsvUtil.html","topicUid":"Hi.Common.CsvUtils.CsvUtil","type":"Class"},{"name":"ICsvRowIo","href":"Hi.Common.CsvUtils.ICsvRowIo.html","topicHref":"Hi.Common.CsvUtils.ICsvRowIo.html","topicUid":"Hi.Common.CsvUtils.ICsvRowIo","type":"Interface"},{"name":"IGetCsvDictionary","href":"Hi.Common.CsvUtils.IGetCsvDictionary.html","topicHref":"Hi.Common.CsvUtils.IGetCsvDictionary.html","topicUid":"Hi.Common.CsvUtils.IGetCsvDictionary","type":"Interface"}]},{"name":"Hi.Common.FileLines","href":"Hi.Common.FileLines.html","topicHref":"Hi.Common.FileLines.html","topicUid":"Hi.Common.FileLines","type":"Namespace","items":[{"name":"FileBeginEventArgs","href":"Hi.Common.FileLines.FileBeginEventArgs.html","topicHref":"Hi.Common.FileLines.FileBeginEventArgs.html","topicUid":"Hi.Common.FileLines.FileBeginEventArgs","type":"Class"},{"name":"FileEndEventArgs","href":"Hi.Common.FileLines.FileEndEventArgs.html","topicHref":"Hi.Common.FileLines.FileEndEventArgs.html","topicUid":"Hi.Common.FileLines.FileEndEventArgs","type":"Class"},{"name":"FileLineCharIndex","href":"Hi.Common.FileLines.FileLineCharIndex.html","topicHref":"Hi.Common.FileLines.FileLineCharIndex.html","topicUid":"Hi.Common.FileLines.FileLineCharIndex","type":"Class"},{"name":"FileLineCharIndexSegment","href":"Hi.Common.FileLines.FileLineCharIndexSegment.html","topicHref":"Hi.Common.FileLines.FileLineCharIndexSegment.html","topicUid":"Hi.Common.FileLines.FileLineCharIndexSegment","type":"Class"},{"name":"FileLineIndex","href":"Hi.Common.FileLines.FileLineIndex.html","topicHref":"Hi.Common.FileLines.FileLineIndex.html","topicUid":"Hi.Common.FileLines.FileLineIndex","type":"Class"},{"name":"FileLineUtil","href":"Hi.Common.FileLines.FileLineUtil.html","topicHref":"Hi.Common.FileLines.FileLineUtil.html","topicUid":"Hi.Common.FileLines.FileLineUtil","type":"Class"},{"name":"FileUtil","href":"Hi.Common.FileLines.FileUtil.html","topicHref":"Hi.Common.FileLines.FileUtil.html","topicUid":"Hi.Common.FileLines.FileUtil","type":"Class"},{"name":"IFileChangedEventSupport","href":"Hi.Common.FileLines.IFileChangedEventSupport.html","topicHref":"Hi.Common.FileLines.IFileChangedEventSupport.html","topicUid":"Hi.Common.FileLines.IFileChangedEventSupport","type":"Interface"},{"name":"IFileLine","href":"Hi.Common.FileLines.IFileLine.html","topicHref":"Hi.Common.FileLines.IFileLine.html","topicUid":"Hi.Common.FileLines.IFileLine","type":"Interface"},{"name":"IFileLineCharIndex","href":"Hi.Common.FileLines.IFileLineCharIndex.html","topicHref":"Hi.Common.FileLines.IFileLineCharIndex.html","topicUid":"Hi.Common.FileLines.IFileLineCharIndex","type":"Interface"},{"name":"IFileLineIndex","href":"Hi.Common.FileLines.IFileLineIndex.html","topicHref":"Hi.Common.FileLines.IFileLineIndex.html","topicUid":"Hi.Common.FileLines.IFileLineIndex","type":"Interface"},{"name":"IGetFileLineIndex","href":"Hi.Common.FileLines.IGetFileLineIndex.html","topicHref":"Hi.Common.FileLines.IGetFileLineIndex.html","topicUid":"Hi.Common.FileLines.IGetFileLineIndex","type":"Interface"},{"name":"IGetIndexedFileLine","href":"Hi.Common.FileLines.IGetIndexedFileLine.html","topicHref":"Hi.Common.FileLines.IGetIndexedFileLine.html","topicUid":"Hi.Common.FileLines.IGetIndexedFileLine","type":"Interface"},{"name":"IIndexedFileLine","href":"Hi.Common.FileLines.IIndexedFileLine.html","topicHref":"Hi.Common.FileLines.IIndexedFileLine.html","topicUid":"Hi.Common.FileLines.IIndexedFileLine","type":"Interface"},{"name":"ILineChangedEventSupport","href":"Hi.Common.FileLines.ILineChangedEventSupport.html","topicHref":"Hi.Common.FileLines.ILineChangedEventSupport.html","topicUid":"Hi.Common.FileLines.ILineChangedEventSupport","type":"Interface"},{"name":"IndexedFile","href":"Hi.Common.FileLines.IndexedFile.html","topicHref":"Hi.Common.FileLines.IndexedFile.html","topicUid":"Hi.Common.FileLines.IndexedFile","type":"Class"},{"name":"IndexedFileLine","href":"Hi.Common.FileLines.IndexedFileLine.html","topicHref":"Hi.Common.FileLines.IndexedFileLine.html","topicUid":"Hi.Common.FileLines.IndexedFileLine","type":"Class"},{"name":"IndexedFileLineChar","href":"Hi.Common.FileLines.IndexedFileLineChar.html","topicHref":"Hi.Common.FileLines.IndexedFileLineChar.html","topicUid":"Hi.Common.FileLines.IndexedFileLineChar","type":"Class"},{"name":"LineBeginEventArgs","href":"Hi.Common.FileLines.LineBeginEventArgs.html","topicHref":"Hi.Common.FileLines.LineBeginEventArgs.html","topicUid":"Hi.Common.FileLines.LineBeginEventArgs","type":"Class"},{"name":"LineEndEventArgs","href":"Hi.Common.FileLines.LineEndEventArgs.html","topicHref":"Hi.Common.FileLines.LineEndEventArgs.html","topicUid":"Hi.Common.FileLines.LineEndEventArgs","type":"Class"}]},{"name":"Hi.Common.Messages","href":"Hi.Common.Messages.html","topicHref":"Hi.Common.Messages.html","topicUid":"Hi.Common.Messages","type":"Namespace","items":[{"name":"ActionProgress","href":"Hi.Common.Messages.ActionProgress-1.html","topicHref":"Hi.Common.Messages.ActionProgress-1.html","topicUid":"Hi.Common.Messages.ActionProgress`1","type":"Class"},{"name":"BootstrapTheme","href":"Hi.Common.Messages.BootstrapTheme.html","topicHref":"Hi.Common.Messages.BootstrapTheme.html","topicUid":"Hi.Common.Messages.BootstrapTheme","type":"Enum"},{"name":"DebugUtil","href":"Hi.Common.Messages.DebugUtil.html","topicHref":"Hi.Common.Messages.DebugUtil.html","topicUid":"Hi.Common.Messages.DebugUtil","type":"Class"},{"name":"ExceptionUtil","href":"Hi.Common.Messages.ExceptionUtil.html","topicHref":"Hi.Common.Messages.ExceptionUtil.html","topicUid":"Hi.Common.Messages.ExceptionUtil","type":"Class"},{"name":"MessageBoardUtil","href":"Hi.Common.Messages.MessageBoardUtil.html","topicHref":"Hi.Common.Messages.MessageBoardUtil.html","topicUid":"Hi.Common.Messages.MessageBoardUtil","type":"Class"},{"name":"MessageFlag","href":"Hi.Common.Messages.MessageFlag.html","topicHref":"Hi.Common.Messages.MessageFlag.html","topicUid":"Hi.Common.Messages.MessageFlag","type":"Enum"},{"name":"MultiTagMessage","href":"Hi.Common.Messages.MultiTagMessage.html","topicHref":"Hi.Common.Messages.MultiTagMessage.html","topicUid":"Hi.Common.Messages.MultiTagMessage","type":"Class"},{"name":"MultiTagMessageUtil","href":"Hi.Common.Messages.MultiTagMessageUtil.html","topicHref":"Hi.Common.Messages.MultiTagMessageUtil.html","topicUid":"Hi.Common.Messages.MultiTagMessageUtil","type":"Class"},{"name":"ShowMessageBoardDelegate","href":"Hi.Common.Messages.ShowMessageBoardDelegate.html","topicHref":"Hi.Common.Messages.ShowMessageBoardDelegate.html","topicUid":"Hi.Common.Messages.ShowMessageBoardDelegate","type":"Delegate"}]},{"name":"Hi.Common.MinMaxUtils","href":"Hi.Common.MinMaxUtils.html","topicHref":"Hi.Common.MinMaxUtils.html","topicUid":"Hi.Common.MinMaxUtils","type":"Namespace","items":[{"name":"IndexedMinMaxPos","href":"Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html","topicHref":"Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html","topicUid":"Hi.Common.MinMaxUtils.IndexedMinMaxPos`2","type":"Class"},{"name":"MinMaxUtil","href":"Hi.Common.MinMaxUtils.MinMaxUtil.html","topicHref":"Hi.Common.MinMaxUtils.MinMaxUtil.html","topicUid":"Hi.Common.MinMaxUtils.MinMaxUtil","type":"Class"}]},{"name":"Hi.Common.NativeProgresses","href":"Hi.Common.NativeProgresses.html","topicHref":"Hi.Common.NativeProgresses.html","topicUid":"Hi.Common.NativeProgresses","type":"Namespace","items":[{"name":"NativeProgressFraction","href":"Hi.Common.NativeProgresses.NativeProgressFraction.html","topicHref":"Hi.Common.NativeProgresses.NativeProgressFraction.html","topicUid":"Hi.Common.NativeProgresses.NativeProgressFraction","type":"Class"},{"name":"progress_monitor_t","href":"Hi.Common.NativeProgresses.progress_monitor_t.html","topicHref":"Hi.Common.NativeProgresses.progress_monitor_t.html","topicUid":"Hi.Common.NativeProgresses.progress_monitor_t","type":"Struct"},{"name":"report_progress_func_t","href":"Hi.Common.NativeProgresses.report_progress_func_t.html","topicHref":"Hi.Common.NativeProgresses.report_progress_func_t.html","topicUid":"Hi.Common.NativeProgresses.report_progress_func_t","type":"Delegate"}]},{"name":"Hi.Common.ParallelBulkUtils","href":"Hi.Common.ParallelBulkUtils.html","topicHref":"Hi.Common.ParallelBulkUtils.html","topicUid":"Hi.Common.ParallelBulkUtils","type":"Namespace","items":[{"name":"ParallelBulkReader","href":"Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ParallelBulkReader`1","type":"Class"},{"name":"ParallelBulkWriter","href":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter`1","type":"Class"},{"name":"ReadBulkDelegate","href":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate`1","type":"Delegate"},{"name":"SequentialBulkReader","href":"Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html","topicHref":"Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html","topicUid":"Hi.Common.ParallelBulkUtils.SequentialBulkReader`1","type":"Class"}]},{"name":"Hi.Common.PathUtils","href":"Hi.Common.PathUtils.html","topicHref":"Hi.Common.PathUtils.html","topicUid":"Hi.Common.PathUtils","type":"Namespace","items":[{"name":"ExtendedNamedPath","href":"Hi.Common.PathUtils.ExtendedNamedPath.html","topicHref":"Hi.Common.PathUtils.ExtendedNamedPath.html","topicUid":"Hi.Common.PathUtils.ExtendedNamedPath","type":"Class"},{"name":"HttpUtil","href":"Hi.Common.PathUtils.HttpUtil.html","topicHref":"Hi.Common.PathUtils.HttpUtil.html","topicUid":"Hi.Common.PathUtils.HttpUtil","type":"Class"},{"name":"Lang","href":"Hi.Common.PathUtils.Lang.html","topicHref":"Hi.Common.PathUtils.Lang.html","topicUid":"Hi.Common.PathUtils.Lang","type":"Class"},{"name":"NamedPath","href":"Hi.Common.PathUtils.NamedPath.html","topicHref":"Hi.Common.PathUtils.NamedPath.html","topicUid":"Hi.Common.PathUtils.NamedPath","type":"Class"},{"name":"PathUtil","href":"Hi.Common.PathUtils.PathUtil.html","topicHref":"Hi.Common.PathUtils.PathUtil.html","topicUid":"Hi.Common.PathUtils.PathUtil","type":"Class"}]},{"name":"Hi.Common.QueueCacheUtils","href":"Hi.Common.QueueCacheUtils.html","topicHref":"Hi.Common.QueueCacheUtils.html","topicUid":"Hi.Common.QueueCacheUtils","type":"Namespace","items":[{"name":"QueueCacherHost","href":"Hi.Common.QueueCacheUtils.QueueCacherHost-1.html","topicHref":"Hi.Common.QueueCacheUtils.QueueCacherHost-1.html","topicUid":"Hi.Common.QueueCacheUtils.QueueCacherHost`1","type":"Class"},{"name":"QueueCacher","href":"Hi.Common.QueueCacheUtils.QueueCacher-1.html","topicHref":"Hi.Common.QueueCacheUtils.QueueCacher-1.html","topicUid":"Hi.Common.QueueCacheUtils.QueueCacher`1","type":"Class"}]},{"name":"Hi.Common.XmlUtils","href":"Hi.Common.XmlUtils.html","topicHref":"Hi.Common.XmlUtils.html","topicUid":"Hi.Common.XmlUtils","type":"Namespace","items":[{"name":"FileRefSource","href":"Hi.Common.XmlUtils.FileRefSource-1.html","topicHref":"Hi.Common.XmlUtils.FileRefSource-1.html","topicUid":"Hi.Common.XmlUtils.FileRefSource`1","type":"Class"},{"name":"IMakeXmlSource","href":"Hi.Common.XmlUtils.IMakeXmlSource.html","topicHref":"Hi.Common.XmlUtils.IMakeXmlSource.html","topicUid":"Hi.Common.XmlUtils.IMakeXmlSource","type":"Interface"},{"name":"IToXElement","href":"Hi.Common.XmlUtils.IToXElement.html","topicHref":"Hi.Common.XmlUtils.IToXElement.html","topicUid":"Hi.Common.XmlUtils.IToXElement","type":"Interface"},{"name":"ProjectApiVersion","href":"Hi.Common.XmlUtils.ProjectApiVersion.html","topicHref":"Hi.Common.XmlUtils.ProjectApiVersion.html","topicUid":"Hi.Common.XmlUtils.ProjectApiVersion","type":"Class"},{"name":"SetFileDelegate","href":"Hi.Common.XmlUtils.SetFileDelegate.html","topicHref":"Hi.Common.XmlUtils.SetFileDelegate.html","topicUid":"Hi.Common.XmlUtils.SetFileDelegate","type":"Delegate"},{"name":"XFactory","href":"Hi.Common.XmlUtils.XFactory.html","topicHref":"Hi.Common.XmlUtils.XFactory.html","topicUid":"Hi.Common.XmlUtils.XFactory","type":"Class"},{"name":"XFactory.XGeneratorDelegate","href":"Hi.Common.XmlUtils.XFactory.XGeneratorDelegate.html","topicHref":"Hi.Common.XmlUtils.XFactory.XGeneratorDelegate.html","topicUid":"Hi.Common.XmlUtils.XFactory.XGeneratorDelegate","type":"Delegate"},{"name":"XFactory.XmlExceptionDelegate","href":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html","topicHref":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html","topicUid":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate","type":"Delegate"},{"name":"XmlUtil","href":"Hi.Common.XmlUtils.XmlUtil.html","topicHref":"Hi.Common.XmlUtils.XmlUtil.html","topicUid":"Hi.Common.XmlUtils.XmlUtil","type":"Class"}]},{"name":"Hi.CutterLocations","href":"Hi.CutterLocations.html","topicHref":"Hi.CutterLocations.html","topicUid":"Hi.CutterLocations","type":"Namespace","items":[{"name":"IGetProgramCl","href":"Hi.CutterLocations.IGetProgramCl.html","topicHref":"Hi.CutterLocations.IGetProgramCl.html","topicUid":"Hi.CutterLocations.IGetProgramCl","type":"Interface"},{"name":"SimpleCl","href":"Hi.CutterLocations.SimpleCl.html","topicHref":"Hi.CutterLocations.SimpleCl.html","topicUid":"Hi.CutterLocations.SimpleCl","type":"Class"}]},{"name":"Hi.CutterLocations.ClPath","href":"Hi.CutterLocations.ClPath.html","topicHref":"Hi.CutterLocations.ClPath.html","topicUid":"Hi.CutterLocations.ClPath","type":"Namespace","items":[{"name":"ClCircleArc","href":"Hi.CutterLocations.ClPath.ClCircleArc.html","topicHref":"Hi.CutterLocations.ClPath.ClCircleArc.html","topicUid":"Hi.CutterLocations.ClPath.ClCircleArc","type":"Class"},{"name":"ClLinear","href":"Hi.CutterLocations.ClPath.ClLinear.html","topicHref":"Hi.CutterLocations.ClPath.ClLinear.html","topicUid":"Hi.CutterLocations.ClPath.ClLinear","type":"Class"},{"name":"IClPath","href":"Hi.CutterLocations.ClPath.IClPath.html","topicHref":"Hi.CutterLocations.ClPath.IClPath.html","topicUid":"Hi.CutterLocations.ClPath.IClPath","type":"Interface"}]},{"name":"Hi.CutterLocations.ClStrips","href":"Hi.CutterLocations.ClStrips.html","topicHref":"Hi.CutterLocations.ClStrips.html","topicUid":"Hi.CutterLocations.ClStrips","type":"Namespace","items":[{"name":"ClStrip","href":"Hi.CutterLocations.ClStrips.ClStrip.html","topicHref":"Hi.CutterLocations.ClStrips.ClStrip.html","topicUid":"Hi.CutterLocations.ClStrips.ClStrip","type":"Class"},{"name":"ClStripPos","href":"Hi.CutterLocations.ClStrips.ClStripPos.html","topicHref":"Hi.CutterLocations.ClStrips.ClStripPos.html","topicUid":"Hi.CutterLocations.ClStrips.ClStripPos","type":"Class"},{"name":"RgbFunc","href":"Hi.CutterLocations.ClStrips.RgbFunc.html","topicHref":"Hi.CutterLocations.ClStrips.RgbFunc.html","topicUid":"Hi.CutterLocations.ClStrips.RgbFunc","type":"Delegate"}]},{"name":"Hi.Disp","href":"Hi.Disp.html","topicHref":"Hi.Disp.html","topicUid":"Hi.Disp","type":"Namespace","items":[{"name":"Bind","href":"Hi.Disp.Bind.html","topicHref":"Hi.Disp.Bind.html","topicUid":"Hi.Disp.Bind","type":"Class"},{"name":"Box3dDispUtil","href":"Hi.Disp.Box3dDispUtil.html","topicHref":"Hi.Disp.Box3dDispUtil.html","topicUid":"Hi.Disp.Box3dDispUtil","type":"Class"},{"name":"Box3dDispUtil.BoxableExpandToBox3dDel","href":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html","topicHref":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html","topicUid":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel","type":"Delegate"},{"name":"DelegateFuncDisplayee","href":"Hi.Disp.DelegateFuncDisplayee.html","topicHref":"Hi.Disp.DelegateFuncDisplayee.html","topicUid":"Hi.Disp.DelegateFuncDisplayee","type":"Class"},{"name":"DispEngine","href":"Hi.Disp.DispEngine.html","topicHref":"Hi.Disp.DispEngine.html","topicUid":"Hi.Disp.DispEngine","type":"Class"},{"name":"DispEngine.ImageRequestedDelegate","href":"Hi.Disp.DispEngine.ImageRequestedDelegate.html","topicHref":"Hi.Disp.DispEngine.ImageRequestedDelegate.html","topicUid":"Hi.Disp.DispEngine.ImageRequestedDelegate","type":"Delegate"},{"name":"DispEngineConfig","href":"Hi.Disp.DispEngineConfig.html","topicHref":"Hi.Disp.DispEngineConfig.html","topicUid":"Hi.Disp.DispEngineConfig","type":"Class"},{"name":"DispFrameUtil","href":"Hi.Disp.DispFrameUtil.html","topicHref":"Hi.Disp.DispFrameUtil.html","topicUid":"Hi.Disp.DispFrameUtil","type":"Class"},{"name":"DispList","href":"Hi.Disp.DispList.html","topicHref":"Hi.Disp.DispList.html","topicUid":"Hi.Disp.DispList","type":"Class"},{"name":"DispUtil","href":"Hi.Disp.DispUtil.html","topicHref":"Hi.Disp.DispUtil.html","topicUid":"Hi.Disp.DispUtil","type":"Class"},{"name":"Drawing","href":"Hi.Disp.Drawing.html","topicHref":"Hi.Disp.Drawing.html","topicUid":"Hi.Disp.Drawing","type":"Class"},{"name":"FuncDisplayee","href":"Hi.Disp.FuncDisplayee.html","topicHref":"Hi.Disp.FuncDisplayee.html","topicUid":"Hi.Disp.FuncDisplayee","type":"Class"},{"name":"GL","href":"Hi.Disp.GL.html","topicHref":"Hi.Disp.GL.html","topicUid":"Hi.Disp.GL","type":"Class"},{"name":"IDisplayee","href":"Hi.Disp.IDisplayee.html","topicHref":"Hi.Disp.IDisplayee.html","topicUid":"Hi.Disp.IDisplayee","type":"Interface"},{"name":"IGetDispEngine","href":"Hi.Disp.IGetDispEngine.html","topicHref":"Hi.Disp.IGetDispEngine.html","topicUid":"Hi.Disp.IGetDispEngine","type":"Interface"},{"name":"IGetPickable","href":"Hi.Disp.IGetPickable.html","topicHref":"Hi.Disp.IGetPickable.html","topicUid":"Hi.Disp.IGetPickable","type":"Interface"},{"name":"IGlContextDirver","href":"Hi.Disp.IGlContextDirver.html","topicHref":"Hi.Disp.IGlContextDirver.html","topicUid":"Hi.Disp.IGlContextDirver","type":"Interface"},{"name":"MatStack","href":"Hi.Disp.MatStack.html","topicHref":"Hi.Disp.MatStack.html","topicUid":"Hi.Disp.MatStack","type":"Class"},{"name":"MatStack.ItemDisposable","href":"Hi.Disp.MatStack.ItemDisposable.html","topicHref":"Hi.Disp.MatStack.ItemDisposable.html","topicUid":"Hi.Disp.MatStack.ItemDisposable","type":"Class"},{"name":"MvpBoxRelation","href":"Hi.Disp.MvpBoxRelation.html","topicHref":"Hi.Disp.MvpBoxRelation.html","topicUid":"Hi.Disp.MvpBoxRelation","type":"Enum"},{"name":"Pickable","href":"Hi.Disp.Pickable.html","topicHref":"Hi.Disp.Pickable.html","topicUid":"Hi.Disp.Pickable","type":"Class"},{"name":"PopModelMat","href":"Hi.Disp.PopModelMat.html","topicHref":"Hi.Disp.PopModelMat.html","topicUid":"Hi.Disp.PopModelMat","type":"Class"},{"name":"PushModelMat","href":"Hi.Disp.PushModelMat.html","topicHref":"Hi.Disp.PushModelMat.html","topicUid":"Hi.Disp.PushModelMat","type":"Class"},{"name":"Segment3dDispUtil","href":"Hi.Disp.Segment3dDispUtil.html","topicHref":"Hi.Disp.Segment3dDispUtil.html","topicUid":"Hi.Disp.Segment3dDispUtil","type":"Class"},{"name":"ShowEventPickable","href":"Hi.Disp.ShowEventPickable.html","topicHref":"Hi.Disp.ShowEventPickable.html","topicUid":"Hi.Disp.ShowEventPickable","type":"Class"},{"name":"Stamp","href":"Hi.Disp.Stamp.html","topicHref":"Hi.Disp.Stamp.html","topicUid":"Hi.Disp.Stamp","type":"Enum"},{"name":"StringDrawing","href":"Hi.Disp.StringDrawing.html","topicHref":"Hi.Disp.StringDrawing.html","topicUid":"Hi.Disp.StringDrawing","type":"Class"},{"name":"Tri3dDispUtil","href":"Hi.Disp.Tri3dDispUtil.html","topicHref":"Hi.Disp.Tri3dDispUtil.html","topicUid":"Hi.Disp.Tri3dDispUtil","type":"Class"},{"name":"Vec3dDispUtil","href":"Hi.Disp.Vec3dDispUtil.html","topicHref":"Hi.Disp.Vec3dDispUtil.html","topicUid":"Hi.Disp.Vec3dDispUtil","type":"Class"},{"name":"WrappedDisplayee","href":"Hi.Disp.WrappedDisplayee.html","topicHref":"Hi.Disp.WrappedDisplayee.html","topicUid":"Hi.Disp.WrappedDisplayee","type":"Class"}]},{"name":"Hi.Disp.Flag","href":"Hi.Disp.Flag.html","topicHref":"Hi.Disp.Flag.html","topicUid":"Hi.Disp.Flag","type":"Namespace","items":[{"name":"ColorScaleBar","href":"Hi.Disp.Flag.ColorScaleBar.html","topicHref":"Hi.Disp.Flag.ColorScaleBar.html","topicUid":"Hi.Disp.Flag.ColorScaleBar","type":"Class"},{"name":"CoordinateDrawing","href":"Hi.Disp.Flag.CoordinateDrawing.html","topicHref":"Hi.Disp.Flag.CoordinateDrawing.html","topicUid":"Hi.Disp.Flag.CoordinateDrawing","type":"Class"},{"name":"CubicalFlagDrawing","href":"Hi.Disp.Flag.CubicalFlagDrawing.html","topicHref":"Hi.Disp.Flag.CubicalFlagDrawing.html","topicUid":"Hi.Disp.Flag.CubicalFlagDrawing","type":"Class"},{"name":"DimensionBar","href":"Hi.Disp.Flag.DimensionBar.html","topicHref":"Hi.Disp.Flag.DimensionBar.html","topicUid":"Hi.Disp.Flag.DimensionBar","type":"Class"},{"name":"DispCoverUtil","href":"Hi.Disp.Flag.DispCoverUtil.html","topicHref":"Hi.Disp.Flag.DispCoverUtil.html","topicUid":"Hi.Disp.Flag.DispCoverUtil","type":"Class"}]},{"name":"Hi.Disp.Treat","href":"Hi.Disp.Treat.html","topicHref":"Hi.Disp.Treat.html","topicUid":"Hi.Disp.Treat","type":"Namespace","items":[{"name":"LineWidthSwap","href":"Hi.Disp.Treat.LineWidthSwap.html","topicHref":"Hi.Disp.Treat.LineWidthSwap.html","topicUid":"Hi.Disp.Treat.LineWidthSwap","type":"Class"},{"name":"LineWidthTreat","href":"Hi.Disp.Treat.LineWidthTreat.html","topicHref":"Hi.Disp.Treat.LineWidthTreat.html","topicUid":"Hi.Disp.Treat.LineWidthTreat","type":"Class"},{"name":"PointSizeSwap","href":"Hi.Disp.Treat.PointSizeSwap.html","topicHref":"Hi.Disp.Treat.PointSizeSwap.html","topicUid":"Hi.Disp.Treat.PointSizeSwap","type":"Class"},{"name":"PointSizeTreat","href":"Hi.Disp.Treat.PointSizeTreat.html","topicHref":"Hi.Disp.Treat.PointSizeTreat.html","topicUid":"Hi.Disp.Treat.PointSizeTreat","type":"Class"},{"name":"RgbSwap","href":"Hi.Disp.Treat.RgbSwap.html","topicHref":"Hi.Disp.Treat.RgbSwap.html","topicUid":"Hi.Disp.Treat.RgbSwap","type":"Class"},{"name":"RgbTreat","href":"Hi.Disp.Treat.RgbTreat.html","topicHref":"Hi.Disp.Treat.RgbTreat.html","topicUid":"Hi.Disp.Treat.RgbTreat","type":"Class"},{"name":"RgbWrapper","href":"Hi.Disp.Treat.RgbWrapper.html","topicHref":"Hi.Disp.Treat.RgbWrapper.html","topicUid":"Hi.Disp.Treat.RgbWrapper","type":"Class"},{"name":"TransformationWrapper","href":"Hi.Disp.Treat.TransformationWrapper.html","topicHref":"Hi.Disp.Treat.TransformationWrapper.html","topicUid":"Hi.Disp.Treat.TransformationWrapper","type":"Class"}]},{"name":"Hi.Fanuc","href":"Hi.Fanuc.html","topicHref":"Hi.Fanuc.html","topicUid":"Hi.Fanuc","type":"Namespace","items":[{"name":"FanucVarTable","href":"Hi.Fanuc.FanucVarTable.html","topicHref":"Hi.Fanuc.FanucVarTable.html","topicUid":"Hi.Fanuc.FanucVarTable","type":"Class"},{"name":"FanucVarValue","href":"Hi.Fanuc.FanucVarValue.html","topicHref":"Hi.Fanuc.FanucVarValue.html","topicUid":"Hi.Fanuc.FanucVarValue","type":"Struct"}]},{"name":"Hi.Geom","href":"Hi.Geom.html","topicHref":"Hi.Geom.html","topicUid":"Hi.Geom","type":"Namespace","items":[{"name":"ArrayUtil","href":"Hi.Geom.ArrayUtil.html","topicHref":"Hi.Geom.ArrayUtil.html","topicUid":"Hi.Geom.ArrayUtil","type":"Class"},{"name":"AxisAngle4d","href":"Hi.Geom.AxisAngle4d.html","topicHref":"Hi.Geom.AxisAngle4d.html","topicUid":"Hi.Geom.AxisAngle4d","type":"Class"},{"name":"Box2d","href":"Hi.Geom.Box2d.html","topicHref":"Hi.Geom.Box2d.html","topicUid":"Hi.Geom.Box2d","type":"Class"},{"name":"Box2d.NoInit","href":"Hi.Geom.Box2d.NoInit.html","topicHref":"Hi.Geom.Box2d.NoInit.html","topicUid":"Hi.Geom.Box2d.NoInit","type":"Class"},{"name":"Box3d","href":"Hi.Geom.Box3d.html","topicHref":"Hi.Geom.Box3d.html","topicUid":"Hi.Geom.Box3d","type":"Class"},{"name":"Box3d.NoInit","href":"Hi.Geom.Box3d.NoInit.html","topicHref":"Hi.Geom.Box3d.NoInit.html","topicUid":"Hi.Geom.Box3d.NoInit","type":"Class"},{"name":"Cylindroid","href":"Hi.Geom.Cylindroid.html","topicHref":"Hi.Geom.Cylindroid.html","topicUid":"Hi.Geom.Cylindroid","type":"Class"},{"name":"DVec3d","href":"Hi.Geom.DVec3d.html","topicHref":"Hi.Geom.DVec3d.html","topicUid":"Hi.Geom.DVec3d","type":"Class"},{"name":"Dir","href":"Hi.Geom.Dir.html","topicHref":"Hi.Geom.Dir.html","topicUid":"Hi.Geom.Dir","type":"Enum"},{"name":"ExtendedCylinder","href":"Hi.Geom.ExtendedCylinder.html","topicHref":"Hi.Geom.ExtendedCylinder.html","topicUid":"Hi.Geom.ExtendedCylinder","type":"Class"},{"name":"Flat3d","href":"Hi.Geom.Flat3d.html","topicHref":"Hi.Geom.Flat3d.html","topicUid":"Hi.Geom.Flat3d","type":"Class"},{"name":"FractionStatus","href":"Hi.Geom.FractionStatus.html","topicHref":"Hi.Geom.FractionStatus.html","topicUid":"Hi.Geom.FractionStatus","type":"Enum"},{"name":"Fraction","href":"Hi.Geom.Fraction-1.html","topicHref":"Hi.Geom.Fraction-1.html","topicUid":"Hi.Geom.Fraction`1","type":"Struct"},{"name":"GeomCombination","href":"Hi.Geom.GeomCombination.html","topicHref":"Hi.Geom.GeomCombination.html","topicUid":"Hi.Geom.GeomCombination","type":"Class"},{"name":"GeomUtil","href":"Hi.Geom.GeomUtil.html","topicHref":"Hi.Geom.GeomUtil.html","topicUid":"Hi.Geom.GeomUtil","type":"Class"},{"name":"IExpandToBox2d","href":"Hi.Geom.IExpandToBox2d.html","topicHref":"Hi.Geom.IExpandToBox2d.html","topicUid":"Hi.Geom.IExpandToBox2d","type":"Interface"},{"name":"IExpandToBox3d","href":"Hi.Geom.IExpandToBox3d.html","topicHref":"Hi.Geom.IExpandToBox3d.html","topicUid":"Hi.Geom.IExpandToBox3d","type":"Interface"},{"name":"IFlat3d","href":"Hi.Geom.IFlat3d.html","topicHref":"Hi.Geom.IFlat3d.html","topicUid":"Hi.Geom.IFlat3d","type":"Interface"},{"name":"IGenStl","href":"Hi.Geom.IGenStl.html","topicHref":"Hi.Geom.IGenStl.html","topicUid":"Hi.Geom.IGenStl","type":"Interface"},{"name":"IGeomProperty","href":"Hi.Geom.IGeomProperty.html","topicHref":"Hi.Geom.IGeomProperty.html","topicUid":"Hi.Geom.IGeomProperty","type":"Interface"},{"name":"IGetStl","href":"Hi.Geom.IGetStl.html","topicHref":"Hi.Geom.IGetStl.html","topicUid":"Hi.Geom.IGetStl","type":"Interface"},{"name":"IGetZrContour","href":"Hi.Geom.IGetZrContour.html","topicHref":"Hi.Geom.IGetZrContour.html","topicUid":"Hi.Geom.IGetZrContour","type":"Interface"},{"name":"IGetZrList","href":"Hi.Geom.IGetZrList.html","topicHref":"Hi.Geom.IGetZrList.html","topicUid":"Hi.Geom.IGetZrList","type":"Interface"},{"name":"IStlSource","href":"Hi.Geom.IStlSource.html","topicHref":"Hi.Geom.IStlSource.html","topicUid":"Hi.Geom.IStlSource","type":"Interface"},{"name":"ITri3d","href":"Hi.Geom.ITri3d.html","topicHref":"Hi.Geom.ITri3d.html","topicUid":"Hi.Geom.ITri3d","type":"Interface"},{"name":"IVec","href":"Hi.Geom.IVec-1.html","topicHref":"Hi.Geom.IVec-1.html","topicUid":"Hi.Geom.IVec`1","type":"Interface"},{"name":"IZrListSourceProperty","href":"Hi.Geom.IZrListSourceProperty.html","topicHref":"Hi.Geom.IZrListSourceProperty.html","topicUid":"Hi.Geom.IZrListSourceProperty","type":"Interface"},{"name":"Mat4d","href":"Hi.Geom.Mat4d.html","topicHref":"Hi.Geom.Mat4d.html","topicUid":"Hi.Geom.Mat4d","type":"Class"},{"name":"Mat4d.IndexFlag","href":"Hi.Geom.Mat4d.IndexFlag.html","topicHref":"Hi.Geom.Mat4d.IndexFlag.html","topicUid":"Hi.Geom.Mat4d.IndexFlag","type":"Enum"},{"name":"MathNetUtil","href":"Hi.Geom.MathNetUtil.html","topicHref":"Hi.Geom.MathNetUtil.html","topicUid":"Hi.Geom.MathNetUtil","type":"Class"},{"name":"MathUtil","href":"Hi.Geom.MathUtil.html","topicHref":"Hi.Geom.MathUtil.html","topicUid":"Hi.Geom.MathUtil","type":"Class"},{"name":"NativeFraction","href":"Hi.Geom.NativeFraction.html","topicHref":"Hi.Geom.NativeFraction.html","topicUid":"Hi.Geom.NativeFraction","type":"Class"},{"name":"NativeStl","href":"Hi.Geom.NativeStl.html","topicHref":"Hi.Geom.NativeStl.html","topicUid":"Hi.Geom.NativeStl","type":"Class"},{"name":"NativeTopoStld","href":"Hi.Geom.NativeTopoStld.html","topicHref":"Hi.Geom.NativeTopoStld.html","topicUid":"Hi.Geom.NativeTopoStld","type":"Class"},{"name":"NativeTopoStlfr","href":"Hi.Geom.NativeTopoStlfr.html","topicHref":"Hi.Geom.NativeTopoStlfr.html","topicUid":"Hi.Geom.NativeTopoStlfr","type":"Class"},{"name":"ObjUtil","href":"Hi.Geom.ObjUtil.html","topicHref":"Hi.Geom.ObjUtil.html","topicUid":"Hi.Geom.ObjUtil","type":"Class"},{"name":"PairZr","href":"Hi.Geom.PairZr.html","topicHref":"Hi.Geom.PairZr.html","topicUid":"Hi.Geom.PairZr","type":"Class"},{"name":"PairZrUtil","href":"Hi.Geom.PairZrUtil.html","topicHref":"Hi.Geom.PairZrUtil.html","topicUid":"Hi.Geom.PairZrUtil","type":"Class"},{"name":"PlyUtil","href":"Hi.Geom.PlyUtil.html","topicHref":"Hi.Geom.PlyUtil.html","topicUid":"Hi.Geom.PlyUtil","type":"Class"},{"name":"Polar3d","href":"Hi.Geom.Polar3d.html","topicHref":"Hi.Geom.Polar3d.html","topicUid":"Hi.Geom.Polar3d","type":"Class"},{"name":"Segment3d","href":"Hi.Geom.Segment3d.html","topicHref":"Hi.Geom.Segment3d.html","topicUid":"Hi.Geom.Segment3d","type":"Class"},{"name":"Stl","href":"Hi.Geom.Stl.html","topicHref":"Hi.Geom.Stl.html","topicUid":"Hi.Geom.Stl","type":"Class"},{"name":"Stl.StlType","href":"Hi.Geom.Stl.StlType.html","topicHref":"Hi.Geom.Stl.StlType.html","topicUid":"Hi.Geom.Stl.StlType","type":"Enum"},{"name":"StlFile","href":"Hi.Geom.StlFile.html","topicHref":"Hi.Geom.StlFile.html","topicUid":"Hi.Geom.StlFile","type":"Class"},{"name":"StlFuncHost","href":"Hi.Geom.StlFuncHost.html","topicHref":"Hi.Geom.StlFuncHost.html","topicUid":"Hi.Geom.StlFuncHost","type":"Class"},{"name":"StlUtil","href":"Hi.Geom.StlUtil.html","topicHref":"Hi.Geom.StlUtil.html","topicUid":"Hi.Geom.StlUtil","type":"Class"},{"name":"TransformationGeom","href":"Hi.Geom.TransformationGeom.html","topicHref":"Hi.Geom.TransformationGeom.html","topicUid":"Hi.Geom.TransformationGeom","type":"Class"},{"name":"Tri3d","href":"Hi.Geom.Tri3d.html","topicHref":"Hi.Geom.Tri3d.html","topicUid":"Hi.Geom.Tri3d","type":"Class"},{"name":"Tri3dUtil","href":"Hi.Geom.Tri3dUtil.html","topicHref":"Hi.Geom.Tri3dUtil.html","topicUid":"Hi.Geom.Tri3dUtil","type":"Class"},{"name":"Vec2d","href":"Hi.Geom.Vec2d.html","topicHref":"Hi.Geom.Vec2d.html","topicUid":"Hi.Geom.Vec2d","type":"Class"},{"name":"Vec2i","href":"Hi.Geom.Vec2i.html","topicHref":"Hi.Geom.Vec2i.html","topicUid":"Hi.Geom.Vec2i","type":"Class"},{"name":"Vec3d","href":"Hi.Geom.Vec3d.html","topicHref":"Hi.Geom.Vec3d.html","topicUid":"Hi.Geom.Vec3d","type":"Class"}]},{"name":"Hi.Geom.Resolution","href":"Hi.Geom.Resolution.html","topicHref":"Hi.Geom.Resolution.html","topicUid":"Hi.Geom.Resolution","type":"Namespace","items":[{"name":"IPolarResolution2d","href":"Hi.Geom.Resolution.IPolarResolution2d.html","topicHref":"Hi.Geom.Resolution.IPolarResolution2d.html","topicUid":"Hi.Geom.Resolution.IPolarResolution2d","type":"Interface"},{"name":"IPolarResolution2dSourceProperty","href":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html","topicHref":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html","topicUid":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty","type":"Interface"},{"name":"PolarResolution2d","href":"Hi.Geom.Resolution.PolarResolution2d.html","topicHref":"Hi.Geom.Resolution.PolarResolution2d.html","topicUid":"Hi.Geom.Resolution.PolarResolution2d","type":"Class"}]},{"name":"Hi.Geom.Solvers","href":"Hi.Geom.Solvers.html","topicHref":"Hi.Geom.Solvers.html","topicUid":"Hi.Geom.Solvers","type":"Namespace","items":[{"name":"BinarySolverUtil","href":"Hi.Geom.Solvers.BinarySolverUtil.html","topicHref":"Hi.Geom.Solvers.BinarySolverUtil.html","topicUid":"Hi.Geom.Solvers.BinarySolverUtil","type":"Class"},{"name":"BinarySolvingEntry","href":"Hi.Geom.Solvers.BinarySolvingEntry.html","topicHref":"Hi.Geom.Solvers.BinarySolvingEntry.html","topicUid":"Hi.Geom.Solvers.BinarySolvingEntry","type":"Class"},{"name":"DeepSolvingStatus","href":"Hi.Geom.Solvers.DeepSolvingStatus.html","topicHref":"Hi.Geom.Solvers.DeepSolvingStatus.html","topicUid":"Hi.Geom.Solvers.DeepSolvingStatus","type":"Class"},{"name":"NumericalSolver","href":"Hi.Geom.Solvers.NumericalSolver.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.html","topicUid":"Hi.Geom.Solvers.NumericalSolver","type":"Class"},{"name":"NumericalSolver.GetRepondsDelegate","href":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html","topicUid":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate","type":"Delegate"},{"name":"NumericalSolver.SetParasDelegate","href":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html","topicUid":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate","type":"Delegate"},{"name":"SolverUtil","href":"Hi.Geom.Solvers.SolverUtil.html","topicHref":"Hi.Geom.Solvers.SolverUtil.html","topicUid":"Hi.Geom.Solvers.SolverUtil","type":"Class"},{"name":"SolvingResult","href":"Hi.Geom.Solvers.SolvingResult.html","topicHref":"Hi.Geom.Solvers.SolvingResult.html","topicUid":"Hi.Geom.Solvers.SolvingResult","type":"Class"},{"name":"SolvingStatus","href":"Hi.Geom.Solvers.SolvingStatus.html","topicHref":"Hi.Geom.Solvers.SolvingStatus.html","topicUid":"Hi.Geom.Solvers.SolvingStatus","type":"Enum"},{"name":"SolvingTerm","href":"Hi.Geom.Solvers.SolvingTerm.html","topicHref":"Hi.Geom.Solvers.SolvingTerm.html","topicUid":"Hi.Geom.Solvers.SolvingTerm","type":"Enum"}]},{"name":"Hi.Geom.Topo","href":"Hi.Geom.Topo.html","topicHref":"Hi.Geom.Topo.html","topicUid":"Hi.Geom.Topo","type":"Namespace","items":[{"name":"TopoLine3Hfr","href":"Hi.Geom.Topo.TopoLine3Hfr.html","topicHref":"Hi.Geom.Topo.TopoLine3Hfr.html","topicUid":"Hi.Geom.Topo.TopoLine3Hfr","type":"Class"},{"name":"TopoLine3StockHfr","href":"Hi.Geom.Topo.TopoLine3StockHfr.html","topicHref":"Hi.Geom.Topo.TopoLine3StockHfr.html","topicUid":"Hi.Geom.Topo.TopoLine3StockHfr","type":"Class"},{"name":"TopoPoint3Hfr","href":"Hi.Geom.Topo.TopoPoint3Hfr.html","topicHref":"Hi.Geom.Topo.TopoPoint3Hfr.html","topicUid":"Hi.Geom.Topo.TopoPoint3Hfr","type":"Class"},{"name":"TopoPoint3StockHfr","href":"Hi.Geom.Topo.TopoPoint3StockHfr.html","topicHref":"Hi.Geom.Topo.TopoPoint3StockHfr.html","topicUid":"Hi.Geom.Topo.TopoPoint3StockHfr","type":"Class"},{"name":"TopoStl3Hfr","href":"Hi.Geom.Topo.TopoStl3Hfr.html","topicHref":"Hi.Geom.Topo.TopoStl3Hfr.html","topicUid":"Hi.Geom.Topo.TopoStl3Hfr","type":"Class"},{"name":"TopoStl3HfrFlatDisplayee","href":"Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.html","topicHref":"Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.html","topicUid":"Hi.Geom.Topo.TopoStl3HfrFlatDisplayee","type":"Class"},{"name":"TopoStl3HfrSmoothDisplayee","href":"Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html","topicHref":"Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html","topicUid":"Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee","type":"Class"},{"name":"TopoTri3Hfr","href":"Hi.Geom.Topo.TopoTri3Hfr.html","topicHref":"Hi.Geom.Topo.TopoTri3Hfr.html","topicUid":"Hi.Geom.Topo.TopoTri3Hfr","type":"Class"},{"name":"TopoTri3StockHfr","href":"Hi.Geom.Topo.TopoTri3StockHfr.html","topicHref":"Hi.Geom.Topo.TopoTri3StockHfr.html","topicUid":"Hi.Geom.Topo.TopoTri3StockHfr","type":"Class"},{"name":"Vec3Hfr","href":"Hi.Geom.Topo.Vec3Hfr.html","topicHref":"Hi.Geom.Topo.Vec3Hfr.html","topicUid":"Hi.Geom.Topo.Vec3Hfr","type":"Struct"}]},{"name":"Hi.Geom.UnitUtils","href":"Hi.Geom.UnitUtils.html","topicHref":"Hi.Geom.UnitUtils.html","topicUid":"Hi.Geom.UnitUtils","type":"Namespace","items":[{"name":"PhysicsUnit","href":"Hi.Geom.UnitUtils.PhysicsUnit.html","topicHref":"Hi.Geom.UnitUtils.PhysicsUnit.html","topicUid":"Hi.Geom.UnitUtils.PhysicsUnit","type":"Enum"},{"name":"StringValueAttribute","href":"Hi.Geom.UnitUtils.StringValueAttribute.html","topicHref":"Hi.Geom.UnitUtils.StringValueAttribute.html","topicUid":"Hi.Geom.UnitUtils.StringValueAttribute","type":"Class"},{"name":"UnitConvertUtil","href":"Hi.Geom.UnitUtils.UnitConvertUtil.html","topicHref":"Hi.Geom.UnitUtils.UnitConvertUtil.html","topicUid":"Hi.Geom.UnitUtils.UnitConvertUtil","type":"Class"}]},{"name":"Hi.HiNcKits","href":"Hi.HiNcKits.html","topicHref":"Hi.HiNcKits.html","topicUid":"Hi.HiNcKits","type":"Namespace","items":[{"name":"BasePathEnum","href":"Hi.HiNcKits.BasePathEnum.html","topicHref":"Hi.HiNcKits.BasePathEnum.html","topicUid":"Hi.HiNcKits.BasePathEnum","type":"Enum"},{"name":"HiNcHost","href":"Hi.HiNcKits.HiNcHost.html","topicHref":"Hi.HiNcKits.HiNcHost.html","topicUid":"Hi.HiNcKits.HiNcHost","type":"Class"},{"name":"LocalApp","href":"Hi.HiNcKits.LocalApp.html","topicHref":"Hi.HiNcKits.LocalApp.html","topicUid":"Hi.HiNcKits.LocalApp","type":"Class"},{"name":"LocalAppConfig","href":"Hi.HiNcKits.LocalAppConfig.html","topicHref":"Hi.HiNcKits.LocalAppConfig.html","topicUid":"Hi.HiNcKits.LocalAppConfig","type":"Class"},{"name":"PlayerDivConfig","href":"Hi.HiNcKits.PlayerDivConfig.html","topicHref":"Hi.HiNcKits.PlayerDivConfig.html","topicUid":"Hi.HiNcKits.PlayerDivConfig","type":"Class"},{"name":"ProxyConfig","href":"Hi.HiNcKits.ProxyConfig.html","topicHref":"Hi.HiNcKits.ProxyConfig.html","topicUid":"Hi.HiNcKits.ProxyConfig","type":"Class"},{"name":"UserConfig","href":"Hi.HiNcKits.UserConfig.html","topicHref":"Hi.HiNcKits.UserConfig.html","topicUid":"Hi.HiNcKits.UserConfig","type":"Class"},{"name":"UserService","href":"Hi.HiNcKits.UserService.html","topicHref":"Hi.HiNcKits.UserService.html","topicUid":"Hi.HiNcKits.UserService","type":"Class"}]},{"name":"Hi.Licenses","href":"Hi.Licenses.html","topicHref":"Hi.Licenses.html","topicUid":"Hi.Licenses","type":"Namespace","items":[{"name":"AuthFeature","href":"Hi.Licenses.AuthFeature.html","topicHref":"Hi.Licenses.AuthFeature.html","topicUid":"Hi.Licenses.AuthFeature","type":"Enum"},{"name":"AuthorizationFailedEventArgs","href":"Hi.Licenses.AuthorizationFailedEventArgs.html","topicHref":"Hi.Licenses.AuthorizationFailedEventArgs.html","topicUid":"Hi.Licenses.AuthorizationFailedEventArgs","type":"Class"},{"name":"BlockType","href":"Hi.Licenses.BlockType.html","topicHref":"Hi.Licenses.BlockType.html","topicUid":"Hi.Licenses.BlockType","type":"Enum"},{"name":"License","href":"Hi.Licenses.License.html","topicHref":"Hi.Licenses.License.html","topicUid":"Hi.Licenses.License","type":"Class"},{"name":"LicenseType","href":"Hi.Licenses.LicenseType.html","topicHref":"Hi.Licenses.LicenseType.html","topicUid":"Hi.Licenses.LicenseType","type":"Enum"}]},{"name":"Hi.Machining","href":"Hi.Machining.html","topicHref":"Hi.Machining.html","topicUid":"Hi.Machining","type":"Namespace","items":[{"name":"FreeformRemover","href":"Hi.Machining.FreeformRemover.html","topicHref":"Hi.Machining.FreeformRemover.html","topicUid":"Hi.Machining.FreeformRemover","type":"Class"},{"name":"ICutter","href":"Hi.Machining.ICutter.html","topicHref":"Hi.Machining.ICutter.html","topicUid":"Hi.Machining.ICutter","type":"Interface"},{"name":"ICutterAnchorable","href":"Hi.Machining.ICutterAnchorable.html","topicHref":"Hi.Machining.ICutterAnchorable.html","topicUid":"Hi.Machining.ICutterAnchorable","type":"Interface"},{"name":"IGetSweptable","href":"Hi.Machining.IGetSweptable.html","topicHref":"Hi.Machining.IGetSweptable.html","topicUid":"Hi.Machining.IGetSweptable","type":"Interface"},{"name":"IMachiningTool","href":"Hi.Machining.IMachiningTool.html","topicHref":"Hi.Machining.IMachiningTool.html","topicUid":"Hi.Machining.IMachiningTool","type":"Interface"},{"name":"IVolumeRemover","href":"Hi.Machining.IVolumeRemover.html","topicHref":"Hi.Machining.IVolumeRemover.html","topicUid":"Hi.Machining.IVolumeRemover","type":"Interface"},{"name":"MachiningToolHouse","href":"Hi.Machining.MachiningToolHouse.html","topicHref":"Hi.Machining.MachiningToolHouse.html","topicUid":"Hi.Machining.MachiningToolHouse","type":"Class"},{"name":"MachiningVolumeRemovalProc","href":"Hi.Machining.MachiningVolumeRemovalProc.html","topicHref":"Hi.Machining.MachiningVolumeRemovalProc.html","topicUid":"Hi.Machining.MachiningVolumeRemovalProc","type":"Class"},{"name":"MachiningVolumeRemovalProc.StepMotionSnapshot","href":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html","topicHref":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html","topicUid":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot","type":"Class"},{"name":"MatInterpolationKit","href":"Hi.Machining.MatInterpolationKit.html","topicHref":"Hi.Machining.MatInterpolationKit.html","topicUid":"Hi.Machining.MatInterpolationKit","type":"Class"},{"name":"MatRelation","href":"Hi.Machining.MatRelation.html","topicHref":"Hi.Machining.MatRelation.html","topicUid":"Hi.Machining.MatRelation","type":"Enum"},{"name":"MatRelationUtil","href":"Hi.Machining.MatRelationUtil.html","topicHref":"Hi.Machining.MatRelationUtil.html","topicUid":"Hi.Machining.MatRelationUtil","type":"Class"},{"name":"Sweptable","href":"Hi.Machining.Sweptable.html","topicHref":"Hi.Machining.Sweptable.html","topicUid":"Hi.Machining.Sweptable","type":"Class"},{"name":"SweptableUtil","href":"Hi.Machining.SweptableUtil.html","topicHref":"Hi.Machining.SweptableUtil.html","topicUid":"Hi.Machining.SweptableUtil","type":"Class"},{"name":"ToolNotFoundException","href":"Hi.Machining.ToolNotFoundException.html","topicHref":"Hi.Machining.ToolNotFoundException.html","topicUid":"Hi.Machining.ToolNotFoundException","type":"Class"}]},{"name":"Hi.Machining.MachiningEquipmentUtils","href":"Hi.Machining.MachiningEquipmentUtils.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.html","topicUid":"Hi.Machining.MachiningEquipmentUtils","type":"Namespace","items":[{"name":"CollidableComponentEnum","href":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum","type":"Enum"},{"name":"IGetMachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment","type":"Interface"},{"name":"IMachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment","type":"Interface"},{"name":"MachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment","type":"Class"},{"name":"MachiningEquipmentCollisionIndex","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex","type":"Class"},{"name":"MachiningEquipmentCollisionIndexPairsSource","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource","type":"Class"},{"name":"MachiningEquipmentUtil","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil","type":"Class"}]},{"name":"Hi.MachiningProcs","href":"Hi.MachiningProcs.html","topicHref":"Hi.MachiningProcs.html","topicUid":"Hi.MachiningProcs","type":"Namespace","items":[{"name":"ConfigStepFunc","href":"Hi.MachiningProcs.ConfigStepFunc.html","topicHref":"Hi.MachiningProcs.ConfigStepFunc.html","topicUid":"Hi.MachiningProcs.ConfigStepFunc","type":"Delegate"},{"name":"IMachiningProjectGetter","href":"Hi.MachiningProcs.IMachiningProjectGetter.html","topicHref":"Hi.MachiningProcs.IMachiningProjectGetter.html","topicUid":"Hi.MachiningProcs.IMachiningProjectGetter","type":"Interface"},{"name":"IProjectService","href":"Hi.MachiningProcs.IProjectService.html","topicHref":"Hi.MachiningProcs.IProjectService.html","topicUid":"Hi.MachiningProcs.IProjectService","type":"Interface"},{"name":"LocalProjectService","href":"Hi.MachiningProcs.LocalProjectService.html","topicHref":"Hi.MachiningProcs.LocalProjectService.html","topicUid":"Hi.MachiningProcs.LocalProjectService","type":"Class"},{"name":"LocalProjectService.MachiningProjectChangedDelegate","href":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html","topicHref":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html","topicUid":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate","type":"Delegate"},{"name":"MachiningActRunner","href":"Hi.MachiningProcs.MachiningActRunner.html","topicHref":"Hi.MachiningProcs.MachiningActRunner.html","topicUid":"Hi.MachiningProcs.MachiningActRunner","type":"Class"},{"name":"MachiningActRunner.MachiningStepBuiltDelegate","href":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html","topicHref":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html","topicUid":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate","type":"Delegate"},{"name":"MachiningActRunnerConfig","href":"Hi.MachiningProcs.MachiningActRunnerConfig.html","topicHref":"Hi.MachiningProcs.MachiningActRunnerConfig.html","topicUid":"Hi.MachiningProcs.MachiningActRunnerConfig","type":"Class"},{"name":"MachiningParallelProc","href":"Hi.MachiningProcs.MachiningParallelProc.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc","type":"Class"},{"name":"MachiningParallelProc.StepTaskBundle","href":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle","type":"Class"},{"name":"MachiningParallelProc.SubstractionResult","href":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult","type":"Class"},{"name":"MachiningProject","href":"Hi.MachiningProcs.MachiningProject.html","topicHref":"Hi.MachiningProcs.MachiningProject.html","topicUid":"Hi.MachiningProcs.MachiningProject","type":"Class"},{"name":"MachiningProjectDisplayee","href":"Hi.MachiningProcs.MachiningProjectDisplayee.html","topicHref":"Hi.MachiningProcs.MachiningProjectDisplayee.html","topicUid":"Hi.MachiningProcs.MachiningProjectDisplayee","type":"Class"},{"name":"MachiningSession","href":"Hi.MachiningProcs.MachiningSession.html","topicHref":"Hi.MachiningProcs.MachiningSession.html","topicUid":"Hi.MachiningProcs.MachiningSession","type":"Class"},{"name":"MillingUtil","href":"Hi.MachiningProcs.MillingUtil.html","topicHref":"Hi.MachiningProcs.MillingUtil.html","topicUid":"Hi.MachiningProcs.MillingUtil","type":"Class"},{"name":"NcRunnerSessionState","href":"Hi.MachiningProcs.NcRunnerSessionState.html","topicHref":"Hi.MachiningProcs.NcRunnerSessionState.html","topicUid":"Hi.MachiningProcs.NcRunnerSessionState","type":"Class"},{"name":"ProxyProjectService","href":"Hi.MachiningProcs.ProxyProjectService.html","topicHref":"Hi.MachiningProcs.ProxyProjectService.html","topicUid":"Hi.MachiningProcs.ProxyProjectService","type":"Class"},{"name":"RenderingFlag","href":"Hi.MachiningProcs.RenderingFlag.html","topicHref":"Hi.MachiningProcs.RenderingFlag.html","topicUid":"Hi.MachiningProcs.RenderingFlag","type":"Enum"},{"name":"SessionMessage","href":"Hi.MachiningProcs.SessionMessage.html","topicHref":"Hi.MachiningProcs.SessionMessage.html","topicUid":"Hi.MachiningProcs.SessionMessage","type":"Class"},{"name":"SessionMessagePack","href":"Hi.MachiningProcs.SessionMessagePack.html","topicHref":"Hi.MachiningProcs.SessionMessagePack.html","topicUid":"Hi.MachiningProcs.SessionMessagePack","type":"Class"},{"name":"SessionProgress","href":"Hi.MachiningProcs.SessionProgress.html","topicHref":"Hi.MachiningProcs.SessionProgress.html","topicUid":"Hi.MachiningProcs.SessionProgress","type":"Class"},{"name":"SessionProgress.FilterFlag","href":"Hi.MachiningProcs.SessionProgress.FilterFlag.html","topicHref":"Hi.MachiningProcs.SessionProgress.FilterFlag.html","topicUid":"Hi.MachiningProcs.SessionProgress.FilterFlag","type":"Enum"},{"name":"SessionShell","href":"Hi.MachiningProcs.SessionShell.html","topicHref":"Hi.MachiningProcs.SessionShell.html","topicUid":"Hi.MachiningProcs.SessionShell","type":"Class"},{"name":"SessionShellController","href":"Hi.MachiningProcs.SessionShellController.html","topicHref":"Hi.MachiningProcs.SessionShellController.html","topicUid":"Hi.MachiningProcs.SessionShellController","type":"Class"},{"name":"SetupController","href":"Hi.MachiningProcs.SetupController.html","topicHref":"Hi.MachiningProcs.SetupController.html","topicUid":"Hi.MachiningProcs.SetupController","type":"Class"},{"name":"SpindleSpeedCache","href":"Hi.MachiningProcs.SpindleSpeedCache.html","topicHref":"Hi.MachiningProcs.SpindleSpeedCache.html","topicUid":"Hi.MachiningProcs.SpindleSpeedCache","type":"Class"}]},{"name":"Hi.MachiningSteps","href":"Hi.MachiningSteps.html","topicHref":"Hi.MachiningSteps.html","topicUid":"Hi.MachiningSteps","type":"Namespace","items":[{"name":"IFlagText","href":"Hi.MachiningSteps.IFlagText.html","topicHref":"Hi.MachiningSteps.IFlagText.html","topicUid":"Hi.MachiningSteps.IFlagText","type":"Interface"},{"name":"IMachiningService","href":"Hi.MachiningSteps.IMachiningService.html","topicHref":"Hi.MachiningSteps.IMachiningService.html","topicUid":"Hi.MachiningSteps.IMachiningService","type":"Interface"},{"name":"IStepPropertyAccessHost","href":"Hi.MachiningSteps.IStepPropertyAccessHost.html","topicHref":"Hi.MachiningSteps.IStepPropertyAccessHost.html","topicUid":"Hi.MachiningSteps.IStepPropertyAccessHost","type":"Interface"},{"name":"MachineMotionStep","href":"Hi.MachiningSteps.MachineMotionStep.html","topicHref":"Hi.MachiningSteps.MachineMotionStep.html","topicUid":"Hi.MachiningSteps.MachineMotionStep","type":"Class"},{"name":"MachiningStep","href":"Hi.MachiningSteps.MachiningStep.html","topicHref":"Hi.MachiningSteps.MachiningStep.html","topicUid":"Hi.MachiningSteps.MachiningStep","type":"Class"},{"name":"MachiningStep.CollidedKeyPair","href":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html","topicHref":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html","topicUid":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair","type":"Class"},{"name":"MachiningStepUtil","href":"Hi.MachiningSteps.MachiningStepUtil.html","topicHref":"Hi.MachiningSteps.MachiningStepUtil.html","topicUid":"Hi.MachiningSteps.MachiningStepUtil","type":"Class"},{"name":"PresentAccess","href":"Hi.MachiningSteps.PresentAccess.html","topicHref":"Hi.MachiningSteps.PresentAccess.html","topicUid":"Hi.MachiningSteps.PresentAccess","type":"Class"},{"name":"PresentAttribute","href":"Hi.MachiningSteps.PresentAttribute.html","topicHref":"Hi.MachiningSteps.PresentAttribute.html","topicUid":"Hi.MachiningSteps.PresentAttribute","type":"Class"},{"name":"PropertyAccess","href":"Hi.MachiningSteps.PropertyAccess-1.html","topicHref":"Hi.MachiningSteps.PropertyAccess-1.html","topicUid":"Hi.MachiningSteps.PropertyAccess`1","type":"Class"}]},{"name":"Hi.Mapping","href":"Hi.Mapping.html","topicHref":"Hi.Mapping.html","topicUid":"Hi.Mapping","type":"Namespace","items":[{"name":"CsvNcStep","href":"Hi.Mapping.CsvNcStep.html","topicHref":"Hi.Mapping.CsvNcStep.html","topicUid":"Hi.Mapping.CsvNcStep","type":"Class"},{"name":"FileToTimeShotMapping","href":"Hi.Mapping.FileToTimeShotMapping.html","topicHref":"Hi.Mapping.FileToTimeShotMapping.html","topicUid":"Hi.Mapping.FileToTimeShotMapping","type":"Class"},{"name":"IAccelerationShot","href":"Hi.Mapping.IAccelerationShot.html","topicHref":"Hi.Mapping.IAccelerationShot.html","topicUid":"Hi.Mapping.IAccelerationShot","type":"Interface"},{"name":"IForceShot","href":"Hi.Mapping.IForceShot.html","topicHref":"Hi.Mapping.IForceShot.html","topicUid":"Hi.Mapping.IForceShot","type":"Interface"},{"name":"IMomentShot","href":"Hi.Mapping.IMomentShot.html","topicHref":"Hi.Mapping.IMomentShot.html","topicUid":"Hi.Mapping.IMomentShot","type":"Interface"},{"name":"ITimeShot","href":"Hi.Mapping.ITimeShot.html","topicHref":"Hi.Mapping.ITimeShot.html","topicUid":"Hi.Mapping.ITimeShot","type":"Interface"},{"name":"MappingUtil","href":"Hi.Mapping.MappingUtil.html","topicHref":"Hi.Mapping.MappingUtil.html","topicUid":"Hi.Mapping.MappingUtil","type":"Class"},{"name":"StepTimeShotUtil","href":"Hi.Mapping.StepTimeShotUtil.html","topicHref":"Hi.Mapping.StepTimeShotUtil.html","topicUid":"Hi.Mapping.StepTimeShotUtil","type":"Class"},{"name":"StepTimeShotUtil.CycleSamplingMode","href":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html","topicHref":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html","topicUid":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode","type":"Enum"},{"name":"StepTimeShotUtil.GetTimeShotByFileDelegate","href":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html","topicHref":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html","topicUid":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate","type":"Delegate"},{"name":"TimeMapping","href":"Hi.Mapping.TimeMapping.html","topicHref":"Hi.Mapping.TimeMapping.html","topicUid":"Hi.Mapping.TimeMapping","type":"Class"}]},{"name":"Hi.Mappings","href":"Hi.Mappings.html","topicHref":"Hi.Mappings.html","topicUid":"Hi.Mappings","type":"Namespace","items":[{"name":"FileTimeSection","href":"Hi.Mappings.FileTimeSection.html","topicHref":"Hi.Mappings.FileTimeSection.html","topicUid":"Hi.Mappings.FileTimeSection","type":"Class"},{"name":"FileTimeSection.TimeOption","href":"Hi.Mappings.FileTimeSection.TimeOption.html","topicHref":"Hi.Mappings.FileTimeSection.TimeOption.html","topicUid":"Hi.Mappings.FileTimeSection.TimeOption","type":"Enum"}]},{"name":"Hi.Mech","href":"Hi.Mech.html","topicHref":"Hi.Mech.html","topicUid":"Hi.Mech","type":"Namespace","items":[{"name":"GeneralMechanism","href":"Hi.Mech.GeneralMechanism.html","topicHref":"Hi.Mech.GeneralMechanism.html","topicUid":"Hi.Mech.GeneralMechanism","type":"Class"},{"name":"IGetAnchorToSolidDictionary","href":"Hi.Mech.IGetAnchorToSolidDictionary.html","topicHref":"Hi.Mech.IGetAnchorToSolidDictionary.html","topicUid":"Hi.Mech.IGetAnchorToSolidDictionary","type":"Interface"},{"name":"IGetMachiningChain","href":"Hi.Mech.IGetMachiningChain.html","topicHref":"Hi.Mech.IGetMachiningChain.html","topicUid":"Hi.Mech.IGetMachiningChain","type":"Interface"},{"name":"IMachiningChain","href":"Hi.Mech.IMachiningChain.html","topicHref":"Hi.Mech.IMachiningChain.html","topicUid":"Hi.Mech.IMachiningChain","type":"Interface"},{"name":"IMachiningChainSource","href":"Hi.Mech.IMachiningChainSource.html","topicHref":"Hi.Mech.IMachiningChainSource.html","topicUid":"Hi.Mech.IMachiningChainSource","type":"Interface"},{"name":"MachiningChainUtil","href":"Hi.Mech.MachiningChainUtil.html","topicHref":"Hi.Mech.MachiningChainUtil.html","topicUid":"Hi.Mech.MachiningChainUtil","type":"Class"}]},{"name":"Hi.Mech.Topo","href":"Hi.Mech.Topo.html","topicHref":"Hi.Mech.Topo.html","topicUid":"Hi.Mech.Topo","type":"Namespace","items":[{"name":"Anchor","href":"Hi.Mech.Topo.Anchor.html","topicHref":"Hi.Mech.Topo.Anchor.html","topicUid":"Hi.Mech.Topo.Anchor","type":"Class"},{"name":"AnchorFuncSource","href":"Hi.Mech.Topo.AnchorFuncSource.html","topicHref":"Hi.Mech.Topo.AnchorFuncSource.html","topicUid":"Hi.Mech.Topo.AnchorFuncSource","type":"Class"},{"name":"AnchoredBoxable","href":"Hi.Mech.Topo.AnchoredBoxable.html","topicHref":"Hi.Mech.Topo.AnchoredBoxable.html","topicUid":"Hi.Mech.Topo.AnchoredBoxable","type":"Class"},{"name":"AnchoredDisplayee","href":"Hi.Mech.Topo.AnchoredDisplayee.html","topicHref":"Hi.Mech.Topo.AnchoredDisplayee.html","topicUid":"Hi.Mech.Topo.AnchoredDisplayee","type":"Class"},{"name":"Asmb","href":"Hi.Mech.Topo.Asmb.html","topicHref":"Hi.Mech.Topo.Asmb.html","topicUid":"Hi.Mech.Topo.Asmb","type":"Class"},{"name":"AsmbDraw","href":"Hi.Mech.Topo.AsmbDraw.html","topicHref":"Hi.Mech.Topo.AsmbDraw.html","topicUid":"Hi.Mech.Topo.AsmbDraw","type":"Class"},{"name":"Branch","href":"Hi.Mech.Topo.Branch.html","topicHref":"Hi.Mech.Topo.Branch.html","topicUid":"Hi.Mech.Topo.Branch","type":"Class"},{"name":"DirectionBranchEntry","href":"Hi.Mech.Topo.DirectionBranchEntry.html","topicHref":"Hi.Mech.Topo.DirectionBranchEntry.html","topicUid":"Hi.Mech.Topo.DirectionBranchEntry","type":"Class"},{"name":"DirectionBranchPackUtil","href":"Hi.Mech.Topo.DirectionBranchPackUtil.html","topicHref":"Hi.Mech.Topo.DirectionBranchPackUtil.html","topicUid":"Hi.Mech.Topo.DirectionBranchPackUtil","type":"Class"},{"name":"DynamicFreeform","href":"Hi.Mech.Topo.DynamicFreeform.html","topicHref":"Hi.Mech.Topo.DynamicFreeform.html","topicUid":"Hi.Mech.Topo.DynamicFreeform","type":"Class"},{"name":"DynamicRotation","href":"Hi.Mech.Topo.DynamicRotation.html","topicHref":"Hi.Mech.Topo.DynamicRotation.html","topicUid":"Hi.Mech.Topo.DynamicRotation","type":"Class"},{"name":"DynamicTranslation","href":"Hi.Mech.Topo.DynamicTranslation.html","topicHref":"Hi.Mech.Topo.DynamicTranslation.html","topicUid":"Hi.Mech.Topo.DynamicTranslation","type":"Class"},{"name":"GeneralTransform","href":"Hi.Mech.Topo.GeneralTransform.html","topicHref":"Hi.Mech.Topo.GeneralTransform.html","topicUid":"Hi.Mech.Topo.GeneralTransform","type":"Class"},{"name":"IAnchoredDisplayee","href":"Hi.Mech.Topo.IAnchoredDisplayee.html","topicHref":"Hi.Mech.Topo.IAnchoredDisplayee.html","topicUid":"Hi.Mech.Topo.IAnchoredDisplayee","type":"Interface"},{"name":"IDynamicRegular","href":"Hi.Mech.Topo.IDynamicRegular.html","topicHref":"Hi.Mech.Topo.IDynamicRegular.html","topicUid":"Hi.Mech.Topo.IDynamicRegular","type":"Interface"},{"name":"IDynamicRotation","href":"Hi.Mech.Topo.IDynamicRotation.html","topicHref":"Hi.Mech.Topo.IDynamicRotation.html","topicUid":"Hi.Mech.Topo.IDynamicRotation","type":"Interface"},{"name":"IDynamicTransformer","href":"Hi.Mech.Topo.IDynamicTransformer.html","topicHref":"Hi.Mech.Topo.IDynamicTransformer.html","topicUid":"Hi.Mech.Topo.IDynamicTransformer","type":"Interface"},{"name":"IGetAnchor","href":"Hi.Mech.Topo.IGetAnchor.html","topicHref":"Hi.Mech.Topo.IGetAnchor.html","topicUid":"Hi.Mech.Topo.IGetAnchor","type":"Interface"},{"name":"IGetAnchoredDisplayeeList","href":"Hi.Mech.Topo.IGetAnchoredDisplayeeList.html","topicHref":"Hi.Mech.Topo.IGetAnchoredDisplayeeList.html","topicUid":"Hi.Mech.Topo.IGetAnchoredDisplayeeList","type":"Interface"},{"name":"IGetAsmb","href":"Hi.Mech.Topo.IGetAsmb.html","topicHref":"Hi.Mech.Topo.IGetAsmb.html","topicUid":"Hi.Mech.Topo.IGetAsmb","type":"Interface"},{"name":"IGetFletchBuckle","href":"Hi.Mech.Topo.IGetFletchBuckle.html","topicHref":"Hi.Mech.Topo.IGetFletchBuckle.html","topicUid":"Hi.Mech.Topo.IGetFletchBuckle","type":"Interface"},{"name":"IGetInverseTransformer","href":"Hi.Mech.Topo.IGetInverseTransformer.html","topicHref":"Hi.Mech.Topo.IGetInverseTransformer.html","topicUid":"Hi.Mech.Topo.IGetInverseTransformer","type":"Interface"},{"name":"IGetTopoIndex","href":"Hi.Mech.Topo.IGetTopoIndex.html","topicHref":"Hi.Mech.Topo.IGetTopoIndex.html","topicUid":"Hi.Mech.Topo.IGetTopoIndex","type":"Interface"},{"name":"IStaticTransformer","href":"Hi.Mech.Topo.IStaticTransformer.html","topicHref":"Hi.Mech.Topo.IStaticTransformer.html","topicUid":"Hi.Mech.Topo.IStaticTransformer","type":"Interface"},{"name":"ITopo","href":"Hi.Mech.Topo.ITopo.html","topicHref":"Hi.Mech.Topo.ITopo.html","topicUid":"Hi.Mech.Topo.ITopo","type":"Interface"},{"name":"ITopoDisplayee","href":"Hi.Mech.Topo.ITopoDisplayee.html","topicHref":"Hi.Mech.Topo.ITopoDisplayee.html","topicUid":"Hi.Mech.Topo.ITopoDisplayee","type":"Interface"},{"name":"ITransformer","href":"Hi.Mech.Topo.ITransformer.html","topicHref":"Hi.Mech.Topo.ITransformer.html","topicUid":"Hi.Mech.Topo.ITransformer","type":"Interface"},{"name":"ITransformerProperty","href":"Hi.Mech.Topo.ITransformerProperty.html","topicHref":"Hi.Mech.Topo.ITransformerProperty.html","topicUid":"Hi.Mech.Topo.ITransformerProperty","type":"Interface"},{"name":"NoTransform","href":"Hi.Mech.Topo.NoTransform.html","topicHref":"Hi.Mech.Topo.NoTransform.html","topicUid":"Hi.Mech.Topo.NoTransform","type":"Class"},{"name":"StackTransformer","href":"Hi.Mech.Topo.StackTransformer.html","topicHref":"Hi.Mech.Topo.StackTransformer.html","topicUid":"Hi.Mech.Topo.StackTransformer","type":"Class"},{"name":"StaticFreeform","href":"Hi.Mech.Topo.StaticFreeform.html","topicHref":"Hi.Mech.Topo.StaticFreeform.html","topicUid":"Hi.Mech.Topo.StaticFreeform","type":"Class"},{"name":"StaticRotation","href":"Hi.Mech.Topo.StaticRotation.html","topicHref":"Hi.Mech.Topo.StaticRotation.html","topicUid":"Hi.Mech.Topo.StaticRotation","type":"Class"},{"name":"StaticTranslation","href":"Hi.Mech.Topo.StaticTranslation.html","topicHref":"Hi.Mech.Topo.StaticTranslation.html","topicUid":"Hi.Mech.Topo.StaticTranslation","type":"Class"},{"name":"TopoDisplayee","href":"Hi.Mech.Topo.TopoDisplayee.html","topicHref":"Hi.Mech.Topo.TopoDisplayee.html","topicUid":"Hi.Mech.Topo.TopoDisplayee","type":"Class"},{"name":"TopoDisplayeeUtil","href":"Hi.Mech.Topo.TopoDisplayeeUtil.html","topicHref":"Hi.Mech.Topo.TopoDisplayeeUtil.html","topicUid":"Hi.Mech.Topo.TopoDisplayeeUtil","type":"Class"},{"name":"TopoReflection","href":"Hi.Mech.Topo.TopoReflection.html","topicHref":"Hi.Mech.Topo.TopoReflection.html","topicUid":"Hi.Mech.Topo.TopoReflection","type":"Class"},{"name":"TopoUtil","href":"Hi.Mech.Topo.TopoUtil.html","topicHref":"Hi.Mech.Topo.TopoUtil.html","topicUid":"Hi.Mech.Topo.TopoUtil","type":"Class"},{"name":"TransformerUtil","href":"Hi.Mech.Topo.TransformerUtil.html","topicHref":"Hi.Mech.Topo.TransformerUtil.html","topicUid":"Hi.Mech.Topo.TransformerUtil","type":"Class"}]},{"name":"Hi.Milling","href":"Hi.Milling.html","topicHref":"Hi.Milling.html","topicUid":"Hi.Milling","type":"Namespace","items":[{"name":"IGetDiameter","href":"Hi.Milling.IGetDiameter.html","topicHref":"Hi.Milling.IGetDiameter.html","topicUid":"Hi.Milling.IGetDiameter","type":"Interface"},{"name":"IGetFluteHeight","href":"Hi.Milling.IGetFluteHeight.html","topicHref":"Hi.Milling.IGetFluteHeight.html","topicUid":"Hi.Milling.IGetFluteHeight","type":"Interface"},{"name":"IGetMillingGeomBrief","href":"Hi.Milling.IGetMillingGeomBrief.html","topicHref":"Hi.Milling.IGetMillingGeomBrief.html","topicUid":"Hi.Milling.IGetMillingGeomBrief","type":"Interface"},{"name":"IGetRadialReliefAngle","href":"Hi.Milling.IGetRadialReliefAngle.html","topicHref":"Hi.Milling.IGetRadialReliefAngle.html","topicUid":"Hi.Milling.IGetRadialReliefAngle","type":"Interface"},{"name":"IMillingGeomBriefAccessor","href":"Hi.Milling.IMillingGeomBriefAccessor.html","topicHref":"Hi.Milling.IMillingGeomBriefAccessor.html","topicUid":"Hi.Milling.IMillingGeomBriefAccessor","type":"Interface"},{"name":"MillingGeomBrief","href":"Hi.Milling.MillingGeomBrief.html","topicHref":"Hi.Milling.MillingGeomBrief.html","topicUid":"Hi.Milling.MillingGeomBrief","type":"Class"},{"name":"MillingRemovalUtil","href":"Hi.Milling.MillingRemovalUtil.html","topicHref":"Hi.Milling.MillingRemovalUtil.html","topicUid":"Hi.Milling.MillingRemovalUtil","type":"Class"},{"name":"SpindleCapability","href":"Hi.Milling.SpindleCapability.html","topicHref":"Hi.Milling.SpindleCapability.html","topicUid":"Hi.Milling.SpindleCapability","type":"Class"}]},{"name":"Hi.Milling.Apts","href":"Hi.Milling.Apts.html","topicHref":"Hi.Milling.Apts.html","topicUid":"Hi.Milling.Apts","type":"Namespace","items":[{"name":"AptDerivative","href":"Hi.Milling.Apts.AptDerivative.html","topicHref":"Hi.Milling.Apts.AptDerivative.html","topicUid":"Hi.Milling.Apts.AptDerivative","type":"Class"},{"name":"BallApt","href":"Hi.Milling.Apts.BallApt.html","topicHref":"Hi.Milling.Apts.BallApt.html","topicUid":"Hi.Milling.Apts.BallApt","type":"Class"},{"name":"BullNoseApt","href":"Hi.Milling.Apts.BullNoseApt.html","topicHref":"Hi.Milling.Apts.BullNoseApt.html","topicUid":"Hi.Milling.Apts.BullNoseApt","type":"Class"},{"name":"ColumnApt","href":"Hi.Milling.Apts.ColumnApt.html","topicHref":"Hi.Milling.Apts.ColumnApt.html","topicUid":"Hi.Milling.Apts.ColumnApt","type":"Class"},{"name":"ConeApt","href":"Hi.Milling.Apts.ConeApt.html","topicHref":"Hi.Milling.Apts.ConeApt.html","topicUid":"Hi.Milling.Apts.ConeApt","type":"Class"},{"name":"ExactColumnApt","href":"Hi.Milling.Apts.ExactColumnApt.html","topicHref":"Hi.Milling.Apts.ExactColumnApt.html","topicUid":"Hi.Milling.Apts.ExactColumnApt","type":"Class"},{"name":"GeneralApt","href":"Hi.Milling.Apts.GeneralApt.html","topicHref":"Hi.Milling.Apts.GeneralApt.html","topicUid":"Hi.Milling.Apts.GeneralApt","type":"Class"},{"name":"IAptAlpha","href":"Hi.Milling.Apts.IAptAlpha.html","topicHref":"Hi.Milling.Apts.IAptAlpha.html","topicUid":"Hi.Milling.Apts.IAptAlpha","type":"Interface"},{"name":"IAptBased","href":"Hi.Milling.Apts.IAptBased.html","topicHref":"Hi.Milling.Apts.IAptBased.html","topicUid":"Hi.Milling.Apts.IAptBased","type":"Interface"},{"name":"IAptBeta","href":"Hi.Milling.Apts.IAptBeta.html","topicHref":"Hi.Milling.Apts.IAptBeta.html","topicUid":"Hi.Milling.Apts.IAptBeta","type":"Interface"},{"name":"IAptRc","href":"Hi.Milling.Apts.IAptRc.html","topicHref":"Hi.Milling.Apts.IAptRc.html","topicUid":"Hi.Milling.Apts.IAptRc","type":"Interface"},{"name":"IAptRr","href":"Hi.Milling.Apts.IAptRr.html","topicHref":"Hi.Milling.Apts.IAptRr.html","topicUid":"Hi.Milling.Apts.IAptRr","type":"Interface"},{"name":"IAptRz","href":"Hi.Milling.Apts.IAptRz.html","topicHref":"Hi.Milling.Apts.IAptRz.html","topicUid":"Hi.Milling.Apts.IAptRz","type":"Interface"},{"name":"IGetApt","href":"Hi.Milling.Apts.IGetApt.html","topicHref":"Hi.Milling.Apts.IGetApt.html","topicUid":"Hi.Milling.Apts.IGetApt","type":"Interface"},{"name":"IGetGeneralApt","href":"Hi.Milling.Apts.IGetGeneralApt.html","topicHref":"Hi.Milling.Apts.IGetGeneralApt.html","topicUid":"Hi.Milling.Apts.IGetGeneralApt","type":"Interface"},{"name":"TaperApt","href":"Hi.Milling.Apts.TaperApt.html","topicHref":"Hi.Milling.Apts.TaperApt.html","topicUid":"Hi.Milling.Apts.TaperApt","type":"Class"},{"name":"apt_t","href":"Hi.Milling.Apts.apt_t.html","topicHref":"Hi.Milling.Apts.apt_t.html","topicUid":"Hi.Milling.Apts.apt_t","type":"Struct"}]},{"name":"Hi.Milling.Cutters","href":"Hi.Milling.Cutters.html","topicHref":"Hi.Milling.Cutters.html","topicUid":"Hi.Milling.Cutters","type":"Namespace","items":[{"name":"AptProfile","href":"Hi.Milling.Cutters.AptProfile.html","topicHref":"Hi.Milling.Cutters.AptProfile.html","topicUid":"Hi.Milling.Cutters.AptProfile","type":"Class"},{"name":"ConstRatioProfile","href":"Hi.Milling.Cutters.ConstRatioProfile.html","topicHref":"Hi.Milling.Cutters.ConstRatioProfile.html","topicUid":"Hi.Milling.Cutters.ConstRatioProfile","type":"Class"},{"name":"CustomSpinningProfile","href":"Hi.Milling.Cutters.CustomSpinningProfile.html","topicHref":"Hi.Milling.Cutters.CustomSpinningProfile.html","topicUid":"Hi.Milling.Cutters.CustomSpinningProfile","type":"Class"},{"name":"CutterUtil","href":"Hi.Milling.Cutters.CutterUtil.html","topicHref":"Hi.Milling.Cutters.CutterUtil.html","topicUid":"Hi.Milling.Cutters.CutterUtil","type":"Class"},{"name":"FluteContourDisplayee","href":"Hi.Milling.Cutters.FluteContourDisplayee.html","topicHref":"Hi.Milling.Cutters.FluteContourDisplayee.html","topicUid":"Hi.Milling.Cutters.FluteContourDisplayee","type":"Class"},{"name":"FluteDependentRatioProfile","href":"Hi.Milling.Cutters.FluteDependentRatioProfile.html","topicHref":"Hi.Milling.Cutters.FluteDependentRatioProfile.html","topicUid":"Hi.Milling.Cutters.FluteDependentRatioProfile","type":"Class"},{"name":"IShaperProfile","href":"Hi.Milling.Cutters.IShaperProfile.html","topicHref":"Hi.Milling.Cutters.IShaperProfile.html","topicUid":"Hi.Milling.Cutters.IShaperProfile","type":"Interface"},{"name":"MillingCutter","href":"Hi.Milling.Cutters.MillingCutter.html","topicHref":"Hi.Milling.Cutters.MillingCutter.html","topicUid":"Hi.Milling.Cutters.MillingCutter","type":"Class"},{"name":"MillingCutter.IntegralModeEnum","href":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html","topicHref":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html","topicUid":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum","type":"Enum"},{"name":"MillingCutter.MassAssignmentMode","href":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html","topicHref":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html","topicUid":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode","type":"Enum"},{"name":"MillingCutterEditorDisplayee","href":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.html","topicHref":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.html","topicUid":"Hi.Milling.Cutters.MillingCutterEditorDisplayee","type":"Class"},{"name":"MillingCutterEditorDisplayee.ShapeModeEnum","href":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html","topicHref":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html","topicUid":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum","type":"Enum"}]},{"name":"Hi.Milling.Engagements","href":"Hi.Milling.Engagements.html","topicHref":"Hi.Milling.Engagements.html","topicUid":"Hi.Milling.Engagements","type":"Namespace","items":[{"name":"BitwiseMillingEngagement","href":"Hi.Milling.Engagements.BitwiseMillingEngagement.html","topicHref":"Hi.Milling.Engagements.BitwiseMillingEngagement.html","topicUid":"Hi.Milling.Engagements.BitwiseMillingEngagement","type":"Class"},{"name":"EngagementLayer","href":"Hi.Milling.Engagements.EngagementLayer.html","topicHref":"Hi.Milling.Engagements.EngagementLayer.html","topicUid":"Hi.Milling.Engagements.EngagementLayer","type":"Class"},{"name":"EngagementSlice","href":"Hi.Milling.Engagements.EngagementSlice.html","topicHref":"Hi.Milling.Engagements.EngagementSlice.html","topicUid":"Hi.Milling.Engagements.EngagementSlice","type":"Class"},{"name":"IBitwiseMillingEngagementSupport","href":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html","topicHref":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html","topicUid":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport","type":"Interface"},{"name":"IGetLayerMillingEngagement","href":"Hi.Milling.Engagements.IGetLayerMillingEngagement.html","topicHref":"Hi.Milling.Engagements.IGetLayerMillingEngagement.html","topicUid":"Hi.Milling.Engagements.IGetLayerMillingEngagement","type":"Interface"},{"name":"LayerMillingEngagement","href":"Hi.Milling.Engagements.LayerMillingEngagement.html","topicHref":"Hi.Milling.Engagements.LayerMillingEngagement.html","topicUid":"Hi.Milling.Engagements.LayerMillingEngagement","type":"Class"},{"name":"MillingEngagementUtil","href":"Hi.Milling.Engagements.MillingEngagementUtil.html","topicHref":"Hi.Milling.Engagements.MillingEngagementUtil.html","topicUid":"Hi.Milling.Engagements.MillingEngagementUtil","type":"Class"}]},{"name":"Hi.Milling.FluteContours","href":"Hi.Milling.FluteContours.html","topicHref":"Hi.Milling.FluteContours.html","topicUid":"Hi.Milling.FluteContours","type":"Namespace","items":[{"name":"ConstHelixSideContour","href":"Hi.Milling.FluteContours.ConstHelixSideContour.html","topicHref":"Hi.Milling.FluteContours.ConstHelixSideContour.html","topicUid":"Hi.Milling.FluteContours.ConstHelixSideContour","type":"Class"},{"name":"FluteContour","href":"Hi.Milling.FluteContours.FluteContour.html","topicHref":"Hi.Milling.FluteContours.FluteContour.html","topicUid":"Hi.Milling.FluteContours.FluteContour","type":"Class"},{"name":"FluteContourUtil","href":"Hi.Milling.FluteContours.FluteContourUtil.html","topicHref":"Hi.Milling.FluteContours.FluteContourUtil.html","topicUid":"Hi.Milling.FluteContours.FluteContourUtil","type":"Class"},{"name":"FreeContourTray","href":"Hi.Milling.FluteContours.FreeContourTray.html","topicHref":"Hi.Milling.FluteContours.FreeContourTray.html","topicUid":"Hi.Milling.FluteContours.FreeContourTray","type":"Class"},{"name":"FreeformSideContour","href":"Hi.Milling.FluteContours.FreeformSideContour.html","topicHref":"Hi.Milling.FluteContours.FreeformSideContour.html","topicUid":"Hi.Milling.FluteContours.FreeformSideContour","type":"Class"},{"name":"IBottomContour","href":"Hi.Milling.FluteContours.IBottomContour.html","topicHref":"Hi.Milling.FluteContours.IBottomContour.html","topicUid":"Hi.Milling.FluteContours.IBottomContour","type":"Interface"},{"name":"IContourTray","href":"Hi.Milling.FluteContours.IContourTray.html","topicHref":"Hi.Milling.FluteContours.IContourTray.html","topicUid":"Hi.Milling.FluteContours.IContourTray","type":"Interface"},{"name":"IFluteNumSourceProperty","href":"Hi.Milling.FluteContours.IFluteNumSourceProperty.html","topicHref":"Hi.Milling.FluteContours.IFluteNumSourceProperty.html","topicUid":"Hi.Milling.FluteContours.IFluteNumSourceProperty","type":"Interface"},{"name":"IGetFluteNum","href":"Hi.Milling.FluteContours.IGetFluteNum.html","topicHref":"Hi.Milling.FluteContours.IGetFluteNum.html","topicUid":"Hi.Milling.FluteContours.IGetFluteNum","type":"Interface"},{"name":"ISideContour","href":"Hi.Milling.FluteContours.ISideContour.html","topicHref":"Hi.Milling.FluteContours.ISideContour.html","topicUid":"Hi.Milling.FluteContours.ISideContour","type":"Interface"},{"name":"IWorkingContour","href":"Hi.Milling.FluteContours.IWorkingContour.html","topicHref":"Hi.Milling.FluteContours.IWorkingContour.html","topicUid":"Hi.Milling.FluteContours.IWorkingContour","type":"Interface"},{"name":"ShiftedWorkingContour","href":"Hi.Milling.FluteContours.ShiftedWorkingContour.html","topicHref":"Hi.Milling.FluteContours.ShiftedWorkingContour.html","topicUid":"Hi.Milling.FluteContours.ShiftedWorkingContour","type":"Class"},{"name":"SideContourDisplayee","href":"Hi.Milling.FluteContours.SideContourDisplayee.html","topicHref":"Hi.Milling.FluteContours.SideContourDisplayee.html","topicUid":"Hi.Milling.FluteContours.SideContourDisplayee","type":"Class"},{"name":"SlideBottomContour","href":"Hi.Milling.FluteContours.SlideBottomContour.html","topicHref":"Hi.Milling.FluteContours.SlideBottomContour.html","topicUid":"Hi.Milling.FluteContours.SlideBottomContour","type":"Class"},{"name":"SpanContourPos4d","href":"Hi.Milling.FluteContours.SpanContourPos4d.html","topicHref":"Hi.Milling.FluteContours.SpanContourPos4d.html","topicUid":"Hi.Milling.FluteContours.SpanContourPos4d","type":"Class"},{"name":"UniformContourTray","href":"Hi.Milling.FluteContours.UniformContourTray.html","topicHref":"Hi.Milling.FluteContours.UniformContourTray.html","topicUid":"Hi.Milling.FluteContours.UniformContourTray","type":"Class"}]},{"name":"Hi.Milling.MillingTools","href":"Hi.Milling.MillingTools.html","topicHref":"Hi.Milling.MillingTools.html","topicUid":"Hi.Milling.MillingTools","type":"Namespace","items":[{"name":"MillingTool","href":"Hi.Milling.MillingTools.MillingTool.html","topicHref":"Hi.Milling.MillingTools.MillingTool.html","topicUid":"Hi.Milling.MillingTools.MillingTool","type":"Class"},{"name":"MillingToolAnchorReference","href":"Hi.Milling.MillingTools.MillingToolAnchorReference.html","topicHref":"Hi.Milling.MillingTools.MillingToolAnchorReference.html","topicUid":"Hi.Milling.MillingTools.MillingToolAnchorReference","type":"Enum"},{"name":"MillingToolEditorDisplayee","href":"Hi.Milling.MillingTools.MillingToolEditorDisplayee.html","topicHref":"Hi.Milling.MillingTools.MillingToolEditorDisplayee.html","topicUid":"Hi.Milling.MillingTools.MillingToolEditorDisplayee","type":"Class"},{"name":"MillingToolUtil","href":"Hi.Milling.MillingTools.MillingToolUtil.html","topicHref":"Hi.Milling.MillingTools.MillingToolUtil.html","topicUid":"Hi.Milling.MillingTools.MillingToolUtil","type":"Class"}]},{"name":"Hi.MillingForces","href":"Hi.MillingForces.html","topicHref":"Hi.MillingForces.html","topicUid":"Hi.MillingForces","type":"Namespace","items":[{"name":"FluteZData","href":"Hi.MillingForces.FluteZData.html","topicHref":"Hi.MillingForces.FluteZData.html","topicUid":"Hi.MillingForces.FluteZData","type":"Class"},{"name":"IGetMillingForce","href":"Hi.MillingForces.IGetMillingForce.html","topicHref":"Hi.MillingForces.IGetMillingForce.html","topicUid":"Hi.MillingForces.IGetMillingForce","type":"Interface"},{"name":"IMillingForceAccessor","href":"Hi.MillingForces.IMillingForceAccessor.html","topicHref":"Hi.MillingForces.IMillingForceAccessor.html","topicUid":"Hi.MillingForces.IMillingForceAccessor","type":"Interface"},{"name":"MillingForce","href":"Hi.MillingForces.MillingForce.html","topicHref":"Hi.MillingForces.MillingForce.html","topicUid":"Hi.MillingForces.MillingForce","type":"Class"},{"name":"MillingForceLicense","href":"Hi.MillingForces.MillingForceLicense.html","topicHref":"Hi.MillingForces.MillingForceLicense.html","topicUid":"Hi.MillingForces.MillingForceLicense","type":"Class"},{"name":"MillingForceLuggage","href":"Hi.MillingForces.MillingForceLuggage.html","topicHref":"Hi.MillingForces.MillingForceLuggage.html","topicUid":"Hi.MillingForces.MillingForceLuggage","type":"Class"},{"name":"MillingForceUtil","href":"Hi.MillingForces.MillingForceUtil.html","topicHref":"Hi.MillingForces.MillingForceUtil.html","topicUid":"Hi.MillingForces.MillingForceUtil","type":"Class"},{"name":"MillingForceUtil.AnglePack","href":"Hi.MillingForces.MillingForceUtil.AnglePack.html","topicHref":"Hi.MillingForces.MillingForceUtil.AnglePack.html","topicUid":"Hi.MillingForces.MillingForceUtil.AnglePack","type":"Class"},{"name":"MillingPhysicsBrief","href":"Hi.MillingForces.MillingPhysicsBrief.html","topicHref":"Hi.MillingForces.MillingPhysicsBrief.html","topicUid":"Hi.MillingForces.MillingPhysicsBrief","type":"Class"},{"name":"PhysicsUtil","href":"Hi.MillingForces.PhysicsUtil.html","topicHref":"Hi.MillingForces.PhysicsUtil.html","topicUid":"Hi.MillingForces.PhysicsUtil","type":"Class"},{"name":"ToolObservationReference","href":"Hi.MillingForces.ToolObservationReference.html","topicHref":"Hi.MillingForces.ToolObservationReference.html","topicUid":"Hi.MillingForces.ToolObservationReference","type":"Enum"}]},{"name":"Hi.MillingForces.Fittings","href":"Hi.MillingForces.Fittings.html","topicHref":"Hi.MillingForces.Fittings.html","topicUid":"Hi.MillingForces.Fittings","type":"Namespace","items":[{"name":"CuttingParaUtil","href":"Hi.MillingForces.Fittings.CuttingParaUtil.html","topicHref":"Hi.MillingForces.Fittings.CuttingParaUtil.html","topicUid":"Hi.MillingForces.Fittings.CuttingParaUtil","type":"Class"},{"name":"ICuttingPara","href":"Hi.MillingForces.Fittings.ICuttingPara.html","topicHref":"Hi.MillingForces.Fittings.ICuttingPara.html","topicUid":"Hi.MillingForces.Fittings.ICuttingPara","type":"Interface"},{"name":"IGetCuttingPara","href":"Hi.MillingForces.Fittings.IGetCuttingPara.html","topicHref":"Hi.MillingForces.Fittings.IGetCuttingPara.html","topicUid":"Hi.MillingForces.Fittings.IGetCuttingPara","type":"Interface"},{"name":"SampleCategory","href":"Hi.MillingForces.Fittings.SampleCategory.html","topicHref":"Hi.MillingForces.Fittings.SampleCategory.html","topicUid":"Hi.MillingForces.Fittings.SampleCategory","type":"Class"},{"name":"SampleFlag","href":"Hi.MillingForces.Fittings.SampleFlag.html","topicHref":"Hi.MillingForces.Fittings.SampleFlag.html","topicUid":"Hi.MillingForces.Fittings.SampleFlag","type":"Enum"},{"name":"SampleFlagUtil","href":"Hi.MillingForces.Fittings.SampleFlagUtil.html","topicHref":"Hi.MillingForces.Fittings.SampleFlagUtil.html","topicUid":"Hi.MillingForces.Fittings.SampleFlagUtil","type":"Class"},{"name":"SampleInstance","href":"Hi.MillingForces.Fittings.SampleInstance.html","topicHref":"Hi.MillingForces.Fittings.SampleInstance.html","topicUid":"Hi.MillingForces.Fittings.SampleInstance","type":"Class"},{"name":"TimeForce","href":"Hi.MillingForces.Fittings.TimeForce.html","topicHref":"Hi.MillingForces.Fittings.TimeForce.html","topicUid":"Hi.MillingForces.Fittings.TimeForce","type":"Class"},{"name":"TimeForceFrequencyDomain","href":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html","topicHref":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html","topicUid":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain","type":"Class"},{"name":"TimeForceSeries","href":"Hi.MillingForces.Fittings.TimeForceSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeForceSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeForceSeries","type":"Class"},{"name":"TimeForceUtil","href":"Hi.MillingForces.Fittings.TimeForceUtil.html","topicHref":"Hi.MillingForces.Fittings.TimeForceUtil.html","topicUid":"Hi.MillingForces.Fittings.TimeForceUtil","type":"Class"},{"name":"TimeVsForceSeries","href":"Hi.MillingForces.Fittings.TimeVsForceSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeVsForceSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeVsForceSeries","type":"Class"},{"name":"TimeVsTorqueSeries","href":"Hi.MillingForces.Fittings.TimeVsTorqueSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeVsTorqueSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeVsTorqueSeries","type":"Class"},{"name":"TrainingSample","href":"Hi.MillingForces.Fittings.TrainingSample.html","topicHref":"Hi.MillingForces.Fittings.TrainingSample.html","topicUid":"Hi.MillingForces.Fittings.TrainingSample","type":"Class"}]},{"name":"Hi.MillingForces.ProfileMillingParas","href":"Hi.MillingForces.ProfileMillingParas.html","topicHref":"Hi.MillingForces.ProfileMillingParas.html","topicUid":"Hi.MillingForces.ProfileMillingParas","type":"Namespace","items":[{"name":"IGetLocalProfileMillingPara","href":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html","topicHref":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html","topicUid":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara","type":"Interface"},{"name":"LocalProfileMillingPara","href":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html","topicHref":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html","topicUid":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara","type":"Class"},{"name":"ProfileMillingParaMap","href":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html","topicHref":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html","topicUid":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap","type":"Class"},{"name":"RtaMillingParaKey","href":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html","topicHref":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html","topicUid":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey","type":"Enum"}]},{"name":"Hi.MillingForces.RakeFaceCuttingParas","href":"Hi.MillingForces.RakeFaceCuttingParas.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas","type":"Namespace","items":[{"name":"IRakeFaceCuttingPara","href":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara","type":"Interface"},{"name":"MillingPhysicsUtil","href":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil","type":"Class"},{"name":"MultiFormRakeFaceCuttingPara","href":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara","type":"Class"},{"name":"RakeFaceCuttingPara2d","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d","type":"Class"},{"name":"RakeFaceCuttingPara3d","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d","type":"Class"},{"name":"RakeFaceCuttingParaMap","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap","type":"Class"}]},{"name":"Hi.MillingForces.Training","href":"Hi.MillingForces.Training.html","topicHref":"Hi.MillingForces.Training.html","topicUid":"Hi.MillingForces.Training","type":"Namespace","items":[{"name":"MillingTraining","href":"Hi.MillingForces.Training.MillingTraining.html","topicHref":"Hi.MillingForces.Training.MillingTraining.html","topicUid":"Hi.MillingForces.Training.MillingTraining","type":"Class"}]},{"name":"Hi.MillingProcs","href":"Hi.MillingProcs.html","topicHref":"Hi.MillingProcs.html","topicUid":"Hi.MillingProcs","type":"Namespace","items":[{"name":"MillingGuide","href":"Hi.MillingProcs.MillingGuide.html","topicHref":"Hi.MillingProcs.MillingGuide.html","topicUid":"Hi.MillingProcs.MillingGuide","type":"Class"}]},{"name":"Hi.MillingStepUtils","href":"Hi.MillingStepUtils.html","topicHref":"Hi.MillingStepUtils.html","topicUid":"Hi.MillingStepUtils","type":"Namespace","items":[{"name":"ClStripChartConfig","href":"Hi.MillingStepUtils.ClStripChartConfig.html","topicHref":"Hi.MillingStepUtils.ClStripChartConfig.html","topicUid":"Hi.MillingStepUtils.ClStripChartConfig","type":"Class"},{"name":"ClStripChartItemConfig","href":"Hi.MillingStepUtils.ClStripChartItemConfig.html","topicHref":"Hi.MillingStepUtils.ClStripChartItemConfig.html","topicUid":"Hi.MillingStepUtils.ClStripChartItemConfig","type":"Class"},{"name":"ForceCycleFlag","href":"Hi.MillingStepUtils.ForceCycleFlag.html","topicHref":"Hi.MillingStepUtils.ForceCycleFlag.html","topicUid":"Hi.MillingStepUtils.ForceCycleFlag","type":"Enum"},{"name":"ForceCycleLineDivConfig","href":"Hi.MillingStepUtils.ForceCycleLineDivConfig.html","topicHref":"Hi.MillingStepUtils.ForceCycleLineDivConfig.html","topicUid":"Hi.MillingStepUtils.ForceCycleLineDivConfig","type":"Class"},{"name":"LineChartVRangeMode","href":"Hi.MillingStepUtils.LineChartVRangeMode.html","topicHref":"Hi.MillingStepUtils.LineChartVRangeMode.html","topicUid":"Hi.MillingStepUtils.LineChartVRangeMode","type":"Enum"},{"name":"SpindleMomentCycleLineDivConfig","href":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html","topicHref":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html","topicUid":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig","type":"Class"},{"name":"TimeChartYConfig","href":"Hi.MillingStepUtils.TimeChartYConfig.html","topicHref":"Hi.MillingStepUtils.TimeChartYConfig.html","topicUid":"Hi.MillingStepUtils.TimeChartYConfig","type":"Class"}]},{"name":"Hi.MillingSteps","href":"Hi.MillingSteps.html","topicHref":"Hi.MillingSteps.html","topicUid":"Hi.MillingSteps","type":"Namespace","items":[{"name":"MillingInstance","href":"Hi.MillingSteps.MillingInstance.html","topicHref":"Hi.MillingSteps.MillingInstance.html","topicUid":"Hi.MillingSteps.MillingInstance","type":"Class"},{"name":"MillingStepLuggage","href":"Hi.MillingSteps.MillingStepLuggage.html","topicHref":"Hi.MillingSteps.MillingStepLuggage.html","topicUid":"Hi.MillingSteps.MillingStepLuggage","type":"Class"}]},{"name":"Hi.Motion","href":"Hi.Motion.html","topicHref":"Hi.Motion.html","topicUid":"Hi.Motion","type":"Namespace","items":[{"name":"MotionUtil","href":"Hi.Motion.MotionUtil.html","topicHref":"Hi.Motion.MotionUtil.html","topicUid":"Hi.Motion.MotionUtil","type":"Class"}]},{"name":"Hi.Motion.MatValves","href":"Hi.Motion.MatValves.html","topicHref":"Hi.Motion.MatValves.html","topicUid":"Hi.Motion.MatValves","type":"Namespace","items":[{"name":"ClMachiningValve","href":"Hi.Motion.MatValves.ClMachiningValve.html","topicHref":"Hi.Motion.MatValves.ClMachiningValve.html","topicUid":"Hi.Motion.MatValves.ClMachiningValve","type":"Class"},{"name":"IMotionValve","href":"Hi.Motion.MatValves.IMotionValve.html","topicHref":"Hi.Motion.MatValves.IMotionValve.html","topicUid":"Hi.Motion.MatValves.IMotionValve","type":"Interface"},{"name":"MacroMotionValve","href":"Hi.Motion.MatValves.MacroMotionValve.html","topicHref":"Hi.Motion.MatValves.MacroMotionValve.html","topicUid":"Hi.Motion.MatValves.MacroMotionValve","type":"Class"},{"name":"StepMotionValve","href":"Hi.Motion.MatValves.StepMotionValve.html","topicHref":"Hi.Motion.MatValves.StepMotionValve.html","topicUid":"Hi.Motion.MatValves.StepMotionValve","type":"Class"}]},{"name":"Hi.Native","href":"Hi.Native.html","topicHref":"Hi.Native.html","topicUid":"Hi.Native","type":"Namespace","items":[{"name":"StopSource","href":"Hi.Native.StopSource.html","topicHref":"Hi.Native.StopSource.html","topicUid":"Hi.Native.StopSource","type":"Class"},{"name":"StopToken","href":"Hi.Native.StopToken.html","topicHref":"Hi.Native.StopToken.html","topicUid":"Hi.Native.StopToken","type":"Class"},{"name":"StopTokenKit","href":"Hi.Native.StopTokenKit.html","topicHref":"Hi.Native.StopTokenKit.html","topicUid":"Hi.Native.StopTokenKit","type":"Class"},{"name":"StopTokenUtil","href":"Hi.Native.StopTokenUtil.html","topicHref":"Hi.Native.StopTokenUtil.html","topicUid":"Hi.Native.StopTokenUtil","type":"Class"},{"name":"bind_t","href":"Hi.Native.bind_t.html","topicHref":"Hi.Native.bind_t.html","topicUid":"Hi.Native.bind_t","type":"Struct"},{"name":"box2d","href":"Hi.Native.box2d.html","topicHref":"Hi.Native.box2d.html","topicUid":"Hi.Native.box2d","type":"Struct"},{"name":"box3d","href":"Hi.Native.box3d.html","topicHref":"Hi.Native.box3d.html","topicUid":"Hi.Native.box3d","type":"Struct"},{"name":"expand_to_box3d_func_t","href":"Hi.Native.expand_to_box3d_func_t.html","topicHref":"Hi.Native.expand_to_box3d_func_t.html","topicUid":"Hi.Native.expand_to_box3d_func_t","type":"Delegate"},{"name":"key_event_t","href":"Hi.Native.key_event_t.html","topicHref":"Hi.Native.key_event_t.html","topicUid":"Hi.Native.key_event_t","type":"Struct"},{"name":"key_table__transform_view_by_key_pressing_t","href":"Hi.Native.key_table__transform_view_by_key_pressing_t.html","topicHref":"Hi.Native.key_table__transform_view_by_key_pressing_t.html","topicUid":"Hi.Native.key_table__transform_view_by_key_pressing_t","type":"Struct"},{"name":"mat4d","href":"Hi.Native.mat4d.html","topicHref":"Hi.Native.mat4d.html","topicUid":"Hi.Native.mat4d","type":"Struct"},{"name":"mat_stack_t","href":"Hi.Native.mat_stack_t.html","topicHref":"Hi.Native.mat_stack_t.html","topicUid":"Hi.Native.mat_stack_t","type":"Struct"},{"name":"mouse_button_event_t","href":"Hi.Native.mouse_button_event_t.html","topicHref":"Hi.Native.mouse_button_event_t.html","topicUid":"Hi.Native.mouse_button_event_t","type":"Struct"},{"name":"mouse_button_table__transform_view_by_mouse_drag_t","href":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html","topicHref":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html","topicUid":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t","type":"Struct"},{"name":"mouse_move_event_t","href":"Hi.Native.mouse_move_event_t.html","topicHref":"Hi.Native.mouse_move_event_t.html","topicUid":"Hi.Native.mouse_move_event_t","type":"Struct"},{"name":"mouse_wheel_event_t","href":"Hi.Native.mouse_wheel_event_t.html","topicHref":"Hi.Native.mouse_wheel_event_t.html","topicUid":"Hi.Native.mouse_wheel_event_t","type":"Struct"},{"name":"panel_state_t","href":"Hi.Native.panel_state_t.html","topicHref":"Hi.Native.panel_state_t.html","topicUid":"Hi.Native.panel_state_t","type":"Struct"},{"name":"picking_event_t","href":"Hi.Native.picking_event_t.html","topicHref":"Hi.Native.picking_event_t.html","topicUid":"Hi.Native.picking_event_t","type":"Struct"},{"name":"picking_mark_t","href":"Hi.Native.picking_mark_t.html","topicHref":"Hi.Native.picking_mark_t.html","topicUid":"Hi.Native.picking_mark_t","type":"Struct"},{"name":"tri3d","href":"Hi.Native.tri3d.html","topicHref":"Hi.Native.tri3d.html","topicUid":"Hi.Native.tri3d","type":"Struct"},{"name":"ui_event_type","href":"Hi.Native.ui_event_type.html","topicHref":"Hi.Native.ui_event_type.html","topicUid":"Hi.Native.ui_event_type","type":"Enum"},{"name":"vec2d","href":"Hi.Native.vec2d.html","topicHref":"Hi.Native.vec2d.html","topicUid":"Hi.Native.vec2d","type":"Struct"},{"name":"vec3d","href":"Hi.Native.vec3d.html","topicHref":"Hi.Native.vec3d.html","topicUid":"Hi.Native.vec3d","type":"Struct"},{"name":"vec3f","href":"Hi.Native.vec3f.html","topicHref":"Hi.Native.vec3f.html","topicUid":"Hi.Native.vec3f","type":"Struct"}]},{"name":"Hi.NcMech","href":"Hi.NcMech.html","topicHref":"Hi.NcMech.html","topicUid":"Hi.NcMech","type":"Namespace","items":[{"name":"ICollisionIndexPairsSource","href":"Hi.NcMech.ICollisionIndexPairsSource.html","topicHref":"Hi.NcMech.ICollisionIndexPairsSource.html","topicUid":"Hi.NcMech.ICollisionIndexPairsSource","type":"Interface"}]},{"name":"Hi.NcMech.Fixtures","href":"Hi.NcMech.Fixtures.html","topicHref":"Hi.NcMech.Fixtures.html","topicUid":"Hi.NcMech.Fixtures","type":"Namespace","items":[{"name":"Fixture","href":"Hi.NcMech.Fixtures.Fixture.html","topicHref":"Hi.NcMech.Fixtures.Fixture.html","topicUid":"Hi.NcMech.Fixtures.Fixture","type":"Class"},{"name":"FixtureEditorDisplayee","href":"Hi.NcMech.Fixtures.FixtureEditorDisplayee.html","topicHref":"Hi.NcMech.Fixtures.FixtureEditorDisplayee.html","topicUid":"Hi.NcMech.Fixtures.FixtureEditorDisplayee","type":"Class"},{"name":"FixtureEditorDisplayeeConfig","href":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html","topicHref":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html","topicUid":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig","type":"Class"}]},{"name":"Hi.NcMech.Holders","href":"Hi.NcMech.Holders.html","topicHref":"Hi.NcMech.Holders.html","topicUid":"Hi.NcMech.Holders","type":"Namespace","items":[{"name":"CylindroidHolder","href":"Hi.NcMech.Holders.CylindroidHolder.html","topicHref":"Hi.NcMech.Holders.CylindroidHolder.html","topicUid":"Hi.NcMech.Holders.CylindroidHolder","type":"Class"},{"name":"FreeformHolder","href":"Hi.NcMech.Holders.FreeformHolder.html","topicHref":"Hi.NcMech.Holders.FreeformHolder.html","topicUid":"Hi.NcMech.Holders.FreeformHolder","type":"Class"},{"name":"HolderEditorDisplayee","href":"Hi.NcMech.Holders.HolderEditorDisplayee.html","topicHref":"Hi.NcMech.Holders.HolderEditorDisplayee.html","topicUid":"Hi.NcMech.Holders.HolderEditorDisplayee","type":"Class"},{"name":"IHolder","href":"Hi.NcMech.Holders.IHolder.html","topicHref":"Hi.NcMech.Holders.IHolder.html","topicUid":"Hi.NcMech.Holders.IHolder","type":"Interface"}]},{"name":"Hi.NcMech.Solids","href":"Hi.NcMech.Solids.html","topicHref":"Hi.NcMech.Solids.html","topicUid":"Hi.NcMech.Solids","type":"Namespace","items":[{"name":"IGetSolid","href":"Hi.NcMech.Solids.IGetSolid.html","topicHref":"Hi.NcMech.Solids.IGetSolid.html","topicUid":"Hi.NcMech.Solids.IGetSolid","type":"Interface"},{"name":"Solid","href":"Hi.NcMech.Solids.Solid.html","topicHref":"Hi.NcMech.Solids.Solid.html","topicUid":"Hi.NcMech.Solids.Solid","type":"Class"},{"name":"Solid.RenderingModeEnum","href":"Hi.NcMech.Solids.Solid.RenderingModeEnum.html","topicHref":"Hi.NcMech.Solids.Solid.RenderingModeEnum.html","topicUid":"Hi.NcMech.Solids.Solid.RenderingModeEnum","type":"Enum"},{"name":"SolidFuncSource","href":"Hi.NcMech.Solids.SolidFuncSource.html","topicHref":"Hi.NcMech.Solids.SolidFuncSource.html","topicUid":"Hi.NcMech.Solids.SolidFuncSource","type":"Class"}]},{"name":"Hi.NcMech.Topo","href":"Hi.NcMech.Topo.html","topicHref":"Hi.NcMech.Topo.html","topicUid":"Hi.NcMech.Topo","type":"Namespace","items":[{"name":"INcStroke","href":"Hi.NcMech.Topo.INcStroke.html","topicHref":"Hi.NcMech.Topo.INcStroke.html","topicUid":"Hi.NcMech.Topo.INcStroke","type":"Interface"},{"name":"INcTransformer","href":"Hi.NcMech.Topo.INcTransformer.html","topicHref":"Hi.NcMech.Topo.INcTransformer.html","topicUid":"Hi.NcMech.Topo.INcTransformer","type":"Interface"},{"name":"ITopoBrick","href":"Hi.NcMech.Topo.ITopoBrick.html","topicHref":"Hi.NcMech.Topo.ITopoBrick.html","topicUid":"Hi.NcMech.Topo.ITopoBrick","type":"Interface"},{"name":"NcRotation","href":"Hi.NcMech.Topo.NcRotation.html","topicHref":"Hi.NcMech.Topo.NcRotation.html","topicUid":"Hi.NcMech.Topo.NcRotation","type":"Class"},{"name":"NcTranslation","href":"Hi.NcMech.Topo.NcTranslation.html","topicHref":"Hi.NcMech.Topo.NcTranslation.html","topicUid":"Hi.NcMech.Topo.NcTranslation","type":"Class"},{"name":"SolidSourceTopoBrick","href":"Hi.NcMech.Topo.SolidSourceTopoBrick.html","topicHref":"Hi.NcMech.Topo.SolidSourceTopoBrick.html","topicUid":"Hi.NcMech.Topo.SolidSourceTopoBrick","type":"Class"},{"name":"StlSourceTopoBrick","href":"Hi.NcMech.Topo.StlSourceTopoBrick.html","topicHref":"Hi.NcMech.Topo.StlSourceTopoBrick.html","topicUid":"Hi.NcMech.Topo.StlSourceTopoBrick","type":"Class"}]},{"name":"Hi.NcMech.Workpieces","href":"Hi.NcMech.Workpieces.html","topicHref":"Hi.NcMech.Workpieces.html","topicUid":"Hi.NcMech.Workpieces","type":"Namespace","items":[{"name":"Workpiece","href":"Hi.NcMech.Workpieces.Workpiece.html","topicHref":"Hi.NcMech.Workpieces.Workpiece.html","topicUid":"Hi.NcMech.Workpieces.Workpiece","type":"Class"},{"name":"WorkpieceEditorDisplayee","href":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee","type":"Class"},{"name":"WorkpieceEditorDisplayeeConfig","href":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig","type":"Class"},{"name":"WorkpieceService","href":"Hi.NcMech.Workpieces.WorkpieceService.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceService.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceService","type":"Class"}]},{"name":"Hi.NcMech.Xyzabc","href":"Hi.NcMech.Xyzabc.html","topicHref":"Hi.NcMech.Xyzabc.html","topicUid":"Hi.NcMech.Xyzabc","type":"Namespace","items":[{"name":"CodeXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool","type":"Class"},{"name":"CodeXyzabcMachineToolUri","href":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html","topicHref":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html","topicUid":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri","type":"Class"},{"name":"GeneralXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool","type":"Class"},{"name":"IGetCodeXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool","type":"Interface"},{"name":"IXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.IXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.IXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.IXyzabcMachineTool","type":"Interface"}]},{"name":"Hi.NcOpt","href":"Hi.NcOpt.html","topicHref":"Hi.NcOpt.html","topicUid":"Hi.NcOpt","type":"Namespace","items":[{"name":"CuttingVelocityOptLimit","href":"Hi.NcOpt.CuttingVelocityOptLimit.html","topicHref":"Hi.NcOpt.CuttingVelocityOptLimit.html","topicUid":"Hi.NcOpt.CuttingVelocityOptLimit","type":"Class"},{"name":"FixedFeedPerCycleOptLimit","href":"Hi.NcOpt.FixedFeedPerCycleOptLimit.html","topicHref":"Hi.NcOpt.FixedFeedPerCycleOptLimit.html","topicUid":"Hi.NcOpt.FixedFeedPerCycleOptLimit","type":"Class"},{"name":"FixedFeedPerToothOptLimit","href":"Hi.NcOpt.FixedFeedPerToothOptLimit.html","topicHref":"Hi.NcOpt.FixedFeedPerToothOptLimit.html","topicUid":"Hi.NcOpt.FixedFeedPerToothOptLimit","type":"Class"},{"name":"ICutterOptLimitHost","href":"Hi.NcOpt.ICutterOptLimitHost.html","topicHref":"Hi.NcOpt.ICutterOptLimitHost.html","topicUid":"Hi.NcOpt.ICutterOptLimitHost","type":"Interface"},{"name":"ICutterOptOption","href":"Hi.NcOpt.ICutterOptOption.html","topicHref":"Hi.NcOpt.ICutterOptOption.html","topicUid":"Hi.NcOpt.ICutterOptOption","type":"Interface"},{"name":"ICuttingVelocityOptLimit","href":"Hi.NcOpt.ICuttingVelocityOptLimit.html","topicHref":"Hi.NcOpt.ICuttingVelocityOptLimit.html","topicUid":"Hi.NcOpt.ICuttingVelocityOptLimit","type":"Interface"},{"name":"IFeedPerToothOptLimit","href":"Hi.NcOpt.IFeedPerToothOptLimit.html","topicHref":"Hi.NcOpt.IFeedPerToothOptLimit.html","topicUid":"Hi.NcOpt.IFeedPerToothOptLimit","type":"Interface"},{"name":"MillingCutterOptOption","href":"Hi.NcOpt.MillingCutterOptOption.html","topicHref":"Hi.NcOpt.MillingCutterOptOption.html","topicUid":"Hi.NcOpt.MillingCutterOptOption","type":"Class"},{"name":"NcOptOption","href":"Hi.NcOpt.NcOptOption.html","topicHref":"Hi.NcOpt.NcOptOption.html","topicUid":"Hi.NcOpt.NcOptOption","type":"Class"},{"name":"NcOptProc","href":"Hi.NcOpt.NcOptProc.html","topicHref":"Hi.NcOpt.NcOptProc.html","topicUid":"Hi.NcOpt.NcOptProc","type":"Class"},{"name":"NcOptimizationEmbeddedLogMode","href":"Hi.NcOpt.NcOptimizationEmbeddedLogMode.html","topicHref":"Hi.NcOpt.NcOptimizationEmbeddedLogMode.html","topicUid":"Hi.NcOpt.NcOptimizationEmbeddedLogMode","type":"Enum"},{"name":"ShapeBasedCutterOptLimit","href":"Hi.NcOpt.ShapeBasedCutterOptLimit.html","topicHref":"Hi.NcOpt.ShapeBasedCutterOptLimit.html","topicUid":"Hi.NcOpt.ShapeBasedCutterOptLimit","type":"Class"}]},{"name":"Hi.NcParsers","href":"Hi.NcParsers.html","topicHref":"Hi.NcParsers.html","topicUid":"Hi.NcParsers","type":"Namespace","items":[{"name":"IGetSentence","href":"Hi.NcParsers.IGetSentence.html","topicHref":"Hi.NcParsers.IGetSentence.html","topicUid":"Hi.NcParsers.IGetSentence","type":"Interface"},{"name":"ISentenceCarrier","href":"Hi.NcParsers.ISentenceCarrier.html","topicHref":"Hi.NcParsers.ISentenceCarrier.html","topicUid":"Hi.NcParsers.ISentenceCarrier","type":"Interface"},{"name":"ISentenceIndexed","href":"Hi.NcParsers.ISentenceIndexed.html","topicHref":"Hi.NcParsers.ISentenceIndexed.html","topicUid":"Hi.NcParsers.ISentenceIndexed","type":"Interface"},{"name":"ISessionResettable","href":"Hi.NcParsers.ISessionResettable.html","topicHref":"Hi.NcParsers.ISessionResettable.html","topicUid":"Hi.NcParsers.ISessionResettable","type":"Interface"},{"name":"IndexedSentence","href":"Hi.NcParsers.IndexedSentence.html","topicHref":"Hi.NcParsers.IndexedSentence.html","topicUid":"Hi.NcParsers.IndexedSentence","type":"Class"},{"name":"NcDiagnostic","href":"Hi.NcParsers.NcDiagnostic.html","topicHref":"Hi.NcParsers.NcDiagnostic.html","topicUid":"Hi.NcParsers.NcDiagnostic","type":"Class"},{"name":"NcDiagnosticCategory","href":"Hi.NcParsers.NcDiagnosticCategory.html","topicHref":"Hi.NcParsers.NcDiagnosticCategory.html","topicUid":"Hi.NcParsers.NcDiagnosticCategory","type":"Enum"},{"name":"NcDiagnosticProgress","href":"Hi.NcParsers.NcDiagnosticProgress.html","topicHref":"Hi.NcParsers.NcDiagnosticProgress.html","topicUid":"Hi.NcParsers.NcDiagnosticProgress","type":"Class"},{"name":"NcDiagnosticSeverity","href":"Hi.NcParsers.NcDiagnosticSeverity.html","topicHref":"Hi.NcParsers.NcDiagnosticSeverity.html","topicUid":"Hi.NcParsers.NcDiagnosticSeverity","type":"Enum"},{"name":"Sentence","href":"Hi.NcParsers.Sentence.html","topicHref":"Hi.NcParsers.Sentence.html","topicUid":"Hi.NcParsers.Sentence","type":"Class"},{"name":"SoftNcRunner","href":"Hi.NcParsers.SoftNcRunner.html","topicHref":"Hi.NcParsers.SoftNcRunner.html","topicUid":"Hi.NcParsers.SoftNcRunner","type":"Class"},{"name":"SoftNcUtil","href":"Hi.NcParsers.SoftNcUtil.html","topicHref":"Hi.NcParsers.SoftNcUtil.html","topicUid":"Hi.NcParsers.SoftNcUtil","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys","href":"Hi.NcParsers.Dependencys.html","topicHref":"Hi.NcParsers.Dependencys.html","topicUid":"Hi.NcParsers.Dependencys","type":"Namespace","items":[{"name":"AxisType","href":"Hi.NcParsers.Dependencys.AxisType.html","topicHref":"Hi.NcParsers.Dependencys.AxisType.html","topicUid":"Hi.NcParsers.Dependencys.AxisType","type":"Enum"},{"name":"CncBrandDependency","href":"Hi.NcParsers.Dependencys.CncBrandDependency.html","topicHref":"Hi.NcParsers.Dependencys.CncBrandDependency.html","topicUid":"Hi.NcParsers.Dependencys.CncBrandDependency","type":"Class"},{"name":"ControllerParameterTableBase","href":"Hi.NcParsers.Dependencys.ControllerParameterTableBase.html","topicHref":"Hi.NcParsers.Dependencys.ControllerParameterTableBase.html","topicUid":"Hi.NcParsers.Dependencys.ControllerParameterTableBase","type":"Class"},{"name":"HeidenhainDatumTable","href":"Hi.NcParsers.Dependencys.HeidenhainDatumTable.html","topicHref":"Hi.NcParsers.Dependencys.HeidenhainDatumTable.html","topicUid":"Hi.NcParsers.Dependencys.HeidenhainDatumTable","type":"Class"},{"name":"IBlockSkipConfig","href":"Hi.NcParsers.Dependencys.IBlockSkipConfig.html","topicHref":"Hi.NcParsers.Dependencys.IBlockSkipConfig.html","topicUid":"Hi.NcParsers.Dependencys.IBlockSkipConfig","type":"Interface"},{"name":"ICannedCycleConfig","href":"Hi.NcParsers.Dependencys.ICannedCycleConfig.html","topicHref":"Hi.NcParsers.Dependencys.ICannedCycleConfig.html","topicUid":"Hi.NcParsers.Dependencys.ICannedCycleConfig","type":"Interface"},{"name":"IHomeMcConfig","href":"Hi.NcParsers.Dependencys.IHomeMcConfig.html","topicHref":"Hi.NcParsers.Dependencys.IHomeMcConfig.html","topicUid":"Hi.NcParsers.Dependencys.IHomeMcConfig","type":"Interface"},{"name":"IIsoCoordinateConfig","href":"Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html","topicHref":"Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html","topicUid":"Hi.NcParsers.Dependencys.IIsoCoordinateConfig","type":"Interface"},{"name":"IMachineAxisConfig","href":"Hi.NcParsers.Dependencys.IMachineAxisConfig.html","topicHref":"Hi.NcParsers.Dependencys.IMachineAxisConfig.html","topicUid":"Hi.NcParsers.Dependencys.IMachineAxisConfig","type":"Interface"},{"name":"INcDependency","href":"Hi.NcParsers.Dependencys.INcDependency.html","topicHref":"Hi.NcParsers.Dependencys.INcDependency.html","topicUid":"Hi.NcParsers.Dependencys.INcDependency","type":"Interface"},{"name":"IPowerResettable","href":"Hi.NcParsers.Dependencys.IPowerResettable.html","topicHref":"Hi.NcParsers.Dependencys.IPowerResettable.html","topicUid":"Hi.NcParsers.Dependencys.IPowerResettable","type":"Interface"},{"name":"IRapidFeedrateConfig","href":"Hi.NcParsers.Dependencys.IRapidFeedrateConfig.html","topicHref":"Hi.NcParsers.Dependencys.IRapidFeedrateConfig.html","topicUid":"Hi.NcParsers.Dependencys.IRapidFeedrateConfig","type":"Interface"},{"name":"IStrokeLimitConfig","href":"Hi.NcParsers.Dependencys.IStrokeLimitConfig.html","topicHref":"Hi.NcParsers.Dependencys.IStrokeLimitConfig.html","topicUid":"Hi.NcParsers.Dependencys.IStrokeLimitConfig","type":"Interface"},{"name":"IToolOffsetConfig","href":"Hi.NcParsers.Dependencys.IToolOffsetConfig.html","topicHref":"Hi.NcParsers.Dependencys.IToolOffsetConfig.html","topicUid":"Hi.NcParsers.Dependencys.IToolOffsetConfig","type":"Interface"},{"name":"IToolingMcConfig","href":"Hi.NcParsers.Dependencys.IToolingMcConfig.html","topicHref":"Hi.NcParsers.Dependencys.IToolingMcConfig.html","topicUid":"Hi.NcParsers.Dependencys.IToolingMcConfig","type":"Interface"},{"name":"IsoCoordinateAddressMap","href":"Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.html","topicHref":"Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.html","topicUid":"Hi.NcParsers.Dependencys.IsoCoordinateAddressMap","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Fanuc","href":"Hi.NcParsers.Dependencys.Fanuc.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc","type":"Namespace","items":[{"name":"CutterCompensationType","href":"Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType","type":"Enum"},{"name":"FanucGotoIterationDependency","href":"Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency","type":"Class"},{"name":"FanucParameterTable","href":"Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable","type":"Class"},{"name":"FanucPositionVariableLookup","href":"Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup","type":"Class"},{"name":"FanucToolOffsetVariableLookup","href":"Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup","type":"Class"},{"name":"FanucWhileDoIterationDependency","href":"Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency","type":"Class"},{"name":"RetainedCommonVariableTable","href":"Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Generic","href":"Hi.NcParsers.Dependencys.Generic.html","topicHref":"Hi.NcParsers.Dependencys.Generic.html","topicUid":"Hi.NcParsers.Dependencys.Generic","type":"Namespace","items":[{"name":"FallbackConfig","href":"Hi.NcParsers.Dependencys.Generic.FallbackConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.FallbackConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.FallbackConfig","type":"Class"},{"name":"GenericBlockSkipConfig","href":"Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig","type":"Class"},{"name":"IsoCoordinateTable","href":"Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html","topicHref":"Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html","topicUid":"Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable","type":"Class"},{"name":"SubProgramFolderConfig","href":"Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig","type":"Class"},{"name":"ToolOffsetRow","href":"Hi.NcParsers.Dependencys.Generic.ToolOffsetRow.html","topicHref":"Hi.NcParsers.Dependencys.Generic.ToolOffsetRow.html","topicUid":"Hi.NcParsers.Dependencys.Generic.ToolOffsetRow","type":"Class"},{"name":"ToolOffsetTable","href":"Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.html","topicHref":"Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.html","topicUid":"Hi.NcParsers.Dependencys.Generic.ToolOffsetTable","type":"Class"},{"name":"ToolingMcConfig","href":"Hi.NcParsers.Dependencys.Generic.ToolingMcConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.ToolingMcConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.ToolingMcConfig","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Heidenhain","href":"Hi.NcParsers.Dependencys.Heidenhain.html","topicHref":"Hi.NcParsers.Dependencys.Heidenhain.html","topicUid":"Hi.NcParsers.Dependencys.Heidenhain","type":"Namespace","items":[{"name":"HeidenhainParameterTable","href":"Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable.html","topicHref":"Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable.html","topicUid":"Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Siemens","href":"Hi.NcParsers.Dependencys.Siemens.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.html","topicUid":"Hi.NcParsers.Dependencys.Siemens","type":"Namespace","items":[{"name":"ISiemensToolOffsetConfig","href":"Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig.html","topicUid":"Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig","type":"Interface"},{"name":"SiemensFrameTable","href":"Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable.html","topicUid":"Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable","type":"Class"},{"name":"SiemensMachineDataTable","href":"Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.html","topicUid":"Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Syntec","href":"Hi.NcParsers.Dependencys.Syntec.html","topicHref":"Hi.NcParsers.Dependencys.Syntec.html","topicUid":"Hi.NcParsers.Dependencys.Syntec","type":"Namespace","items":[{"name":"SyntecParameterTable","href":"Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html","topicHref":"Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html","topicUid":"Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.SystemWired","href":"Hi.NcParsers.Dependencys.SystemWired.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired","type":"Namespace","items":[{"name":"FileIndexCounterDependency","href":"Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency","type":"Class"},{"name":"MachiningServiceDependency","href":"Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency","type":"Class"},{"name":"NcKinematicsDependency","href":"Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency","type":"Class"},{"name":"ProjectFolderDependency","href":"Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency","type":"Class"},{"name":"SegmenterDependency","href":"Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency","type":"Class"},{"name":"StepPropertyAccessDictionaryDependency","href":"Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency","type":"Class"},{"name":"SyntaxPieceLayerDependency","href":"Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency","type":"Class"}]},{"name":"Hi.NcParsers.EvaluationSyntaxs","href":"Hi.NcParsers.EvaluationSyntaxs.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs","type":"Namespace","items":[{"name":"CallStackUtil","href":"Hi.NcParsers.EvaluationSyntaxs.CallStackUtil.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.CallStackUtil.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.CallStackUtil","type":"Class"},{"name":"LabelScanUtil","href":"Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil","type":"Class"},{"name":"MacroFileResolver","href":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver","type":"Class"},{"name":"MacroFileResolver.ResolvedFile","href":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile","type":"Struct"},{"name":"MacroInlineUtil","href":"Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil","type":"Class"},{"name":"RetainedCommonVariableReadingSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax","type":"Class"},{"name":"SubProgramCallSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax","type":"Class"},{"name":"SubProgramReturnSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax","type":"Class"},{"name":"VariableEvaluatorSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax","type":"Class"},{"name":"VolatileVariableReadingSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax","type":"Class"}]},{"name":"Hi.NcParsers.EvaluationSyntaxs.Evaluation","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation","type":"Namespace","items":[{"name":"EvalResult","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult","type":"Struct"},{"name":"IRuntimeVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup","type":"Interface"},{"name":"IVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup","type":"Interface"},{"name":"LocalVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup","type":"Class"},{"name":"NcBinaryExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr","type":"Class"},{"name":"NcBinaryOp","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp","type":"Enum"},{"name":"NcExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr","type":"Class"},{"name":"NcExpressionEvaluator","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator","type":"Class"},{"name":"NcExpressionParser","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser","type":"Class"},{"name":"NcFunctionExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr","type":"Class"},{"name":"NcIndirectVariableExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr","type":"Class"},{"name":"NcLiteralExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr","type":"Class"},{"name":"NcUnaryExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr","type":"Class"},{"name":"NcUnaryOp","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp","type":"Enum"},{"name":"NcVariableExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr","type":"Class"},{"name":"VolatileVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup","type":"Class"}]},{"name":"Hi.NcParsers.EvaluationSyntaxs.Fanuc","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc","type":"Namespace","items":[{"name":"FanucConditionReader","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader","type":"Class"},{"name":"FanucGotoSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax","type":"Class"},{"name":"FanucIfThenSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax","type":"Class"},{"name":"FanucLocalVariableReadingSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax","type":"Class"},{"name":"FanucMacroArgumentMap","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap","type":"Class"},{"name":"FanucMacroCallSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax","type":"Class"},{"name":"FanucModalMacroSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax","type":"Class"},{"name":"FanucModalMacroSyntax.SyntaxPhase","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase","type":"Enum"},{"name":"FanucSystemControlVariableSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax","type":"Class"},{"name":"FanucWhileDoSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax","type":"Class"}]},{"name":"Hi.NcParsers.Initializers","href":"Hi.NcParsers.Initializers.html","topicHref":"Hi.NcParsers.Initializers.html","topicUid":"Hi.NcParsers.Initializers","type":"Namespace","items":[{"name":"HomeMcInitializer","href":"Hi.NcParsers.Initializers.HomeMcInitializer.html","topicHref":"Hi.NcParsers.Initializers.HomeMcInitializer.html","topicUid":"Hi.NcParsers.Initializers.HomeMcInitializer","type":"Class"},{"name":"INcInitializer","href":"Hi.NcParsers.Initializers.INcInitializer.html","topicHref":"Hi.NcParsers.Initializers.INcInitializer.html","topicUid":"Hi.NcParsers.Initializers.INcInitializer","type":"Interface"},{"name":"StaticInitializer","href":"Hi.NcParsers.Initializers.StaticInitializer.html","topicHref":"Hi.NcParsers.Initializers.StaticInitializer.html","topicUid":"Hi.NcParsers.Initializers.StaticInitializer","type":"Class"}]},{"name":"Hi.NcParsers.InspectionSyntaxs","href":"Hi.NcParsers.InspectionSyntaxs.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.html","topicUid":"Hi.NcParsers.InspectionSyntaxs","type":"Namespace","items":[{"name":"CleanupSyntax","href":"Hi.NcParsers.InspectionSyntaxs.CleanupSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.CleanupSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.CleanupSyntax","type":"Class"},{"name":"ProgramXyzBackfillSyntax","href":"Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax","type":"Class"},{"name":"SnapshotSyntax","href":"Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax","type":"Class"},{"name":"UnconsumedCheckSyntax","href":"Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax","type":"Class"}]},{"name":"Hi.NcParsers.Keywords","href":"Hi.NcParsers.Keywords.html","topicHref":"Hi.NcParsers.Keywords.html","topicUid":"Hi.NcParsers.Keywords","type":"Namespace","items":[{"name":"BlockSkip","href":"Hi.NcParsers.Keywords.BlockSkip.html","topicHref":"Hi.NcParsers.Keywords.BlockSkip.html","topicUid":"Hi.NcParsers.Keywords.BlockSkip","type":"Class"},{"name":"CallFrame","href":"Hi.NcParsers.Keywords.CallFrame.html","topicHref":"Hi.NcParsers.Keywords.CallFrame.html","topicUid":"Hi.NcParsers.Keywords.CallFrame","type":"Class"},{"name":"CallStack","href":"Hi.NcParsers.Keywords.CallStack.html","topicHref":"Hi.NcParsers.Keywords.CallStack.html","topicUid":"Hi.NcParsers.Keywords.CallStack","type":"Class"},{"name":"CannedCycle","href":"Hi.NcParsers.Keywords.CannedCycle.html","topicHref":"Hi.NcParsers.Keywords.CannedCycle.html","topicUid":"Hi.NcParsers.Keywords.CannedCycle","type":"Class"},{"name":"Comment","href":"Hi.NcParsers.Keywords.Comment.html","topicHref":"Hi.NcParsers.Keywords.Comment.html","topicUid":"Hi.NcParsers.Keywords.Comment","type":"Class"},{"name":"CompoundMotion","href":"Hi.NcParsers.Keywords.CompoundMotion.html","topicHref":"Hi.NcParsers.Keywords.CompoundMotion.html","topicUid":"Hi.NcParsers.Keywords.CompoundMotion","type":"Class"},{"name":"Coolant","href":"Hi.NcParsers.Keywords.Coolant.html","topicHref":"Hi.NcParsers.Keywords.Coolant.html","topicUid":"Hi.NcParsers.Keywords.Coolant","type":"Class"},{"name":"CoordinateOffset","href":"Hi.NcParsers.Keywords.CoordinateOffset.html","topicHref":"Hi.NcParsers.Keywords.CoordinateOffset.html","topicUid":"Hi.NcParsers.Keywords.CoordinateOffset","type":"Class"},{"name":"CsScript","href":"Hi.NcParsers.Keywords.CsScript.html","topicHref":"Hi.NcParsers.Keywords.CsScript.html","topicUid":"Hi.NcParsers.Keywords.CsScript","type":"Class"},{"name":"Dwell","href":"Hi.NcParsers.Keywords.Dwell.html","topicHref":"Hi.NcParsers.Keywords.Dwell.html","topicUid":"Hi.NcParsers.Keywords.Dwell","type":"Class"},{"name":"FanucGoto","href":"Hi.NcParsers.Keywords.FanucGoto.html","topicHref":"Hi.NcParsers.Keywords.FanucGoto.html","topicUid":"Hi.NcParsers.Keywords.FanucGoto","type":"Class"},{"name":"FanucIfThen","href":"Hi.NcParsers.Keywords.FanucIfThen.html","topicHref":"Hi.NcParsers.Keywords.FanucIfThen.html","topicUid":"Hi.NcParsers.Keywords.FanucIfThen","type":"Class"},{"name":"FanucMacroCall","href":"Hi.NcParsers.Keywords.FanucMacroCall.html","topicHref":"Hi.NcParsers.Keywords.FanucMacroCall.html","topicUid":"Hi.NcParsers.Keywords.FanucMacroCall","type":"Class"},{"name":"FanucModalMacro","href":"Hi.NcParsers.Keywords.FanucModalMacro.html","topicHref":"Hi.NcParsers.Keywords.FanucModalMacro.html","topicUid":"Hi.NcParsers.Keywords.FanucModalMacro","type":"Class"},{"name":"FanucPathSmoothing","href":"Hi.NcParsers.Keywords.FanucPathSmoothing.html","topicHref":"Hi.NcParsers.Keywords.FanucPathSmoothing.html","topicUid":"Hi.NcParsers.Keywords.FanucPathSmoothing","type":"Class"},{"name":"FanucProgramNumber","href":"Hi.NcParsers.Keywords.FanucProgramNumber.html","topicHref":"Hi.NcParsers.Keywords.FanucProgramNumber.html","topicUid":"Hi.NcParsers.Keywords.FanucProgramNumber","type":"Class"},{"name":"FanucWhileDo","href":"Hi.NcParsers.Keywords.FanucWhileDo.html","topicHref":"Hi.NcParsers.Keywords.FanucWhileDo.html","topicUid":"Hi.NcParsers.Keywords.FanucWhileDo","type":"Class"},{"name":"Feedrate","href":"Hi.NcParsers.Keywords.Feedrate.html","topicHref":"Hi.NcParsers.Keywords.Feedrate.html","topicUid":"Hi.NcParsers.Keywords.Feedrate","type":"Class"},{"name":"IArcMotionDef","href":"Hi.NcParsers.Keywords.IArcMotionDef.html","topicHref":"Hi.NcParsers.Keywords.IArcMotionDef.html","topicUid":"Hi.NcParsers.Keywords.IArcMotionDef","type":"Interface"},{"name":"ICannedCycleDef","href":"Hi.NcParsers.Keywords.ICannedCycleDef.html","topicHref":"Hi.NcParsers.Keywords.ICannedCycleDef.html","topicUid":"Hi.NcParsers.Keywords.ICannedCycleDef","type":"Interface"},{"name":"ICompoundMotionDef","href":"Hi.NcParsers.Keywords.ICompoundMotionDef.html","topicHref":"Hi.NcParsers.Keywords.ICompoundMotionDef.html","topicUid":"Hi.NcParsers.Keywords.ICompoundMotionDef","type":"Interface"},{"name":"ICoolantDef","href":"Hi.NcParsers.Keywords.ICoolantDef.html","topicHref":"Hi.NcParsers.Keywords.ICoolantDef.html","topicUid":"Hi.NcParsers.Keywords.ICoolantDef","type":"Interface"},{"name":"IDwellDef","href":"Hi.NcParsers.Keywords.IDwellDef.html","topicHref":"Hi.NcParsers.Keywords.IDwellDef.html","topicUid":"Hi.NcParsers.Keywords.IDwellDef","type":"Interface"},{"name":"IFanucPathSmoothingDef","href":"Hi.NcParsers.Keywords.IFanucPathSmoothingDef.html","topicHref":"Hi.NcParsers.Keywords.IFanucPathSmoothingDef.html","topicUid":"Hi.NcParsers.Keywords.IFanucPathSmoothingDef","type":"Interface"},{"name":"IFeedrateDef","href":"Hi.NcParsers.Keywords.IFeedrateDef.html","topicHref":"Hi.NcParsers.Keywords.IFeedrateDef.html","topicUid":"Hi.NcParsers.Keywords.IFeedrateDef","type":"Interface"},{"name":"IFlagsDef","href":"Hi.NcParsers.Keywords.IFlagsDef.html","topicHref":"Hi.NcParsers.Keywords.IFlagsDef.html","topicUid":"Hi.NcParsers.Keywords.IFlagsDef","type":"Interface"},{"name":"IMachineCoordinateStateDef","href":"Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html","topicHref":"Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html","topicUid":"Hi.NcParsers.Keywords.IMachineCoordinateStateDef","type":"Interface"},{"name":"IMotionEventDef","href":"Hi.NcParsers.Keywords.IMotionEventDef.html","topicHref":"Hi.NcParsers.Keywords.IMotionEventDef.html","topicUid":"Hi.NcParsers.Keywords.IMotionEventDef","type":"Interface"},{"name":"IMotionStateDef","href":"Hi.NcParsers.Keywords.IMotionStateDef.html","topicHref":"Hi.NcParsers.Keywords.IMotionStateDef.html","topicUid":"Hi.NcParsers.Keywords.IMotionStateDef","type":"Interface"},{"name":"IParsingDef","href":"Hi.NcParsers.Keywords.IParsingDef.html","topicHref":"Hi.NcParsers.Keywords.IParsingDef.html","topicUid":"Hi.NcParsers.Keywords.IParsingDef","type":"Interface"},{"name":"IPathSmoothingDef","href":"Hi.NcParsers.Keywords.IPathSmoothingDef.html","topicHref":"Hi.NcParsers.Keywords.IPathSmoothingDef.html","topicUid":"Hi.NcParsers.Keywords.IPathSmoothingDef","type":"Interface"},{"name":"IPlaneSelectDef","href":"Hi.NcParsers.Keywords.IPlaneSelectDef.html","topicHref":"Hi.NcParsers.Keywords.IPlaneSelectDef.html","topicUid":"Hi.NcParsers.Keywords.IPlaneSelectDef","type":"Interface"},{"name":"IPositioningDef","href":"Hi.NcParsers.Keywords.IPositioningDef.html","topicHref":"Hi.NcParsers.Keywords.IPositioningDef.html","topicUid":"Hi.NcParsers.Keywords.IPositioningDef","type":"Interface"},{"name":"IProgramEndDef","href":"Hi.NcParsers.Keywords.IProgramEndDef.html","topicHref":"Hi.NcParsers.Keywords.IProgramEndDef.html","topicUid":"Hi.NcParsers.Keywords.IProgramEndDef","type":"Interface"},{"name":"IProgramStopDef","href":"Hi.NcParsers.Keywords.IProgramStopDef.html","topicHref":"Hi.NcParsers.Keywords.IProgramStopDef.html","topicUid":"Hi.NcParsers.Keywords.IProgramStopDef","type":"Interface"},{"name":"IProgramXyzDef","href":"Hi.NcParsers.Keywords.IProgramXyzDef.html","topicHref":"Hi.NcParsers.Keywords.IProgramXyzDef.html","topicUid":"Hi.NcParsers.Keywords.IProgramXyzDef","type":"Interface"},{"name":"IRadiusCompensationDef","href":"Hi.NcParsers.Keywords.IRadiusCompensationDef.html","topicHref":"Hi.NcParsers.Keywords.IRadiusCompensationDef.html","topicUid":"Hi.NcParsers.Keywords.IRadiusCompensationDef","type":"Interface"},{"name":"ISpindleControlDef","href":"Hi.NcParsers.Keywords.ISpindleControlDef.html","topicHref":"Hi.NcParsers.Keywords.ISpindleControlDef.html","topicUid":"Hi.NcParsers.Keywords.ISpindleControlDef","type":"Interface"},{"name":"ISpindleOrientationDef","href":"Hi.NcParsers.Keywords.ISpindleOrientationDef.html","topicHref":"Hi.NcParsers.Keywords.ISpindleOrientationDef.html","topicUid":"Hi.NcParsers.Keywords.ISpindleOrientationDef","type":"Interface"},{"name":"ISpindleSpeedDef","href":"Hi.NcParsers.Keywords.ISpindleSpeedDef.html","topicHref":"Hi.NcParsers.Keywords.ISpindleSpeedDef.html","topicUid":"Hi.NcParsers.Keywords.ISpindleSpeedDef","type":"Interface"},{"name":"ITiltTransformDef","href":"Hi.NcParsers.Keywords.ITiltTransformDef.html","topicHref":"Hi.NcParsers.Keywords.ITiltTransformDef.html","topicUid":"Hi.NcParsers.Keywords.ITiltTransformDef","type":"Interface"},{"name":"IToolHeightCompensationDef","href":"Hi.NcParsers.Keywords.IToolHeightCompensationDef.html","topicHref":"Hi.NcParsers.Keywords.IToolHeightCompensationDef.html","topicUid":"Hi.NcParsers.Keywords.IToolHeightCompensationDef","type":"Interface"},{"name":"ITransformationDef","href":"Hi.NcParsers.Keywords.ITransformationDef.html","topicHref":"Hi.NcParsers.Keywords.ITransformationDef.html","topicUid":"Hi.NcParsers.Keywords.ITransformationDef","type":"Interface"},{"name":"IUnitDef","href":"Hi.NcParsers.Keywords.IUnitDef.html","topicHref":"Hi.NcParsers.Keywords.IUnitDef.html","topicUid":"Hi.NcParsers.Keywords.IUnitDef","type":"Interface"},{"name":"IUnparsedTextDef","href":"Hi.NcParsers.Keywords.IUnparsedTextDef.html","topicHref":"Hi.NcParsers.Keywords.IUnparsedTextDef.html","topicUid":"Hi.NcParsers.Keywords.IUnparsedTextDef","type":"Interface"},{"name":"IndexNote","href":"Hi.NcParsers.Keywords.IndexNote.html","topicHref":"Hi.NcParsers.Keywords.IndexNote.html","topicUid":"Hi.NcParsers.Keywords.IndexNote","type":"Class"},{"name":"IsoLocalCoordinateOffset","href":"Hi.NcParsers.Keywords.IsoLocalCoordinateOffset.html","topicHref":"Hi.NcParsers.Keywords.IsoLocalCoordinateOffset.html","topicUid":"Hi.NcParsers.Keywords.IsoLocalCoordinateOffset","type":"Class"},{"name":"MachineCoordinateState","href":"Hi.NcParsers.Keywords.MachineCoordinateState.html","topicHref":"Hi.NcParsers.Keywords.MachineCoordinateState.html","topicUid":"Hi.NcParsers.Keywords.MachineCoordinateState","type":"Class"},{"name":"MacroFrame","href":"Hi.NcParsers.Keywords.MacroFrame.html","topicHref":"Hi.NcParsers.Keywords.MacroFrame.html","topicUid":"Hi.NcParsers.Keywords.MacroFrame","type":"Class"},{"name":"MotionEvent","href":"Hi.NcParsers.Keywords.MotionEvent.html","topicHref":"Hi.NcParsers.Keywords.MotionEvent.html","topicUid":"Hi.NcParsers.Keywords.MotionEvent","type":"Class"},{"name":"MotionState","href":"Hi.NcParsers.Keywords.MotionState.html","topicHref":"Hi.NcParsers.Keywords.MotionState.html","topicUid":"Hi.NcParsers.Keywords.MotionState","type":"Class"},{"name":"PathSmoothing","href":"Hi.NcParsers.Keywords.PathSmoothing.html","topicHref":"Hi.NcParsers.Keywords.PathSmoothing.html","topicUid":"Hi.NcParsers.Keywords.PathSmoothing","type":"Class"},{"name":"PlaneSelect","href":"Hi.NcParsers.Keywords.PlaneSelect.html","topicHref":"Hi.NcParsers.Keywords.PlaneSelect.html","topicUid":"Hi.NcParsers.Keywords.PlaneSelect","type":"Class"},{"name":"Positioning","href":"Hi.NcParsers.Keywords.Positioning.html","topicHref":"Hi.NcParsers.Keywords.Positioning.html","topicUid":"Hi.NcParsers.Keywords.Positioning","type":"Class"},{"name":"ProgramEnd","href":"Hi.NcParsers.Keywords.ProgramEnd.html","topicHref":"Hi.NcParsers.Keywords.ProgramEnd.html","topicUid":"Hi.NcParsers.Keywords.ProgramEnd","type":"Class"},{"name":"ProgramStop","href":"Hi.NcParsers.Keywords.ProgramStop.html","topicHref":"Hi.NcParsers.Keywords.ProgramStop.html","topicUid":"Hi.NcParsers.Keywords.ProgramStop","type":"Class"},{"name":"RadiusCompensation","href":"Hi.NcParsers.Keywords.RadiusCompensation.html","topicHref":"Hi.NcParsers.Keywords.RadiusCompensation.html","topicUid":"Hi.NcParsers.Keywords.RadiusCompensation","type":"Class"},{"name":"SpindleControl","href":"Hi.NcParsers.Keywords.SpindleControl.html","topicHref":"Hi.NcParsers.Keywords.SpindleControl.html","topicUid":"Hi.NcParsers.Keywords.SpindleControl","type":"Class"},{"name":"SpindleOrientation","href":"Hi.NcParsers.Keywords.SpindleOrientation.html","topicHref":"Hi.NcParsers.Keywords.SpindleOrientation.html","topicUid":"Hi.NcParsers.Keywords.SpindleOrientation","type":"Class"},{"name":"SpindleSpeed","href":"Hi.NcParsers.Keywords.SpindleSpeed.html","topicHref":"Hi.NcParsers.Keywords.SpindleSpeed.html","topicUid":"Hi.NcParsers.Keywords.SpindleSpeed","type":"Class"},{"name":"SubProgramCall","href":"Hi.NcParsers.Keywords.SubProgramCall.html","topicHref":"Hi.NcParsers.Keywords.SubProgramCall.html","topicUid":"Hi.NcParsers.Keywords.SubProgramCall","type":"Class"},{"name":"SubProgramReturn","href":"Hi.NcParsers.Keywords.SubProgramReturn.html","topicHref":"Hi.NcParsers.Keywords.SubProgramReturn.html","topicUid":"Hi.NcParsers.Keywords.SubProgramReturn","type":"Class"},{"name":"TapeBoundary","href":"Hi.NcParsers.Keywords.TapeBoundary.html","topicHref":"Hi.NcParsers.Keywords.TapeBoundary.html","topicUid":"Hi.NcParsers.Keywords.TapeBoundary","type":"Class"},{"name":"TiltTransform","href":"Hi.NcParsers.Keywords.TiltTransform.html","topicHref":"Hi.NcParsers.Keywords.TiltTransform.html","topicUid":"Hi.NcParsers.Keywords.TiltTransform","type":"Class"},{"name":"ToolHeightCompensation","href":"Hi.NcParsers.Keywords.ToolHeightCompensation.html","topicHref":"Hi.NcParsers.Keywords.ToolHeightCompensation.html","topicUid":"Hi.NcParsers.Keywords.ToolHeightCompensation","type":"Class"},{"name":"Unit","href":"Hi.NcParsers.Keywords.Unit.html","topicHref":"Hi.NcParsers.Keywords.Unit.html","topicUid":"Hi.NcParsers.Keywords.Unit","type":"Class"},{"name":"Vars","href":"Hi.NcParsers.Keywords.Vars.html","topicHref":"Hi.NcParsers.Keywords.Vars.html","topicUid":"Hi.NcParsers.Keywords.Vars","type":"Class"}]},{"name":"Hi.NcParsers.Keywords.Fanuc","href":"Hi.NcParsers.Keywords.Fanuc.html","topicHref":"Hi.NcParsers.Keywords.Fanuc.html","topicUid":"Hi.NcParsers.Keywords.Fanuc","type":"Namespace","items":[{"name":"FanucKeywords","href":"Hi.NcParsers.Keywords.Fanuc.FanucKeywords.html","topicHref":"Hi.NcParsers.Keywords.Fanuc.FanucKeywords.html","topicUid":"Hi.NcParsers.Keywords.Fanuc.FanucKeywords","type":"Class"}]},{"name":"Hi.NcParsers.Keywords.Generic","href":"Hi.NcParsers.Keywords.Generic.html","topicHref":"Hi.NcParsers.Keywords.Generic.html","topicUid":"Hi.NcParsers.Keywords.Generic","type":"Namespace","items":[{"name":"IsoKeywords","href":"Hi.NcParsers.Keywords.Generic.IsoKeywords.html","topicHref":"Hi.NcParsers.Keywords.Generic.IsoKeywords.html","topicUid":"Hi.NcParsers.Keywords.Generic.IsoKeywords","type":"Class"},{"name":"MotionForm","href":"Hi.NcParsers.Keywords.Generic.MotionForm.html","topicHref":"Hi.NcParsers.Keywords.Generic.MotionForm.html","topicUid":"Hi.NcParsers.Keywords.Generic.MotionForm","type":"Class"}]},{"name":"Hi.NcParsers.Keywords.Heidenhain","href":"Hi.NcParsers.Keywords.Heidenhain.html","topicHref":"Hi.NcParsers.Keywords.Heidenhain.html","topicUid":"Hi.NcParsers.Keywords.Heidenhain","type":"Namespace","items":[{"name":"ICyclDef","href":"Hi.NcParsers.Keywords.Heidenhain.ICyclDef.html","topicHref":"Hi.NcParsers.Keywords.Heidenhain.ICyclDef.html","topicUid":"Hi.NcParsers.Keywords.Heidenhain.ICyclDef","type":"Interface"}]},{"name":"Hi.NcParsers.Keywords.Siemens","href":"Hi.NcParsers.Keywords.Siemens.html","topicHref":"Hi.NcParsers.Keywords.Siemens.html","topicUid":"Hi.NcParsers.Keywords.Siemens","type":"Namespace","items":[{"name":"SiemensKeywords","href":"Hi.NcParsers.Keywords.Siemens.SiemensKeywords.html","topicHref":"Hi.NcParsers.Keywords.Siemens.SiemensKeywords.html","topicUid":"Hi.NcParsers.Keywords.Siemens.SiemensKeywords","type":"Class"}]},{"name":"Hi.NcParsers.LogicSyntaxs","href":"Hi.NcParsers.LogicSyntaxs.html","topicHref":"Hi.NcParsers.LogicSyntaxs.html","topicUid":"Hi.NcParsers.LogicSyntaxs","type":"Namespace","items":[{"name":"BackBoringSyntax","href":"Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.BackBoringSyntax","type":"Class"},{"name":"BareG28Behavior","href":"Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html","topicHref":"Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html","topicUid":"Hi.NcParsers.LogicSyntaxs.BareG28Behavior","type":"Enum"},{"name":"BoringCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax","type":"Class"},{"name":"CannedCycleResolveSyntax","href":"Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax","type":"Class"},{"name":"CircularMotionSyntax","href":"Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax","type":"Class"},{"name":"CoolantSyntax","href":"Hi.NcParsers.LogicSyntaxs.CoolantSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CoolantSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CoolantSyntax","type":"Class"},{"name":"CoordinateOffsetUtil","href":"Hi.NcParsers.LogicSyntaxs.CoordinateOffsetUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CoordinateOffsetUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CoordinateOffsetUtil","type":"Class"},{"name":"DrillingCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax","type":"Class"},{"name":"FanucPathSmoothingSyntax","href":"Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax","type":"Class"},{"name":"FeedrateSyntax","href":"Hi.NcParsers.LogicSyntaxs.FeedrateSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.FeedrateSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.FeedrateSyntax","type":"Class"},{"name":"FineBoringSyntax","href":"Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.FineBoringSyntax","type":"Class"},{"name":"G43p4RtcpSyntax","href":"Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax","type":"Class"},{"name":"G53p1RotaryPositionSyntax","href":"Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax","type":"Class"},{"name":"HighSpeedPeckCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax","type":"Class"},{"name":"IncrementalResolveSyntax","href":"Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax","type":"Class"},{"name":"IsoCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoCoordinateOffsetSyntax","type":"Class"},{"name":"IsoG68RotationSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoG68RotationSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoG68RotationSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoG68RotationSyntax","type":"Class"},{"name":"IsoG68p2TiltSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax","type":"Class"},{"name":"IsoLocalCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax","type":"Class"},{"name":"LinearMotionSyntax","href":"Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax","type":"Class"},{"name":"MachineCoordSelectSyntax","href":"Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax","type":"Class"},{"name":"McAbcCyclicPathSyntax","href":"Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax","type":"Class"},{"name":"McAbcSyntax","href":"Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McAbcSyntax","type":"Class"},{"name":"McAbcXyzFallbackSyntax","href":"Hi.NcParsers.LogicSyntaxs.McAbcXyzFallbackSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McAbcXyzFallbackSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McAbcXyzFallbackSyntax","type":"Class"},{"name":"McXyzSyntax","href":"Hi.NcParsers.LogicSyntaxs.McXyzSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McXyzSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McXyzSyntax","type":"Class"},{"name":"PeckDrillingCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax","type":"Class"},{"name":"PivotTransformationSyntax","href":"Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax","type":"Class"},{"name":"PlaneSelectSyntax","href":"Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax","type":"Class"},{"name":"PositioningSyntax","href":"Hi.NcParsers.LogicSyntaxs.PositioningSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PositioningSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PositioningSyntax","type":"Class"},{"name":"ProgramEndCleanSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramEndCleanSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramEndCleanSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramEndCleanSyntax","type":"Class"},{"name":"ProgramEndSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramEndSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramEndSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramEndSyntax","type":"Class"},{"name":"ProgramStopSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax","type":"Class"},{"name":"ProgramXyzSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramXyzSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramXyzSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramXyzSyntax","type":"Class"},{"name":"ProgramXyzUtil","href":"Hi.NcParsers.LogicSyntaxs.ProgramXyzUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramXyzUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramXyzUtil","type":"Class"},{"name":"ReferenceReturnSyntax","href":"Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax","type":"Class"},{"name":"RotaryAxisUtil","href":"Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil","type":"Class"},{"name":"SpindleSpeedSyntax","href":"Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax","type":"Class"},{"name":"TappingCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax","type":"Class"},{"name":"TiltTransformUtil","href":"Hi.NcParsers.LogicSyntaxs.TiltTransformUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.TiltTransformUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.TiltTransformUtil","type":"Class"},{"name":"ToolChangeSyntax","href":"Hi.NcParsers.LogicSyntaxs.ToolChangeSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ToolChangeSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ToolChangeSyntax","type":"Class"},{"name":"ToolHeightOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.ToolHeightOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ToolHeightOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ToolHeightOffsetSyntax","type":"Class"},{"name":"UnitModeSyntax","href":"Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.UnitModeSyntax","type":"Class"}]},{"name":"Hi.NcParsers.LogicSyntaxs.Heidenhain","href":"Hi.NcParsers.LogicSyntaxs.Heidenhain.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Heidenhain.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Heidenhain","type":"Namespace","items":[{"name":"HeidenhainCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax","type":"Class"}]},{"name":"Hi.NcParsers.LogicSyntaxs.Siemens","href":"Hi.NcParsers.LogicSyntaxs.Siemens.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Siemens.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Siemens","type":"Namespace","items":[{"name":"SiemensCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs","href":"Hi.NcParsers.ParsingSyntaxs.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.html","topicUid":"Hi.NcParsers.ParsingSyntaxs","type":"Namespace","items":[{"name":"BlockSkipSyntax","href":"Hi.NcParsers.ParsingSyntaxs.BlockSkipSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.BlockSkipSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.BlockSkipSyntax","type":"Class"},{"name":"CsScriptSyntax","href":"Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax","type":"Class"},{"name":"FlagSyntax","href":"Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.FlagSyntax","type":"Class"},{"name":"FloatTagValueSyntax","href":"Hi.NcParsers.ParsingSyntaxs.FloatTagValueSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.FloatTagValueSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.FloatTagValueSyntax","type":"Class"},{"name":"HeadIndexSyntax","href":"Hi.NcParsers.ParsingSyntaxs.HeadIndexSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.HeadIndexSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.HeadIndexSyntax","type":"Class"},{"name":"IntegerTagValueSyntax","href":"Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax","type":"Class"},{"name":"NamedVarAssignmentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax","type":"Class"},{"name":"NumberedFlagSyntax","href":"Hi.NcParsers.ParsingSyntaxs.NumberedFlagSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.NumberedFlagSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.NumberedFlagSyntax","type":"Class"},{"name":"ParameterizedFlagSyntax","href":"Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax","type":"Class"},{"name":"ShrinkIfNoDecimalPointSyntax","href":"Hi.NcParsers.ParsingSyntaxs.ShrinkIfNoDecimalPointSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.ShrinkIfNoDecimalPointSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.ShrinkIfNoDecimalPointSyntax","type":"Class"},{"name":"TagAssignmentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax","type":"Class"},{"name":"TagValueSyntax","href":"Hi.NcParsers.ParsingSyntaxs.TagValueSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.TagValueSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.TagValueSyntax","type":"Class"},{"name":"TapeBoundarySyntax","href":"Hi.NcParsers.ParsingSyntaxs.TapeBoundarySyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.TapeBoundarySyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.TapeBoundarySyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs","href":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs","type":"Namespace","items":[{"name":"QuoteCommentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax","type":"Class"},{"name":"TailCommentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.Fanuc","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc","type":"Namespace","items":[{"name":"FanucGotoParsingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax","type":"Class"},{"name":"FanucIfThenParsingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax","type":"Class"},{"name":"FanucProgramNumberSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax","type":"Class"},{"name":"FanucWhileDoParsingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.Heidenhain","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain","type":"Namespace","items":[{"name":"HeidenhainBlkFormSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax","type":"Class"},{"name":"HeidenhainCallSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax","type":"Class"},{"name":"HeidenhainCyclDefSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax","type":"Class"},{"name":"HeidenhainFnAssignmentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax","type":"Class"},{"name":"HeidenhainLSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax","type":"Class"},{"name":"HeidenhainLblSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax","type":"Class"},{"name":"HeidenhainPlaneSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax","type":"Class"},{"name":"HeidenhainProgramSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax","type":"Class"},{"name":"HeidenhainToolCallSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs","type":"Namespace","items":[{"name":"HeidenhainDatumSettingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax","type":"Class"},{"name":"HeidenhainDatumShiftSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax","type":"Class"}]},{"name":"Hi.NcParsers.PostLogicSyntaxs","href":"Hi.NcParsers.PostLogicSyntaxs.html","topicHref":"Hi.NcParsers.PostLogicSyntaxs.html","topicUid":"Hi.NcParsers.PostLogicSyntaxs","type":"Namespace","items":[{"name":"ModalCarrySyntax","href":"Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html","topicHref":"Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html","topicUid":"Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax","type":"Class"},{"name":"RadiusCompensationSyntax","href":"Hi.NcParsers.PostLogicSyntaxs.RadiusCompensationSyntax.html","topicHref":"Hi.NcParsers.PostLogicSyntaxs.RadiusCompensationSyntax.html","topicUid":"Hi.NcParsers.PostLogicSyntaxs.RadiusCompensationSyntax","type":"Class"}]},{"name":"Hi.NcParsers.Segmenters","href":"Hi.NcParsers.Segmenters.html","topicHref":"Hi.NcParsers.Segmenters.html","topicUid":"Hi.NcParsers.Segmenters","type":"Namespace","items":[{"name":"HeidenhainSegmenter","href":"Hi.NcParsers.Segmenters.HeidenhainSegmenter.html","topicHref":"Hi.NcParsers.Segmenters.HeidenhainSegmenter.html","topicUid":"Hi.NcParsers.Segmenters.HeidenhainSegmenter","type":"Class"},{"name":"ISegmenter","href":"Hi.NcParsers.Segmenters.ISegmenter.html","topicHref":"Hi.NcParsers.Segmenters.ISegmenter.html","topicUid":"Hi.NcParsers.Segmenters.ISegmenter","type":"Interface"},{"name":"InlineDelimiterSegmenter","href":"Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html","topicHref":"Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html","topicUid":"Hi.NcParsers.Segmenters.InlineDelimiterSegmenter","type":"Class"},{"name":"SingleLineSegmenter","href":"Hi.NcParsers.Segmenters.SingleLineSegmenter.html","topicHref":"Hi.NcParsers.Segmenters.SingleLineSegmenter.html","topicUid":"Hi.NcParsers.Segmenters.SingleLineSegmenter","type":"Class"}]},{"name":"Hi.NcParsers.Semantics","href":"Hi.NcParsers.Semantics.html","topicHref":"Hi.NcParsers.Semantics.html","topicUid":"Hi.NcParsers.Semantics","type":"Namespace","items":[{"name":"ClLinearMotionSemantic","href":"Hi.NcParsers.Semantics.ClLinearMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.ClLinearMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.ClLinearMotionSemantic","type":"Class"},{"name":"CompoundMotionSemantic","href":"Hi.NcParsers.Semantics.CompoundMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.CompoundMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.CompoundMotionSemantic","type":"Class"},{"name":"CoolantSemantic","href":"Hi.NcParsers.Semantics.CoolantSemantic.html","topicHref":"Hi.NcParsers.Semantics.CoolantSemantic.html","topicUid":"Hi.NcParsers.Semantics.CoolantSemantic","type":"Class"},{"name":"CsScriptBeginSemantic","href":"Hi.NcParsers.Semantics.CsScriptBeginSemantic.html","topicHref":"Hi.NcParsers.Semantics.CsScriptBeginSemantic.html","topicUid":"Hi.NcParsers.Semantics.CsScriptBeginSemantic","type":"Class"},{"name":"CsScriptEndSemantic","href":"Hi.NcParsers.Semantics.CsScriptEndSemantic.html","topicHref":"Hi.NcParsers.Semantics.CsScriptEndSemantic.html","topicUid":"Hi.NcParsers.Semantics.CsScriptEndSemantic","type":"Class"},{"name":"CsScriptSemantic","href":"Hi.NcParsers.Semantics.CsScriptSemantic.html","topicHref":"Hi.NcParsers.Semantics.CsScriptSemantic.html","topicUid":"Hi.NcParsers.Semantics.CsScriptSemantic","type":"Class"},{"name":"INcSemantic","href":"Hi.NcParsers.Semantics.INcSemantic.html","topicHref":"Hi.NcParsers.Semantics.INcSemantic.html","topicUid":"Hi.NcParsers.Semantics.INcSemantic","type":"Interface"},{"name":"MachineCoordinateStepSemantic","href":"Hi.NcParsers.Semantics.MachineCoordinateStepSemantic.html","topicHref":"Hi.NcParsers.Semantics.MachineCoordinateStepSemantic.html","topicUid":"Hi.NcParsers.Semantics.MachineCoordinateStepSemantic","type":"Class"},{"name":"McArcMotionSemantic","href":"Hi.NcParsers.Semantics.McArcMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.McArcMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.McArcMotionSemantic","type":"Class"},{"name":"McLinearMotionSemantic","href":"Hi.NcParsers.Semantics.McLinearMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.McLinearMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.McLinearMotionSemantic","type":"Class"},{"name":"SpindleSpeedSemantic","href":"Hi.NcParsers.Semantics.SpindleSpeedSemantic.html","topicHref":"Hi.NcParsers.Semantics.SpindleSpeedSemantic.html","topicUid":"Hi.NcParsers.Semantics.SpindleSpeedSemantic","type":"Class"},{"name":"StrokeLimitCheckSemantic","href":"Hi.NcParsers.Semantics.StrokeLimitCheckSemantic.html","topicHref":"Hi.NcParsers.Semantics.StrokeLimitCheckSemantic.html","topicUid":"Hi.NcParsers.Semantics.StrokeLimitCheckSemantic","type":"Class"},{"name":"ToolChangeSemantic","href":"Hi.NcParsers.Semantics.ToolChangeSemantic.html","topicHref":"Hi.NcParsers.Semantics.ToolChangeSemantic.html","topicUid":"Hi.NcParsers.Semantics.ToolChangeSemantic","type":"Class"}]},{"name":"Hi.NcParsers.Syntaxs","href":"Hi.NcParsers.Syntaxs.html","topicHref":"Hi.NcParsers.Syntaxs.html","topicUid":"Hi.NcParsers.Syntaxs","type":"Namespace","items":[{"name":"BundleSyntax","href":"Hi.NcParsers.Syntaxs.BundleSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.BundleSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.BundleSyntax","type":"Class"},{"name":"FanucSyntaxUtil","href":"Hi.NcParsers.Syntaxs.FanucSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.FanucSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.FanucSyntaxUtil","type":"Class"},{"name":"GenericSyntaxKit","href":"Hi.NcParsers.Syntaxs.GenericSyntaxKit.html","topicHref":"Hi.NcParsers.Syntaxs.GenericSyntaxKit.html","topicUid":"Hi.NcParsers.Syntaxs.GenericSyntaxKit","type":"Class"},{"name":"HeidenhainSyntaxUtil","href":"Hi.NcParsers.Syntaxs.HeidenhainSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.HeidenhainSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.HeidenhainSyntaxUtil","type":"Class"},{"name":"IExpandingNcSyntax","href":"Hi.NcParsers.Syntaxs.IExpandingNcSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.IExpandingNcSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.IExpandingNcSyntax","type":"Interface"},{"name":"INcSyntax","href":"Hi.NcParsers.Syntaxs.INcSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.INcSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.INcSyntax","type":"Interface"},{"name":"ISituNcSyntax","href":"Hi.NcParsers.Syntaxs.ISituNcSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.ISituNcSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.ISituNcSyntax","type":"Interface"},{"name":"MazakSyntaxUtil","href":"Hi.NcParsers.Syntaxs.MazakSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.MazakSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.MazakSyntaxUtil","type":"Class"},{"name":"NcSyntaxUtil","href":"Hi.NcParsers.Syntaxs.NcSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.NcSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.NcSyntaxUtil","type":"Class"},{"name":"SiemensSyntaxUtil","href":"Hi.NcParsers.Syntaxs.SiemensSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.SiemensSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.SiemensSyntaxUtil","type":"Class"},{"name":"SyntaxPiece","href":"Hi.NcParsers.Syntaxs.SyntaxPiece.html","topicHref":"Hi.NcParsers.Syntaxs.SyntaxPiece.html","topicUid":"Hi.NcParsers.Syntaxs.SyntaxPiece","type":"Class"},{"name":"SyntaxStageKeys","href":"Hi.NcParsers.Syntaxs.SyntaxStageKeys.html","topicHref":"Hi.NcParsers.Syntaxs.SyntaxStageKeys.html","topicUid":"Hi.NcParsers.Syntaxs.SyntaxStageKeys","type":"Class"},{"name":"SyntecSyntaxUtil","href":"Hi.NcParsers.Syntaxs.SyntecSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.SyntecSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.SyntecSyntaxUtil","type":"Class"},{"name":"TagValue","href":"Hi.NcParsers.Syntaxs.TagValue.html","topicHref":"Hi.NcParsers.Syntaxs.TagValue.html","topicUid":"Hi.NcParsers.Syntaxs.TagValue","type":"Class"},{"name":"TransformationUtil","href":"Hi.NcParsers.Syntaxs.TransformationUtil.html","topicHref":"Hi.NcParsers.Syntaxs.TransformationUtil.html","topicUid":"Hi.NcParsers.Syntaxs.TransformationUtil","type":"Class"}]},{"name":"Hi.Numerical","href":"Hi.Numerical.html","topicHref":"Hi.Numerical.html","topicUid":"Hi.Numerical","type":"Namespace","items":[{"name":"CncBrand","href":"Hi.Numerical.CncBrand.html","topicHref":"Hi.Numerical.CncBrand.html","topicUid":"Hi.Numerical.CncBrand","type":"Enum"},{"name":"CommentMark","href":"Hi.Numerical.CommentMark.html","topicHref":"Hi.Numerical.CommentMark.html","topicUid":"Hi.Numerical.CommentMark","type":"Enum"},{"name":"CoolantMode","href":"Hi.Numerical.CoolantMode.html","topicHref":"Hi.Numerical.CoolantMode.html","topicUid":"Hi.Numerical.CoolantMode","type":"Enum"},{"name":"CoordinateInterpolationMode","href":"Hi.Numerical.CoordinateInterpolationMode.html","topicHref":"Hi.Numerical.CoordinateInterpolationMode.html","topicUid":"Hi.Numerical.CoordinateInterpolationMode","type":"Enum"},{"name":"FlexDictionaryUtil","href":"Hi.Numerical.FlexDictionaryUtil.html","topicHref":"Hi.Numerical.FlexDictionaryUtil.html","topicUid":"Hi.Numerical.FlexDictionaryUtil","type":"Class"},{"name":"HardNcComment","href":"Hi.Numerical.HardNcComment.html","topicHref":"Hi.Numerical.HardNcComment.html","topicUid":"Hi.Numerical.HardNcComment","type":"Class"},{"name":"HardNcEnv","href":"Hi.Numerical.HardNcEnv.html","topicHref":"Hi.Numerical.HardNcEnv.html","topicUid":"Hi.Numerical.HardNcEnv","type":"Class"},{"name":"HardNcLine","href":"Hi.Numerical.HardNcLine.html","topicHref":"Hi.Numerical.HardNcLine.html","topicUid":"Hi.Numerical.HardNcLine","type":"Class"},{"name":"HardNcUtil","href":"Hi.Numerical.HardNcUtil.html","topicHref":"Hi.Numerical.HardNcUtil.html","topicUid":"Hi.Numerical.HardNcUtil","type":"Class"},{"name":"HeidenhainCoordinateEntryDisplayee","href":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee","type":"Class"},{"name":"IControlRunner","href":"Hi.Numerical.IControlRunner.html","topicHref":"Hi.Numerical.IControlRunner.html","topicUid":"Hi.Numerical.IControlRunner","type":"Interface"},{"name":"IFlexDictionaryHost","href":"Hi.Numerical.IFlexDictionaryHost-1.html","topicHref":"Hi.Numerical.IFlexDictionaryHost-1.html","topicUid":"Hi.Numerical.IFlexDictionaryHost`1","type":"Interface"},{"name":"IGetFeedrate","href":"Hi.Numerical.IGetFeedrate.html","topicHref":"Hi.Numerical.IGetFeedrate.html","topicUid":"Hi.Numerical.IGetFeedrate","type":"Interface"},{"name":"IGetSpindleSpeed","href":"Hi.Numerical.IGetSpindleSpeed.html","topicHref":"Hi.Numerical.IGetSpindleSpeed.html","topicUid":"Hi.Numerical.IGetSpindleSpeed","type":"Interface"},{"name":"ISetFeedrate","href":"Hi.Numerical.ISetFeedrate.html","topicHref":"Hi.Numerical.ISetFeedrate.html","topicUid":"Hi.Numerical.ISetFeedrate","type":"Interface"},{"name":"ISetSpindleSpeed","href":"Hi.Numerical.ISetSpindleSpeed.html","topicHref":"Hi.Numerical.ISetSpindleSpeed.html","topicUid":"Hi.Numerical.ISetSpindleSpeed","type":"Interface"},{"name":"IsoCoordinateEntryDisplayee","href":"Hi.Numerical.IsoCoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.IsoCoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.IsoCoordinateEntryDisplayee","type":"Class"},{"name":"MechNcUtil","href":"Hi.Numerical.MechNcUtil.html","topicHref":"Hi.Numerical.MechNcUtil.html","topicUid":"Hi.Numerical.MechNcUtil","type":"Class"},{"name":"MillingToolOffsetTable","href":"Hi.Numerical.MillingToolOffsetTable.html","topicHref":"Hi.Numerical.MillingToolOffsetTable.html","topicUid":"Hi.Numerical.MillingToolOffsetTable","type":"Class"},{"name":"MillingToolOffsetTableRow","href":"Hi.Numerical.MillingToolOffsetTableRow.html","topicHref":"Hi.Numerical.MillingToolOffsetTableRow.html","topicUid":"Hi.Numerical.MillingToolOffsetTableRow","type":"Class"},{"name":"NcFlag","href":"Hi.Numerical.NcFlag.html","topicHref":"Hi.Numerical.NcFlag.html","topicUid":"Hi.Numerical.NcFlag","type":"Enum"},{"name":"NcFlagUtil","href":"Hi.Numerical.NcFlagUtil.html","topicHref":"Hi.Numerical.NcFlagUtil.html","topicUid":"Hi.Numerical.NcFlagUtil","type":"Class"},{"name":"NcGroup00","href":"Hi.Numerical.NcGroup00.html","topicHref":"Hi.Numerical.NcGroup00.html","topicUid":"Hi.Numerical.NcGroup00","type":"Enum"},{"name":"NcGroup01","href":"Hi.Numerical.NcGroup01.html","topicHref":"Hi.Numerical.NcGroup01.html","topicUid":"Hi.Numerical.NcGroup01","type":"Enum"},{"name":"NcGroup02","href":"Hi.Numerical.NcGroup02.html","topicHref":"Hi.Numerical.NcGroup02.html","topicUid":"Hi.Numerical.NcGroup02","type":"Enum"},{"name":"NcGroup03","href":"Hi.Numerical.NcGroup03.html","topicHref":"Hi.Numerical.NcGroup03.html","topicUid":"Hi.Numerical.NcGroup03","type":"Enum"},{"name":"NcGroup05","href":"Hi.Numerical.NcGroup05.html","topicHref":"Hi.Numerical.NcGroup05.html","topicUid":"Hi.Numerical.NcGroup05","type":"Enum"},{"name":"NcGroup06","href":"Hi.Numerical.NcGroup06.html","topicHref":"Hi.Numerical.NcGroup06.html","topicUid":"Hi.Numerical.NcGroup06","type":"Enum"},{"name":"NcGroup07","href":"Hi.Numerical.NcGroup07.html","topicHref":"Hi.Numerical.NcGroup07.html","topicUid":"Hi.Numerical.NcGroup07","type":"Enum"},{"name":"NcGroup08","href":"Hi.Numerical.NcGroup08.html","topicHref":"Hi.Numerical.NcGroup08.html","topicUid":"Hi.Numerical.NcGroup08","type":"Enum"},{"name":"NcGroup09","href":"Hi.Numerical.NcGroup09.html","topicHref":"Hi.Numerical.NcGroup09.html","topicUid":"Hi.Numerical.NcGroup09","type":"Enum"},{"name":"NcGroup10","href":"Hi.Numerical.NcGroup10.html","topicHref":"Hi.Numerical.NcGroup10.html","topicUid":"Hi.Numerical.NcGroup10","type":"Enum"},{"name":"NcGroup13","href":"Hi.Numerical.NcGroup13.html","topicHref":"Hi.Numerical.NcGroup13.html","topicUid":"Hi.Numerical.NcGroup13","type":"Enum"},{"name":"NcGroup14","href":"Hi.Numerical.NcGroup14.html","topicHref":"Hi.Numerical.NcGroup14.html","topicUid":"Hi.Numerical.NcGroup14","type":"Enum"},{"name":"NcGroup15","href":"Hi.Numerical.NcGroup15.html","topicHref":"Hi.Numerical.NcGroup15.html","topicUid":"Hi.Numerical.NcGroup15","type":"Enum"},{"name":"NcGroup16","href":"Hi.Numerical.NcGroup16.html","topicHref":"Hi.Numerical.NcGroup16.html","topicUid":"Hi.Numerical.NcGroup16","type":"Enum"},{"name":"NcGroup21","href":"Hi.Numerical.NcGroup21.html","topicHref":"Hi.Numerical.NcGroup21.html","topicUid":"Hi.Numerical.NcGroup21","type":"Enum"},{"name":"NcGroupAttribute","href":"Hi.Numerical.NcGroupAttribute.html","topicHref":"Hi.Numerical.NcGroupAttribute.html","topicUid":"Hi.Numerical.NcGroupAttribute","type":"Class"},{"name":"NcGroupHeidenhainM107M108","href":"Hi.Numerical.NcGroupHeidenhainM107M108.html","topicHref":"Hi.Numerical.NcGroupHeidenhainM107M108.html","topicUid":"Hi.Numerical.NcGroupHeidenhainM107M108","type":"Enum"},{"name":"NcGroupHeidenhainPlane","href":"Hi.Numerical.NcGroupHeidenhainPlane.html","topicHref":"Hi.Numerical.NcGroupHeidenhainPlane.html","topicUid":"Hi.Numerical.NcGroupHeidenhainPlane","type":"Enum"},{"name":"NcGroupHeidenhainShortestRotaryPath","href":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.html","topicHref":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.html","topicUid":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath","type":"Enum"},{"name":"NcGroupSpindleRotation","href":"Hi.Numerical.NcGroupSpindleRotation.html","topicHref":"Hi.Numerical.NcGroupSpindleRotation.html","topicUid":"Hi.Numerical.NcGroupSpindleRotation","type":"Enum"},{"name":"NcLifeCycleAttribute","href":"Hi.Numerical.NcLifeCycleAttribute.html","topicHref":"Hi.Numerical.NcLifeCycleAttribute.html","topicUid":"Hi.Numerical.NcLifeCycleAttribute","type":"Class"},{"name":"NcLifeCycleMode","href":"Hi.Numerical.NcLifeCycleMode.html","topicHref":"Hi.Numerical.NcLifeCycleMode.html","topicUid":"Hi.Numerical.NcLifeCycleMode","type":"Enum"},{"name":"NcNameAttribute","href":"Hi.Numerical.NcNameAttribute.html","topicHref":"Hi.Numerical.NcNameAttribute.html","topicUid":"Hi.Numerical.NcNameAttribute","type":"Class"},{"name":"NcNoteCache","href":"Hi.Numerical.NcNoteCache.html","topicHref":"Hi.Numerical.NcNoteCache.html","topicUid":"Hi.Numerical.NcNoteCache","type":"Class"},{"name":"NcProc","href":"Hi.Numerical.NcProc.html","topicHref":"Hi.Numerical.NcProc.html","topicUid":"Hi.Numerical.NcProc","type":"Class"},{"name":"NcWarningSceneEnum","href":"Hi.Numerical.NcWarningSceneEnum.html","topicHref":"Hi.Numerical.NcWarningSceneEnum.html","topicUid":"Hi.Numerical.NcWarningSceneEnum","type":"Enum"},{"name":"NumericUtil","href":"Hi.Numerical.NumericUtil.html","topicHref":"Hi.Numerical.NumericUtil.html","topicUid":"Hi.Numerical.NumericUtil","type":"Class"},{"name":"PolarEntry","href":"Hi.Numerical.PolarEntry.html","topicHref":"Hi.Numerical.PolarEntry.html","topicUid":"Hi.Numerical.PolarEntry","type":"Class"},{"name":"RadiusCompensationBuf","href":"Hi.Numerical.RadiusCompensationBuf.html","topicHref":"Hi.Numerical.RadiusCompensationBuf.html","topicUid":"Hi.Numerical.RadiusCompensationBuf","type":"Class"},{"name":"SourcedActEntry","href":"Hi.Numerical.SourcedActEntry.html","topicHref":"Hi.Numerical.SourcedActEntry.html","topicUid":"Hi.Numerical.SourcedActEntry","type":"Class"},{"name":"SpindleDirection","href":"Hi.Numerical.SpindleDirection.html","topicHref":"Hi.Numerical.SpindleDirection.html","topicUid":"Hi.Numerical.SpindleDirection","type":"Enum"},{"name":"SubStringKit","href":"Hi.Numerical.SubStringKit.html","topicHref":"Hi.Numerical.SubStringKit.html","topicUid":"Hi.Numerical.SubStringKit","type":"Class"},{"name":"SubStringKit.ActivationMode","href":"Hi.Numerical.SubStringKit.ActivationMode.html","topicHref":"Hi.Numerical.SubStringKit.ActivationMode.html","topicUid":"Hi.Numerical.SubStringKit.ActivationMode","type":"Enum"},{"name":"ToolConfigNotFoundException","href":"Hi.Numerical.ToolConfigNotFoundException.html","topicHref":"Hi.Numerical.ToolConfigNotFoundException.html","topicUid":"Hi.Numerical.ToolConfigNotFoundException","type":"Class"}]},{"name":"Hi.Numerical.Acts","href":"Hi.Numerical.Acts.html","topicHref":"Hi.Numerical.Acts.html","topicUid":"Hi.Numerical.Acts","type":"Namespace","items":[{"name":"ActActualTime","href":"Hi.Numerical.Acts.ActActualTime.html","topicHref":"Hi.Numerical.Acts.ActActualTime.html","topicUid":"Hi.Numerical.Acts.ActActualTime","type":"Class"},{"name":"ActClArc","href":"Hi.Numerical.Acts.ActClArc.html","topicHref":"Hi.Numerical.Acts.ActClArc.html","topicUid":"Hi.Numerical.Acts.ActClArc","type":"Class"},{"name":"ActClDerivedMcXyzabcContour","href":"Hi.Numerical.Acts.ActClDerivedMcXyzabcContour.html","topicHref":"Hi.Numerical.Acts.ActClDerivedMcXyzabcContour.html","topicUid":"Hi.Numerical.Acts.ActClDerivedMcXyzabcContour","type":"Class"},{"name":"ActClLinear","href":"Hi.Numerical.Acts.ActClLinear.html","topicHref":"Hi.Numerical.Acts.ActClLinear.html","topicUid":"Hi.Numerical.Acts.ActClLinear","type":"Class"},{"name":"ActClStep","href":"Hi.Numerical.Acts.ActClStep.html","topicHref":"Hi.Numerical.Acts.ActClStep.html","topicUid":"Hi.Numerical.Acts.ActClStep","type":"Class"},{"name":"ActClTeleport","href":"Hi.Numerical.Acts.ActClTeleport.html","topicHref":"Hi.Numerical.Acts.ActClTeleport.html","topicUid":"Hi.Numerical.Acts.ActClTeleport","type":"Class"},{"name":"ActCooling","href":"Hi.Numerical.Acts.ActCooling.html","topicHref":"Hi.Numerical.Acts.ActCooling.html","topicUid":"Hi.Numerical.Acts.ActCooling","type":"Class"},{"name":"ActData","href":"Hi.Numerical.Acts.ActData.html","topicHref":"Hi.Numerical.Acts.ActData.html","topicUid":"Hi.Numerical.Acts.ActData","type":"Class"},{"name":"ActDelay","href":"Hi.Numerical.Acts.ActDelay.html","topicHref":"Hi.Numerical.Acts.ActDelay.html","topicUid":"Hi.Numerical.Acts.ActDelay","type":"Class"},{"name":"ActFeedrate","href":"Hi.Numerical.Acts.ActFeedrate.html","topicHref":"Hi.Numerical.Acts.ActFeedrate.html","topicUid":"Hi.Numerical.Acts.ActFeedrate","type":"Class"},{"name":"ActHiddenStateChanged","href":"Hi.Numerical.Acts.ActHiddenStateChanged.html","topicHref":"Hi.Numerical.Acts.ActHiddenStateChanged.html","topicUid":"Hi.Numerical.Acts.ActHiddenStateChanged","type":"Class"},{"name":"ActIntentionalSkip","href":"Hi.Numerical.Acts.ActIntentionalSkip.html","topicHref":"Hi.Numerical.Acts.ActIntentionalSkip.html","topicUid":"Hi.Numerical.Acts.ActIntentionalSkip","type":"Class"},{"name":"ActLineBegin","href":"Hi.Numerical.Acts.ActLineBegin.html","topicHref":"Hi.Numerical.Acts.ActLineBegin.html","topicUid":"Hi.Numerical.Acts.ActLineBegin","type":"Class"},{"name":"ActLineCsScript","href":"Hi.Numerical.Acts.ActLineCsScript.html","topicHref":"Hi.Numerical.Acts.ActLineCsScript.html","topicUid":"Hi.Numerical.Acts.ActLineCsScript","type":"Class"},{"name":"ActLineEnd","href":"Hi.Numerical.Acts.ActLineEnd.html","topicHref":"Hi.Numerical.Acts.ActLineEnd.html","topicUid":"Hi.Numerical.Acts.ActLineEnd","type":"Class"},{"name":"ActMcPolarLinearContour","href":"Hi.Numerical.Acts.ActMcPolarLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcPolarLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcPolarLinearContour","type":"Class"},{"name":"ActMcXyzLinearContour","href":"Hi.Numerical.Acts.ActMcXyzLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzLinearContour","type":"Class"},{"name":"ActMcXyzSpiralContour","href":"Hi.Numerical.Acts.ActMcXyzSpiralContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzSpiralContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzSpiralContour","type":"Class"},{"name":"ActMcXyzStep","href":"Hi.Numerical.Acts.ActMcXyzStep.html","topicHref":"Hi.Numerical.Acts.ActMcXyzStep.html","topicUid":"Hi.Numerical.Acts.ActMcXyzStep","type":"Class"},{"name":"ActMcXyzabcLinearContour","href":"Hi.Numerical.Acts.ActMcXyzabcLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzabcLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzabcLinearContour","type":"Class"},{"name":"ActMcXyzabcStep","href":"Hi.Numerical.Acts.ActMcXyzabcStep.html","topicHref":"Hi.Numerical.Acts.ActMcXyzabcStep.html","topicUid":"Hi.Numerical.Acts.ActMcXyzabcStep","type":"Class"},{"name":"ActRapid","href":"Hi.Numerical.Acts.ActRapid.html","topicHref":"Hi.Numerical.Acts.ActRapid.html","topicUid":"Hi.Numerical.Acts.ActRapid","type":"Class"},{"name":"ActSpindleDirection","href":"Hi.Numerical.Acts.ActSpindleDirection.html","topicHref":"Hi.Numerical.Acts.ActSpindleDirection.html","topicUid":"Hi.Numerical.Acts.ActSpindleDirection","type":"Class"},{"name":"ActSpindleOrientation","href":"Hi.Numerical.Acts.ActSpindleOrientation.html","topicHref":"Hi.Numerical.Acts.ActSpindleOrientation.html","topicUid":"Hi.Numerical.Acts.ActSpindleOrientation","type":"Class"},{"name":"ActSpindleSpeed","href":"Hi.Numerical.Acts.ActSpindleSpeed.html","topicHref":"Hi.Numerical.Acts.ActSpindleSpeed.html","topicUid":"Hi.Numerical.Acts.ActSpindleSpeed","type":"Class"},{"name":"ActToolingStep","href":"Hi.Numerical.Acts.ActToolingStep.html","topicHref":"Hi.Numerical.Acts.ActToolingStep.html","topicUid":"Hi.Numerical.Acts.ActToolingStep","type":"Class"},{"name":"ActToolingTeleport","href":"Hi.Numerical.Acts.ActToolingTeleport.html","topicHref":"Hi.Numerical.Acts.ActToolingTeleport.html","topicUid":"Hi.Numerical.Acts.ActToolingTeleport","type":"Class"},{"name":"ActUnknownSkip","href":"Hi.Numerical.Acts.ActUnknownSkip.html","topicHref":"Hi.Numerical.Acts.ActUnknownSkip.html","topicUid":"Hi.Numerical.Acts.ActUnknownSkip","type":"Class"},{"name":"ActUtil","href":"Hi.Numerical.Acts.ActUtil.html","topicHref":"Hi.Numerical.Acts.ActUtil.html","topicUid":"Hi.Numerical.Acts.ActUtil","type":"Class"},{"name":"IAct","href":"Hi.Numerical.Acts.IAct.html","topicHref":"Hi.Numerical.Acts.IAct.html","topicUid":"Hi.Numerical.Acts.IAct","type":"Interface"},{"name":"IActClMove","href":"Hi.Numerical.Acts.IActClMove.html","topicHref":"Hi.Numerical.Acts.IActClMove.html","topicUid":"Hi.Numerical.Acts.IActClMove","type":"Interface"},{"name":"IActDuration","href":"Hi.Numerical.Acts.IActDuration.html","topicHref":"Hi.Numerical.Acts.IActDuration.html","topicUid":"Hi.Numerical.Acts.IActDuration","type":"Interface"},{"name":"IActMachineStep","href":"Hi.Numerical.Acts.IActMachineStep.html","topicHref":"Hi.Numerical.Acts.IActMachineStep.html","topicUid":"Hi.Numerical.Acts.IActMachineStep","type":"Interface"},{"name":"IActMcXyzContour","href":"Hi.Numerical.Acts.IActMcXyzContour.html","topicHref":"Hi.Numerical.Acts.IActMcXyzContour.html","topicUid":"Hi.Numerical.Acts.IActMcXyzContour","type":"Interface"},{"name":"IActMcXyzabcContour","href":"Hi.Numerical.Acts.IActMcXyzabcContour.html","topicHref":"Hi.Numerical.Acts.IActMcXyzabcContour.html","topicUid":"Hi.Numerical.Acts.IActMcXyzabcContour","type":"Interface"},{"name":"IActSkip","href":"Hi.Numerical.Acts.IActSkip.html","topicHref":"Hi.Numerical.Acts.IActSkip.html","topicUid":"Hi.Numerical.Acts.IActSkip","type":"Interface"},{"name":"IActTooling","href":"Hi.Numerical.Acts.IActTooling.html","topicHref":"Hi.Numerical.Acts.IActTooling.html","topicUid":"Hi.Numerical.Acts.IActTooling","type":"Interface"},{"name":"IWorkTimeAttrib","href":"Hi.Numerical.Acts.IWorkTimeAttrib.html","topicHref":"Hi.Numerical.Acts.IWorkTimeAttrib.html","topicUid":"Hi.Numerical.Acts.IWorkTimeAttrib","type":"Interface"},{"name":"IWorkTimeGetter","href":"Hi.Numerical.Acts.IWorkTimeGetter.html","topicHref":"Hi.Numerical.Acts.IWorkTimeGetter.html","topicUid":"Hi.Numerical.Acts.IWorkTimeGetter","type":"Interface"},{"name":"IWorkTimeSetter","href":"Hi.Numerical.Acts.IWorkTimeSetter.html","topicHref":"Hi.Numerical.Acts.IWorkTimeSetter.html","topicUid":"Hi.Numerical.Acts.IWorkTimeSetter","type":"Interface"},{"name":"StateActRunner","href":"Hi.Numerical.Acts.StateActRunner.html","topicHref":"Hi.Numerical.Acts.StateActRunner.html","topicUid":"Hi.Numerical.Acts.StateActRunner","type":"Class"}]},{"name":"Hi.Numerical.Args","href":"Hi.Numerical.Args.html","topicHref":"Hi.Numerical.Args.html","topicUid":"Hi.Numerical.Args","type":"Namespace","items":[{"name":"OrthogonalPlaneFlag","href":"Hi.Numerical.Args.OrthogonalPlaneFlag.html","topicHref":"Hi.Numerical.Args.OrthogonalPlaneFlag.html","topicUid":"Hi.Numerical.Args.OrthogonalPlaneFlag","type":"Enum"},{"name":"PolarModeDirEnum","href":"Hi.Numerical.Args.PolarModeDirEnum.html","topicHref":"Hi.Numerical.Args.PolarModeDirEnum.html","topicUid":"Hi.Numerical.Args.PolarModeDirEnum","type":"Enum"}]},{"name":"Hi.Numerical.CsvParsers","href":"Hi.Numerical.CsvParsers.html","topicHref":"Hi.Numerical.CsvParsers.html","topicUid":"Hi.Numerical.CsvParsers","type":"Namespace","items":[{"name":"CsvRowSemantic","href":"Hi.Numerical.CsvParsers.CsvRowSemantic.html","topicHref":"Hi.Numerical.CsvParsers.CsvRowSemantic.html","topicUid":"Hi.Numerical.CsvParsers.CsvRowSemantic","type":"Class"},{"name":"CsvRowSyntax","href":"Hi.Numerical.CsvParsers.CsvRowSyntax.html","topicHref":"Hi.Numerical.CsvParsers.CsvRowSyntax.html","topicUid":"Hi.Numerical.CsvParsers.CsvRowSyntax","type":"Class"},{"name":"CsvRunnerConfig","href":"Hi.Numerical.CsvParsers.CsvRunnerConfig.html","topicHref":"Hi.Numerical.CsvParsers.CsvRunnerConfig.html","topicUid":"Hi.Numerical.CsvParsers.CsvRunnerConfig","type":"Class"},{"name":"CsvSegmenter","href":"Hi.Numerical.CsvParsers.CsvSegmenter.html","topicHref":"Hi.Numerical.CsvParsers.CsvSegmenter.html","topicUid":"Hi.Numerical.CsvParsers.CsvSegmenter","type":"Class"},{"name":"CsvSoftRunner","href":"Hi.Numerical.CsvParsers.CsvSoftRunner.html","topicHref":"Hi.Numerical.CsvParsers.CsvSoftRunner.html","topicUid":"Hi.Numerical.CsvParsers.CsvSoftRunner","type":"Class"}]},{"name":"Hi.Numerical.FilePlayers","href":"Hi.Numerical.FilePlayers.html","topicHref":"Hi.Numerical.FilePlayers.html","topicUid":"Hi.Numerical.FilePlayers","type":"Namespace","items":[{"name":"CsvRunner","href":"Hi.Numerical.FilePlayers.CsvRunner.html","topicHref":"Hi.Numerical.FilePlayers.CsvRunner.html","topicUid":"Hi.Numerical.FilePlayers.CsvRunner","type":"Class"},{"name":"HardNcRunner","href":"Hi.Numerical.FilePlayers.HardNcRunner.html","topicHref":"Hi.Numerical.FilePlayers.HardNcRunner.html","topicUid":"Hi.Numerical.FilePlayers.HardNcRunner","type":"Class"}]},{"name":"Hi.Numerical.MachiningMotionResolutionUtils","href":"Hi.Numerical.MachiningMotionResolutionUtils.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils","type":"Namespace","items":[{"name":"FeedPerCycleMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution","type":"Class"},{"name":"FeedPerToothMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution","type":"Class"},{"name":"FixedMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution","type":"Class"},{"name":"IMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution","type":"Interface"}]},{"name":"Hi.Numerical.NcArgs","href":"Hi.Numerical.NcArgs.html","topicHref":"Hi.Numerical.NcArgs.html","topicUid":"Hi.Numerical.NcArgs","type":"Namespace","items":[{"name":"ArcNcArg","href":"Hi.Numerical.NcArgs.ArcNcArg.html","topicHref":"Hi.Numerical.NcArgs.ArcNcArg.html","topicUid":"Hi.Numerical.NcArgs.ArcNcArg","type":"Class"},{"name":"G28Arg","href":"Hi.Numerical.NcArgs.G28Arg.html","topicHref":"Hi.Numerical.NcArgs.G28Arg.html","topicUid":"Hi.Numerical.NcArgs.G28Arg","type":"Class"},{"name":"Group07NcArg","href":"Hi.Numerical.NcArgs.Group07NcArg.html","topicHref":"Hi.Numerical.NcArgs.Group07NcArg.html","topicUid":"Hi.Numerical.NcArgs.Group07NcArg","type":"Class"},{"name":"Group09NcArg","href":"Hi.Numerical.NcArgs.Group09NcArg.html","topicHref":"Hi.Numerical.NcArgs.Group09NcArg.html","topicUid":"Hi.Numerical.NcArgs.Group09NcArg","type":"Class"},{"name":"HeidenhainCycleDef7Arg","href":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.html","topicHref":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.html","topicUid":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg","type":"Class"},{"name":"HeidenhainPlaneSpatialArg","href":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.html","topicHref":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.html","topicUid":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg","type":"Class"},{"name":"IHeidenhainBlockCacheArg","href":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.html","topicHref":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.html","topicUid":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg","type":"Interface"},{"name":"IHeidenhainPlaneArg","href":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg.html","topicHref":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg.html","topicUid":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg","type":"Interface"},{"name":"ITiltPlaneNcArg","href":"Hi.Numerical.NcArgs.ITiltPlaneNcArg.html","topicHref":"Hi.Numerical.NcArgs.ITiltPlaneNcArg.html","topicUid":"Hi.Numerical.NcArgs.ITiltPlaneNcArg","type":"Interface"},{"name":"NcArgCycle800","href":"Hi.Numerical.NcArgs.NcArgCycle800.html","topicHref":"Hi.Numerical.NcArgs.NcArgCycle800.html","topicUid":"Hi.Numerical.NcArgs.NcArgCycle800","type":"Class"},{"name":"NcArgG68","href":"Hi.Numerical.NcArgs.NcArgG68.html","topicHref":"Hi.Numerical.NcArgs.NcArgG68.html","topicUid":"Hi.Numerical.NcArgs.NcArgG68","type":"Class"},{"name":"NcArgG68p2","href":"Hi.Numerical.NcArgs.NcArgG68p2.html","topicHref":"Hi.Numerical.NcArgs.NcArgG68p2.html","topicUid":"Hi.Numerical.NcArgs.NcArgG68p2","type":"Class"},{"name":"NcArgSiemensFrame","href":"Hi.Numerical.NcArgs.NcArgSiemensFrame.html","topicHref":"Hi.Numerical.NcArgs.NcArgSiemensFrame.html","topicUid":"Hi.Numerical.NcArgs.NcArgSiemensFrame","type":"Class"},{"name":"PausingNcArg","href":"Hi.Numerical.NcArgs.PausingNcArg.html","topicHref":"Hi.Numerical.NcArgs.PausingNcArg.html","topicUid":"Hi.Numerical.NcArgs.PausingNcArg","type":"Class"}]},{"name":"Hi.Numerical.StepSelectionUtils","href":"Hi.Numerical.StepSelectionUtils.html","topicHref":"Hi.Numerical.StepSelectionUtils.html","topicUid":"Hi.Numerical.StepSelectionUtils","type":"Namespace","items":[{"name":"AnchorMode","href":"Hi.Numerical.StepSelectionUtils.AnchorMode.html","topicHref":"Hi.Numerical.StepSelectionUtils.AnchorMode.html","topicUid":"Hi.Numerical.StepSelectionUtils.AnchorMode","type":"Enum"},{"name":"BoundSelector","href":"Hi.Numerical.StepSelectionUtils.BoundSelector.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelector.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelector","type":"Class"},{"name":"BoundSelectorHost","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost","type":"Class"},{"name":"BoundSelectorPair","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair","type":"Class"},{"name":"BoundSelectorPair.BoundLocale","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale","type":"Enum"},{"name":"BoundSelectorStepSectionBundle","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle","type":"Class"},{"name":"BoundSelectorUtil","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil","type":"Class"},{"name":"DistanceShift","href":"Hi.Numerical.StepSelectionUtils.DistanceShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.DistanceShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.DistanceShift","type":"Class"},{"name":"IStepShift","href":"Hi.Numerical.StepSelectionUtils.IStepShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.IStepShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.IStepShift","type":"Interface"},{"name":"TimeShift","href":"Hi.Numerical.StepSelectionUtils.TimeShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.TimeShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.TimeShift","type":"Class"}]},{"name":"Hi.Numerical.Xyzabc","href":"Hi.Numerical.Xyzabc.html","topicHref":"Hi.Numerical.Xyzabc.html","topicUid":"Hi.Numerical.Xyzabc","type":"Namespace","items":[{"name":"Abc","href":"Hi.Numerical.Xyzabc.Abc.html","topicHref":"Hi.Numerical.Xyzabc.Abc.html","topicUid":"Hi.Numerical.Xyzabc.Abc","type":"Struct"},{"name":"CodeXyzabcChain","href":"Hi.Numerical.Xyzabc.CodeXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.CodeXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.CodeXyzabcChain","type":"Class"},{"name":"GeneralXyzabcChain","href":"Hi.Numerical.Xyzabc.GeneralXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.GeneralXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.GeneralXyzabcChain","type":"Class"},{"name":"IGetMcXyzabc","href":"Hi.Numerical.Xyzabc.IGetMcXyzabc.html","topicHref":"Hi.Numerical.Xyzabc.IGetMcXyzabc.html","topicUid":"Hi.Numerical.Xyzabc.IGetMcXyzabc","type":"Interface"},{"name":"IGetXyzabcChain","href":"Hi.Numerical.Xyzabc.IGetXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.IGetXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.IGetXyzabcChain","type":"Interface"},{"name":"IMachineKinematics","href":"Hi.Numerical.Xyzabc.IMachineKinematics.html","topicHref":"Hi.Numerical.Xyzabc.IMachineKinematics.html","topicUid":"Hi.Numerical.Xyzabc.IMachineKinematics","type":"Interface"},{"name":"ISetMcXyzabc","href":"Hi.Numerical.Xyzabc.ISetMcXyzabc.html","topicHref":"Hi.Numerical.Xyzabc.ISetMcXyzabc.html","topicUid":"Hi.Numerical.Xyzabc.ISetMcXyzabc","type":"Interface"},{"name":"IXyzabcChain","href":"Hi.Numerical.Xyzabc.IXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.IXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.IXyzabcChain","type":"Interface"},{"name":"ReflectedXyzabcChain","href":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain","type":"Class"},{"name":"XyzabcSolver","href":"Hi.Numerical.Xyzabc.XyzabcSolver.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcSolver.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcSolver","type":"Class"},{"name":"XyzabcUtil","href":"Hi.Numerical.Xyzabc.XyzabcUtil.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcUtil.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcUtil","type":"Class"}]},{"name":"Hi.PanelModels","href":"Hi.PanelModels.html","topicHref":"Hi.PanelModels.html","topicUid":"Hi.PanelModels","type":"Namespace","items":[{"name":"HiKey","href":"Hi.PanelModels.HiKey.html","topicHref":"Hi.PanelModels.HiKey.html","topicUid":"Hi.PanelModels.HiKey","type":"Enum"},{"name":"HiKeyEvent","href":"Hi.PanelModels.HiKeyEvent.html","topicHref":"Hi.PanelModels.HiKeyEvent.html","topicUid":"Hi.PanelModels.HiKeyEvent","type":"Class"},{"name":"HiModifierKeys","href":"Hi.PanelModels.HiModifierKeys.html","topicHref":"Hi.PanelModels.HiModifierKeys.html","topicUid":"Hi.PanelModels.HiModifierKeys","type":"Enum"},{"name":"HiMouseButton","href":"Hi.PanelModels.HiMouseButton.html","topicHref":"Hi.PanelModels.HiMouseButton.html","topicUid":"Hi.PanelModels.HiMouseButton","type":"Enum"},{"name":"HiMouseButtonEvent","href":"Hi.PanelModels.HiMouseButtonEvent.html","topicHref":"Hi.PanelModels.HiMouseButtonEvent.html","topicUid":"Hi.PanelModels.HiMouseButtonEvent","type":"Class"},{"name":"HiMouseButtonMask","href":"Hi.PanelModels.HiMouseButtonMask.html","topicHref":"Hi.PanelModels.HiMouseButtonMask.html","topicUid":"Hi.PanelModels.HiMouseButtonMask","type":"Enum"},{"name":"HiMouseButtonMaskUtil","href":"Hi.PanelModels.HiMouseButtonMaskUtil.html","topicHref":"Hi.PanelModels.HiMouseButtonMaskUtil.html","topicUid":"Hi.PanelModels.HiMouseButtonMaskUtil","type":"Class"},{"name":"HiMouseMoveEvent","href":"Hi.PanelModels.HiMouseMoveEvent.html","topicHref":"Hi.PanelModels.HiMouseMoveEvent.html","topicUid":"Hi.PanelModels.HiMouseMoveEvent","type":"Class"},{"name":"HiMouseWheelEvent","href":"Hi.PanelModels.HiMouseWheelEvent.html","topicHref":"Hi.PanelModels.HiMouseWheelEvent.html","topicUid":"Hi.PanelModels.HiMouseWheelEvent","type":"Class"},{"name":"PanelModel","href":"Hi.PanelModels.PanelModel.html","topicHref":"Hi.PanelModels.PanelModel.html","topicUid":"Hi.PanelModels.PanelModel","type":"Class"}]},{"name":"Hi.Parallels","href":"Hi.Parallels.html","topicHref":"Hi.Parallels.html","topicUid":"Hi.Parallels","type":"Namespace","items":[{"name":"CurrentThreadTaskScheduler","href":"Hi.Parallels.CurrentThreadTaskScheduler.html","topicHref":"Hi.Parallels.CurrentThreadTaskScheduler.html","topicUid":"Hi.Parallels.CurrentThreadTaskScheduler","type":"Class"},{"name":"DistributedQueueTaskScheduler","href":"Hi.Parallels.DistributedQueueTaskScheduler.html","topicHref":"Hi.Parallels.DistributedQueueTaskScheduler.html","topicUid":"Hi.Parallels.DistributedQueueTaskScheduler","type":"Class"},{"name":"DistributedQueueTaskStarter","href":"Hi.Parallels.DistributedQueueTaskStarter.html","topicHref":"Hi.Parallels.DistributedQueueTaskStarter.html","topicUid":"Hi.Parallels.DistributedQueueTaskStarter","type":"Class"},{"name":"LockUtil","href":"Hi.Parallels.LockUtil.html","topicHref":"Hi.Parallels.LockUtil.html","topicUid":"Hi.Parallels.LockUtil","type":"Class"},{"name":"PriorityTaskScheduler","href":"Hi.Parallels.PriorityTaskScheduler.html","topicHref":"Hi.Parallels.PriorityTaskScheduler.html","topicUid":"Hi.Parallels.PriorityTaskScheduler","type":"Class"},{"name":"QueueTaskScheduler","href":"Hi.Parallels.QueueTaskScheduler.html","topicHref":"Hi.Parallels.QueueTaskScheduler.html","topicUid":"Hi.Parallels.QueueTaskScheduler","type":"Class"},{"name":"ReaderWriterLockUtil","href":"Hi.Parallels.ReaderWriterLockUtil.html","topicHref":"Hi.Parallels.ReaderWriterLockUtil.html","topicUid":"Hi.Parallels.ReaderWriterLockUtil","type":"Class"},{"name":"SemaphoreUtil","href":"Hi.Parallels.SemaphoreUtil.html","topicHref":"Hi.Parallels.SemaphoreUtil.html","topicUid":"Hi.Parallels.SemaphoreUtil","type":"Class"},{"name":"ThreadSafeSet","href":"Hi.Parallels.ThreadSafeSet-1.html","topicHref":"Hi.Parallels.ThreadSafeSet-1.html","topicUid":"Hi.Parallels.ThreadSafeSet`1","type":"Class"}]},{"name":"Hi.Physics","href":"Hi.Physics.html","topicHref":"Hi.Physics.html","topicUid":"Hi.Physics","type":"Namespace","items":[{"name":"AmpPhase","href":"Hi.Physics.AmpPhase.html","topicHref":"Hi.Physics.AmpPhase.html","topicUid":"Hi.Physics.AmpPhase","type":"Class"},{"name":"CoatingMaterial","href":"Hi.Physics.CoatingMaterial.html","topicHref":"Hi.Physics.CoatingMaterial.html","topicUid":"Hi.Physics.CoatingMaterial","type":"Class"},{"name":"CoolantHeatCondition","href":"Hi.Physics.CoolantHeatCondition.html","topicHref":"Hi.Physics.CoolantHeatCondition.html","topicUid":"Hi.Physics.CoolantHeatCondition","type":"Class"},{"name":"CutterMaterial","href":"Hi.Physics.CutterMaterial.html","topicHref":"Hi.Physics.CutterMaterial.html","topicUid":"Hi.Physics.CutterMaterial","type":"Class"},{"name":"IGetThermalLayerList","href":"Hi.Physics.IGetThermalLayerList.html","topicHref":"Hi.Physics.IGetThermalLayerList.html","topicUid":"Hi.Physics.IGetThermalLayerList","type":"Interface"},{"name":"IStructureMaterial","href":"Hi.Physics.IStructureMaterial.html","topicHref":"Hi.Physics.IStructureMaterial.html","topicUid":"Hi.Physics.IStructureMaterial","type":"Interface"},{"name":"ISuccessivePhysicsBriefAccessor","href":"Hi.Physics.ISuccessivePhysicsBriefAccessor.html","topicHref":"Hi.Physics.ISuccessivePhysicsBriefAccessor.html","topicUid":"Hi.Physics.ISuccessivePhysicsBriefAccessor","type":"Interface"},{"name":"ISurfaceMaterial","href":"Hi.Physics.ISurfaceMaterial.html","topicHref":"Hi.Physics.ISurfaceMaterial.html","topicUid":"Hi.Physics.ISurfaceMaterial","type":"Interface"},{"name":"ITimeGetter","href":"Hi.Physics.ITimeGetter.html","topicHref":"Hi.Physics.ITimeGetter.html","topicUid":"Hi.Physics.ITimeGetter","type":"Interface"},{"name":"MillingTemperatureUtil","href":"Hi.Physics.MillingTemperatureUtil.html","topicHref":"Hi.Physics.MillingTemperatureUtil.html","topicUid":"Hi.Physics.MillingTemperatureUtil","type":"Class"},{"name":"SeqPhysicsBrief","href":"Hi.Physics.SeqPhysicsBrief.html","topicHref":"Hi.Physics.SeqPhysicsBrief.html","topicUid":"Hi.Physics.SeqPhysicsBrief","type":"Class"},{"name":"StructureMaterial","href":"Hi.Physics.StructureMaterial.html","topicHref":"Hi.Physics.StructureMaterial.html","topicUid":"Hi.Physics.StructureMaterial","type":"Class"},{"name":"TemperatureUtil","href":"Hi.Physics.TemperatureUtil.html","topicHref":"Hi.Physics.TemperatureUtil.html","topicUid":"Hi.Physics.TemperatureUtil","type":"Class"},{"name":"TemperatureVsHardness","href":"Hi.Physics.TemperatureVsHardness.html","topicHref":"Hi.Physics.TemperatureVsHardness.html","topicUid":"Hi.Physics.TemperatureVsHardness","type":"Class"},{"name":"ThermalLayer1D","href":"Hi.Physics.ThermalLayer1D.html","topicHref":"Hi.Physics.ThermalLayer1D.html","topicUid":"Hi.Physics.ThermalLayer1D","type":"Class"},{"name":"TimeSeriesUtil","href":"Hi.Physics.TimeSeriesUtil.html","topicHref":"Hi.Physics.TimeSeriesUtil.html","topicUid":"Hi.Physics.TimeSeriesUtil","type":"Class"},{"name":"TimeValue","href":"Hi.Physics.TimeValue.html","topicHref":"Hi.Physics.TimeValue.html","topicUid":"Hi.Physics.TimeValue","type":"Class"},{"name":"WorkpieceMaterial","href":"Hi.Physics.WorkpieceMaterial.html","topicHref":"Hi.Physics.WorkpieceMaterial.html","topicUid":"Hi.Physics.WorkpieceMaterial","type":"Class"}]},{"name":"Hi.SessionCommands","href":"Hi.SessionCommands.html","topicHref":"Hi.SessionCommands.html","topicUid":"Hi.SessionCommands","type":"Namespace","items":[{"name":"EnablingWrapper","href":"Hi.SessionCommands.EnablingWrapper.html","topicHref":"Hi.SessionCommands.EnablingWrapper.html","topicUid":"Hi.SessionCommands.EnablingWrapper","type":"Class"},{"name":"GeomDiffCommand","href":"Hi.SessionCommands.GeomDiffCommand.html","topicHref":"Hi.SessionCommands.GeomDiffCommand.html","topicUid":"Hi.SessionCommands.GeomDiffCommand","type":"Class"},{"name":"ISessionCommand","href":"Hi.SessionCommands.ISessionCommand.html","topicHref":"Hi.SessionCommands.ISessionCommand.html","topicUid":"Hi.SessionCommands.ISessionCommand","type":"Interface"},{"name":"ITitleCommand","href":"Hi.SessionCommands.ITitleCommand.html","topicHref":"Hi.SessionCommands.ITitleCommand.html","topicUid":"Hi.SessionCommands.ITitleCommand","type":"Interface"},{"name":"Lang","href":"Hi.SessionCommands.Lang.html","topicHref":"Hi.SessionCommands.Lang.html","topicUid":"Hi.SessionCommands.Lang","type":"Class"},{"name":"ListCommand","href":"Hi.SessionCommands.ListCommand.html","topicHref":"Hi.SessionCommands.ListCommand.html","topicUid":"Hi.SessionCommands.ListCommand","type":"Class"},{"name":"MachiningMotionResolutionCommand","href":"Hi.SessionCommands.MachiningMotionResolutionCommand.html","topicHref":"Hi.SessionCommands.MachiningMotionResolutionCommand.html","topicUid":"Hi.SessionCommands.MachiningMotionResolutionCommand","type":"Class"},{"name":"NcCodeCommand","href":"Hi.SessionCommands.NcCodeCommand.html","topicHref":"Hi.SessionCommands.NcCodeCommand.html","topicUid":"Hi.SessionCommands.NcCodeCommand","type":"Class"},{"name":"NcFileCommand","href":"Hi.SessionCommands.NcFileCommand.html","topicHref":"Hi.SessionCommands.NcFileCommand.html","topicUid":"Hi.SessionCommands.NcFileCommand","type":"Class"},{"name":"NcFileListCommand","href":"Hi.SessionCommands.NcFileListCommand.html","topicHref":"Hi.SessionCommands.NcFileListCommand.html","topicUid":"Hi.SessionCommands.NcFileListCommand","type":"Class"},{"name":"NcOptOptionCommand","href":"Hi.SessionCommands.NcOptOptionCommand.html","topicHref":"Hi.SessionCommands.NcOptOptionCommand.html","topicUid":"Hi.SessionCommands.NcOptOptionCommand","type":"Class"},{"name":"OptimizeToFilesCommand","href":"Hi.SessionCommands.OptimizeToFilesCommand.html","topicHref":"Hi.SessionCommands.OptimizeToFilesCommand.html","topicUid":"Hi.SessionCommands.OptimizeToFilesCommand","type":"Class"},{"name":"PostExecutionCommand","href":"Hi.SessionCommands.PostExecutionCommand.html","topicHref":"Hi.SessionCommands.PostExecutionCommand.html","topicUid":"Hi.SessionCommands.PostExecutionCommand","type":"Class"},{"name":"PreSettingCommand","href":"Hi.SessionCommands.PreSettingCommand.html","topicHref":"Hi.SessionCommands.PreSettingCommand.html","topicUid":"Hi.SessionCommands.PreSettingCommand","type":"Class"},{"name":"RecordRuntimeGeomActionEnum","href":"Hi.SessionCommands.RecordRuntimeGeomActionEnum.html","topicHref":"Hi.SessionCommands.RecordRuntimeGeomActionEnum.html","topicUid":"Hi.SessionCommands.RecordRuntimeGeomActionEnum","type":"Enum"},{"name":"RecordRuntimeGeomCommand","href":"Hi.SessionCommands.RecordRuntimeGeomCommand.html","topicHref":"Hi.SessionCommands.RecordRuntimeGeomCommand.html","topicUid":"Hi.SessionCommands.RecordRuntimeGeomCommand","type":"Class"},{"name":"ScriptCommand","href":"Hi.SessionCommands.ScriptCommand.html","topicHref":"Hi.SessionCommands.ScriptCommand.html","topicUid":"Hi.SessionCommands.ScriptCommand","type":"Class"},{"name":"SimpleSessionCommand","href":"Hi.SessionCommands.SimpleSessionCommand.html","topicHref":"Hi.SessionCommands.SimpleSessionCommand.html","topicUid":"Hi.SessionCommands.SimpleSessionCommand","type":"Class"},{"name":"WriteRuntimeGeomToStlCommand","href":"Hi.SessionCommands.WriteRuntimeGeomToStlCommand.html","topicHref":"Hi.SessionCommands.WriteRuntimeGeomToStlCommand.html","topicUid":"Hi.SessionCommands.WriteRuntimeGeomToStlCommand","type":"Class"},{"name":"WriteShotFilesCommand","href":"Hi.SessionCommands.WriteShotFilesCommand.html","topicHref":"Hi.SessionCommands.WriteShotFilesCommand.html","topicUid":"Hi.SessionCommands.WriteShotFilesCommand","type":"Class"},{"name":"WriteStepFilesCommand","href":"Hi.SessionCommands.WriteStepFilesCommand.html","topicHref":"Hi.SessionCommands.WriteStepFilesCommand.html","topicUid":"Hi.SessionCommands.WriteStepFilesCommand","type":"Class"}]},{"name":"Hi.SessionShellUtils","href":"Hi.SessionShellUtils.html","topicHref":"Hi.SessionShellUtils.html","topicUid":"Hi.SessionShellUtils","type":"Namespace","items":[{"name":"ISessionShell","href":"Hi.SessionShellUtils.ISessionShell.html","topicHref":"Hi.SessionShellUtils.ISessionShell.html","topicUid":"Hi.SessionShellUtils.ISessionShell","type":"Interface"},{"name":"JsAceAttribute","href":"Hi.SessionShellUtils.JsAceAttribute.html","topicHref":"Hi.SessionShellUtils.JsAceAttribute.html","topicUid":"Hi.SessionShellUtils.JsAceAttribute","type":"Class"}]},{"name":"Hi.SqliteUtils","href":"Hi.SqliteUtils.html","topicHref":"Hi.SqliteUtils.html","topicUid":"Hi.SqliteUtils","type":"Namespace","items":[{"name":"SqliteIdentityRole","href":"Hi.SqliteUtils.SqliteIdentityRole.html","topicHref":"Hi.SqliteUtils.SqliteIdentityRole.html","topicUid":"Hi.SqliteUtils.SqliteIdentityRole","type":"Class"},{"name":"SqliteIdentityStorage","href":"Hi.SqliteUtils.SqliteIdentityStorage.html","topicHref":"Hi.SqliteUtils.SqliteIdentityStorage.html","topicUid":"Hi.SqliteUtils.SqliteIdentityStorage","type":"Class"},{"name":"SqliteIdentityStorage.RoleRow","href":"Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.html","topicHref":"Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.html","topicUid":"Hi.SqliteUtils.SqliteIdentityStorage.RoleRow","type":"Class"},{"name":"SqliteIdentityStorage.UserRow","href":"Hi.SqliteUtils.SqliteIdentityStorage.UserRow.html","topicHref":"Hi.SqliteUtils.SqliteIdentityStorage.UserRow.html","topicUid":"Hi.SqliteUtils.SqliteIdentityStorage.UserRow","type":"Class"},{"name":"SqliteIdentityUser","href":"Hi.SqliteUtils.SqliteIdentityUser.html","topicHref":"Hi.SqliteUtils.SqliteIdentityUser.html","topicUid":"Hi.SqliteUtils.SqliteIdentityUser","type":"Class"},{"name":"SqliteRoleStore","href":"Hi.SqliteUtils.SqliteRoleStore-1.html","topicHref":"Hi.SqliteUtils.SqliteRoleStore-1.html","topicUid":"Hi.SqliteUtils.SqliteRoleStore`1","type":"Class"},{"name":"SqliteStepStorage","href":"Hi.SqliteUtils.SqliteStepStorage.html","topicHref":"Hi.SqliteUtils.SqliteStepStorage.html","topicUid":"Hi.SqliteUtils.SqliteStepStorage","type":"Class"},{"name":"SqliteStepStorage.MillingStepLuggageRow","href":"Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow.html","topicHref":"Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow.html","topicUid":"Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow","type":"Class"},{"name":"SqliteUserStore","href":"Hi.SqliteUtils.SqliteUserStore-1.html","topicHref":"Hi.SqliteUtils.SqliteUserStore-1.html","topicUid":"Hi.SqliteUtils.SqliteUserStore`1","type":"Class"}]},{"name":"Hi.Test","href":"Hi.Test.html","topicHref":"Hi.Test.html","topicUid":"Hi.Test","type":"Namespace","items":[{"name":"TestCollision","href":"Hi.Test.TestCollision.html","topicHref":"Hi.Test.TestCollision.html","topicUid":"Hi.Test.TestCollision","type":"Class"}]},{"name":"Hi.UiExtensions","href":"Hi.UiExtensions.html","topicHref":"Hi.UiExtensions.html","topicUid":"Hi.UiExtensions","type":"Namespace","items":[{"name":"ChartBoundary","href":"Hi.UiExtensions.ChartBoundary.html","topicHref":"Hi.UiExtensions.ChartBoundary.html","topicUid":"Hi.UiExtensions.ChartBoundary","type":"Class"},{"name":"ChartBoundaryEnum","href":"Hi.UiExtensions.ChartBoundaryEnum.html","topicHref":"Hi.UiExtensions.ChartBoundaryEnum.html","topicUid":"Hi.UiExtensions.ChartBoundaryEnum","type":"Enum"},{"name":"NativeVisibility","href":"Hi.UiExtensions.NativeVisibility.html","topicHref":"Hi.UiExtensions.NativeVisibility.html","topicUid":"Hi.UiExtensions.NativeVisibility","type":"Enum"},{"name":"UiUtil","href":"Hi.UiExtensions.UiUtil.html","topicHref":"Hi.UiExtensions.UiUtil.html","topicUid":"Hi.UiExtensions.UiUtil","type":"Class"},{"name":"UiUtil.InvokeFunc","href":"Hi.UiExtensions.UiUtil.InvokeFunc.html","topicHref":"Hi.UiExtensions.UiUtil.InvokeFunc.html","topicUid":"Hi.UiExtensions.UiUtil.InvokeFunc","type":"Delegate"}]},{"name":"Hi.UniversalNc","href":"Hi.UniversalNc.html","topicHref":"Hi.UniversalNc.html","topicUid":"Hi.UniversalNc","type":"Namespace","items":[{"name":"Lang","href":"Hi.UniversalNc.Lang.html","topicHref":"Hi.UniversalNc.Lang.html","topicUid":"Hi.UniversalNc.Lang","type":"Class"}]},{"name":"Hi.Vibrations","href":"Hi.Vibrations.html","topicHref":"Hi.Vibrations.html","topicUid":"Hi.Vibrations","type":"Namespace","items":[{"name":"AngularVelocityUtil","href":"Hi.Vibrations.AngularVelocityUtil.html","topicHref":"Hi.Vibrations.AngularVelocityUtil.html","topicUid":"Hi.Vibrations.AngularVelocityUtil","type":"Class"},{"name":"ForceAccelAmpPhase","href":"Hi.Vibrations.ForceAccelAmpPhase.html","topicHref":"Hi.Vibrations.ForceAccelAmpPhase.html","topicUid":"Hi.Vibrations.ForceAccelAmpPhase","type":"Class"},{"name":"ForceAccelFourierSeries","href":"Hi.Vibrations.ForceAccelFourierSeries.html","topicHref":"Hi.Vibrations.ForceAccelFourierSeries.html","topicUid":"Hi.Vibrations.ForceAccelFourierSeries","type":"Class"},{"name":"ForceAccelShot","href":"Hi.Vibrations.ForceAccelShot.html","topicHref":"Hi.Vibrations.ForceAccelShot.html","topicUid":"Hi.Vibrations.ForceAccelShot","type":"Class"},{"name":"ForceAccelUtil","href":"Hi.Vibrations.ForceAccelUtil.html","topicHref":"Hi.Vibrations.ForceAccelUtil.html","topicUid":"Hi.Vibrations.ForceAccelUtil","type":"Class"},{"name":"IAngularVelocityOwner","href":"Hi.Vibrations.IAngularVelocityOwner.html","topicHref":"Hi.Vibrations.IAngularVelocityOwner.html","topicUid":"Hi.Vibrations.IAngularVelocityOwner","type":"Interface"},{"name":"VibrationUtil","href":"Hi.Vibrations.VibrationUtil.html","topicHref":"Hi.Vibrations.VibrationUtil.html","topicUid":"Hi.Vibrations.VibrationUtil","type":"Class"},{"name":"WAmpPhase","href":"Hi.Vibrations.WAmpPhase.html","topicHref":"Hi.Vibrations.WAmpPhase.html","topicUid":"Hi.Vibrations.WAmpPhase","type":"Class"},{"name":"WAmpPhaseXyzTransformation","href":"Hi.Vibrations.WAmpPhaseXyzTransformation.html","topicHref":"Hi.Vibrations.WAmpPhaseXyzTransformation.html","topicUid":"Hi.Vibrations.WAmpPhaseXyzTransformation","type":"Class"}]},{"name":"Hi.WinForm.Disp","href":"Hi.WinForm.Disp.html","topicHref":"Hi.WinForm.Disp.html","topicUid":"Hi.WinForm.Disp","type":"Namespace","items":[{"name":"RenderingCanvas","href":"Hi.WinForm.Disp.RenderingCanvas.html","topicHref":"Hi.WinForm.Disp.RenderingCanvas.html","topicUid":"Hi.WinForm.Disp.RenderingCanvas","type":"Class"},{"name":"RenderingForm","href":"Hi.WinForm.Disp.RenderingForm.html","topicHref":"Hi.WinForm.Disp.RenderingForm.html","topicUid":"Hi.WinForm.Disp.RenderingForm","type":"Class"}]},{"name":"Hi.WpfPlus.Disp","href":"Hi.WpfPlus.Disp.html","topicHref":"Hi.WpfPlus.Disp.html","topicUid":"Hi.WpfPlus.Disp","type":"Namespace","items":[{"name":"RenderingCanvas","href":"Hi.WpfPlus.Disp.RenderingCanvas.html","topicHref":"Hi.WpfPlus.Disp.RenderingCanvas.html","topicUid":"Hi.WpfPlus.Disp.RenderingCanvas","type":"Class"},{"name":"RenderingWindow","href":"Hi.WpfPlus.Disp.RenderingWindow.html","topicHref":"Hi.WpfPlus.Disp.RenderingWindow.html","topicUid":"Hi.WpfPlus.Disp.RenderingWindow","type":"Class"},{"name":"WpfDispUtil","href":"Hi.WpfPlus.Disp.WpfDispUtil.html","topicHref":"Hi.WpfPlus.Disp.WpfDispUtil.html","topicUid":"Hi.WpfPlus.Disp.WpfDispUtil","type":"Class"}]},{"name":"HiMachining.Milling","href":"HiMachining.Milling.html","topicHref":"HiMachining.Milling.html","topicUid":"HiMachining.Milling","type":"Namespace","items":[{"name":"ClMillingDevice","href":"HiMachining.Milling.ClMillingDevice.html","topicHref":"HiMachining.Milling.ClMillingDevice.html","topicUid":"HiMachining.Milling.ClMillingDevice","type":"Class"}]}],"memberLayout":"SamePage"} diff --git a/App/wwwroot/HiAPI-docsite/app-anatomy/geom/cylindroid-control.html b/App/wwwroot/HiAPI-docsite/app-anatomy/geom/cylindroid-control.html index bec6b658..bd5fa803 100644 --- a/App/wwwroot/HiAPI-docsite/app-anatomy/geom/cylindroid-control.html +++ b/App/wwwroot/HiAPI-docsite/app-anatomy/geom/cylindroid-control.html @@ -109,9 +109,11 @@
  • Geom/CylindroidControl
  • Web Service Application Source Code Path

    +

    HiNC-2025-webservice (Quasar CLI SPA):

      -
    • wwwroot/geom/cylindroid-control.js
    • -
    • Geom/CylindroidHub.cs
    • +
    • wwwroot-src/src/components/geom/CylindroidEditor.vue — reusable Z-R pair editor (add / remove / edit); edits the cylindroid by IndexService key and emits changed so the owner can resync.
    • +
    • wwwroot-src/src/api/geometry.ts — Cylindroid API wrappers.
    • +
    • Geom/CylindroidController.cs — REST endpoints at /api/Cylindroid/* (Get / GetPairCount / GetPairAt / UpdatePairAt / UpdateAllPairs / AddPair / RemovePairAt / SortByZ).
    diff --git a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/cylindroid-holder-panel.html b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/cylindroid-holder-panel.html index 4d63204b..94c60c4c 100644 --- a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/cylindroid-holder-panel.html +++ b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/cylindroid-holder-panel.html @@ -127,9 +127,11 @@ Model: Web Page Application Source Code Path +

    HiNC-2025-webservice (Quasar CLI SPA):

      -
    • wwwroot/mech/holder/cylindroid-holder-panel.js
    • -
    • Controller/Mech/MechController.cs
    • +
    • wwwroot-src/src/components/toolhouse/CylindroidHolderEditor.vue — holder-aware editor with Geometry / Resolution / Info tabs; wraps the reusable CylindroidEditor.vue and triggers the holder resync after geometry / resolution edits.
    • +
    • wwwroot-src/src/api/cylindroidHolder.ts — typed wrapper over CylindroidHolderController.
    • +
    • Mech/CylindroidHolderController.cs — REST endpoints at /api/CylindroidHolder/*: GET Get (+ indexes the holder's Cylindroid for the generic Cylindroid editor), POST UpdateGeometryContent | SetName | SetNote | SetPolarResolution. UpdateGeometryContent performs the resync (UpdateByCylindroid() + ClearCache()).
    diff --git a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/freeform-holder-panel.html b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/freeform-holder-panel.html index 110f9c8b..d0098d6d 100644 --- a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/freeform-holder-panel.html +++ b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/freeform-holder-panel.html @@ -134,10 +134,7 @@ Model: Web Page Application Source Code Path -
      -
    • wwwroot/mech/holder/freeform-holder-panel.js
    • -
    • Controller/Mech/MechController.cs
    • -
    +

    HiNC-2025-webservice (Quasar CLI SPA): not yet ported — FreeformHolder geometry / transformer editing is deferred (see Tool House Page). Existing FreeformHolder objects are preserved; edit via the WPF client or HiNcRcl in the meantime. When ported, it should follow CylindroidHolderEditor.vue + a FreeformHolderController (calling UpdateByGeom() for the resync).

    diff --git a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/index.html b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/index.html index 7163bd83..6d9db984 100644 --- a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/index.html +++ b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/index.html @@ -130,9 +130,10 @@ The content varied by the Holder Type.
  • Mech/ToolHouse/HolderPanel
  • Web Page Application Source Code Path

    +

    HiNC-2025-webservice (Quasar CLI SPA):

      -
    • wwwroot/mech/holder/holder-panel.js
    • -
    • Controller/Mech/MechController.cs
    • +
    • wwwroot-src/src/components/toolhouse/HolderPanel.vue — Holder Type selector that dispatches to a per-type editor component (e.g. CylindroidHolderEditor.vue); Freeform editing is not yet ported.
    • +
    • Mech/ToolHouseController.csPOST SetHolderType, GET GetHolder (returns holder type + abstract note). Per-holder-type editing lives in the dedicated holder controllers.
    diff --git a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/tool-house-page.html b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/tool-house-page.html index ac3cf8f3..52096acf 100644 --- a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/tool-house-page.html +++ b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/tool-house-page.html @@ -223,10 +223,13 @@ Visible if Web Service Application Source Code Path -
      -
    • wwwroot/widget/polar-resolution-2d-panel.js
    • -
    +

    HiNC-2025-webservice (Quasar CLI SPA): no standalone widget yet — the resolution is edited inline in the owning holder editor's Resolution tab (e.g. wwwroot-src/src/components/toolhouse/CylindroidHolderEditor.vue) and persisted through that holder's controller (e.g. CylindroidHolderController.SetPolarResolution).

    diff --git a/App/wwwroot/HiAPI-docsite/index.json b/App/wwwroot/HiAPI-docsite/index.json index 36855656..8462d1ec 100644 --- a/App/wwwroot/HiAPI-docsite/index.json +++ b/App/wwwroot/HiAPI-docsite/index.json @@ -472,7 +472,7 @@ "api/Hi.Common.CsvUtils.CsvInputKit.html": { "href": "api/Hi.Common.CsvUtils.CsvInputKit.html", "title": "Class CsvInputKit | HiAPI-C# 2025", - "summary": "Class CsvInputKit Namespace Hi.Common.CsvUtils Assembly HiGeom.dll Utility class for parsing and processing CSV input data. public class CsvInputKit Inheritance object CsvInputKit 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 CsvInputKit() Initializes a new instance of the CsvInputKit class. public CsvInputKit() Properties TitleLine Gets or sets the CSV header line as a comma-separated string. public string TitleLine { get; set; } Property Value string TitleList Gets or sets the list of column titles from the CSV header. public List TitleList { get; set; } Property Value List TypeDictionary Dictionary mapping type names to their corresponding Type objects. public Dictionary TypeDictionary { get; } Property Value Dictionary Methods GetCsvDictionary(string) Creates a dictionary from a CSV row, mapping column titles to their values. The row should not be the header line, and TitleLine or TitleList must be set first. public Dictionary GetCsvDictionary(string row) Parameters row string The CSV row to process Returns Dictionary A dictionary mapping column titles to their values" + "summary": "Class CsvInputKit Namespace Hi.Common.CsvUtils Assembly HiGeom.dll Utility class for parsing and processing CSV input data. public class CsvInputKit Inheritance object CsvInputKit 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 CsvInputKit() Initializes a new instance of the CsvInputKit class. public CsvInputKit() Properties TitleLine Gets or sets the CSV header line as a comma-separated string. public string TitleLine { get; set; } Property Value string TitleList Gets or sets the list of column titles from the CSV header. public List TitleList { get; set; } Property Value List TypeDictionary Dictionary mapping type names to their corresponding Type objects. public Dictionary TypeDictionary { get; } Property Value Dictionary Methods GetCsvDictionary(IList, string) Splits a CSV row into a title→cell dictionary. Stateless allocation-light variant of GetCsvDictionary(string); use this when the caller already has the title list and does not need to hold a CsvInputKit instance. public static Dictionary GetCsvDictionary(IList titleList, string row) Parameters titleList IList Column titles, in CSV column order. row string CSV data row (not the header line). Returns Dictionary Dictionary keyed by column title; cells past titleList are keyed by column[i]. GetCsvDictionary(string) Creates a dictionary from a CSV row, mapping column titles to their values. The row should not be the header line, and TitleLine or TitleList must be set first. public Dictionary GetCsvDictionary(string row) Parameters row string The CSV row to process Returns Dictionary A dictionary mapping column titles to their values" }, "api/Hi.Common.CsvUtils.CsvOutputKit.html": { "href": "api/Hi.Common.CsvUtils.CsvOutputKit.html", @@ -1749,66 +1749,6 @@ "title": "Namespace Hi.Geom | HiAPI-C# 2025", "summary": "Namespace Hi.Geom Classes ArrayUtil Utility class for array operations. AxisAngle4d Axis(3d) and angle(1d) Box2d Lightweight 2d box. An orthogonal box which the edges are all parallel with Cartesian Coordinate. The data contains in a Box2d is Min and Max. Box2d.NoInit Flag for calling Box2d(NoInit). Box3d 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. Box3d.NoInit Flag for calling Box3d(NoInit). Cylindroid 3d Geometry of Cylindroid. DVec3d Dual Vec3d with p(Vec3d) and n(Vec3d). ExtendedCylinder An extensible cylinder geometry that generates a corresponding Cylindroid by the start section and the total length. Flat3d Represents a 3D plane defined by a unit normal vector and its signed distance from the origin. The plane equation is: Ax + By + Cz + d = 0, where (A,B,C) is the normal vector and d is the distance to origin. GeomCombination A class that manages multiple STL sources as a single source. GeomUtil Utility of Geometry. Mat4d 4x4 Matrix. MathNetUtil Utility class for MathNet.Numerics operations. MathUtil Math Utility. NativeFraction Native wrapper for C++ fraction_t<0> (unlimited precision fraction). A fraction consists of a numerator and denominator using unlimited precision integers. NativeStl Native Stl. For purpose of efficient swept volume. NativeTopoStld Native TopoStl with element type double. NativeTopoStlfr Native TopoStl with element type fraction. ObjUtil Wavefront OBJ writer for RGB-coloured triangle buffers. PairZr Value pair of Z and R. PairZrUtil Utility class for working with PairZr objects PlyUtil Stanford PLY writer for RGB-coloured triangle buffers. Polar3d Represents a point in 3D space using polar coordinates Segment3d Represents a 3D line segment defined by two endpoints. Stl STL (stereolithography). Composed by Triangles. Provide Stl File R/W. StlFile Represents an STL file with loading and saving capabilities StlFuncHost A class that hosts a function to generate STL geometry. StlUtil Utility for Stl. TransformationGeom Represents a geometric transformation that can be applied to a geometry object. This class combines a transformer with a target geometry to produce transformed geometric results. Tri3d Basic 3D Triangle. Tri3dUtil Utility of Tri3d. Include generator of triangles from points. Vec2d Basic 2D point (or vector). Vec2i Basic 2D point (or vector). Vec3d Basic 3D point (or vector). Structs Fraction Pure C# unlimited precision fraction. Interfaces IExpandToBox2d Object that can be expanded to a Box2d. IExpandToBox3d Object that can be expanded to a Box3d. IFlat3d Interface for a 3D plane that provides an anchor point and a normal vector. IGenStl Interface for generating STL geometry with a resolution. IGeomProperty Interface for objects that have a geometry property. IGetStl Interface for retrieving STL geometry data. IGetZrContour Interface for retrieving Z-R contour data for rotational geometries. IGetZrList Interface for getting a list of Z-R pairs. IStlSource Stl provider with xml support. ITri3d Interface for 3D triangles. IVec Interface for vector types with generic element type. IZrListSourceProperty Provides a source for obtaining an IGetZrList. Enums Dir Enumeration of coordinate axis directions in 3D space. FractionStatus Status flags for Fraction and NativeFraction. Corresponds to IS_PACKED_MASK and IS_EVALUATED_MASK in C++ fraction_base_t. Mat4d.IndexFlag Specifies the indexing method for matrix construction from vectors. Stl.StlType Stl file format." }, - "api/Hi.Grpcs.ClStripService.ClStripServiceBase.html": { - "href": "api/Hi.Grpcs.ClStripService.ClStripServiceBase.html", - "title": "Class ClStripService.ClStripServiceBase | HiAPI-C# 2025", - "summary": "Class ClStripService.ClStripServiceBase Namespace Hi.Grpcs Assembly HiNc.dll Base class for server-side implementations of ClStripService [BindServiceMethod(typeof(ClStripService), \"BindService\")] public abstract class ClStripService.ClStripServiceBase Inheritance object ClStripService.ClStripServiceBase Derived ClStripServiceRunner 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) Methods StepRan(Empty, IServerStreamWriter, ServerCallContext) data returned if step ran. public virtual Task StepRan(Empty request, IServerStreamWriter responseStream, ServerCallContext context) Parameters request Empty The request received from the client. responseStream IServerStreamWriter Used for sending responses back to the client. context ServerCallContext The context of the server-side call handler being invoked. Returns Task A task indicating completion of the handler. StepSelected(Empty, IServerStreamWriter, ServerCallContext) data returned if step selected. public virtual Task StepSelected(Empty request, IServerStreamWriter responseStream, ServerCallContext context) Parameters request Empty The request received from the client. responseStream IServerStreamWriter Used for sending responses back to the client. context ServerCallContext The context of the server-side call handler being invoked. Returns Task A task indicating completion of the handler." - }, - "api/Hi.Grpcs.ClStripService.ClStripServiceClient.html": { - "href": "api/Hi.Grpcs.ClStripService.ClStripServiceClient.html", - "title": "Class ClStripService.ClStripServiceClient | HiAPI-C# 2025", - "summary": "Class ClStripService.ClStripServiceClient Namespace Hi.Grpcs Assembly HiNc.dll Client for ClStripService public class ClStripService.ClStripServiceClient : ClientBase Inheritance object ClientBase ClientBase ClStripService.ClStripServiceClient Inherited Members ClientBase.WithHost(string) ClientBase.CallInvoker 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 ClStripServiceClient() Protected parameterless constructor to allow creation of test doubles. protected ClStripServiceClient() ClStripServiceClient(CallInvoker) Creates a new client for ClStripService that uses a custom CallInvoker. public ClStripServiceClient(CallInvoker callInvoker) Parameters callInvoker CallInvoker The callInvoker to use to make remote calls. ClStripServiceClient(ChannelBase) Creates a new client for ClStripService public ClStripServiceClient(ChannelBase channel) Parameters channel ChannelBase The channel to use to make remote calls. ClStripServiceClient(ClientBaseConfiguration) Protected constructor to allow creation of configured clients. protected ClStripServiceClient(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration The client configuration. Methods NewInstance(ClientBaseConfiguration) Creates a new instance of client from given ClientBaseConfiguration. protected override ClStripService.ClStripServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration Returns ClStripService.ClStripServiceClient StepRan(Empty, CallOptions) data returned if step ran. public virtual AsyncServerStreamingCall StepRan(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns AsyncServerStreamingCall The call object. StepRan(Empty, Metadata, DateTime?, CancellationToken) data returned if step ran. public virtual AsyncServerStreamingCall StepRan(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns AsyncServerStreamingCall The call object. StepSelected(Empty, CallOptions) data returned if step selected. public virtual AsyncServerStreamingCall StepSelected(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns AsyncServerStreamingCall The call object. StepSelected(Empty, Metadata, DateTime?, CancellationToken) data returned if step selected. public virtual AsyncServerStreamingCall StepSelected(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns AsyncServerStreamingCall The call object." - }, - "api/Hi.Grpcs.ClStripService.html": { - "href": "api/Hi.Grpcs.ClStripService.html", - "title": "Class ClStripService | HiAPI-C# 2025", - "summary": "Class ClStripService Namespace Hi.Grpcs Assembly HiNc.dll milling process service based on dictionary data type. public static class ClStripService Inheritance object ClStripService Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor Service descriptor public static ServiceDescriptor Descriptor { get; } Property Value ServiceDescriptor Methods BindService(ServiceBinderBase, ClStripServiceBase) Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. Note: this method is part of an experimental API that can change or be removed without any prior notice. public static void BindService(ServiceBinderBase serviceBinder, ClStripService.ClStripServiceBase serviceImpl) Parameters serviceBinder ServiceBinderBase Service methods will be bound by calling AddMethod on this object. serviceImpl ClStripService.ClStripServiceBase An object implementing the server-side handling logic. BindService(ClStripServiceBase) Creates service definition that can be registered with a server public static ServerServiceDefinition BindService(ClStripService.ClStripServiceBase serviceImpl) Parameters serviceImpl ClStripService.ClStripServiceBase An object implementing the server-side handling logic. Returns ServerServiceDefinition" - }, - "api/Hi.Grpcs.ClStripServiceReflection.html": { - "href": "api/Hi.Grpcs.ClStripServiceReflection.html", - "title": "Class ClStripServiceReflection | HiAPI-C# 2025", - "summary": "Class ClStripServiceReflection Namespace Hi.Grpcs Assembly HiNc.dll Holder for reflection information generated from Grpcs/ClStripService.proto public static class ClStripServiceReflection Inheritance object ClStripServiceReflection Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor File descriptor for Grpcs/ClStripService.proto public static FileDescriptor Descriptor { get; } Property Value FileDescriptor" - }, - "api/Hi.Grpcs.ClStripServiceRunner.html": { - "href": "api/Hi.Grpcs.ClStripServiceRunner.html", - "title": "Class ClStripServiceRunner | HiAPI-C# 2025", - "summary": "Class ClStripServiceRunner Namespace Hi.Grpcs Assembly HiNc.dll Service runner for the ClStrip gRPC service. public class ClStripServiceRunner : ClStripService.ClStripServiceBase Inheritance object ClStripService.ClStripServiceBase ClStripServiceRunner 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 ClStripServiceRunner(LocalProjectService) Initializes a new instance of the ClStripServiceRunner class. public ClStripServiceRunner(LocalProjectService machiningProjectHost) Parameters machiningProjectHost LocalProjectService Function to provide access to the current MachiningProject instance Methods StepRan(Empty, IServerStreamWriter, ServerCallContext) Streams step data as steps are executed. public override Task StepRan(Empty request, IServerStreamWriter responseStream, ServerCallContext context) Parameters request Empty Empty request responseStream IServerStreamWriter Stream to write step data to context ServerCallContext Server call context Returns Task Task representing the asynchronous operation StepSelected(Empty, IServerStreamWriter, ServerCallContext) Streams step data when a step is selected in the UI. public override Task StepSelected(Empty request, IServerStreamWriter responseStream, ServerCallContext context) Parameters request Empty Empty request responseStream IServerStreamWriter Stream to write step data to context ServerCallContext Server call context Returns Task Task representing the asynchronous operation" - }, - "api/Hi.Grpcs.DictionaryStep.html": { - "href": "api/Hi.Grpcs.DictionaryStep.html", - "title": "Class DictionaryStep | HiAPI-C# 2025", - "summary": "Class DictionaryStep Namespace Hi.Grpcs Assembly HiNc.dll step which data type is dictionary public sealed class DictionaryStep : IMessage, IEquatable, IDeepCloneable, IBufferMessage, IMessage Inheritance object DictionaryStep Implements IMessage IEquatable IDeepCloneable IBufferMessage IMessage Inherited Members object.Equals(object, object) object.GetType() 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 DictionaryStep() public DictionaryStep() DictionaryStep(DictionaryStep) public DictionaryStep(DictionaryStep other) Parameters other DictionaryStep Fields DictionaryFieldNumber Field number for the “Dictionary” field. public const int DictionaryFieldNumber = 1 Field Value int Properties Descriptor public static MessageDescriptor Descriptor { get; } Property Value MessageDescriptor Dictionary all data in dictionary type. public MapField Dictionary { get; } Property Value MapField Parser public static MessageParser Parser { get; } Property Value MessageParser Methods CalculateSize() Calculates the size of this message in Protocol Buffer wire format, in bytes. public int CalculateSize() Returns int The number of bytes required to write this message to a coded output stream. Clone() Creates a deep clone of this object. public DictionaryStep Clone() Returns DictionaryStep A deep clone of this object. Equals(DictionaryStep) Indicates whether the current object is equal to another object of the same type. public bool Equals(DictionaryStep other) Parameters other DictionaryStep 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 other) Parameters other object Returns bool true if the specified object is equal to the current object; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MergeFrom(CodedInputStream) Merges the data from the specified coded input stream with the current message. public void MergeFrom(CodedInputStream input) Parameters input CodedInputStream Remarks See the user guide for precise merge semantics. MergeFrom(DictionaryStep) Merges the given message into this one. public void MergeFrom(DictionaryStep other) Parameters other DictionaryStep Remarks See the user guide for precise merge semantics. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. WriteTo(CodedOutputStream) Writes the data to the given coded output stream. public void WriteTo(CodedOutputStream output) Parameters output CodedOutputStream Coded output stream to write the data to. Must not be null." - }, - "api/Hi.Grpcs.PlayerService.PlayerServiceBase.html": { - "href": "api/Hi.Grpcs.PlayerService.PlayerServiceBase.html", - "title": "Class PlayerService.PlayerServiceBase | HiAPI-C# 2025", - "summary": "Class PlayerService.PlayerServiceBase Namespace Hi.Grpcs Assembly HiNc.dll Base class for server-side implementations of PlayerService [BindServiceMethod(typeof(PlayerService), \"BindService\")] public abstract class PlayerService.PlayerServiceBase Inheritance object PlayerService.PlayerServiceBase Derived PlayerServiceRunner 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) Methods Pause(Empty, ServerCallContext) Pause file playing if playing; otherwise do nothing. public virtual Task Pause(Empty request, ServerCallContext context) Parameters request Empty The request received from the client. context ServerCallContext The context of the server-side call handler being invoked. Returns Task The response to send back to the client (wrapped by a task). Reset(Empty, ServerCallContext) Reset file player to the state as before running Start function. public virtual Task Reset(Empty request, ServerCallContext context) Parameters request Empty The request received from the client. context ServerCallContext The context of the server-side call handler being invoked. Returns Task The response to send back to the client (wrapped by a task). Resume(Empty, ServerCallContext) Resume file playing if paused; otherwise do nothing. public virtual Task Resume(Empty request, ServerCallContext context) Parameters request Empty The request received from the client. context ServerCallContext The context of the server-side call handler being invoked. Returns Task The response to send back to the client (wrapped by a task). Start(Empty, ServerCallContext) Start file playing. public virtual Task Start(Empty request, ServerCallContext context) Parameters request Empty The request received from the client. context ServerCallContext The context of the server-side call handler being invoked. Returns Task The response to send back to the client (wrapped by a task)." - }, - "api/Hi.Grpcs.PlayerService.PlayerServiceClient.html": { - "href": "api/Hi.Grpcs.PlayerService.PlayerServiceClient.html", - "title": "Class PlayerService.PlayerServiceClient | HiAPI-C# 2025", - "summary": "Class PlayerService.PlayerServiceClient Namespace Hi.Grpcs Assembly HiNc.dll Client for PlayerService public class PlayerService.PlayerServiceClient : ClientBase Inheritance object ClientBase ClientBase PlayerService.PlayerServiceClient Inherited Members ClientBase.WithHost(string) ClientBase.CallInvoker 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 PlayerServiceClient() Protected parameterless constructor to allow creation of test doubles. protected PlayerServiceClient() PlayerServiceClient(CallInvoker) Creates a new client for PlayerService that uses a custom CallInvoker. public PlayerServiceClient(CallInvoker callInvoker) Parameters callInvoker CallInvoker The callInvoker to use to make remote calls. PlayerServiceClient(ChannelBase) Creates a new client for PlayerService public PlayerServiceClient(ChannelBase channel) Parameters channel ChannelBase The channel to use to make remote calls. PlayerServiceClient(ClientBaseConfiguration) Protected constructor to allow creation of configured clients. protected PlayerServiceClient(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration The client configuration. Methods NewInstance(ClientBaseConfiguration) Creates a new instance of client from given ClientBaseConfiguration. protected override PlayerService.PlayerServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration Returns PlayerService.PlayerServiceClient Pause(Empty, CallOptions) Pause file playing if playing; otherwise do nothing. public virtual Empty Pause(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns Empty The response received from the server. Pause(Empty, Metadata, DateTime?, CancellationToken) Pause file playing if playing; otherwise do nothing. public virtual Empty Pause(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns Empty The response received from the server. PauseAsync(Empty, CallOptions) Pause file playing if playing; otherwise do nothing. public virtual AsyncUnaryCall PauseAsync(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns AsyncUnaryCall The call object. PauseAsync(Empty, Metadata, DateTime?, CancellationToken) Pause file playing if playing; otherwise do nothing. public virtual AsyncUnaryCall PauseAsync(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns AsyncUnaryCall The call object. Reset(Empty, CallOptions) Reset file player to the state as before running Start function. public virtual Empty Reset(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns Empty The response received from the server. Reset(Empty, Metadata, DateTime?, CancellationToken) Reset file player to the state as before running Start function. public virtual Empty Reset(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns Empty The response received from the server. ResetAsync(Empty, CallOptions) Reset file player to the state as before running Start function. public virtual AsyncUnaryCall ResetAsync(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns AsyncUnaryCall The call object. ResetAsync(Empty, Metadata, DateTime?, CancellationToken) Reset file player to the state as before running Start function. public virtual AsyncUnaryCall ResetAsync(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns AsyncUnaryCall The call object. Resume(Empty, CallOptions) Resume file playing if paused; otherwise do nothing. public virtual Empty Resume(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns Empty The response received from the server. Resume(Empty, Metadata, DateTime?, CancellationToken) Resume file playing if paused; otherwise do nothing. public virtual Empty Resume(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns Empty The response received from the server. ResumeAsync(Empty, CallOptions) Resume file playing if paused; otherwise do nothing. public virtual AsyncUnaryCall ResumeAsync(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns AsyncUnaryCall The call object. ResumeAsync(Empty, Metadata, DateTime?, CancellationToken) Resume file playing if paused; otherwise do nothing. public virtual AsyncUnaryCall ResumeAsync(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns AsyncUnaryCall The call object. Start(Empty, CallOptions) Start file playing. public virtual Empty Start(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns Empty The response received from the server. Start(Empty, Metadata, DateTime?, CancellationToken) Start file playing. public virtual Empty Start(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns Empty The response received from the server. StartAsync(Empty, CallOptions) Start file playing. public virtual AsyncUnaryCall StartAsync(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns AsyncUnaryCall The call object. StartAsync(Empty, Metadata, DateTime?, CancellationToken) Start file playing. public virtual AsyncUnaryCall StartAsync(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns AsyncUnaryCall The call object." - }, - "api/Hi.Grpcs.PlayerService.html": { - "href": "api/Hi.Grpcs.PlayerService.html", - "title": "Class PlayerService | HiAPI-C# 2025", - "summary": "Class PlayerService Namespace Hi.Grpcs Assembly HiNc.dll numerical file player service. public static class PlayerService Inheritance object PlayerService Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor Service descriptor public static ServiceDescriptor Descriptor { get; } Property Value ServiceDescriptor Methods BindService(ServiceBinderBase, PlayerServiceBase) Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. Note: this method is part of an experimental API that can change or be removed without any prior notice. public static void BindService(ServiceBinderBase serviceBinder, PlayerService.PlayerServiceBase serviceImpl) Parameters serviceBinder ServiceBinderBase Service methods will be bound by calling AddMethod on this object. serviceImpl PlayerService.PlayerServiceBase An object implementing the server-side handling logic. BindService(PlayerServiceBase) Creates service definition that can be registered with a server public static ServerServiceDefinition BindService(PlayerService.PlayerServiceBase serviceImpl) Parameters serviceImpl PlayerService.PlayerServiceBase An object implementing the server-side handling logic. Returns ServerServiceDefinition" - }, - "api/Hi.Grpcs.PlayerServiceReflection.html": { - "href": "api/Hi.Grpcs.PlayerServiceReflection.html", - "title": "Class PlayerServiceReflection | HiAPI-C# 2025", - "summary": "Class PlayerServiceReflection Namespace Hi.Grpcs Assembly HiNc.dll Holder for reflection information generated from Grpcs/PlayerService.proto public static class PlayerServiceReflection Inheritance object PlayerServiceReflection Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor File descriptor for Grpcs/PlayerService.proto public static FileDescriptor Descriptor { get; } Property Value FileDescriptor" - }, - "api/Hi.Grpcs.PlayerServiceRunner.html": { - "href": "api/Hi.Grpcs.PlayerServiceRunner.html", - "title": "Class PlayerServiceRunner | HiAPI-C# 2025", - "summary": "Class PlayerServiceRunner Namespace Hi.Grpcs Assembly HiNc.dll Service runner for the Player gRPC service. public class PlayerServiceRunner : PlayerService.PlayerServiceBase Inheritance object PlayerService.PlayerServiceBase PlayerServiceRunner 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 PlayerServiceRunner(LocalProjectService) Initializes a new instance of the PlayerServiceRunner class. public PlayerServiceRunner(LocalProjectService localProjectService) Parameters localProjectService LocalProjectService Methods Pause(Empty, ServerCallContext) Pauses the player. public override Task Pause(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response. Reset(Empty, ServerCallContext) Resets the player. public override Task Reset(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response. Resume(Empty, ServerCallContext) Resumes the player. public override Task Resume(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response. Start(Empty, ServerCallContext) Starts the player. public override Task Start(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response." - }, - "api/Hi.Grpcs.html": { - "href": "api/Hi.Grpcs.html", - "title": "Namespace Hi.Grpcs | HiAPI-C# 2025", - "summary": "Namespace Hi.Grpcs Classes ClStripService milling process service based on dictionary data type. ClStripService.ClStripServiceBase Base class for server-side implementations of ClStripService ClStripService.ClStripServiceClient Client for ClStripService ClStripServiceReflection Holder for reflection information generated from Grpcs/ClStripService.proto ClStripServiceRunner Service runner for the ClStrip gRPC service. DictionaryStep step which data type is dictionary PlayerService numerical file player service. PlayerService.PlayerServiceBase Base class for server-side implementations of PlayerService PlayerService.PlayerServiceClient Client for PlayerService PlayerServiceReflection Holder for reflection information generated from Grpcs/PlayerService.proto PlayerServiceRunner Service runner for the Player gRPC service." - }, "api/Hi.HiNcKits.BasePathEnum.html": { "href": "api/Hi.HiNcKits.BasePathEnum.html", "title": "Enum BasePathEnum | HiAPI-C# 2025", @@ -1927,12 +1867,12 @@ "api/Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html", "title": "Interface IMachiningEquipment | HiAPI-C# 2025", - "summary": "Interface IMachiningEquipment Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Machining equipment. public interface IMachiningEquipment : IDisplayee, IExpandToBox3d, IMakeXmlSource, IGetAnchoredDisplayeeList, IGetProgramCl, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetMachiningChain Inherited Members IDisplayee.Display(Bind) IExpandToBox3d.ExpandToBox3d(Box3d) IMakeXmlSource.MakeXmlSource(string, string, bool) IGetAnchoredDisplayeeList.GetAnchoredDisplayeeList() IGetProgramCl.GetProgramCl() IGetAsmb.GetAsmb() IGetAnchor.GetAnchor() IGetMachiningChain.GetMachiningChain() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MachiningEquipmentUtil.GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetMachinePositionAtProgramZero(IMachiningEquipment) MachiningEquipmentUtil.GetMachinePositionAtTableBuckleZero(IMachiningEquipment) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Fixture Fixture of workpiece. Fixture Fixture { get; set; } Property Value Fixture MachiningTool Milling tool. IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool TableToComp Component transformation from table. ITransformer TableToComp { get; set; } Property Value ITransformer Workpiece Workpiece. Workpiece Workpiece { get; set; } Property Value Workpiece WorkpieceDisplayee Displayee for workpiece rendering. Set by the runtime service layer. IDisplayee WorkpieceDisplayee { get; set; } Property Value IDisplayee" + "summary": "Interface IMachiningEquipment Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Machining equipment. public interface IMachiningEquipment : IDisplayee, IExpandToBox3d, IMakeXmlSource, IGetAnchoredDisplayeeList, IGetProgramCl, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetMachiningChain Inherited Members IDisplayee.Display(Bind) IExpandToBox3d.ExpandToBox3d(Box3d) IMakeXmlSource.MakeXmlSource(string, string, bool) IGetAnchoredDisplayeeList.GetAnchoredDisplayeeList() IGetProgramCl.GetProgramCl() IGetAsmb.GetAsmb() IGetAnchor.GetAnchor() IGetMachiningChain.GetMachiningChain() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetMachinePositionAtProgramZero(IMachiningEquipment) MachiningEquipmentUtil.GetMachinePositionAtTableBuckleZero(IMachiningEquipment) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Fixture Fixture of workpiece. Fixture Fixture { get; set; } Property Value Fixture MachiningTool Milling tool. IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool TableToComp Component transformation from table. ITransformer TableToComp { get; set; } Property Value ITransformer Workpiece Workpiece. Workpiece Workpiece { get; set; } Property Value Workpiece WorkpieceDisplayee Displayee for workpiece rendering. Set by the runtime service layer. IDisplayee WorkpieceDisplayee { get; set; } Property Value IDisplayee" }, "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html", "title": "Class MachiningEquipment | HiAPI-C# 2025", - "summary": "Class MachiningEquipment Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Machining Equipment. Include the machining chain, workpiece, tool and fixture, etc.. public class MachiningEquipment : IMachiningEquipment, IDisplayee, IExpandToBox3d, IMakeXmlSource, IGetAnchoredDisplayeeList, IGetProgramCl, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetMachiningChain, IGetMachiningEquipment Inheritance object MachiningEquipment Implements IMachiningEquipment IDisplayee IExpandToBox3d IMakeXmlSource IGetAnchoredDisplayeeList IGetProgramCl IGetAsmb IGetAnchor IGetTopoIndex IGetMachiningChain IGetMachiningEquipment Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningEquipmentUtil.GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetMachinePositionAtProgramZero(IMachiningEquipment) MachiningEquipmentUtil.GetMachinePositionAtTableBuckleZero(IMachiningEquipment) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningEquipment() Ctor. public MachiningEquipment() MachiningEquipment(XElement, string, string, IProgress) Initializes a new instance of the MachiningEquipment class from XML data. public MachiningEquipment(XElement src, string baseDirectory, string relFile, IProgress progress) Parameters src XElement The XML element containing the equipment configuration. baseDirectory string The base directory for resolving relative file paths. relFile string The relative file path for XML serialization. progress IProgress Progress reporter for diagnostic messages emitted during construction. Properties Asmb Asmb of the entire equipment. public Asmb Asmb { get; } Property Value Asmb BackgroundTemperature_C Gets or sets the background temperature in Celsius. This is a convenience property that converts between Celsius and Kelvin. public double BackgroundTemperature_C { get; set; } Property Value double BackgroundTemperature_K Gets or sets the background temperature in Kelvin. This represents the ambient temperature of the machining environment. public double BackgroundTemperature_K { get; set; } Property Value double CoolantHeatCondition Gets or sets the coolant heat condition settings. This includes coolant temperature and heat transfer coefficients. public CoolantHeatCondition CoolantHeatCondition { get; set; } Property Value CoolantHeatCondition Fixture Fixture. public Fixture Fixture { get; set; } Property Value Fixture MachiningChain Body of the equipment. public IMachiningChain MachiningChain { get; set; } Property Value IMachiningChain MachiningChainFile Gets or sets the file path of the solid machining chain. This is used for XML serialization and file management. public string MachiningChainFile { get; set; } Property Value string MachiningTool Milling tool. public IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool SpindleCapability Gets or sets the spindle capability configuration. This defines the operational capabilities and limits of the spindle. public SpindleCapability SpindleCapability { get; set; } Property Value SpindleCapability SpindleCapabilityFile Gets or sets the file path of the spindle capability configuration. This is used for XML serialization and file management. public string SpindleCapabilityFile { get; set; } Property Value string TableToComp Transformer of the branch from table buckle to workpiece side buckle. Note that the workpiece side buckle links to Fixture if fixture exist; otherwise, it links to Workpiece if workpiece exist. If Workpiece either Fixture do not exist, this property makes no effect. public ITransformer TableToComp { get; set; } Property Value ITransformer Workpiece Workpiece. public Workpiece Workpiece { get; set; } Property Value Workpiece WorkpieceDisplayee Displayee for workpiece rendering. Set by the runtime service layer. public IDisplayee WorkpieceDisplayee { get; set; } Property Value IDisplayee XName Name for XML IO. public static string XName { get; } Property Value string Methods Detect(bool) Performs collision detection. public MechCollisionResult Detect(bool addFluteAndWorkpieceDetection) Parameters addFluteAndWorkpieceDetection bool Whether to include flute and workpiece in detection. Returns MechCollisionResult Significant collision result. 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetMachiningChain() Gets the machining chain instance. public IMachiningChain GetMachiningChain() Returns IMachiningChain The machining chain instance. GetMillingEquipment() Get MachiningEquipment. public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment MachiningEquipment GetProgramCl() Get CL (Cutter Location). Where Point is tool tip position; Normal is tool orientation. public DVec3d GetProgramCl() Returns DVec3d CL GetToolTipXyzOnProgramZero() Get tool tip xyz from workpiece geom anchor. public Vec3d GetToolTipXyzOnProgramZero() Returns Vec3d if no MachiningTool or no Workpiece equiping, return null; otherwise, return the XYZ from workpiece geomanchor to tool tip. GetTransformFromRootToProgramZero() Gets the transform matrix from the root coordinate system to the program zero coordinate system. public Mat4d GetTransformFromRootToProgramZero() Returns Mat4d A 4x4 transformation matrix representing the coordinate system transformation. 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. PrepareCollidableItems() Prepares all collidable items for collision detection. This method should be called before performing collision detection. public void PrepareCollidableItems() Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ResetCollisionFlags() Resets all collision flags to their default states. This should be called after collision detection is complete. public void ResetCollisionFlags() Tooling(int, MachiningToolHouse) Set MachiningTool by toolId and toolHouse. public bool Tooling(int toolId, MachiningToolHouse toolHouse) Parameters toolId int tool ID toolHouse MachiningToolHouse tool house Returns bool true if tool changed; otherwise, false. Exceptions ToolNotFoundException Throw If toolId does not exist on toolHouse." + "summary": "Class MachiningEquipment Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Machining Equipment. Include the machining chain, workpiece, tool and fixture, etc.. public class MachiningEquipment : IMachiningEquipment, IDisplayee, IExpandToBox3d, IMakeXmlSource, IGetAnchoredDisplayeeList, IGetProgramCl, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetMachiningChain, IGetMachiningEquipment Inheritance object MachiningEquipment Implements IMachiningEquipment IDisplayee IExpandToBox3d IMakeXmlSource IGetAnchoredDisplayeeList IGetProgramCl IGetAsmb IGetAnchor IGetTopoIndex IGetMachiningChain IGetMachiningEquipment Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetMachinePositionAtProgramZero(IMachiningEquipment) MachiningEquipmentUtil.GetMachinePositionAtTableBuckleZero(IMachiningEquipment) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningEquipment() Ctor. public MachiningEquipment() MachiningEquipment(XElement, string, string, IProgress) Initializes a new instance of the MachiningEquipment class from XML data. public MachiningEquipment(XElement src, string baseDirectory, string relFile, IProgress progress) Parameters src XElement The XML element containing the equipment configuration. baseDirectory string The base directory for resolving relative file paths. relFile string The relative file path for XML serialization. progress IProgress Progress reporter for diagnostic messages emitted during construction. Properties Asmb Asmb of the entire equipment. public Asmb Asmb { get; } Property Value Asmb BackgroundTemperature_C Gets or sets the background temperature in Celsius. This is a convenience property that converts between Celsius and Kelvin. public double BackgroundTemperature_C { get; set; } Property Value double BackgroundTemperature_K Gets or sets the background temperature in Kelvin. This represents the ambient temperature of the machining environment. public double BackgroundTemperature_K { get; set; } Property Value double CoolantHeatCondition Gets or sets the coolant heat condition settings. This includes coolant temperature and heat transfer coefficients. public CoolantHeatCondition CoolantHeatCondition { get; set; } Property Value CoolantHeatCondition Fixture Fixture. public Fixture Fixture { get; set; } Property Value Fixture MachiningChain Body of the equipment. public IMachiningChain MachiningChain { get; set; } Property Value IMachiningChain MachiningChainFile Gets or sets the file path of the solid machining chain. This is used for XML serialization and file management. public string MachiningChainFile { get; set; } Property Value string MachiningTool Milling tool. public IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool SpindleCapability Gets or sets the spindle capability configuration. This defines the operational capabilities and limits of the spindle. public SpindleCapability SpindleCapability { get; set; } Property Value SpindleCapability SpindleCapabilityFile Gets or sets the file path of the spindle capability configuration. This is used for XML serialization and file management. public string SpindleCapabilityFile { get; set; } Property Value string TableToComp Transformer of the branch from table buckle to workpiece side buckle. Note that the workpiece side buckle links to Fixture if fixture exist; otherwise, it links to Workpiece if workpiece exist. If Workpiece either Fixture do not exist, this property makes no effect. public ITransformer TableToComp { get; set; } Property Value ITransformer Workpiece Workpiece. public Workpiece Workpiece { get; set; } Property Value Workpiece WorkpieceDisplayee Displayee for workpiece rendering. Set by the runtime service layer. public IDisplayee WorkpieceDisplayee { get; set; } Property Value IDisplayee XName Name for XML IO. public static string XName { get; } Property Value string Methods Detect(bool) Performs collision detection. public MechCollisionResult Detect(bool addFluteAndWorkpieceDetection) Parameters addFluteAndWorkpieceDetection bool Whether to include flute and workpiece in detection. Returns MechCollisionResult Significant collision result. 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetMachiningChain() Gets the machining chain instance. public IMachiningChain GetMachiningChain() Returns IMachiningChain The machining chain instance. GetMillingEquipment() Get MachiningEquipment. public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment MachiningEquipment GetProgramCl() Get CL (Cutter Location). Where Point is tool tip position; Normal is tool orientation. public DVec3d GetProgramCl() Returns DVec3d CL GetToolTipXyzOnProgramZero() Get tool tip xyz from workpiece geom anchor. public Vec3d GetToolTipXyzOnProgramZero() Returns Vec3d if no MachiningTool or no Workpiece equiping, return null; otherwise, return the XYZ from workpiece geomanchor to tool tip. GetTransformFromRootToProgramZero() Gets the transform matrix from the root coordinate system to the program zero coordinate system. public Mat4d GetTransformFromRootToProgramZero() Returns Mat4d A 4x4 transformation matrix representing the coordinate system transformation. 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. PrepareCollidableItems() Prepares all collidable items for collision detection. This method should be called before performing collision detection. public void PrepareCollidableItems() Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ResetCollisionFlags() Resets all collision flags to their default states. This should be called after collision detection is complete. public void ResetCollisionFlags() Tooling(int, MachiningToolHouse) Set MachiningTool by toolId and toolHouse. public bool Tooling(int toolId, MachiningToolHouse toolHouse) Parameters toolId int tool ID toolHouse MachiningToolHouse tool house Returns bool true if tool changed; otherwise, false. Exceptions ToolNotFoundException Throw If toolId does not exist on toolHouse." }, "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html", @@ -1947,7 +1887,7 @@ "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html", "title": "Class MachiningEquipmentUtil | HiAPI-C# 2025", - "summary": "Class MachiningEquipmentUtil Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Utility methods for working with machining equipment. public static class MachiningEquipmentUtil Inheritance object MachiningEquipmentUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) Get ISO coordinate position from the g54seriesOffset. public static Vec3d GetIsoCoordinatePosition(this IMachiningEquipment equipment, Vec3d g54seriesOffset) Parameters equipment IMachiningEquipment g54seriesOffset Vec3d Returns Vec3d GetMachinePositionAtProgramZero(IMachiningEquipment) Gets the machine coordinate when the attacher is at program zero. The machine coordinate are all assumed to be zero. public static Vec3d GetMachinePositionAtProgramZero(this IMachiningEquipment equipment) Parameters equipment IMachiningEquipment The machining equipment. Returns Vec3d The machine coordinate vector. GetMachinePositionAtTableBuckleZero(IMachiningEquipment) Gets the machine coordinate when the attacher is at table buckle zero. public static Vec3d GetMachinePositionAtTableBuckleZero(this IMachiningEquipment equipment) Parameters equipment IMachiningEquipment The machining equipment. Returns Vec3d The machine coordinate vector." + "summary": "Class MachiningEquipmentUtil Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Utility methods for working with machining equipment. public static class MachiningEquipmentUtil Inheritance object MachiningEquipmentUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) Places Fixture under the kinematic chain so that ProgramZeroAnchor coincides with the world position the spindle reaches when the machine coordinate equals isoOffset (a G54/G55/… entry). Other anchors (FixtureBuckle, ProgramZeroAnchor, WorkpieceBuckle) must already be at their intended geometric positions (typically via the buckle “general rule”: bottom/top centers of geom). Only GeomToTableTransformer is mutated. Returns the assigned translation, or null when workpiece / fixture / Xyzabc machine tool is missing. public static Vec3d AlignWorkpieceProgramZeroToIso(this IMachiningEquipment equipment, Vec3d isoOffset) Parameters equipment IMachiningEquipment isoOffset Vec3d Returns Vec3d GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) Get ISO coordinate position from the g54seriesOffset. public static Vec3d GetIsoCoordinatePosition(this IMachiningEquipment equipment, Vec3d g54seriesOffset) Parameters equipment IMachiningEquipment g54seriesOffset Vec3d Returns Vec3d GetMachinePositionAtProgramZero(IMachiningEquipment) Gets the machine coordinate when the attacher is at program zero. The machine coordinate are all assumed to be zero. public static Vec3d GetMachinePositionAtProgramZero(this IMachiningEquipment equipment) Parameters equipment IMachiningEquipment The machining equipment. Returns Vec3d The machine coordinate vector. GetMachinePositionAtTableBuckleZero(IMachiningEquipment) Gets the machine coordinate when the attacher is at table buckle zero. public static Vec3d GetMachinePositionAtTableBuckleZero(this IMachiningEquipment equipment) Parameters equipment IMachiningEquipment The machining equipment. Returns Vec3d The machine coordinate vector." }, "api/Hi.Machining.MachiningEquipmentUtils.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.html", @@ -2062,12 +2002,12 @@ "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, IMakeXmlSource, IMachiningProjectGetter Inheritance object MachiningProject Implements IDisposable 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 with the specified directory. public MachiningProject(string baseDirectory) Parameters baseDirectory string Base directory for file operations MachiningProject(XElement, string, IProgress) Initializes a new instance from XML data. public MachiningProject(XElement src, string baseDirectory, IProgress progress) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths progress IProgress Progress reporter for XML deserialization. Properties ApiVersion Gets the API version from the HiNc assembly (where MachiningProject is defined). 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 DictionaryColorGuide public DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide MachiningActRunnerConfig Gets or sets the configuration for the milling act runner. public MachiningActRunnerConfig MachiningActRunnerConfig { get; set; } Property Value MachiningActRunnerConfig MachiningToolHouse Gets or sets the machining tool house containing tool configurations. 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 MillingGuide Gets or sets the milling guide containing visualization and analysis configurations. public MillingGuide MillingGuide { get; set; } Property Value MillingGuide NcEnv Gets or sets the NC environment settings. public HardNcEnv NcEnv { get; set; } Property Value HardNcEnv PlayerCommand Gets the command to execute when playing the machining project. public ISessionCommand PlayerCommand { get; set; } Property Value ISessionCommand SoftNcRunner Gets or sets the configurable NC runner. When set, replaces the legacy HardNcRunner. public SoftNcRunner SoftNcRunner { get; set; } Property Value SoftNcRunner TimeMapping Gets or sets the time mapping for synchronizing different time-based data streams. public TimeMapping TimeMapping { get; set; } Property Value TimeMapping XName Name for XML IO. public static string XName { get; } Property Value string Methods 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 GetMachiningProject() Gets the MachiningProject instance. public MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance. GetMillingEquipment() public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment LoadFile(string, IProgress) Loads a machining project from the specified file path. public static MachiningProject LoadFile(string projectFilePath, IProgress progress) Parameters projectFilePath string Path to the project file to load progress IProgress Progress reporter for XML deserialization. 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. Reg(XFactory) Registers this type's deserializer (and its legacy aliases) with the given XFactory (or Default when factory is null), and chains Reg(factory) on dependents so the registration graph is observable. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "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, IMakeXmlSource, IMachiningProjectGetter Inheritance object MachiningProject Implements IDisposable 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 with the specified directory. public MachiningProject(string baseDirectory) Parameters baseDirectory string Base directory for file operations MachiningProject(XElement, string, IProgress) Initializes a new instance from XML data. public MachiningProject(XElement src, string baseDirectory, IProgress progress) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths progress IProgress Progress reporter for XML deserialization. Properties ApiVersion Gets the API version from the HiNc assembly (where MachiningProject is defined). 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 DictionaryColorGuide public DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide MachiningActRunnerConfig Gets or sets the configuration for the milling act runner. public MachiningActRunnerConfig MachiningActRunnerConfig { get; set; } Property Value MachiningActRunnerConfig MachiningToolHouse Gets or sets the machining tool house containing tool configurations. 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 MillingGuide Gets or sets the milling guide containing visualization and analysis configurations. public MillingGuide MillingGuide { get; set; } Property Value MillingGuide NcEnv Gets or sets the NC environment settings. public HardNcEnv NcEnv { get; set; } Property Value HardNcEnv PlayerCommand Gets the command to execute when playing the machining project. public ISessionCommand PlayerCommand { get; set; } Property Value ISessionCommand SoftNcRunner Gets or sets the configurable NC runner. When set, replaces the legacy HardNcRunner. public SoftNcRunner SoftNcRunner { get; set; } Property Value SoftNcRunner SoftNcRunnerFile Gets or sets the project-relative file path of the SoftNcRunner XML. When non-null, MakeXmlSource(string, string, bool) writes the runner to this side file and embeds a file reference in the project XML; when null the runner is inlined. Mirrors MachiningChainFile. public string SoftNcRunnerFile { get; set; } Property Value string TimeMapping Gets or sets the time mapping for synchronizing different time-based data streams. public TimeMapping TimeMapping { get; set; } Property Value TimeMapping XName Name for XML IO. public static string XName { get; } Property Value string Methods 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 GetMachiningProject() Gets the MachiningProject instance. public MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance. GetMillingEquipment() public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment LoadFile(string, IProgress) Loads a machining project from the specified file path. public static MachiningProject LoadFile(string projectFilePath, IProgress progress) Parameters projectFilePath string Path to the project file to load progress IProgress Progress reporter for XML deserialization. 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. Reg(XFactory) Registers this type's deserializer (and its legacy aliases) with the given XFactory (or Default when factory is null), and chains Reg(factory) on dependents so the registration graph is observable. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.MachiningProcs.MachiningProjectDisplayee.html": { "href": "api/Hi.MachiningProcs.MachiningProjectDisplayee.html", "title": "Class MachiningProjectDisplayee | HiAPI-C# 2025", - "summary": "Class MachiningProjectDisplayee Namespace Hi.MachiningProcs Assembly HiNc.dll Represents a displayable wrapper for a machining project. public class MachiningProjectDisplayee : IDisplayee, IExpandToBox3d, IGetAnchor, IGetTopoIndex Inheritance object MachiningProjectDisplayee Implements IDisplayee IExpandToBox3d IGetAnchor IGetTopoIndex Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningProjectDisplayee(LocalProjectService) Initializes a new instance of the MachiningProjectDisplayee class with default rendering flags. public MachiningProjectDisplayee(LocalProjectService localProjectService) Parameters localProjectService LocalProjectService Properties HeidenhainCoordinateEntryDisplayee Gets the Heidenhain coordinate entry displayee for Heidenhain-based coordinate systems. public HeidenhainCoordinateEntryDisplayee HeidenhainCoordinateEntryDisplayee { get; } Property Value HeidenhainCoordinateEntryDisplayee IsoCoordinateEntryDisplayee Gets the ISO coordinate entry displayee for ISO-based coordinate systems. public IsoCoordinateEntryDisplayee IsoCoordinateEntryDisplayee { get; } Property Value IsoCoordinateEntryDisplayee LocalProjectService Gets or sets the function that provides the machining project. public LocalProjectService LocalProjectService { get; set; } Property Value LocalProjectService MachiningProject Gets the current milling course from the host function. public MachiningProject MachiningProject { get; } Property Value MachiningProject RenderingFlagBitArray Gets or sets the bit array that controls which elements are rendered. public BitArray RenderingFlagBitArray { get; set; } Property Value BitArray Methods 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor" + "summary": "Class MachiningProjectDisplayee Namespace Hi.MachiningProcs Assembly HiNc.dll Represents a displayable wrapper for a machining project. public class MachiningProjectDisplayee : IDisplayee, IExpandToBox3d, IGetAnchor, IGetTopoIndex Inheritance object MachiningProjectDisplayee Implements IDisplayee IExpandToBox3d IGetAnchor IGetTopoIndex 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 MachiningProjectDisplayee(LocalProjectService) Initializes a new instance of the MachiningProjectDisplayee class with default rendering flags. public MachiningProjectDisplayee(LocalProjectService localProjectService) Parameters localProjectService LocalProjectService Properties HeidenhainCoordinateEntryDisplayee Gets the Heidenhain coordinate entry displayee for Heidenhain-based coordinate systems. public HeidenhainCoordinateEntryDisplayee HeidenhainCoordinateEntryDisplayee { get; } Property Value HeidenhainCoordinateEntryDisplayee IsoCoordinateEntryDisplayee Gets the ISO coordinate entry displayee for ISO-based coordinate systems. public IsoCoordinateEntryDisplayee IsoCoordinateEntryDisplayee { get; } Property Value IsoCoordinateEntryDisplayee LocalProjectService Gets or sets the function that provides the machining project. public LocalProjectService LocalProjectService { get; set; } Property Value LocalProjectService MachiningProject Gets the current milling course from the host function. public MachiningProject MachiningProject { get; } Property Value MachiningProject RenderingFlagBitArray Gets or sets the bit array that controls which elements are rendered. public BitArray RenderingFlagBitArray { get; set; } Property Value BitArray Methods 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor" }, "api/Hi.MachiningProcs.MachiningSession.html": { "href": "api/Hi.MachiningProcs.MachiningSession.html", @@ -2117,7 +2057,7 @@ "api/Hi.MachiningProcs.SessionShell.html": { "href": "api/Hi.MachiningProcs.SessionShell.html", "title": "Class SessionShell | HiAPI-C# 2025", - "summary": "Class SessionShell Namespace Hi.MachiningProcs Assembly HiNc.dll End-user-facing facade for a machining session: aggregates session lifecycle, NC playback, optimization, geometry I/O, and scripting infrastructure into a single delegation surface. Used as the C# script globals object and as the concrete target of ISessionCommand implementations. public class SessionShell : ISessionShell Inheritance object SessionShell Implements ISessionShell 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. [Obsolete] 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 EmbeddedLogMode Gets or sets the embedded log mode for NC optimization. [JsAce] public static NcOptimizationEmbeddedLogMode EmbeddedLogMode { get; set; } Property Value NcOptimizationEmbeddedLogMode EnableCollisionDetection Gets or sets whether collision detection is enabled. [JsAce(DocContentHtml = \"Enable Collision Detection.\")] public bool EnableCollisionDetection { get; set; } Property Value bool EnableIndividualStepAdjustmentLog Gets or sets whether to enable individual step adjustment logging. [JsAce] public static bool EnableIndividualStepAdjustmentLog { get; set; } Property Value bool EnableMapOnSelectionEnd Gets or sets whether to automatically map selections when they end. [JsAce] public bool EnableMapOnSelectionEnd { get; set; } Property Value bool EnableMotionDependentMachiningResolution Gets or sets whether motion-dependent machining resolution is enabled. [JsAce] public bool EnableMotionDependentMachiningResolution { get; set; } Property Value bool EnableMzLeverWeightingOnTraining Gets or sets whether Mz lever weighting is enabled on training. [Obsolete] public bool EnableMzLeverWeightingOnTraining { get; set; } Property Value bool EnablePauseOnCollision Gets or sets whether to pause execution when a collision is detected. This property only has an effect if collision detection is enabled. [Obsolete] 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 EnableSampleNormalization [Obsolete] public bool EnableSampleNormalization { get; set; } Property Value bool Remarks The input normalization deminish the quantity effect. The R-value decrease from 99% to 70% in moment training case from NKUST\\nkust2024-milling-para-training-plan\\workingx.hincproj Don't apply this option. EnableSoftNcRunner Workaround flag to use SoftNcRunner instead of HardNcRunner. Will be removed when HardNcRunner is fully replaced. [JsAce(DocContentHtml = \"Enable SoftNcRunner instead of legacy HardNcRunner.\")] public bool EnableSoftNcRunner { 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 Gets or sets the fixture. [JsAce] public Fixture Fixture { get; set; } Property Value Fixture Global [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. [JsAce] [Obsolete(\"Use MachiningResolution_mm instead.\")] 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 MillingCycleDivisionNum 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 MillingCycleDivisionNum { get; set; } Property Value int 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(DocContentHtml = \"Obsoleted. Use MillingCycleDivisionNum instead.\")] [Obsolete(\"Use MillingCycleDivisionNum instead.\")] 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 MAX spindle power during optimization. [JsAce] public double OptSpindlePowerSafetyFactor { get; set; } Property Value double OptSpindlePowerUtilizationFactor Utilization factor for MAX spindle power during optimization. It is the reciprocal of the spindle power safety factor. [JsAce] public double OptSpindlePowerUtilizationFactor { get; set; } Property Value double OptSpindleTorqueSafetyFactor Gets or sets the MAX spindle torque safety factor for NC optimization. [JsAce] public double OptSpindleTorqueSafetyFactor { get; set; } Property Value double OptSpindleTorqueUtilizationFactor Utilization factor for MAX 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 Obsolete alias for SessionProgress (session-scoped progress and messages). [JsAce] [Obsolete(\"Use SessionProgress instead.\")] public SessionProgress SessionMessageHost { get; } Property Value SessionProgress SessionProgress Gets the session message host for displaying messages. [JsAce] public SessionProgress SessionProgress { get; } Property Value SessionProgress StepCount Gets the total number of milling steps. [JsAce] public int StepCount { get; } Property Value int Workpiece Gets or sets the 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 AdjustedFeedPerCycle(double, double) Gets a new feed per cycle machining motion resolution instance with adjusted scale and minimum linear resolution. [JsAce(\"AdjustedFeedPerCycle($1scale,$2minLinearResolution_mm)\")] public FeedPerCycleMachiningMotionResolution AdjustedFeedPerCycle(double scale, double minLinearResolution_mm = 0) Parameters scale double The scale factor for the resolution. minLinearResolution_mm double The minimum linear resolution in millimeters. Default is 0. Returns FeedPerCycleMachiningMotionResolution A new FeedPerCycleMachiningMotionResolution instance with the specified parameters. 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() ClearDefectDisplayee() Clears the defect displayee from the workpiece. [JsAce] public void ClearDefectDisplayee() 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) Loads cutting parameters from a file. [JsAce(\"LoadCuttingParaByFile($1\\\"relFile\\\")\")] public void LoadCuttingParaByFile(string relFile) Parameters relFile string File path relative to BaseDirectory. 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) Maps machining steps by actual time from a time shot file. [Obsolete] public void MapByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters timeShotRelFile string Relative path to the time shot file. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. MapSeriesByCsvFile(string, CycleSamplingMode) Maps machining steps by actual time from a time shot csv file. [JsAce(\"MapSeriesByCsvFile($1timeShotRelFile)\")] public void MapSeriesByCsvFile(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters timeShotRelFile string Relative path to the time shot file. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. MapSingleByCsvFile(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. It is one (step) - one (embedded-data) mapping. [JsAce(Snippet = \"MapSingleByCsvFile($1\\\"csvFile\\\")\")] public void MapSingleByCsvFile(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory 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() Gets the dictionary of preferred function index for NC optimization. [JsAce(\"OptCallPreferFuncIndexDictionary()\")] public Dictionary, double> OptCallPreferFuncIndexDictionary() Returns Dictionary, double> Dictionary mapping functions to their preference indexes. 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, IGetSentence, CancellationToken?) Plays an act with pacing control. [JsAce] public void PlayAct(IAct act, IGetSentence sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to play. sourceCommand IGetSentence 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. PowerReset() Performs a controller power reset: every IPowerResettable dependency in the active NcDependencyList clears its volatile subset (e.g. Fanuc common volatile macro variables #100-#499). Persistent state is left intact. [JsAce(\"PowerReset();\")] public void PowerReset() 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 = 0.1) 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. It is one (step) - one (embedded-data) mapping. [Obsolete] 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) RegisterWriteSyntaxPieces(string) Registers a text writer so each executed SyntaxPiece is appended to relOutputFile under the machining project base directory for debugging. [JsAce(Snippet = \"RegisterWriteSyntaxPieces($1\\\"Cache/syntax-pieces-output.txt\\\")\")] public void RegisterWriteSyntaxPieces(string relOutputFile) Parameters relOutputFile string Relative path for the output log file. RegisterWriteSyntaxPiecesWithActs(string) Registers a writer that outputs each SyntaxPiece once, followed by its associated IAct entries (one-to-many). [JsAce(Snippet = \"RegisterWriteSyntaxPiecesWithActs($1\\\"Cache/syntax-pieces-acts-output.txt\\\")\")] public void RegisterWriteSyntaxPiecesWithActs(string relOutputFile) Parameters relOutputFile string Output file path relative to BaseDirectory. 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 with no programing skill. [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 with no programing skill. [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 ScaledFeedPerCycle(double) Gets a new feed per cycle machining motion resolution instance with the specified scale. [JsAce(\"ScaledFeedPerCycle($1scale)\")] public FeedPerCycleMachiningMotionResolution ScaledFeedPerCycle(double scale) Parameters scale double The scale factor for the resolution. Returns FeedPerCycleMachiningMotionResolution A new FeedPerCycleMachiningMotionResolution instance with the specified scale. ScanRuntimeGeomInfDefect() Scans the runtime geometry for defects. After scanning, the scanned defects will render in the workpiece. [JsAce] public bool? ScanRuntimeGeomInfDefect() Returns bool? True if defects are found, false otherwise, or null if the operation cannot be performed. SetAllSnapshotSyntaxEnabled(bool) Sets IsEnabled on every SnapshotSyntax reachable from the active SoftNcRunner's NcSyntaxList (top-level slots and inside BundleSyntax). No-op when SoftNcRunner is not the active runner. [JsAce(DocContentHtml = \"Enable or disable every SnapshotSyntax in the active SoftNcRunner pipeline at once.\")] public void SetAllSnapshotSyntaxEnabled(bool isEnabled) Parameters isEnabled bool 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 = 0.1, 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 Optional parameter template for cutting operations. 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 WriteRuntimeGeomToObj(string, double) Writes the current runtime geometry to a Wavefront OBJ file with per-vertex RGB. [JsAce(\"WriteRuntimeGeomToObj($1\\\"dstFile\\\",$2resolution_mm)\")] public void WriteRuntimeGeomToObj(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output OBJ file resolution_mm double Resolution in millimeters (0 for default) WriteRuntimeGeomToPly(string, double) Writes the current runtime geometry to a binary PLY file with per-vertex RGB. [JsAce(\"WriteRuntimeGeomToPly($1\\\"dstFile\\\",$2resolution_mm)\")] public void WriteRuntimeGeomToPly(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output PLY file resolution_mm double Resolution in millimeters (0 for default) 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 Session-scoped event triggered when a machining step is built. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). For app-lifetime event, use MachiningStepBuilt instead. [Obsolete(\"Use SessionStepBuilt instead.\")] public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate MachiningStepSelected Session-scoped event triggered when a machining step is selected. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [Obsolete(\"Use SessionStepSelected instead.\")] public event Action MachiningStepSelected Event Type Action SessionSourcedActEntry Session-scoped event triggered for each SourcedActEntry produced during NC/CSV execution. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionSourcedActEntry+=($1entry)=>{$2Command};\", DocContentHtml = \"Session-scoped event triggered for each SourcedActEntry. entry.SentenceSource is the source sentence; entry.Act is the associated act (may be null).\")] public event Action SessionSourcedActEntry Event Type Action SessionStepBuilt Session-scoped event triggered when a machining step is built. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). For app-lifetime event, use MachiningStepBuilt instead. [JsAce(Snippet = \"SessionStepBuilt+=($1preStep,$2curStep)=>{$3Command};\", DocContentHtml = \"Session-scoped step built event. preStep is the Previous Milling Step; curStep is the Current Milling Step. preStep is null if no previous step existed.\")] public event MachiningActRunner.MachiningStepBuiltDelegate SessionStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate SessionStepSelected Session-scoped event triggered when a machining step is selected. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionStepSelected+=($1millingStep)=>{$2Command};\")] public event Action SessionStepSelected Event Type Action SessionSyntaxPieceRan Session-scoped event triggered when a syntax piece has been executed. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionSyntaxPieceRan+=($1syntaxPiece)=>{$2Command};\", DocContentHtml = \"Session-scoped event triggered after each SyntaxPiece is executed. syntaxPiece may be null if the source command is not a SyntaxPiece.\")] public event Action SessionSyntaxPieceRan Event Type Action SyntaxPieceRan Session-scoped event triggered when a syntax piece has been executed. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [Obsolete(\"Use SessionSyntaxPieceRan instead.\")] public event Action SyntaxPieceRan Event Type Action" + "summary": "Class SessionShell Namespace Hi.MachiningProcs Assembly HiNc.dll End-user-facing facade for a machining session: aggregates session lifecycle, NC playback, optimization, geometry I/O, and scripting infrastructure into a single delegation surface. Used as the C# script globals object and as the concrete target of ISessionCommand implementations. public class SessionShell : ISessionShell Inheritance object SessionShell Implements ISessionShell 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. [Obsolete] 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 EmbeddedLogMode Gets or sets the embedded log mode for NC optimization. [JsAce] public static NcOptimizationEmbeddedLogMode EmbeddedLogMode { get; set; } Property Value NcOptimizationEmbeddedLogMode EnableCollisionDetection Gets or sets whether collision detection is enabled. [JsAce(DocContentHtml = \"Enable Collision Detection.\")] public bool EnableCollisionDetection { get; set; } Property Value bool EnableIndividualStepAdjustmentLog Gets or sets whether to enable individual step adjustment logging. [JsAce] public static bool EnableIndividualStepAdjustmentLog { get; set; } Property Value bool EnableMapOnSelectionEnd Gets or sets whether to automatically map selections when they end. [JsAce] public bool EnableMapOnSelectionEnd { get; set; } Property Value bool EnableMotionDependentMachiningResolution Gets or sets whether motion-dependent machining resolution is enabled. [JsAce] public bool EnableMotionDependentMachiningResolution { get; set; } Property Value bool EnableMzLeverWeightingOnTraining Gets or sets whether Mz lever weighting is enabled on training. [Obsolete] public bool EnableMzLeverWeightingOnTraining { get; set; } Property Value bool EnablePauseOnCollision Gets or sets whether to pause execution when a collision is detected. This property only has an effect if collision detection is enabled. [Obsolete] 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 EnableSampleNormalization [Obsolete] public bool EnableSampleNormalization { get; set; } Property Value bool Remarks The input normalization deminish the quantity effect. The R-value decrease from 99% to 70% in moment training case from NKUST\\nkust2024-milling-para-training-plan\\workingx.hincproj Don't apply this option. EnableSoftNcRunner Workaround flag to use SoftNcRunner instead of HardNcRunner. Will be removed when HardNcRunner is fully replaced. [JsAce(DocContentHtml = \"Enable SoftNcRunner instead of legacy HardNcRunner.\")] public bool EnableSoftNcRunner { 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 Gets or sets the fixture. [JsAce] public Fixture Fixture { get; set; } Property Value Fixture Global [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. [JsAce] [Obsolete(\"Use MachiningResolution_mm instead.\")] 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 MillingCycleDivisionNum 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 MillingCycleDivisionNum { get; set; } Property Value int 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(DocContentHtml = \"Obsoleted. Use MillingCycleDivisionNum instead.\")] [Obsolete(\"Use MillingCycleDivisionNum instead.\")] 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 MAX spindle power during optimization. [JsAce] public double OptSpindlePowerSafetyFactor { get; set; } Property Value double OptSpindlePowerUtilizationFactor Utilization factor for MAX spindle power during optimization. It is the reciprocal of the spindle power safety factor. [JsAce] public double OptSpindlePowerUtilizationFactor { get; set; } Property Value double OptSpindleTorqueSafetyFactor Gets or sets the MAX spindle torque safety factor for NC optimization. [JsAce] public double OptSpindleTorqueSafetyFactor { get; set; } Property Value double OptSpindleTorqueUtilizationFactor Utilization factor for MAX 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 Obsolete alias for SessionProgress (session-scoped progress and messages). [JsAce] [Obsolete(\"Use SessionProgress instead.\")] public SessionProgress SessionMessageHost { get; } Property Value SessionProgress SessionProgress Gets the session message host for displaying messages. [JsAce] public SessionProgress SessionProgress { get; } Property Value SessionProgress StepCount Gets the total number of milling steps. [JsAce] public int StepCount { get; } Property Value int Workpiece Gets or sets the 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 AdjustedFeedPerCycle(double, double) Gets a new feed per cycle machining motion resolution instance with adjusted scale and minimum linear resolution. [JsAce(\"AdjustedFeedPerCycle($1scale,$2minLinearResolution_mm)\")] public FeedPerCycleMachiningMotionResolution AdjustedFeedPerCycle(double scale, double minLinearResolution_mm = 0) Parameters scale double The scale factor for the resolution. minLinearResolution_mm double The minimum linear resolution in millimeters. Default is 0. Returns FeedPerCycleMachiningMotionResolution A new FeedPerCycleMachiningMotionResolution instance with the specified parameters. AlignWorkpieceProgramZeroToIso(string) Places workpiece + fixture so that ProgramZeroAnchor coincides with the world position the spindle reaches when the machine coordinate equals isoCoordId's entry (G54/G55/...). The buckle anchors must already be set per the general rule (typically by the project XML): FixtureBuckle at the bottom center of the workpiece geom, WorkpieceBuckle at the top center of the fixture geom, ProgramZeroAnchor at the workpiece-geom top center (or any chosen tip). Only GeomToTableTransformer is mutated. Delegates topology math to AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d). [JsAce] public void AlignWorkpieceProgramZeroToIso(string isoCoordId) Parameters isoCoordId string ID into the IsoCoordinateTable, e.g. “G54”. 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() ClearDefectDisplayee() Clears the defect displayee from the workpiece. [JsAce] public void ClearDefectDisplayee() 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) Loads cutting parameters from a file. [JsAce(\"LoadCuttingParaByFile($1\\\"relFile\\\")\")] public void LoadCuttingParaByFile(string relFile) Parameters relFile string File path relative to BaseDirectory. 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) Maps machining steps by actual time from a time shot file. [Obsolete] public void MapByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters timeShotRelFile string Relative path to the time shot file. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. MapSeriesByCsvFile(string, CycleSamplingMode) Maps machining steps by actual time from a time shot csv file. [JsAce(\"MapSeriesByCsvFile($1timeShotRelFile)\")] public void MapSeriesByCsvFile(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters timeShotRelFile string Relative path to the time shot file. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. MapSingleByCsvFile(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. It is one (step) - one (embedded-data) mapping. [JsAce(Snippet = \"MapSingleByCsvFile($1\\\"csvFile\\\")\")] public void MapSingleByCsvFile(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory 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() Gets the dictionary of preferred function index for NC optimization. [JsAce(\"OptCallPreferFuncIndexDictionary()\")] public Dictionary, double> OptCallPreferFuncIndexDictionary() Returns Dictionary, double> Dictionary mapping functions to their preference indexes. 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, IGetSentence, CancellationToken?) Plays an act with pacing control. [JsAce] public void PlayAct(IAct act, IGetSentence sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to play. sourceCommand IGetSentence 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. PowerReset() Performs a controller power reset: every IPowerResettable dependency in the active NcDependencyList clears its volatile subset (e.g. Fanuc common volatile macro variables #100-#499). Persistent state is left intact. [JsAce(\"PowerReset();\")] public void PowerReset() 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 = 0.1) 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. It is one (step) - one (embedded-data) mapping. [Obsolete] 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) RegisterWriteSyntaxPieces(string) Registers a text writer so each executed SyntaxPiece is appended to relOutputFile under the machining project base directory for debugging. [JsAce(Snippet = \"RegisterWriteSyntaxPieces($1\\\"Cache/syntax-pieces-output.txt\\\")\")] public void RegisterWriteSyntaxPieces(string relOutputFile) Parameters relOutputFile string Relative path for the output log file. RegisterWriteSyntaxPiecesWithActs(string) Registers a writer that outputs each SyntaxPiece once, followed by its associated IAct entries (one-to-many). [JsAce(Snippet = \"RegisterWriteSyntaxPiecesWithActs($1\\\"Cache/syntax-pieces-acts-output.txt\\\")\")] public void RegisterWriteSyntaxPiecesWithActs(string relOutputFile) Parameters relOutputFile string Output file path relative to BaseDirectory. 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 with no programing skill. [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 with no programing skill. [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 ScaledFeedPerCycle(double) Gets a new feed per cycle machining motion resolution instance with the specified scale. [JsAce(\"ScaledFeedPerCycle($1scale)\")] public FeedPerCycleMachiningMotionResolution ScaledFeedPerCycle(double scale) Parameters scale double The scale factor for the resolution. Returns FeedPerCycleMachiningMotionResolution A new FeedPerCycleMachiningMotionResolution instance with the specified scale. ScanRuntimeGeomInfDefect() Scans the runtime geometry for defects. After scanning, the scanned defects will render in the workpiece. [JsAce] public bool? ScanRuntimeGeomInfDefect() Returns bool? True if defects are found, false otherwise, or null if the operation cannot be performed. SetAllSnapshotSyntaxEnabled(bool) Sets IsEnabled on every SnapshotSyntax reachable from the active SoftNcRunner's NcSyntaxList (top-level slots and inside BundleSyntax). No-op when SoftNcRunner is not the active runner. [JsAce(DocContentHtml = \"Enable or disable every SnapshotSyntax in the active SoftNcRunner pipeline at once.\")] public void SetAllSnapshotSyntaxEnabled(bool isEnabled) Parameters isEnabled bool 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 = 0.1, 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 Optional parameter template for cutting operations. 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 WriteRuntimeGeomToObj(string, double) Writes the current runtime geometry to a Wavefront OBJ file with per-vertex RGB. [JsAce(\"WriteRuntimeGeomToObj($1\\\"dstFile\\\",$2resolution_mm)\")] public void WriteRuntimeGeomToObj(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output OBJ file resolution_mm double Resolution in millimeters (0 for default) WriteRuntimeGeomToPly(string, double) Writes the current runtime geometry to a binary PLY file with per-vertex RGB. [JsAce(\"WriteRuntimeGeomToPly($1\\\"dstFile\\\",$2resolution_mm)\")] public void WriteRuntimeGeomToPly(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output PLY file resolution_mm double Resolution in millimeters (0 for default) 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 Session-scoped event triggered when a machining step is built. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). For app-lifetime event, use MachiningStepBuilt instead. [Obsolete(\"Use SessionStepBuilt instead.\")] public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate MachiningStepSelected Session-scoped event triggered when a machining step is selected. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [Obsolete(\"Use SessionStepSelected instead.\")] public event Action MachiningStepSelected Event Type Action SessionSourcedActEntry Session-scoped event triggered for each SourcedActEntry produced during NC/CSV execution. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionSourcedActEntry+=($1entry)=>{$2Command};\", DocContentHtml = \"Session-scoped event triggered for each SourcedActEntry. entry.SentenceSource is the source sentence; entry.Act is the associated act (may be null).\")] public event Action SessionSourcedActEntry Event Type Action SessionStepBuilt Session-scoped event triggered when a machining step is built. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). For app-lifetime event, use MachiningStepBuilt instead. [JsAce(Snippet = \"SessionStepBuilt+=($1preStep,$2curStep)=>{$3Command};\", DocContentHtml = \"Session-scoped step built event. preStep is the Previous Milling Step; curStep is the Current Milling Step. preStep is null if no previous step existed.\")] public event MachiningActRunner.MachiningStepBuiltDelegate SessionStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate SessionStepSelected Session-scoped event triggered when a machining step is selected. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionStepSelected+=($1millingStep)=>{$2Command};\")] public event Action SessionStepSelected Event Type Action SessionSyntaxPieceRan Session-scoped event triggered when a syntax piece has been executed. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionSyntaxPieceRan+=($1syntaxPiece)=>{$2Command};\", DocContentHtml = \"Session-scoped event triggered after each SyntaxPiece is executed. syntaxPiece may be null if the source command is not a SyntaxPiece.\")] public event Action SessionSyntaxPieceRan Event Type Action SyntaxPieceRan Session-scoped event triggered when a syntax piece has been executed. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [Obsolete(\"Use SessionSyntaxPieceRan instead.\")] public event Action SyntaxPieceRan Event Type Action" }, "api/Hi.MachiningProcs.SessionShellController.html": { "href": "api/Hi.MachiningProcs.SessionShellController.html", @@ -2149,6 +2089,11 @@ "title": "Interface IMachiningService | HiAPI-C# 2025", "summary": "Interface IMachiningService Namespace Hi.MachiningSteps Assembly HiMech.dll Represents a host interface for milling steps that provides access to milling equipment and related resources. public interface IMachiningService : IGetMachiningEquipment Inherited Members IGetMachiningEquipment.GetMillingEquipment() 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 ClStrip Gets the cutter location strip containing the machining steps. ClStrip ClStrip { get; } Property Value ClStrip DictionaryColorGuide Gets the color guide for dictionary-based coloring. DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide MachiningEquipment Gets the milling equipment used for machining operations. MachiningEquipment MachiningEquipment { get; } Property Value MachiningEquipment MachiningSession Gets the current machining session. MachiningSession MachiningSession { get; } Property Value MachiningSession MachiningToolHouse Gets the tool house containing milling tools. MachiningToolHouse MachiningToolHouse { get; } Property Value MachiningToolHouse MillingStepLuggageReader Gets the parallel bulk reader for milling step luggage data. ParallelBulkReader MillingStepLuggageReader { get; } Property Value ParallelBulkReader TimeMapping Gets the time mapping for synchronization. TimeMapping TimeMapping { get; } Property Value TimeMapping Methods GetSessionShell() Returns the session shell that exposes the runtime surface of the active machining session. ISessionShell GetSessionShell() Returns ISessionShell" }, + "api/Hi.MachiningSteps.IStepPropertyAccessHost.html": { + "href": "api/Hi.MachiningSteps.IStepPropertyAccessHost.html", + "title": "Interface IStepPropertyAccessHost | HiAPI-C# 2025", + "summary": "Interface IStepPropertyAccessHost Namespace Hi.MachiningSteps Assembly HiMech.dll Narrow host contract for accessing the step-variable registry and registering new step variables. Exposed as a dedicated surface so pipelines that only need step-variable wiring (e.g. CsvRowSyntax) do not have to depend on the broader IMachiningService. public interface IStepPropertyAccessHost 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 StepPropertyAccessDictionary Dictionary of step-property accessors keyed by property name. Used by CSV title-row processing to decide whether a column already maps to a reserved step property; new columns are registered via RegisterStepVariable(string, string, string, string, Func). ConcurrentDictionary> StepPropertyAccessDictionary { get; } Property Value ConcurrentDictionary> Methods RegisterStepVariable(string, string, string, string, Func) Registers a step variable so downstream components (strip charts, CSV exports, scripting) can read it from MachiningStep. Idempotent on key. void RegisterStepVariable(string key, string name, string unit, string formatString, Func variableFunc = null) Parameters key string Unique key. name string Human-readable name; may equal key. unit string Physical unit name (PhysicsUnit); nullable. formatString string Display format string; nullable. variableFunc Func Optional value extractor; nullable when the value comes from the step's flex dictionary." + }, "api/Hi.MachiningSteps.MachineMotionStep.html": { "href": "api/Hi.MachiningSteps.MachineMotionStep.html", "title": "Class MachineMotionStep | HiAPI-C# 2025", @@ -2187,7 +2132,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. 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. IMachiningService 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. IMachiningService Represents a host interface for milling steps that provides access to milling equipment and related resources. IStepPropertyAccessHost Narrow host contract for accessing the step-variable registry and registering new step variables. Exposed as a dedicated surface so pipelines that only need step-variable wiring (e.g. CsvRowSyntax) do not have to depend on the broader IMachiningService." }, "api/Hi.Mapping.CsvNcStep.html": { "href": "api/Hi.Mapping.CsvNcStep.html", @@ -3417,7 +3362,7 @@ "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html": { "href": "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html", "title": "Class CodeXyzabcMachineTool | HiAPI-C# 2025", - "summary": "Class CodeXyzabcMachineTool Namespace Hi.NcMech.Xyzabc Assembly HiMech.dll For legacy compatible. Use GeneralXyzabcMachineTool instead. public class CodeXyzabcMachineTool : IXyzabcMachineTool, IDisplayee, IGetCollisionIndexPairs, IXyzabcChain, IGetXyzabcChain, IMachiningChain, IGetAsmb, IGetAnchor, IGetTopoIndex, IMakeXmlSource, IGetAnchorToSolidDictionary, IGetAnchoredDisplayeeList, IExpandToBox3d, INameNote Inheritance object CodeXyzabcMachineTool Implements IXyzabcMachineTool IDisplayee IGetCollisionIndexPairs IXyzabcChain IGetXyzabcChain IMachiningChain IGetAsmb IGetAnchor IGetTopoIndex IMakeXmlSource IGetAnchorToSolidDictionary IGetAnchoredDisplayeeList IExpandToBox3d INameNote Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningChainUtil.GetMcCodeTransformerDictionary(IMachiningChain) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) XyzabcUtil.GenerateCollisionIndexPairs(IXyzabcChain) XyzabcUtil.GetMc(IXyzabcChain, out DVec3d) XyzabcUtil.GetMc(IXyzabcChain, out double, out double, out double, out double, out double, out double) XyzabcUtil.GetMcAbc_rad(IXyzabcChain, out Abc) XyzabcUtil.GetMcXyzabc(IXyzabcChain) XyzabcUtil.GetNp(IXyzabcChain) XyzabcUtil.GetTransformationMat4d(IXyzabcChain) XyzabcUtil.SetMc(IXyzabcChain, DVec3d) XyzabcUtil.SetMc(IXyzabcChain, Vec3d) XyzabcUtil.SetMc(IXyzabcChain, double, double, double) XyzabcUtil.SetMc(IXyzabcChain, double, double, double, double, double, double) XyzabcUtil.SetMcAbc_rad(IXyzabcChain, Vec3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CodeXyzabcMachineTool(CodeXyzabcChain) Initializes a new instance of the CodeXyzabcMachineTool class. public CodeXyzabcMachineTool(CodeXyzabcChain xyzabcChain) Parameters xyzabcChain CodeXyzabcChain The XYZABC chain instance. CodeXyzabcMachineTool(string, bool) Builds a machine tool from a compact CodeXyzabcChain axis string and vertical/horizontal layout flag. public CodeXyzabcMachineTool(string chainCode = \"[O][Z][C][w];[O][Y][X][B][S][t]\", bool isVertical = true) Parameters chainCode string Bracket token string consumed by CodeXyzabcChain (defaults to a common 5-axis layout). isVertical bool Whether the Z column is treated as vertical for the generated chain. CodeXyzabcMachineTool(XElement, string, IProgress) Initializes a new instance from XML. public CodeXyzabcMachineTool(XElement src, string baseDirectory, IProgress progress) Parameters src XElement The XML source element. baseDirectory string The base directory for resolving relative paths. progress IProgress The progress reporter. Properties CollisionIndexPairs Gets or sets the collection of collision index pairs. public HashSet CollisionIndexPairs { get; set; } Property Value HashSet EnableAutoGeneratingCollisionIndexPairsOnXmlLoaded Gets or sets whether to automatically generate collision index pairs when loading from XML. public bool EnableAutoGeneratingCollisionIndexPairsOnXmlLoaded { get; set; } Property Value bool McCodes Gets the machine codes array. public string[] McCodes { get; } Property Value string[] McTransformers Gets the machine transformers array. public IDynamicRegular[] McTransformers { get; } Property Value IDynamicRegular[] Name Gets or sets the name of the object. public string Name { get; set; } Property Value string Note Gets or sets the descriptive note for the object. public string Note { get; set; } Property Value string TableAnchor Anchor to attach fixture or workpiece. The anchor is the same as IXyzabcChain.Hi.Numerical.Xyzabc.IXyzabcChain.GetTableBuckle. public Anchor TableAnchor { get; } Property Value Anchor ToolAnchor Anchor to attach tool. The anchor is the same as IXyzabcChain.Hi.Numerical.Xyzabc.IXyzabcChain.GetToolBuckle. public Anchor ToolAnchor { get; } Property Value Anchor XName Name of XML element. public static string XName { get; } Property Value string XyzabcChain Gets the XYZABC chain instance. public IXyzabcChain XyzabcChain { get; } Property Value IXyzabcChain Methods 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 GenerateCollisionIndexPairs() Generates collision index pairs for the machine tool components. public void GenerateCollisionIndexPairs() GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchorToSolidDictionary() Gets a dictionary that maps Anchor objects to their corresponding Solid objects. public Dictionary GetAnchorToSolidDictionary() Returns Dictionary A dictionary where keys are anchors and values are their associated solids. GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetCollisionIndexPairs() Gets a collection of collision index pairs for collision detection. public IEnumerable GetCollisionIndexPairs() Returns IEnumerable A collection of CollisionIndexPair objects. GetMachiningChain() public IMachiningChain GetMachiningChain() Returns IMachiningChain GetMcCodeTransformerDictionary() public Dictionary GetMcCodeTransformerDictionary() Returns Dictionary GetTableBuckle() Gets the table buckle anchor point. public IGetAnchor GetTableBuckle() Returns IGetAnchor The table buckle anchor point. GetToolBuckle() Gets the tool buckle anchor point. public IGetAnchor GetToolBuckle() Returns IGetAnchor The tool buckle anchor point. GetTransformerA() Get transformer A. public DynamicRotation GetTransformerA() Returns DynamicRotation transformer A GetTransformerB() Get transformer B. public DynamicRotation GetTransformerB() Returns DynamicRotation transformer B GetTransformerC() Get transformer C. public DynamicRotation GetTransformerC() Returns DynamicRotation transformer C GetTransformerX() Get transformer X. public DynamicTranslation GetTransformerX() Returns DynamicTranslation transformer X GetTransformerY() Get transformer Y. public DynamicTranslation GetTransformerY() Returns DynamicTranslation transformer Y GetTransformerZ() Get transformer Z. public DynamicTranslation GetTransformerZ() Returns DynamicTranslation transformer Z GetXyzabcChain() Get IXyzabcChain. public IXyzabcChain GetXyzabcChain() Returns IXyzabcChain IXyzabcChain GetXyzabcMachineTool() public CodeXyzabcMachineTool GetXyzabcMachineTool() Returns CodeXyzabcMachineTool 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. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class CodeXyzabcMachineTool Namespace Hi.NcMech.Xyzabc Assembly HiMech.dll This machine tool class helps very quick test by the code configuration. For general/end-user use, apply GeneralXyzabcMachineTool instead. public class CodeXyzabcMachineTool : IXyzabcMachineTool, IDisplayee, IGetCollisionIndexPairs, IXyzabcChain, IGetXyzabcChain, IMachiningChain, IGetAsmb, IGetAnchor, IGetTopoIndex, IMakeXmlSource, IGetAnchorToSolidDictionary, IGetAnchoredDisplayeeList, IExpandToBox3d, INameNote Inheritance object CodeXyzabcMachineTool Implements IXyzabcMachineTool IDisplayee IGetCollisionIndexPairs IXyzabcChain IGetXyzabcChain IMachiningChain IGetAsmb IGetAnchor IGetTopoIndex IMakeXmlSource IGetAnchorToSolidDictionary IGetAnchoredDisplayeeList IExpandToBox3d INameNote Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningChainUtil.GetMcCodeTransformerDictionary(IMachiningChain) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) XyzabcUtil.GenerateCollisionIndexPairs(IXyzabcChain) XyzabcUtil.GetMc(IXyzabcChain, out DVec3d) XyzabcUtil.GetMc(IXyzabcChain, out double, out double, out double, out double, out double, out double) XyzabcUtil.GetMcAbc_rad(IXyzabcChain, out Abc) XyzabcUtil.GetMcXyzabc(IXyzabcChain) XyzabcUtil.GetNp(IXyzabcChain) XyzabcUtil.GetTransformationMat4d(IXyzabcChain) XyzabcUtil.SetMc(IXyzabcChain, DVec3d) XyzabcUtil.SetMc(IXyzabcChain, Vec3d) XyzabcUtil.SetMc(IXyzabcChain, double, double, double) XyzabcUtil.SetMc(IXyzabcChain, double, double, double, double, double, double) XyzabcUtil.SetMcAbc_rad(IXyzabcChain, Vec3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CodeXyzabcMachineTool(CodeXyzabcChain) Initializes a new instance of the CodeXyzabcMachineTool class. public CodeXyzabcMachineTool(CodeXyzabcChain xyzabcChain) Parameters xyzabcChain CodeXyzabcChain The XYZABC chain instance. CodeXyzabcMachineTool(string, bool) Builds a machine tool from a compact CodeXyzabcChain axis string and vertical/horizontal layout flag. public CodeXyzabcMachineTool(string chainCode = \"[O][Z][C][w];[O][Y][X][B][S][t]\", bool isVertical = true) Parameters chainCode string Bracket token string consumed by CodeXyzabcChain (defaults to a common 5-axis layout). isVertical bool Whether the Z column is treated as vertical for the generated chain. CodeXyzabcMachineTool(XElement, string, IProgress) Initializes a new instance from XML. public CodeXyzabcMachineTool(XElement src, string baseDirectory, IProgress progress) Parameters src XElement The XML source element. baseDirectory string The base directory for resolving relative paths. progress IProgress The progress reporter. Properties CollisionIndexPairs Gets or sets the collection of collision index pairs. public HashSet CollisionIndexPairs { get; set; } Property Value HashSet EnableAutoGeneratingCollisionIndexPairsOnXmlLoaded Gets or sets whether to automatically generate collision index pairs when loading from XML. public bool EnableAutoGeneratingCollisionIndexPairsOnXmlLoaded { get; set; } Property Value bool McCodes Gets the machine codes array. public string[] McCodes { get; } Property Value string[] McTransformers Gets the machine transformers array. public IDynamicRegular[] McTransformers { get; } Property Value IDynamicRegular[] Name Gets or sets the name of the object. public string Name { get; set; } Property Value string Note Gets or sets the descriptive note for the object. public string Note { get; set; } Property Value string TableAnchor Anchor to attach fixture or workpiece. The anchor is the same as IXyzabcChain.Hi.Numerical.Xyzabc.IXyzabcChain.GetTableBuckle. public Anchor TableAnchor { get; } Property Value Anchor ToolAnchor Anchor to attach tool. The anchor is the same as IXyzabcChain.Hi.Numerical.Xyzabc.IXyzabcChain.GetToolBuckle. public Anchor ToolAnchor { get; } Property Value Anchor XName Name of XML element. public static string XName { get; } Property Value string XyzabcChain Gets the XYZABC chain instance. public IXyzabcChain XyzabcChain { get; } Property Value IXyzabcChain Methods 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 GenerateCollisionIndexPairs() Generates collision index pairs for the machine tool components. public void GenerateCollisionIndexPairs() GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchorToSolidDictionary() Gets a dictionary that maps Anchor objects to their corresponding Solid objects. public Dictionary GetAnchorToSolidDictionary() Returns Dictionary A dictionary where keys are anchors and values are their associated solids. GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetCollisionIndexPairs() Gets a collection of collision index pairs for collision detection. public IEnumerable GetCollisionIndexPairs() Returns IEnumerable A collection of CollisionIndexPair objects. GetMachiningChain() public IMachiningChain GetMachiningChain() Returns IMachiningChain GetMcCodeTransformerDictionary() public Dictionary GetMcCodeTransformerDictionary() Returns Dictionary GetTableBuckle() Gets the table buckle anchor point. public IGetAnchor GetTableBuckle() Returns IGetAnchor The table buckle anchor point. GetToolBuckle() Gets the tool buckle anchor point. public IGetAnchor GetToolBuckle() Returns IGetAnchor The tool buckle anchor point. GetTransformerA() Get transformer A. public DynamicRotation GetTransformerA() Returns DynamicRotation transformer A GetTransformerB() Get transformer B. public DynamicRotation GetTransformerB() Returns DynamicRotation transformer B GetTransformerC() Get transformer C. public DynamicRotation GetTransformerC() Returns DynamicRotation transformer C GetTransformerX() Get transformer X. public DynamicTranslation GetTransformerX() Returns DynamicTranslation transformer X GetTransformerY() Get transformer Y. public DynamicTranslation GetTransformerY() Returns DynamicTranslation transformer Y GetTransformerZ() Get transformer Z. public DynamicTranslation GetTransformerZ() Returns DynamicTranslation transformer Z GetXyzabcChain() Get IXyzabcChain. public IXyzabcChain GetXyzabcChain() Returns IXyzabcChain IXyzabcChain GetXyzabcMachineTool() public CodeXyzabcMachineTool GetXyzabcMachineTool() Returns CodeXyzabcMachineTool 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. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html": { "href": "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html", @@ -3442,7 +3387,7 @@ "api/Hi.NcMech.Xyzabc.html": { "href": "api/Hi.NcMech.Xyzabc.html", "title": "Namespace Hi.NcMech.Xyzabc | HiAPI-C# 2025", - "summary": "Namespace Hi.NcMech.Xyzabc Classes CodeXyzabcMachineTool For legacy compatible. Use GeneralXyzabcMachineTool instead. CodeXyzabcMachineToolUri Represents a URI-based container for CodeXyzabcMachineTool. GeneralXyzabcMachineTool General implementation of an XYZABC machine tool. Interfaces IGetCodeXyzabcMachineTool Interface of GetXyzabcMachineTool(). IXyzabcMachineTool Interface for XYZABC machine tools that combines chain, display, collision and other functionalities." + "summary": "Namespace Hi.NcMech.Xyzabc Classes CodeXyzabcMachineTool This machine tool class helps very quick test by the code configuration. For general/end-user use, apply GeneralXyzabcMachineTool instead. CodeXyzabcMachineToolUri Represents a URI-based container for CodeXyzabcMachineTool. GeneralXyzabcMachineTool General implementation of an XYZABC machine tool. Interfaces IGetCodeXyzabcMachineTool Interface of GetXyzabcMachineTool(). IXyzabcMachineTool Interface for XYZABC machine tools that combines chain, display, collision and other functionalities." }, "api/Hi.NcMech.html": { "href": "api/Hi.NcMech.html", @@ -3537,7 +3482,7 @@ "api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html", "title": "Class FanucGotoIterationDependency | HiAPI-C# 2025", - "summary": "Class FanucGotoIterationDependency Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Watchdog for Fanuc Custom Macro B GOTO loops. Holds a MaxIterationsPerTarget limit (XML-persisted user config — the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter (CountByTarget — not serialised, cleared at session start by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken)). The dependency is syntax-managed: FanucGotoSyntax reads the limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in Hi.NcParsers.Dependencys.Fanuc rather than Hi.NcParsers.Dependencys.SystemWired because nothing outside the syntax pipeline writes it; Reset() is a plain method call the runner invokes, not a host-wired Func. The counter key is (FileName, TargetN) where FileName is the source-level file path of the block containing the GOTO (the relative path form carried on FilePath — same form used by IndexedFileLine labels). Source-level keying means multiple inline invocations of the same subprogram pool their counts (they ARE the same source-code GOTO), while two different files with their own N100 stay isolated (they ARE different jumps). Default MaxIterationsPerTarget is 1000 — a runaway-loop guard, not a precise iteration budget. Legitimate macro loops (multi-hole drill matrices, calibration sweeps) sit well below this; truly infinite loops hit the limit fast. Projects with batch-style macros that legitimately need higher counts can raise the value in the project XML. public class FanucGotoIterationDependency : INcDependency, IMakeXmlSource Inheritance object FanucGotoIterationDependency Implements INcDependency 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 FanucGotoIterationDependency() Initializes a new instance with the default limit and an empty counter. public FanucGotoIterationDependency() FanucGotoIterationDependency(XElement) Loads MaxIterationsPerTarget from XML produced by MakeXmlSource(string, string, bool); absent element falls back to DefaultMaxIterationsPerTarget. public FanucGotoIterationDependency(XElement src) Parameters src XElement Root element named XName. Fields DefaultMaxIterationsPerTarget Default for MaxIterationsPerTarget. Sized as a runaway-loop guard: legitimate Fanuc macros (drill grids, calibration sweeps) stay well below, while truly unbounded loops hit it fast. public const int DefaultMaxIterationsPerTarget = 1000 Field Value int Properties CountByTarget Per-target hit counter keyed by (FileName, TargetN). Runtime-only; not serialised. Cleared by Reset() on the session-init edge so a brand-preset runner reused across sessions does not leak counts. public Dictionary<(string FileName, int TargetN), int> CountByTarget { get; } Property Value Dictionary<(string FileName, int TargetN), int> MaxIterationsPerTarget Soft cap on consecutive fires of any single GOTO target within one source file (see CountByTarget for the keying). Above this, the consuming syntax should emit a warning and suppress the redirect on the over-limit block; subsequent blocks flow through naturally. public int MaxIterationsPerTarget { get; set; } Property Value int XName XML element name used to register this dependency with XFactory. 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory Reset() Clears CountByTarget; leaves MaxIterationsPerTarget untouched. public void Reset()" + "summary": "Class FanucGotoIterationDependency Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Watchdog for Fanuc Custom Macro B GOTO loops. Holds a MaxIterationsPerTarget limit (XML-persisted user config — the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter (CountByTarget — not serialised, cleared at session start by the ISessionResettable sweep in RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken)). The dependency is syntax-managed: FanucGotoSyntax reads the limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in Hi.NcParsers.Dependencys.Fanuc rather than Hi.NcParsers.Dependencys.SystemWired because nothing outside the syntax pipeline writes it; OnSessionReset() is the session-init hook the runner invokes through ISessionResettable, not a host-wired Func. The counter key is (FileName, TargetN) where FileName is the source-level file path of the block containing the GOTO (the relative path form carried on FilePath — same form used by IndexedFileLine labels). Source-level keying means multiple inline invocations of the same subprogram pool their counts (they ARE the same source-code GOTO), while two different files with their own N100 stay isolated (they ARE different jumps). Default MaxIterationsPerTarget is 1000 — a runaway-loop guard, not a precise iteration budget. Legitimate macro loops (multi-hole drill matrices, calibration sweeps) sit well below this; truly infinite loops hit the limit fast. Projects with batch-style macros that legitimately need higher counts can raise the value in the project XML. public class FanucGotoIterationDependency : INcDependency, IMakeXmlSource, ISessionResettable Inheritance object FanucGotoIterationDependency Implements INcDependency IMakeXmlSource ISessionResettable 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 FanucGotoIterationDependency() Initializes a new instance with the default limit and an empty counter. public FanucGotoIterationDependency() FanucGotoIterationDependency(XElement) Loads MaxIterationsPerTarget from XML produced by MakeXmlSource(string, string, bool); absent element falls back to DefaultMaxIterationsPerTarget. public FanucGotoIterationDependency(XElement src) Parameters src XElement Root element named XName. Fields DefaultMaxIterationsPerTarget Default for MaxIterationsPerTarget. Sized as a runaway-loop guard: legitimate Fanuc macros (drill grids, calibration sweeps) stay well below, while truly unbounded loops hit it fast. public const int DefaultMaxIterationsPerTarget = 1000 Field Value int Properties CountByTarget Per-target hit counter keyed by (FileName, TargetN). Runtime-only; not serialised. Cleared by OnSessionReset() on the session-init edge so a brand-preset runner reused across sessions does not leak counts. public Dictionary<(string FileName, int TargetN), int> CountByTarget { get; } Property Value Dictionary<(string FileName, int TargetN), int> MaxIterationsPerTarget Soft cap on consecutive fires of any single GOTO target within one source file (see CountByTarget for the keying). Above this, the consuming syntax should emit a warning and suppress the redirect on the over-limit block; subsequent blocks flow through naturally. public int MaxIterationsPerTarget { get; set; } Property Value int XName XML element name used to register this dependency with XFactory. 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. OnSessionReset() Clears CountByTarget; leaves MaxIterationsPerTarget untouched. public void OnSessionReset() Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html", @@ -3554,6 +3499,11 @@ "title": "Class FanucToolOffsetVariableLookup | HiAPI-C# 2025", "summary": "Class FanucToolOffsetVariableLookup Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Fanuc-side adapter that exposes a wrapped ToolOffsetTable (resolved at call time from the dependency list) as an IRuntimeVariableLookup following Fanuc Memory C tool offset addressing: #2001+N → effective height of offset N (geometry − wear). The underlying ToolOffsetTable stays brand-neutral — Heidenhain / Siemens can use the same storage with different addressing by registering their own adapter alongside the table. Stateless: holds no reference of its own and resolves the table from the per-call dependencies list, so XML round-trip is trivial (an empty element). Registered on a brand preset's RuntimeVariableLookups, not on NcDependencyList — the wrapper owns no long-lived data, only the Fanuc-style id addressing scheme. The underlying ToolOffsetTable still lives in NcDependencyList as the data dependency. public sealed class FanucToolOffsetVariableLookup : IRuntimeVariableLookup, IMakeXmlSource Inheritance object FanucToolOffsetVariableLookup Implements IRuntimeVariableLookup IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 FanucToolOffsetVariableLookup() Default constructor. public FanucToolOffsetVariableLookup() FanucToolOffsetVariableLookup(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool). Stateless — no fields to deserialise. public FanucToolOffsetVariableLookup(XElement src) Parameters src XElement Fields ToolHeightMax Inclusive upper bound of the Fanuc tool height address range (#2200). public const int ToolHeightMax = 2200 Field Value int ToolHeightMin Inclusive lower bound of the Fanuc tool height address range (#2001). public const int ToolHeightMin = 2001 Field Value int Properties XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Get(string, LazyLinkedListNode, IReadOnlyList) Returns the value of the variable identified by key in the context of node and dependencies, or null if the key is outside this lookup's range or the value is vacant. public double? Get(string key, LazyLinkedListNode node, IReadOnlyList dependencies) Parameters key string node LazyLinkedListNode dependencies IReadOnlyList Returns double? Remarks Routes #2001-#2200 to GetToolHeightOffset_mm(int) on the ToolOffsetTable found in dependencies; other keys return null so the evaluator's lookup chain falls through. 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, + "api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html": { + "href": "api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html", + "title": "Class FanucWhileDoIterationDependency | HiAPI-C# 2025", + "summary": "Class FanucWhileDoIterationDependency Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Watchdog for Fanuc Custom Macro B WHILE/END m bounded loops. Sibling to FanucGotoIterationDependency with the same “soft-cap + runtime counter + session-init ISessionResettable” shape, but kept as a separate dep (rather than sharing the GOTO bucket) so loop and jump iteration limits can be tuned independently and so diagnostic codes do not cross. The counter key is (FileName, LoopId) where FileName is the source-level file path of the WHILE/END pair (the relative path form carried on FilePath). Source-level keying means multiple inline invocations of the same subprogram pool their counts (same source-code loop), while two different files each with their own WHILE DO 1 stay isolated. The consuming syntax (FanucWhileDoSyntax) increments the counter at the END m reverse-jump step — not on the WHILE entry — so a loop that exits on first WHILE evaluation (condition false from the outset) consumes zero iterations. Above MaxIterationsPerLoopId, the END m block emits a warning and suppresses the redirect; subsequent flow falls through past END. Default MaxIterationsPerLoopId is 10000 — higher than the GOTO equivalent (1000) because WHILE/END is the legitimate iteration primitive that NcOpt-generated programs (drill grids, adaptive sweeps) depend on, and 1000 is too tight for those. public class FanucWhileDoIterationDependency : INcDependency, IMakeXmlSource, ISessionResettable Inheritance object FanucWhileDoIterationDependency Implements INcDependency IMakeXmlSource ISessionResettable 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 FanucWhileDoIterationDependency() Initializes a new instance with the default limit and an empty counter. public FanucWhileDoIterationDependency() FanucWhileDoIterationDependency(XElement) Loads MaxIterationsPerLoopId from XML produced by MakeXmlSource(string, string, bool); absent element falls back to DefaultMaxIterationsPerLoopId. public FanucWhileDoIterationDependency(XElement src) Parameters src XElement Root element named XName. Fields DefaultMaxIterationsPerLoopId Default for MaxIterationsPerLoopId. Sized for legitimate macro iteration (NcOpt drill grids, calibration sweeps) while still catching runaway loops in a tractable time. public const int DefaultMaxIterationsPerLoopId = 10000 Field Value int Properties CountByLoop Per-loop hit counter keyed by (FileName, LoopId). Runtime-only; not serialised. Cleared by OnSessionReset() on the session-init edge so a brand-preset runner reused across sessions does not leak counts. public Dictionary<(string FileName, int LoopId), int> CountByLoop { get; } Property Value Dictionary<(string FileName, int TargetN), int> MaxIterationsPerLoopId Soft cap on consecutive END m reverse-jumps for any single (FileName, LoopId) pair. Above this the END m block emits FanucWhileDo–IterationLimitExceeded and suppresses the redirect; flow falls through past END. public int MaxIterationsPerLoopId { get; set; } Property Value int XName XML element name used to register this dependency with XFactory. 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. OnSessionReset() Clears CountByLoop; leaves MaxIterationsPerLoopId untouched. public void OnSessionReset() Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, "api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html", "title": "Class RetainedCommonVariableTable | HiAPI-C# 2025", @@ -3562,7 +3512,7 @@ "api/Hi.NcParsers.Dependencys.Fanuc.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.html", "title": "Namespace Hi.NcParsers.Dependencys.Fanuc | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.Dependencys.Fanuc Classes FanucGotoIterationDependency Watchdog for Fanuc Custom Macro B GOTO loops. Holds a MaxIterationsPerTarget limit (XML-persisted user config — the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter (CountByTarget — not serialised, cleared at session start by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken)). The dependency is syntax-managed: FanucGotoSyntax reads the limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in Hi.NcParsers.Dependencys.Fanuc rather than Hi.NcParsers.Dependencys.SystemWired because nothing outside the syntax pipeline writes it; Reset() is a plain method call the runner invokes, not a host-wired Func. The counter key is (FileName, TargetN) where FileName is the source-level file path of the block containing the GOTO (the relative path form carried on FilePath — same form used by IndexedFileLine labels). Source-level keying means multiple inline invocations of the same subprogram pool their counts (they ARE the same source-code GOTO), while two different files with their own N100 stay isolated (they ARE different jumps). Default MaxIterationsPerTarget is 1000 — a runaway-loop guard, not a precise iteration budget. Legitimate macro loops (multi-hole drill matrices, calibration sweeps) sit well below this; truly infinite loops hit the limit fast. Projects with batch-style macros that legitimately need higher counts can raise the value in the project XML. FanucParameterTable Fanuc controller parameter table. Stores system parameters (single value) and axis parameters (per-axis value) following real Fanuc parameter numbering. FanucPositionVariableLookup Fanuc-style position system variables read from the previous block's runtime-state JSON sections: #5001-#5003Block-end position X/Y/Z (workpiece) → previous block's ProgramXyz. #5021-#5023Current machine position X/Y/Z → previous block's MachineCoordinateState. #5041-#5043Current absolute position X/Y/Z → previous block's ProgramXyz. Stateless. Configured on RuntimeVariableLookups rather than NcDependencyList because the read needs the block node for Previous access — there is no long-lived dependency object that owns this data. FanucToolOffsetVariableLookup Fanuc-side adapter that exposes a wrapped ToolOffsetTable (resolved at call time from the dependency list) as an IRuntimeVariableLookup following Fanuc Memory C tool offset addressing: #2001+N → effective height of offset N (geometry − wear). The underlying ToolOffsetTable stays brand-neutral — Heidenhain / Siemens can use the same storage with different addressing by registering their own adapter alongside the table. Stateless: holds no reference of its own and resolves the table from the per-call dependencies list, so XML round-trip is trivial (an empty element). Registered on a brand preset's RuntimeVariableLookups, not on NcDependencyList — the wrapper owns no long-lived data, only the Fanuc-style id addressing scheme. The underlying ToolOffsetTable still lives in NcDependencyList as the data dependency. RetainedCommonVariableTable Fanuc-style ISO controller common variable table for the retained range #500-#999. These variables survive a power cycle (in real hardware they live in NV-RAM) and are serialised into the project file. Excluded by design: Local #1-#33Call-frame scoped (Fanuc local variables); lives in the SyntaxPiece JSON dataflow, not here. Non-retained common #100-#499Cleared by program-end / power reset; lives in the SyntaxPiece JSON dataflow as well, not in this table. System #1000+Read-only or computed from runtime state; resolved by dedicated reading syntaxes against other dependencies (e.g. FanucParameterTable, tool offset / WCS tables). Vacant (Fanuc ) is represented by null: either the dictionary has no entry for the key, or the entry maps to null. Both are treated identically by GetVariable(int). Naming rationale: Fanuc official documentation calls #500-#999 \"retained common variables\" (and #100-#499 \"non-retained common variables\"). The umbrella term \"macro variable\" was avoided because it conflicts with Custom Macro B's call-frame concept (G65/G66 push a frame containing the local #1-#33); using RetainedCommonVariableTable reserves \"macro\" for the call-frame topic. Enums CutterCompensationType Fanuc #5003: Cutter compensation startup/cancellation type." + "summary": "Namespace Hi.NcParsers.Dependencys.Fanuc Classes FanucGotoIterationDependency Watchdog for Fanuc Custom Macro B GOTO loops. Holds a MaxIterationsPerTarget limit (XML-persisted user config — the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter (CountByTarget — not serialised, cleared at session start by the ISessionResettable sweep in RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken)). The dependency is syntax-managed: FanucGotoSyntax reads the limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in Hi.NcParsers.Dependencys.Fanuc rather than Hi.NcParsers.Dependencys.SystemWired because nothing outside the syntax pipeline writes it; OnSessionReset() is the session-init hook the runner invokes through ISessionResettable, not a host-wired Func. The counter key is (FileName, TargetN) where FileName is the source-level file path of the block containing the GOTO (the relative path form carried on FilePath — same form used by IndexedFileLine labels). Source-level keying means multiple inline invocations of the same subprogram pool their counts (they ARE the same source-code GOTO), while two different files with their own N100 stay isolated (they ARE different jumps). Default MaxIterationsPerTarget is 1000 — a runaway-loop guard, not a precise iteration budget. Legitimate macro loops (multi-hole drill matrices, calibration sweeps) sit well below this; truly infinite loops hit the limit fast. Projects with batch-style macros that legitimately need higher counts can raise the value in the project XML. FanucParameterTable Fanuc controller parameter table. Stores system parameters (single value) and axis parameters (per-axis value) following real Fanuc parameter numbering. FanucPositionVariableLookup Fanuc-style position system variables read from the previous block's runtime-state JSON sections: #5001-#5003Block-end position X/Y/Z (workpiece) → previous block's ProgramXyz. #5021-#5023Current machine position X/Y/Z → previous block's MachineCoordinateState. #5041-#5043Current absolute position X/Y/Z → previous block's ProgramXyz. Stateless. Configured on RuntimeVariableLookups rather than NcDependencyList because the read needs the block node for Previous access — there is no long-lived dependency object that owns this data. FanucToolOffsetVariableLookup Fanuc-side adapter that exposes a wrapped ToolOffsetTable (resolved at call time from the dependency list) as an IRuntimeVariableLookup following Fanuc Memory C tool offset addressing: #2001+N → effective height of offset N (geometry − wear). The underlying ToolOffsetTable stays brand-neutral — Heidenhain / Siemens can use the same storage with different addressing by registering their own adapter alongside the table. Stateless: holds no reference of its own and resolves the table from the per-call dependencies list, so XML round-trip is trivial (an empty element). Registered on a brand preset's RuntimeVariableLookups, not on NcDependencyList — the wrapper owns no long-lived data, only the Fanuc-style id addressing scheme. The underlying ToolOffsetTable still lives in NcDependencyList as the data dependency. FanucWhileDoIterationDependency Watchdog for Fanuc Custom Macro B WHILE/END m bounded loops. Sibling to FanucGotoIterationDependency with the same “soft-cap + runtime counter + session-init ISessionResettable” shape, but kept as a separate dep (rather than sharing the GOTO bucket) so loop and jump iteration limits can be tuned independently and so diagnostic codes do not cross. The counter key is (FileName, LoopId) where FileName is the source-level file path of the WHILE/END pair (the relative path form carried on FilePath). Source-level keying means multiple inline invocations of the same subprogram pool their counts (same source-code loop), while two different files each with their own WHILE DO 1 stay isolated. The consuming syntax (FanucWhileDoSyntax) increments the counter at the END m reverse-jump step — not on the WHILE entry — so a loop that exits on first WHILE evaluation (condition false from the outset) consumes zero iterations. Above MaxIterationsPerLoopId, the END m block emits a warning and suppresses the redirect; subsequent flow falls through past END. Default MaxIterationsPerLoopId is 10000 — higher than the GOTO equivalent (1000) because WHILE/END is the legitimate iteration primitive that NcOpt-generated programs (drill grids, adaptive sweeps) depend on, and 1000 is too tight for those. RetainedCommonVariableTable Fanuc-style ISO controller common variable table for the retained range #500-#999. These variables survive a power cycle (in real hardware they live in NV-RAM) and are serialised into the project file. Excluded by design: Local #1-#33Call-frame scoped (Fanuc local variables); lives in the SyntaxPiece JSON dataflow, not here. Non-retained common #100-#499Cleared by program-end / power reset; lives in the SyntaxPiece JSON dataflow as well, not in this table. System #1000+Read-only or computed from runtime state; resolved by dedicated reading syntaxes against other dependencies (e.g. FanucParameterTable, tool offset / WCS tables). Vacant (Fanuc ) is represented by null: either the dictionary has no entry for the key, or the entry maps to null. Both are treated identically by GetVariable(int). Naming rationale: Fanuc official documentation calls #500-#999 \"retained common variables\" (and #100-#499 \"non-retained common variables\"). The umbrella term \"macro variable\" was avoided because it conflicts with Custom Macro B's call-frame concept (G65/G66 push a frame containing the local #1-#33); using RetainedCommonVariableTable reserves \"macro\" for the call-frame topic. Enums CutterCompensationType Fanuc #5003: Cutter compensation startup/cancellation type." }, "api/Hi.NcParsers.Dependencys.Generic.FallbackConfig.html": { "href": "api/Hi.NcParsers.Dependencys.Generic.FallbackConfig.html", @@ -3712,7 +3662,12 @@ "api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html", "title": "Class FileIndexCounterDependency | HiAPI-C# 2025", - "summary": "Class FileIndexCounterDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Per-session monotonically-increasing file index allocator. Holds the counter as a private field; Allocate() returns the next unused value and increments. Reset() rewinds to 0 — the owning RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) calls Reset() on the same edge that initializes a fresh NcRunnerSessionState, so a controller power-reset clears both the syntax-piece pipeline and this counter in lock-step. Two consumers share one allocator: RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) allocates one index per top-level NC file that streams through the runner. SubProgramCallSyntax allocates a fresh index for each inlined subprogram invocation, including each L repetition — distinct indices ensure (FileIndex, LineIndex) pairs stay unique across overlapping subprogram line ranges. Holding the counter on this dependency rather than on NcRunnerSessionState avoids a duplicate source-of-truth: the dep is the single seam through which syntaxes reach the counter, and there is no third reader that would benefit from session-state visibility. public class FileIndexCounterDependency : INcDependency, IMakeXmlSource Inheritance object FileIndexCounterDependency Implements INcDependency 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 FileIndexCounterDependency() Initializes a new instance with the counter at 0. public FileIndexCounterDependency() Properties XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods Allocate() Returns the next unused file index and post-increments the counter. First call after construction or Reset() returns 0. public int Allocate() Returns int MakeXmlSource(string, string, bool) Runtime-only dependency — the live counter value is per-session and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip with the counter implicitly reset to 0. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory Reset() Rewinds the counter to 0. Called by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) on the same edge that initializes a fresh session pipeline so a single brand-preset runner can be reused across sessions without leaking file indices from the previous session. public void Reset()" + "summary": "Class FileIndexCounterDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Per-session monotonically-increasing file index allocator. Holds the counter as a private field; Allocate() returns the next unused value and increments. OnSessionReset() rewinds to 0 — the owning RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) invokes it via the ISessionResettable sweep on the same edge that initializes a fresh NcRunnerSessionState, so a controller power-reset clears both the syntax-piece pipeline and this counter in lock-step. Two consumers share one allocator: RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) allocates one index per top-level NC file that streams through the runner. SubProgramCallSyntax allocates a fresh index for each inlined subprogram invocation, including each L repetition — distinct indices ensure (FileIndex, LineIndex) pairs stay unique across overlapping subprogram line ranges. Holding the counter on this dependency rather than on NcRunnerSessionState avoids a duplicate source-of-truth: the dep is the single seam through which syntaxes reach the counter, and there is no third reader that would benefit from session-state visibility. public class FileIndexCounterDependency : INcDependency, IMakeXmlSource, ISessionResettable Inheritance object FileIndexCounterDependency Implements INcDependency IMakeXmlSource ISessionResettable 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 FileIndexCounterDependency() Initializes a new instance with the counter at 0. public FileIndexCounterDependency() Properties XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods Allocate() Returns the next unused file index and post-increments the counter. First call after construction or OnSessionReset() returns 0. public int Allocate() Returns int MakeXmlSource(string, string, bool) Runtime-only dependency — the live counter value is per-session and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip with the counter implicitly reset to 0. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement OnSessionReset() Rewinds the counter to 0. Called by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) via the ISessionResettable sweep on the same edge that initializes a fresh session pipeline so a single brand-preset runner can be reused across sessions without leaking file indices from the previous session. public void OnSessionReset() Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, + "api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html": { + "href": "api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html", + "title": "Class MachiningServiceDependency | HiAPI-C# 2025", + "summary": "Class MachiningServiceDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Exposes the full IMachiningService surface to NC pipeline components — currently provided for client-authored syntaxes / semantics that need broad host access (machining equipment, session, tool house, time mapping, …). The built-in CSV pipeline does not consume this dependency; it uses the narrower StepPropertyAccessDictionaryDependency instead. public class MachiningServiceDependency : INcDependency, IMakeXmlSource Inheritance object MachiningServiceDependency Implements INcDependency 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 MachiningServiceDependency() Initializes a new instance with no ServiceProvider; the host wires one before queries. public MachiningServiceDependency() MachiningServiceDependency(Func) Initializes a new instance with the given ServiceProvider. public MachiningServiceDependency(Func provider) Parameters provider Func Delegate that resolves the live service at lookup time. Properties Service The live machining service, or null when ServiceProvider is unset or returns null. public IMachiningService Service { get; } Property Value IMachiningService ServiceProvider Runtime provider for the machining service. Null provider or null return means the host is not wired; consumers must null-check. public Func ServiceProvider { get; set; } Property Value Func XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Runtime-only dependency — the provider is wired per host and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html", @@ -3729,6 +3684,11 @@ "title": "Class SegmenterDependency | HiAPI-C# 2025", "summary": "Class SegmenterDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Exposes the active ISegmenter to syntaxes that need to re-segment auxiliary NC text mid-pipeline (e.g., SubProgramCallSyntax reading an O subprogram file and re-using the host runner's segmenter so the inlined blocks are split with the same rules). The actual segmenter is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider; RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) wires the provider to its own Segmenter at the start of each session run, so this dependency can sit in NcDependencyList without participating in XML serialization (see MakeXmlSource(string, string, bool)). public class SegmenterDependency : INcDependency, IMakeXmlSource Inheritance object SegmenterDependency Implements INcDependency 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 SegmenterDependency() Initializes a new instance with no Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider; the host runner assigns one before queries. public SegmenterDependency() SegmenterDependency(Func) Initializes a new instance with the given Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider. public SegmenterDependency(Func provider) Parameters provider Func Delegate that resolves the live ISegmenter at lookup time. Properties Segmenter The live segmenter, or null when Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider is unset or returns null. public ISegmenter Segmenter { get; } Property Value ISegmenter XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Runtime-only dependency — the Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider is wired per session and is not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, + "api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html": { + "href": "api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html", + "title": "Class StepPropertyAccessDictionaryDependency | HiAPI-C# 2025", + "summary": "Class StepPropertyAccessDictionaryDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Exposes the host's step-variable registry to NC pipeline components (today: CsvRowSyntax) as a narrow IStepPropertyAccessHost surface. The provider is wired by the host (e.g. LocalProjectService) so the dependency does not carry strong references to host types; this lets the runner be created before the host is fully constructed and reused across project loads. A sibling MachiningServiceDependency exposes the broader IMachiningService surface to client-authored syntaxes. The two dependencies are independent — production hosts typically wire both providers to the same backing object, but a test fixture can supply just this narrow one. public class StepPropertyAccessDictionaryDependency : INcDependency, IMakeXmlSource Inheritance object StepPropertyAccessDictionaryDependency Implements INcDependency 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 StepPropertyAccessDictionaryDependency() Initializes a new instance with no HostProvider; the host wires one before queries. public StepPropertyAccessDictionaryDependency() StepPropertyAccessDictionaryDependency(Func) Initializes a new instance with the given HostProvider. public StepPropertyAccessDictionaryDependency(Func provider) Parameters provider Func Delegate that resolves the live host at lookup time. Properties Host The live host, or null when HostProvider is unset or returns null. public IStepPropertyAccessHost Host { get; } Property Value IStepPropertyAccessHost HostProvider Runtime provider for the host. Null provider or null return means the host is not wired (e.g. the dependency sits in a runner that runs in a unit-test fixture without a real project service). Consumers must null-check before use. public Func HostProvider { get; set; } Property Value Func XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Runtime-only dependency — the provider is wired per host and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, "api/Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html", "title": "Class SyntaxPieceLayerDependency | HiAPI-C# 2025", @@ -3737,7 +3697,7 @@ "api/Hi.NcParsers.Dependencys.SystemWired.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.html", "title": "Namespace Hi.NcParsers.Dependencys.SystemWired | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.Dependencys.SystemWired Classes FileIndexCounterDependency Per-session monotonically-increasing file index allocator. Holds the counter as a private field; Allocate() returns the next unused value and increments. Reset() rewinds to 0 — the owning RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) calls Reset() on the same edge that initializes a fresh NcRunnerSessionState, so a controller power-reset clears both the syntax-piece pipeline and this counter in lock-step. Two consumers share one allocator: RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) allocates one index per top-level NC file that streams through the runner. SubProgramCallSyntax allocates a fresh index for each inlined subprogram invocation, including each L repetition — distinct indices ensure (FileIndex, LineIndex) pairs stay unique across overlapping subprogram line ranges. Holding the counter on this dependency rather than on NcRunnerSessionState avoids a duplicate source-of-truth: the dep is the single seam through which syntaxes reach the counter, and there is no third reader that would benefit from session-state visibility. NcKinematicsDependency Provides IMachineKinematics as an INcDependency for SoftNcRunner.NcDependencyList. The actual kinematics instance is resolved at runtime via KinematicsProvider. This supports scenarios where the machine tool is loaded or changed after the runner is configured (e.g., XML config loaded first, kinematics assigned later). Consumed by G53p1RotaryPositionSyntax, IsoG68p2TiltSyntax, and McLinearMotionSemantic via dependencyList.OfType(). ProjectFolderDependency Exposes the absolute base directory of the project that owns this runner. Resolved at runtime via BaseDirectoryProvider; the host (e.g. LocalProjectService, a test harness) wires the provider to its known project root after the runner is constructed, because SoftNcRunner itself does not retain the baseDirectory argument it sees during XML deserialization. Consumed by syntaxes that need to resolve a project-relative path to an absolute file system location — e.g. SubProgramCallSyntax for O subprogram lookup under InternalFolder. Reading FilePath is not a substitute: that path is relative and resolving it via Path.GetFullPath would anchor against the process working directory, not the project root. SegmenterDependency Exposes the active ISegmenter to syntaxes that need to re-segment auxiliary NC text mid-pipeline (e.g., SubProgramCallSyntax reading an O subprogram file and re-using the host runner's segmenter so the inlined blocks are split with the same rules). The actual segmenter is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider; RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) wires the provider to its own Segmenter at the start of each session run, so this dependency can sit in NcDependencyList without participating in XML serialization (see MakeXmlSource(string, string, bool)). SyntaxPieceLayerDependency Exposes the per-session SyntaxPiece layer chain (one LazyLinkedList per pipeline stage, owned by NcRunnerSessionState) to syntaxes that need to inject additional source pieces mid-pipeline — most notably SubProgramCallSyntax, which inlines a subprogram file's blocks back into layers[0] immediately after the M98 host node so the entire syntax pipeline naturally re-processes them. The actual layer list is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.LayersProvider; RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) wires the provider to the active session's SyntaxPieceLayers at the start of each call. Index 0 is the source layer (init seed + sentence-derived pieces); indices 1..N are post-NcSyntax layers — same convention as NcRunnerSessionState." + "summary": "Namespace Hi.NcParsers.Dependencys.SystemWired Classes FileIndexCounterDependency Per-session monotonically-increasing file index allocator. Holds the counter as a private field; Allocate() returns the next unused value and increments. OnSessionReset() rewinds to 0 — the owning RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) invokes it via the ISessionResettable sweep on the same edge that initializes a fresh NcRunnerSessionState, so a controller power-reset clears both the syntax-piece pipeline and this counter in lock-step. Two consumers share one allocator: RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) allocates one index per top-level NC file that streams through the runner. SubProgramCallSyntax allocates a fresh index for each inlined subprogram invocation, including each L repetition — distinct indices ensure (FileIndex, LineIndex) pairs stay unique across overlapping subprogram line ranges. Holding the counter on this dependency rather than on NcRunnerSessionState avoids a duplicate source-of-truth: the dep is the single seam through which syntaxes reach the counter, and there is no third reader that would benefit from session-state visibility. MachiningServiceDependency Exposes the full IMachiningService surface to NC pipeline components — currently provided for client-authored syntaxes / semantics that need broad host access (machining equipment, session, tool house, time mapping, …). The built-in CSV pipeline does not consume this dependency; it uses the narrower StepPropertyAccessDictionaryDependency instead. NcKinematicsDependency Provides IMachineKinematics as an INcDependency for SoftNcRunner.NcDependencyList. The actual kinematics instance is resolved at runtime via KinematicsProvider. This supports scenarios where the machine tool is loaded or changed after the runner is configured (e.g., XML config loaded first, kinematics assigned later). Consumed by G53p1RotaryPositionSyntax, IsoG68p2TiltSyntax, and McLinearMotionSemantic via dependencyList.OfType(). ProjectFolderDependency Exposes the absolute base directory of the project that owns this runner. Resolved at runtime via BaseDirectoryProvider; the host (e.g. LocalProjectService, a test harness) wires the provider to its known project root after the runner is constructed, because SoftNcRunner itself does not retain the baseDirectory argument it sees during XML deserialization. Consumed by syntaxes that need to resolve a project-relative path to an absolute file system location — e.g. SubProgramCallSyntax for O subprogram lookup under InternalFolder. Reading FilePath is not a substitute: that path is relative and resolving it via Path.GetFullPath would anchor against the process working directory, not the project root. SegmenterDependency Exposes the active ISegmenter to syntaxes that need to re-segment auxiliary NC text mid-pipeline (e.g., SubProgramCallSyntax reading an O subprogram file and re-using the host runner's segmenter so the inlined blocks are split with the same rules). The actual segmenter is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider; RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) wires the provider to its own Segmenter at the start of each session run, so this dependency can sit in NcDependencyList without participating in XML serialization (see MakeXmlSource(string, string, bool)). StepPropertyAccessDictionaryDependency Exposes the host's step-variable registry to NC pipeline components (today: CsvRowSyntax) as a narrow IStepPropertyAccessHost surface. The provider is wired by the host (e.g. LocalProjectService) so the dependency does not carry strong references to host types; this lets the runner be created before the host is fully constructed and reused across project loads. A sibling MachiningServiceDependency exposes the broader IMachiningService surface to client-authored syntaxes. The two dependencies are independent — production hosts typically wire both providers to the same backing object, but a test fixture can supply just this narrow one. SyntaxPieceLayerDependency Exposes the per-session SyntaxPiece layer chain (one LazyLinkedList per pipeline stage, owned by NcRunnerSessionState) to syntaxes that need to inject additional source pieces mid-pipeline — most notably SubProgramCallSyntax, which inlines a subprogram file's blocks back into layers[0] immediately after the M98 host node so the entire syntax pipeline naturally re-processes them. The actual layer list is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.LayersProvider; RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) wires the provider to the active session's SyntaxPieceLayers at the start of each call. Index 0 is the source layer (init seed + sentence-derived pieces); indices 1..N are post-NcSyntax layers — same convention as NcRunnerSessionState." }, "api/Hi.NcParsers.Dependencys.html": { "href": "api/Hi.NcParsers.Dependencys.html", @@ -3834,6 +3794,11 @@ "title": "Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Classes LocalVariableLookup Reads Fanuc-style local macro variables (#1-#33) from Vars.Local on the current SyntaxPiece JSON, falling back to the immediately previous block when they share the same MacroFrame id. Self-gates the id range so the evaluator's RuntimeVariableLookups chain can fall through to the next lookup for out-of-range keys. Two-step lookup (mirrors VolatileVariableLookup): the current block sees writes that FanucMacroCallSyntax stamped at inline time (the call-line argument bindings) and writes that FanucLocalVariableReadingSyntax applied on this block before the lookup runs; the previous block (frame-checked) supplies body-internal writes from the prior block in the same macro frame. Looking past the previous block is unnecessary because the reader carries forward block-by-block within a frame. Frame isolation via MacroFrame: a previous block whose frame id differs from the current block's is skipped — a macro body's body-internal locals are invisible to the caller after return, and the caller's main-frame locals are invisible inside the macro. M98/M198 subprogram inlining (SubProgramCallSyntax) deliberately does not stamp MacroFrame on its inlined blocks, so the callee inherits the caller's frame and sees the caller's locals — matching real Fanuc M98 semantics. Stateless and dependency-free — instances are interchangeable. NcBinaryExpr Binary operation on two operands. Covers arithmetic (+ - * / / MOD), comparison (EQ NE GT GE LT LE, yielding 1.0 / 0.0), and logical bitwise (AND OR XOR, operands truncated to long). NcExpr AST root for a Fanuc Custom Macro B value expression. Concrete leaves and combinators sit alongside NcExpressionParser; walking is the job of NcExpressionEvaluator. NcExpressionEvaluator Walks an NcExpr AST and produces an EvalResult. Resolves #nnn via an IVariableLookup; built-in function names are matched case-insensitively against a fixed table. Phase-1 supports: SIN COS TAN ASIN ACOS ATAN SQRT ABS ROUND FIX FUP LN EXP POW. Trigonometric arguments and results are in degrees, matching Fanuc Custom Macro B convention. Unknown function names surface as UnsupportedFunctionCode; arity mismatches as ArgumentMismatchCode; division / MOD by zero and domain errors (e.g. SQRT[-1]) as MathErrorCode; vacant operands as VacantErrorCode. Numeric domain & type conventions. All values are IEEE 754 double — there is no separate bool / int type at runtime. Comparison ops (EQ NE GT GE LT LE) yield 1.0 (true) or 0.0 (false), using strict double equality / ordering (NaN compares as IEEE specifies — NaN EQ NaN is 0.0). Logical ops (AND OR XOR) truncate each operand to a 64-bit signed integer (Truncate(double) then cast to long) before applying the bitwise operation; non-finite or out-of-range operands surface MathErrorCode rather than silently wrapping. Truthiness at caller-side IF / WHILE gates is value != 0 — any non-zero value (bit, float, comparator result) is true. NcExpressionParser Recursive-descent parser for Fanuc Custom Macro B value expressions. Pure: takes a string, produces an NcExpr AST. Performs no variable lookup and no evaluation. Grammar (lowest precedence at top): expr := or-expr or-expr := and-expr (('OR' | 'XOR') and-expr)* and-expr := cmp-expr ('AND' cmp-expr)* cmp-expr := add-expr (('EQ' | 'NE' | 'GT' | 'GE' | 'LT' | 'LE') add-expr)* add-expr := term (('+' | '-') term)* term := factor (('*' | '/' | 'MOD') factor)* factor := ('+' | '-')? primary primary := number | '#' integer | '#' '[' expr ']' | '[' expr ']' | ident '[' arglist ']' ('/' '[' expr ']')? arglist := expr (',' expr)* Function names and keyword operators (MOD, EQ NE GT GE LT LE, AND OR XOR) are case-insensitive (SIN = sin, EQ = eq); each keyword requires a non-identifier character on its right boundary so EQ1 is not the EQ operator followed by 1. Whitespace is skipped between tokens. The '/' '[' expr ']' tail captures the dual-bracket form Fanuc uses for ATAN[a]/[b]; non-ATAN callers that happen to use it produce a function with an extra arg, which the evaluator rejects with an arity error. Operator precedence intentionally puts boolean / logical layers below arithmetic so #1 + 1 GT 0 parses as (#1 + 1) GT 0 and #1 GT 0 AND #2 LT 10 parses as (#1 GT 0) AND (#2 LT 10), matching the Fanuc Custom Macro B spec for IF [..] GOTO / IF [..] THEN / WHILE [..] DO conditions. NcFunctionExpr Built-in function call like SIN[x], SQRT[x], ATAN[a]/[b]. NcIndirectVariableExpr Indirect variable reference #[expr]. The inner expression is evaluated and truncated toward zero to obtain an integer; the lookup key is then Prefix concatenated with that integer (e.g. Prefix=\"#\", computed 124 → \"#124\"). NcLiteralExpr Numeric literal (e.g. 1.5, 15., .5, 1e-3). NcUnaryExpr Unary + or - applied to an operand. NcVariableExpr Direct variable reference; Key is the raw source token (e.g. \"#124\") passed verbatim to Get(string). VolatileVariableLookup Reads Fanuc-style non-retained common variables (#100-#499) from Vars.Volatile. Self-gates the id range so the evaluator's RuntimeVariableLookups chain can fall through to the next lookup for out-of-range keys. Single-step lookup: VolatileVariableReadingSyntax already dict-merges every block's Vars.Volatile into the next block, so the entry — if it exists — must be on the current block (when this lookup runs after the reader) or on the immediately previous block (when this lookup runs before the reader on the same block, which is the Fanuc preset's order — evaluator first, reader second). No arbitrary walk-back: such a walk would be defensive overkill given the reader's carry guarantee. Stateless and dependency-free — instances are interchangeable. Reads stay decoupled from the reader (read side here; write side in the reader). Structs EvalResult Outcome of evaluating an NcExpr. Either a successful numeric value, or a failure with an error code matching the diagnostic catalogue used by reading / evaluator syntaxes. Interfaces IRuntimeVariableLookup Stateless variable lookup that needs per-block runtime context — the current SyntaxPiece node (for Previous traceback into runtime-state sections like MachineCoordinateState / ProgramXyz) and the dependency list (so the lookup can read from sibling dependencies without holding a static reference). Distinguished from IVariableLookup: that one is for long-lived dependencies that already hold their own data (parameter tables, tool-offset wrappers, retained-variable tables) and need no block context. IRuntimeVariableLookup is for context-sensitive resolutions configured declaratively on RuntimeVariableLookups. Implementations should be brand-specific (e.g. Fanuc #5001-#5043 position reads) and return null for keys outside their range so the evaluator's chain can fall through to the next lookup. Implementations are XML-serialised as part of VariableEvaluatorSyntax's round-trip: each impl exposes a static XName, registers itself with Generators, and implements MakeXmlSource(string, string, bool). Since impls are stateless, the typical body is just an empty element carrying the type name; brand identity is restored by XFactory dispatch. IVariableLookup Resolves a Custom Macro B variable reference to its current numeric value, or null for vacant (Fanuc ) and out-of-scope alike. The key is the raw source token — Fanuc \"#124\", Heidenhain \"Q1\", Siemens \"R1\" — so the interface itself is brand-agnostic. Implementations are typically narrow (one per id range / per brand prefix) and parse the prefix locally; chain them at the call site by trying each in priority order until one returns a non-null value. A returned null is treated by NcExpressionEvaluator as vacant and surfaces as a Variable--Vacant failure when the value is consumed in arithmetic context. Enums NcBinaryOp Binary operators allowed in Fanuc Custom Macro B value expressions. NcUnaryOp Unary operators allowed in Fanuc Custom Macro B value expressions." }, + "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html": { + "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html", + "title": "Class FanucConditionReader | HiAPI-C# 2025", + "summary": "Class FanucConditionReader Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Shared polymorphic reader for Fanuc Custom Macro B conditional gate expressions (IF [...] GOTO, IF [...] THEN, WHILE [...] DO m). The condition node is read post-evaluation — VariableEvaluatorSyntax's pass-2 tree walk has already substituted the original expression string with a numeric JsonValue when evaluation succeeded; this helper maps that node to a tri-state truthy outcome plus a display form for diagnostics. Three states, mapping directly to the ConditionEvaluated: true | false | null stamp shape used by all three consumers (see FanucGotoSyntax, FanucIfThenSyntax, and the WHILE-loop syntax): Truthy = true — node is a finite non-zero numeric; gate fires. Truthy = false — node is a finite numeric equal to zero; gate falls through silently. Truthy = null — node is null, still a string (evaluator failed), or non-finite double (NaN / ±∞); gate falls through and the caller emits its own --ConditionNotEvaluated warning. The Display form is the human-readable expression text for diagnostic messages. For resolved numerics it is the value formatted via InvariantCulture; for unresolved strings it is the original expression text. Diagnostics build their own message text — the helper just provides the source string so the caller can compose \"IF [] GOTO ...\" etc. Callers typically DeepClone() the original node before passing in here, then again before stamping back, so removing the parsing section and writing the host-level stamp can happen in any order without dangling references. public static class FanucConditionReader Inheritance object FanucConditionReader Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ReadCondition(JsonNode) Maps a post-evaluation condition JsonNode to a display string + tri-state truthy outcome. See class XmlDoc for the three states' definitions. public static (string Display, bool? Truthy) ReadCondition(JsonNode node) Parameters node JsonNode Returns (string Display, bool? Truthy)" + }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html", "title": "Class FanucGotoSyntax | HiAPI-C# 2025", @@ -3842,7 +3807,7 @@ "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html", "title": "Class FanucIfThenSyntax | HiAPI-C# 2025", - "summary": "Class FanucIfThenSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Resolves Fanuc Custom Macro B IF [] THEN single-block conditionals. Triggered by Parsing.FanucIfThen (written by FanucIfThenParsingSyntax); reads the now-resolved Condition node, decides whether to fire, and on fire lifts the parsing-stage PendingAssignments sub-object into the canonical Parsing.Assignments bucket so the brand-specific reader syntaxes downstream route each entry to its store the same way they would handle an unconditional #nnn = on a normal block. Unlike FanucGotoSyntax there is no source splice, no label scan, no iteration watchdog — the spec restricts the body to the current block. The host block is preserved either way (the stamped FanucIfThen section on the host's top-level JSON keeps the IF-THEN call site visible to cache dumps and diagnostics, with Applied flipped true only on a successful fire). Pipeline placement: in the Evaluation bundle after VariableEvaluatorSyntax (so the Condition expression has been substituted in place by pass-2 tree walk, and each PendingAssignments RHS string has been evaluated to a numeric JsonValue) and before the reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableReadingSyntax, FanucLocalVariableReadingSyntax, FanucSystemControlVariableSyntax) — that ordering lets the lifted entries reach the readers as if they had been written by TagAssignmentSyntax on a normal block. Three condition outcomes mirror the ReadCondition(JsonNode) shape: Truthy non-zero → lift assignments, stamp Applied=true. Truthy zero → fall through silently, Applied=false. Truthy null (evaluator failed, condition still a string or non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not lift, Applied=false. A truthy condition with no PendingAssignments (body did not parse as one or more assignments — e.g. a G-code body, currently unsupported) warns FanucIfThen--UnsupportedBody and falls through. public class FanucIfThenSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucIfThenSyntax Implements ISituNcSyntax INcSyntax 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 FanucIfThenSyntax() Parameterless instance (no XML state). public FanucIfThenSyntax() FanucIfThenSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public FanucIfThenSyntax(XElement src) Parameters src XElement Root element named XName. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class FanucIfThenSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Resolves Fanuc Custom Macro B IF [] THEN single-block conditionals. Triggered by Parsing.FanucIfThen (written by FanucIfThenParsingSyntax); reads the now-resolved Condition node, decides whether to fire, and on fire lifts the parsing-stage PendingAssignments sub-object into the canonical Parsing.Assignments bucket so the brand-specific reader syntaxes downstream route each entry to its store the same way they would handle an unconditional #nnn = on a normal block. Unlike FanucGotoSyntax there is no source splice, no label scan, no iteration watchdog — the spec restricts the body to the current block. The host block is preserved either way (the stamped FanucIfThen section on the host's top-level JSON keeps the IF-THEN call site visible to cache dumps and diagnostics, with Applied flipped true only on a successful fire). Pipeline placement: in the Evaluation bundle after VariableEvaluatorSyntax (so the Condition expression has been substituted in place by pass-2 tree walk, and each PendingAssignments RHS string has been evaluated to a numeric JsonValue) and before the reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableReadingSyntax, FanucLocalVariableReadingSyntax, FanucSystemControlVariableSyntax) — that ordering lets the lifted entries reach the readers as if they had been written by TagAssignmentSyntax on a normal block. Three condition outcomes mirror the FanucGotoSyntax.ReadCondition shape: Truthy non-zero → lift assignments, stamp Applied=true. Truthy zero → fall through silently, Applied=false. Truthy null (evaluator failed, condition still a string or non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not lift, Applied=false. A truthy condition with no PendingAssignments (body did not parse as one or more assignments — e.g. a G-code body, currently unsupported) warns FanucIfThen--UnsupportedBody and falls through. public class FanucIfThenSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucIfThenSyntax Implements ISituNcSyntax INcSyntax 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 FanucIfThenSyntax() Parameterless instance (no XML state). public FanucIfThenSyntax() FanucIfThenSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public FanucIfThenSyntax(XElement src) Parameters src XElement Root element named XName. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html", @@ -3874,15 +3839,20 @@ "title": "Class FanucSystemControlVariableSyntax | HiAPI-C# 2025", "summary": "Class FanucSystemControlVariableSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Consumes Fanuc-style system-control variable assignments (#3000-#3999) — alarm trigger (#3000), millisecond and hour clocks (#3001 / #3002), single-block / feed-hold bypass flags (#3003 / #3004), pause-with-message (#3006), mirror-image flags (#3007), date / time (#3011 / #3012), tool-life data (#3030 / #3032), etc. Every id in this range is a controller-side state variable — its authoritative value lives on the real hardware (RTC, alarm bus, override switches, …) and an NC write at most triggers a side effect (clock reset, alarm raise, message-pause prompt). Offline simulation has none of that machinery, so this syntax does not emulate the effect. Instead it: records the literal write on the block JSON under Vars.SystemControl (round-trip and cache-dump visibility); emits a FanucSystemControl--Unsupported UnsupportedMessage(ISentenceCarrier, string, string, object) so the user knows the assignment was recognised but its controller-side effect is not simulated. Message-severity (not Warning) because these writes are safe no-ops offline — every consumed assignment would emit a Warning per block, which would be noisy without signalling anything the user must act on; removes the entry from Parsing.Assignments so it does not re-surface as a generic Parsing--Unconsumed diagnostic. The dictionary carries forward block-by-block (same dict-merge pattern as VolatileVariableReadingSyntax) so a downstream consumer can read the most recent recorded value via SyntaxPiece linkage. Only literal numeric RHS values are consumed; non-literal RHS (e.g. #3002 = #500) is left in Parsing.Assignments for VariableEvaluatorSyntax to resolve, mirroring the retained / volatile reading syntaxes. Fanuc-family only — Siemens uses named system variables ($AC_TIME, $A_DAY, …) and Heidenhain uses FN18: SYSREAD; neither flows through Parsing.Assignments.#nnn. public class FanucSystemControlVariableSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucSystemControlVariableSyntax Implements ISituNcSyntax INcSyntax 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 FanucSystemControlVariableSyntax() Default constructor. public FanucSystemControlVariableSyntax() FanucSystemControlVariableSyntax(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool). No state to deserialise. public FanucSystemControlVariableSyntax(XElement src) Parameters src XElement Fields SystemControlMax Inclusive upper bound of the system-control range (#3999). public const int SystemControlMax = 3999 Field Value int SystemControlMin Inclusive lower bound of the system-control range (#3000). public const int SystemControlMin = 3000 Field Value int UnsupportedDiagId Diagnostic id emitted for every consumed #3000-#3999 assignment — recognised by the parser, ignored by simulation. public const string UnsupportedDiagId = \"FanucSystemControl--Unsupported\" Field Value string Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, + "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html": { + "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html", + "title": "Class FanucWhileDoSyntax | HiAPI-C# 2025", + "summary": "Class FanucWhileDoSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Resolves Fanuc Custom Macro B WHILE [..] DO m ... END m bounded loops. Two phrases dispatched by Term: WHILE [..] DO m — entry: reads the resolved condition via FanucConditionReader, manages the per-LoopId frame in the top-level WhileFrames dict, and either falls through (truthy) or forward-jumps past the matching END m (falsy / unresolved). END m — terminator: unconditionally reverse-jumps to the WHILE block recorded in WhileFrames[LoopId].BeginLineNo so the next iteration re-evaluates the entry condition. Increments the per-loop iteration counter on FanucWhileDoIterationDependency; suppresses the redirect above MaxIterationsPerLoopId. WhileFrames carrier. The top-level WhileFrames JSON section is a JsonObject keyed by LoopId-as-string whose values are { BeginLineNo: int }. Frames are pushed when a WHILE block first encounters a truthy condition with no existing frame for that LoopId; popped when the condition becomes falsy or unresolved; otherwise carried forward unchanged by ModalCarrySyntax's Logic tracked-key list. Nested loops with distinct LoopIds coexist in the same dict; same-LoopId nesting (spec-undefined) overwrites and is not given special handling. Pipeline placement. Evaluation bundle, after the variable readers (defensive — WHILE/END blocks per spec do not carry assignments, but the placement is consistent with GOTO). Must run after VariableEvaluatorSyntax so the condition string has been substituted to numeric. Forward scan to matching END m uses the LabelScanUtil predicate overload — probe runs the brand-default FanucWhileDoParsingSyntax on each candidate, predicate matches on Parsing.FanucWhileDo.Term == \"END\" && LoopId == target. Reverse scan to WHILE BeginLineNo does not need a label predicate — the BeginLineNo is a known file-line index recorded in the active frame, so the END side re-segments the file from the top and returns the slice starting at the first piece whose CharIndexSegment.Begin.LineIndex matches. public class FanucWhileDoSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucWhileDoSyntax Implements ISituNcSyntax INcSyntax 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) Remarks Worked Example — Three-iteration WHILE [..] DO m ... END m Given this Custom Macro B source: #100 = 0 WHILE [#100 LT 3] DO 1 #100 = #100 + 1 END 1 X5 Each block flows through the runtime as below. The WhileFrames lifeline represents the per-block active-loop state carried block-to-block by the modal-carry pipeline; the END block consults it to find the WHILE line to reverse-jump to. The runaway-loop counter ticks on every successful END reverse-jump and suppresses further jumps above the configured iteration limit. sequenceDiagram participant W as WHILE block participant B as body participant E as END block participant X as X5 participant F as WhileFrames Note over F: empty Note over W: iter 1: cond=true (0 LT 3) W->>F: push {LoopId 1, BeginLineNo} W->>B: fall through B->>E: Note over E: counter 0 to 1 (≤Max) E-->>W: reverse jump Note over W: iter 2: cond=true (1 LT 3) Note over W,F: frame exists, skip push W->>B: fall through B->>E: Note over E: counter 1 to 2 (≤Max) E-->>W: reverse jump Note over W: iter 3: cond=true (2 LT 3) W->>B: B->>E: Note over E: counter 2 to 3 (≤Max) E-->>W: reverse jump Note over W: iter 4: cond=false (3 LT 3) W->>F: pop LoopId 1 Note over W: forward jump past END W->>X: After the loop exits, X5 executes with #100 = 3 in Vars.Volatile. Constructors FanucWhileDoSyntax() Parameterless instance. public FanucWhileDoSyntax() FanucWhileDoSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public FanucWhileDoSyntax(XElement src) Parameters src XElement Fields BeginLineNoKey Schema field inside each WhileFrames entry: the WHILE block's file-line index. public const string BeginLineNoKey = \"BeginLineNo\" Field Value string WhileFramesKey Top-level JSON key for the active-loop frame dict. public const string WhileFramesKey = \"WhileFrames\" Field Value string Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.html", "title": "Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Classes FanucGotoSyntax Resolves Fanuc Custom Macro B GOTO control flow. Triggered by Parsing.FanucGoto (written by FanucGotoParsingSyntax); decides whether to fire, and on fire calls ReplaceSource(IEnumerable) on layers[0] with the re-segmented file content starting at the matching N{target} label. The host block stays materialised (so cache dumps still see the GOTO call site); execution naturally continues from the new source once the pipeline pulls the next block. Both unconditional GOTO and conditional IF [] GOTO are implemented. The conditional form leans on VariableEvaluatorSyntax's pass-2 tree walk to substitute Parsing.FanucGoto.Condition with a numeric JsonValue when the expression evaluates successfully — ReadCondition(JsonNode) then reads the node polymorphically. Truthy non-zero fires the redirect; zero falls through silently; a still-string (unresolved) Condition emits FanucGoto--ConditionNotEvaluated and falls through. Pipeline placement: tail of the Fanuc / Mazak / Syntec Evaluation bundle. Must run after VariableEvaluatorSyntax so any # in the target N (e.g. GOTO #1) has been substituted to a literal in Parsing.FanucGoto.N. Reader syntaxes (VolatileVariableReadingSyntax etc.) are independent — they touch Parsing.Assignments, not Parsing.FanucGoto. Label scanning uses two hosted helper syntaxes — CommentSyntax and IndexSyntax — applied to each candidate block in turn so the predicate IndexNote.Number == target matches the same way the Parsing bundle would. Both are XML-IO-able so API customers can swap them (e.g. for a controller variant using ;-style comments or a different head symbol). Defaults match Fanuc: QuoteCommentSyntax and HeadIndexSyntax with the \"N\" symbol. FanucIfThenSyntax Resolves Fanuc Custom Macro B IF [] THEN single-block conditionals. Triggered by Parsing.FanucIfThen (written by FanucIfThenParsingSyntax); reads the now-resolved Condition node, decides whether to fire, and on fire lifts the parsing-stage PendingAssignments sub-object into the canonical Parsing.Assignments bucket so the brand-specific reader syntaxes downstream route each entry to its store the same way they would handle an unconditional #nnn = on a normal block. Unlike FanucGotoSyntax there is no source splice, no label scan, no iteration watchdog — the spec restricts the body to the current block. The host block is preserved either way (the stamped FanucIfThen section on the host's top-level JSON keeps the IF-THEN call site visible to cache dumps and diagnostics, with Applied flipped true only on a successful fire). Pipeline placement: in the Evaluation bundle after VariableEvaluatorSyntax (so the Condition expression has been substituted in place by pass-2 tree walk, and each PendingAssignments RHS string has been evaluated to a numeric JsonValue) and before the reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableReadingSyntax, FanucLocalVariableReadingSyntax, FanucSystemControlVariableSyntax) — that ordering lets the lifted entries reach the readers as if they had been written by TagAssignmentSyntax on a normal block. Three condition outcomes mirror the ReadCondition(JsonNode) shape: Truthy non-zero → lift assignments, stamp Applied=true. Truthy zero → fall through silently, Applied=false. Truthy null (evaluator failed, condition still a string or non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not lift, Applied=false. A truthy condition with no PendingAssignments (body did not parse as one or more assignments — e.g. a G-code body, currently unsupported) warns FanucIfThen--UnsupportedBody and falls through. FanucLocalVariableReadingSyntax Routes literal-RHS assignments to Fanuc-style local macro variables (#1-#33) from Parsing.Assignments into Vars.Local on the current block, carrying the previous block's Vars.Local dict forward when both blocks share the same MacroFrame id. Mirrors VolatileVariableReadingSyntax for the #100-#499 range, with two differences: Carry is gated by MacroFrame equality, so a caller block after a G65 return does not inherit the macro body's final locals. Writes outside a macro frame (a main-program block doing #11 = 5) emit LocalVariable--MainFrameWriteUnsupported and consume the assignment without persisting — real Fanuc allows main-frame local writes but this simulator only tracks locals inside G65/G66 call frames; surfacing the gap as a diagnostic is more informative than a silent UnconsumedCheckSyntax hit. Pipeline placement: Evaluation bundle, after VariableEvaluatorSyntax (so any expression RHS such as #11 = #1 + 1 has already been normalised to a literal by the time this reader runs) and after the other range readers (RetainedCommonVariableReadingSyntax, VolatileVariableReadingSyntax) so they all share a similar Reader-stage shape. Only literal numeric RHS values are consumed here; non-literal entries (which can only persist if VariableEvaluatorSyntax failed to resolve them) are left untouched and surface via the evaluator's own VariableExpression--Unevaluated diagnostic plus UnconsumedCheckSyntax. FanucMacroArgumentMap Fanuc Custom Macro B Type-I argument-letter map: which call-line letter binds to which Vars.Local id (#1-#26) inside the macro body. Reserved letters (G, L, N, O, P) are absent — they are consumed by the call itself, not passed through. Used by FanucMacroCallSyntax (G65, one-shot) and FanucModalMacroSyntax (G66, modal) to translate the argument letters captured by G65Syntax / G66Syntax into the #nnn bindings the macro body's expression evaluator can read. FanucMacroCallSyntax Inlines a Fanuc Custom Macro B one-shot call (G65 P_ L_ [letter value …]) into the source layer and binds the call-line argument letters to Vars.Local #1-#26 per the Type-I map (see FanucMacroArgumentMap). Every inlined block carries the binding dict, a clone of the FanucMacroCall diagnostic record, and a MacroFrame id stamp — so LocalVariableLookup resolves arg references in a single-block lookup, a cache dump landing on any block immediately shows which call it belongs to, and downstream FanucLocalVariableReadingSyntax carries body-internal #1-#33 writes forward only within the same frame. The host block itself records FanucMacroCall but stays in the caller's frame (no MacroFrame stamp) and emits no motion act; after the macro body's last inlined block the pipeline continues naturally into the caller's next block (the inlined pieces sit ahead of the host block's successor in layers[0]). Frame isolation works on two layers. Statically, caller blocks have no MacroFrame stamp (frame id 0 by Get(JsonObject)), so the inlined frame ids (allocated fresh per L-repetition) never collide with main. Dynamically, LocalVariableLookup and FanucLocalVariableReadingSyntax compare frame ids before carrying any Vars.Local entry across a block boundary — a macro body's body-internal writes therefore stay inside the macro and never leak back into the caller's frame. Filename lookup mirrors SubProgramCallSyntax: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC — first match wins. The lookup root is InternalFolder (G65 has no \"external storage\" variant; M198's external root is M98/M198-only). L > 1 inlines the same macro L times in series. Each repetition is a fresh segmentation pass (so each block gets its own SyntaxPiece JSON object — the downstream pipeline mutates JSON in place and would clobber sibling repetitions if instances were shared) and gets a fresh FileIndex (so (FileIndex, LineIndex) pairs stay unique across the L-copies of the same source lines). Pipeline placement: ahead of SubProgramCallSyntax inside the Fanuc Evaluation BundleSyntax so a hypothetical G65 P_ + M98 P_ on the same block expands the G65 macro first (would be an unusual but legal composition). Detection is on the Parsing.G65 sub-object written by G65Syntax (a ParameterizedFlagSyntax) — the keyword \"G65\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. FanucModalMacroSyntax Handles Fanuc Custom Macro B modal-call lifecycle (G66 setup, G67 cancel, and per-motion-block implicit macro invocation). The same class is registered twice in the pipeline via Phase — once in the Evaluation bundle (Setup, captures G66/G67 edges and carries the FanucModalMacro state block-to-block) and once in the PostLogic bundle (Expansion, on every motion block within an active G66 modal, inlines the macro body via the same mechanism FanucMacroCallSyntax uses). Keeping both phases in one class makes the pairing visually explicit: readers see \"G66 in one file\" and the two methods (DoSetup, DoExpansion) make the lifecycle obvious. The two factory helpers (Setup, Expansion) mirror the ModalCarrySyntax.Logic / .PostLogic pattern already in the codebase. FanucSystemControlVariableSyntax Consumes Fanuc-style system-control variable assignments (#3000-#3999) — alarm trigger (#3000), millisecond and hour clocks (#3001 / #3002), single-block / feed-hold bypass flags (#3003 / #3004), pause-with-message (#3006), mirror-image flags (#3007), date / time (#3011 / #3012), tool-life data (#3030 / #3032), etc. Every id in this range is a controller-side state variable — its authoritative value lives on the real hardware (RTC, alarm bus, override switches, …) and an NC write at most triggers a side effect (clock reset, alarm raise, message-pause prompt). Offline simulation has none of that machinery, so this syntax does not emulate the effect. Instead it: records the literal write on the block JSON under Vars.SystemControl (round-trip and cache-dump visibility); emits a FanucSystemControl--Unsupported UnsupportedMessage(ISentenceCarrier, string, string, object) so the user knows the assignment was recognised but its controller-side effect is not simulated. Message-severity (not Warning) because these writes are safe no-ops offline — every consumed assignment would emit a Warning per block, which would be noisy without signalling anything the user must act on; removes the entry from Parsing.Assignments so it does not re-surface as a generic Parsing--Unconsumed diagnostic. The dictionary carries forward block-by-block (same dict-merge pattern as VolatileVariableReadingSyntax) so a downstream consumer can read the most recent recorded value via SyntaxPiece linkage. Only literal numeric RHS values are consumed; non-literal RHS (e.g. #3002 = #500) is left in Parsing.Assignments for VariableEvaluatorSyntax to resolve, mirroring the retained / volatile reading syntaxes. Fanuc-family only — Siemens uses named system variables ($AC_TIME, $A_DAY, …) and Heidenhain uses FN18: SYSREAD; neither flows through Parsing.Assignments.#nnn. Enums FanucModalMacroSyntax.SyntaxPhase Identifies which pipeline phase the instance runs in. The two values correspond to the Evaluation-bundle and PostLogic-bundle registrations of this same syntax class." + "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Classes FanucConditionReader Shared polymorphic reader for Fanuc Custom Macro B conditional gate expressions (IF [...] GOTO, IF [...] THEN, WHILE [...] DO m). The condition node is read post-evaluation — VariableEvaluatorSyntax's pass-2 tree walk has already substituted the original expression string with a numeric JsonValue when evaluation succeeded; this helper maps that node to a tri-state truthy outcome plus a display form for diagnostics. Three states, mapping directly to the ConditionEvaluated: true | false | null stamp shape used by all three consumers (see FanucGotoSyntax, FanucIfThenSyntax, and the WHILE-loop syntax): Truthy = true — node is a finite non-zero numeric; gate fires. Truthy = false — node is a finite numeric equal to zero; gate falls through silently. Truthy = null — node is null, still a string (evaluator failed), or non-finite double (NaN / ±∞); gate falls through and the caller emits its own --ConditionNotEvaluated warning. The Display form is the human-readable expression text for diagnostic messages. For resolved numerics it is the value formatted via InvariantCulture; for unresolved strings it is the original expression text. Diagnostics build their own message text — the helper just provides the source string so the caller can compose \"IF [] GOTO ...\" etc. Callers typically DeepClone() the original node before passing in here, then again before stamping back, so removing the parsing section and writing the host-level stamp can happen in any order without dangling references. FanucGotoSyntax Resolves Fanuc Custom Macro B GOTO control flow. Triggered by Parsing.FanucGoto (written by FanucGotoParsingSyntax); decides whether to fire, and on fire calls ReplaceSource(IEnumerable) on layers[0] with the re-segmented file content starting at the matching N{target} label. The host block stays materialised (so cache dumps still see the GOTO call site); execution naturally continues from the new source once the pipeline pulls the next block. Both unconditional GOTO and conditional IF [] GOTO are implemented. The conditional form leans on VariableEvaluatorSyntax's pass-2 tree walk to substitute Parsing.FanucGoto.Condition with a numeric JsonValue when the expression evaluates successfully — ReadCondition(JsonNode) then reads the node polymorphically. Truthy non-zero fires the redirect; zero falls through silently; a still-string (unresolved) Condition emits FanucGoto--ConditionNotEvaluated and falls through. Pipeline placement: tail of the Fanuc / Mazak / Syntec Evaluation bundle. Must run after VariableEvaluatorSyntax so any # in the target N (e.g. GOTO #1) has been substituted to a literal in Parsing.FanucGoto.N. Reader syntaxes (VolatileVariableReadingSyntax etc.) are independent — they touch Parsing.Assignments, not Parsing.FanucGoto. Label scanning uses two hosted helper syntaxes — CommentSyntax and IndexSyntax — applied to each candidate block in turn so the predicate IndexNote.Number == target matches the same way the Parsing bundle would. Both are XML-IO-able so API customers can swap them (e.g. for a controller variant using ;-style comments or a different head symbol). Defaults match Fanuc: QuoteCommentSyntax and HeadIndexSyntax with the \"N\" symbol. FanucIfThenSyntax Resolves Fanuc Custom Macro B IF [] THEN single-block conditionals. Triggered by Parsing.FanucIfThen (written by FanucIfThenParsingSyntax); reads the now-resolved Condition node, decides whether to fire, and on fire lifts the parsing-stage PendingAssignments sub-object into the canonical Parsing.Assignments bucket so the brand-specific reader syntaxes downstream route each entry to its store the same way they would handle an unconditional #nnn = on a normal block. Unlike FanucGotoSyntax there is no source splice, no label scan, no iteration watchdog — the spec restricts the body to the current block. The host block is preserved either way (the stamped FanucIfThen section on the host's top-level JSON keeps the IF-THEN call site visible to cache dumps and diagnostics, with Applied flipped true only on a successful fire). Pipeline placement: in the Evaluation bundle after VariableEvaluatorSyntax (so the Condition expression has been substituted in place by pass-2 tree walk, and each PendingAssignments RHS string has been evaluated to a numeric JsonValue) and before the reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableReadingSyntax, FanucLocalVariableReadingSyntax, FanucSystemControlVariableSyntax) — that ordering lets the lifted entries reach the readers as if they had been written by TagAssignmentSyntax on a normal block. Three condition outcomes mirror the FanucGotoSyntax.ReadCondition shape: Truthy non-zero → lift assignments, stamp Applied=true. Truthy zero → fall through silently, Applied=false. Truthy null (evaluator failed, condition still a string or non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not lift, Applied=false. A truthy condition with no PendingAssignments (body did not parse as one or more assignments — e.g. a G-code body, currently unsupported) warns FanucIfThen--UnsupportedBody and falls through. FanucLocalVariableReadingSyntax Routes literal-RHS assignments to Fanuc-style local macro variables (#1-#33) from Parsing.Assignments into Vars.Local on the current block, carrying the previous block's Vars.Local dict forward when both blocks share the same MacroFrame id. Mirrors VolatileVariableReadingSyntax for the #100-#499 range, with two differences: Carry is gated by MacroFrame equality, so a caller block after a G65 return does not inherit the macro body's final locals. Writes outside a macro frame (a main-program block doing #11 = 5) emit LocalVariable--MainFrameWriteUnsupported and consume the assignment without persisting — real Fanuc allows main-frame local writes but this simulator only tracks locals inside G65/G66 call frames; surfacing the gap as a diagnostic is more informative than a silent UnconsumedCheckSyntax hit. Pipeline placement: Evaluation bundle, after VariableEvaluatorSyntax (so any expression RHS such as #11 = #1 + 1 has already been normalised to a literal by the time this reader runs) and after the other range readers (RetainedCommonVariableReadingSyntax, VolatileVariableReadingSyntax) so they all share a similar Reader-stage shape. Only literal numeric RHS values are consumed here; non-literal entries (which can only persist if VariableEvaluatorSyntax failed to resolve them) are left untouched and surface via the evaluator's own VariableExpression--Unevaluated diagnostic plus UnconsumedCheckSyntax. FanucMacroArgumentMap Fanuc Custom Macro B Type-I argument-letter map: which call-line letter binds to which Vars.Local id (#1-#26) inside the macro body. Reserved letters (G, L, N, O, P) are absent — they are consumed by the call itself, not passed through. Used by FanucMacroCallSyntax (G65, one-shot) and FanucModalMacroSyntax (G66, modal) to translate the argument letters captured by G65Syntax / G66Syntax into the #nnn bindings the macro body's expression evaluator can read. FanucMacroCallSyntax Inlines a Fanuc Custom Macro B one-shot call (G65 P_ L_ [letter value …]) into the source layer and binds the call-line argument letters to Vars.Local #1-#26 per the Type-I map (see FanucMacroArgumentMap). Every inlined block carries the binding dict, a clone of the FanucMacroCall diagnostic record, and a MacroFrame id stamp — so LocalVariableLookup resolves arg references in a single-block lookup, a cache dump landing on any block immediately shows which call it belongs to, and downstream FanucLocalVariableReadingSyntax carries body-internal #1-#33 writes forward only within the same frame. The host block itself records FanucMacroCall but stays in the caller's frame (no MacroFrame stamp) and emits no motion act; after the macro body's last inlined block the pipeline continues naturally into the caller's next block (the inlined pieces sit ahead of the host block's successor in layers[0]). Frame isolation works on two layers. Statically, caller blocks have no MacroFrame stamp (frame id 0 by Get(JsonObject)), so the inlined frame ids (allocated fresh per L-repetition) never collide with main. Dynamically, LocalVariableLookup and FanucLocalVariableReadingSyntax compare frame ids before carrying any Vars.Local entry across a block boundary — a macro body's body-internal writes therefore stay inside the macro and never leak back into the caller's frame. Filename lookup mirrors SubProgramCallSyntax: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC — first match wins. The lookup root is InternalFolder (G65 has no \"external storage\" variant; M198's external root is M98/M198-only). L > 1 inlines the same macro L times in series. Each repetition is a fresh segmentation pass (so each block gets its own SyntaxPiece JSON object — the downstream pipeline mutates JSON in place and would clobber sibling repetitions if instances were shared) and gets a fresh FileIndex (so (FileIndex, LineIndex) pairs stay unique across the L-copies of the same source lines). Pipeline placement: ahead of SubProgramCallSyntax inside the Fanuc Evaluation BundleSyntax so a hypothetical G65 P_ + M98 P_ on the same block expands the G65 macro first (would be an unusual but legal composition). Detection is on the Parsing.G65 sub-object written by G65Syntax (a ParameterizedFlagSyntax) — the keyword \"G65\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. FanucModalMacroSyntax Handles Fanuc Custom Macro B modal-call lifecycle (G66 setup, G67 cancel, and per-motion-block implicit macro invocation). The same class is registered twice in the pipeline via Phase — once in the Evaluation bundle (Setup, captures G66/G67 edges and carries the FanucModalMacro state block-to-block) and once in the PostLogic bundle (Expansion, on every motion block within an active G66 modal, inlines the macro body via the same mechanism FanucMacroCallSyntax uses). Keeping both phases in one class makes the pairing visually explicit: readers see \"G66 in one file\" and the two methods (DoSetup, DoExpansion) make the lifecycle obvious. The two factory helpers (Setup, Expansion) mirror the ModalCarrySyntax.Logic / .PostLogic pattern already in the codebase. FanucSystemControlVariableSyntax Consumes Fanuc-style system-control variable assignments (#3000-#3999) — alarm trigger (#3000), millisecond and hour clocks (#3001 / #3002), single-block / feed-hold bypass flags (#3003 / #3004), pause-with-message (#3006), mirror-image flags (#3007), date / time (#3011 / #3012), tool-life data (#3030 / #3032), etc. Every id in this range is a controller-side state variable — its authoritative value lives on the real hardware (RTC, alarm bus, override switches, …) and an NC write at most triggers a side effect (clock reset, alarm raise, message-pause prompt). Offline simulation has none of that machinery, so this syntax does not emulate the effect. Instead it: records the literal write on the block JSON under Vars.SystemControl (round-trip and cache-dump visibility); emits a FanucSystemControl--Unsupported UnsupportedMessage(ISentenceCarrier, string, string, object) so the user knows the assignment was recognised but its controller-side effect is not simulated. Message-severity (not Warning) because these writes are safe no-ops offline — every consumed assignment would emit a Warning per block, which would be noisy without signalling anything the user must act on; removes the entry from Parsing.Assignments so it does not re-surface as a generic Parsing--Unconsumed diagnostic. The dictionary carries forward block-by-block (same dict-merge pattern as VolatileVariableReadingSyntax) so a downstream consumer can read the most recent recorded value via SyntaxPiece linkage. Only literal numeric RHS values are consumed; non-literal RHS (e.g. #3002 = #500) is left in Parsing.Assignments for VariableEvaluatorSyntax to resolve, mirroring the retained / volatile reading syntaxes. Fanuc-family only — Siemens uses named system variables ($AC_TIME, $A_DAY, …) and Heidenhain uses FN18: SYSREAD; neither flows through Parsing.Assignments.#nnn. FanucWhileDoSyntax Resolves Fanuc Custom Macro B WHILE [..] DO m ... END m bounded loops. Two phrases dispatched by Term: WHILE [..] DO m — entry: reads the resolved condition via FanucConditionReader, manages the per-LoopId frame in the top-level WhileFrames dict, and either falls through (truthy) or forward-jumps past the matching END m (falsy / unresolved). END m — terminator: unconditionally reverse-jumps to the WHILE block recorded in WhileFrames[LoopId].BeginLineNo so the next iteration re-evaluates the entry condition. Increments the per-loop iteration counter on FanucWhileDoIterationDependency; suppresses the redirect above MaxIterationsPerLoopId. WhileFrames carrier. The top-level WhileFrames JSON section is a JsonObject keyed by LoopId-as-string whose values are { BeginLineNo: int }. Frames are pushed when a WHILE block first encounters a truthy condition with no existing frame for that LoopId; popped when the condition becomes falsy or unresolved; otherwise carried forward unchanged by ModalCarrySyntax's Logic tracked-key list. Nested loops with distinct LoopIds coexist in the same dict; same-LoopId nesting (spec-undefined) overwrites and is not given special handling. Pipeline placement. Evaluation bundle, after the variable readers (defensive — WHILE/END blocks per spec do not carry assignments, but the placement is consistent with GOTO). Must run after VariableEvaluatorSyntax so the condition string has been substituted to numeric. Forward scan to matching END m uses the LabelScanUtil predicate overload — probe runs the brand-default FanucWhileDoParsingSyntax on each candidate, predicate matches on Parsing.FanucWhileDo.Term == \"END\" && LoopId == target. Reverse scan to WHILE BeginLineNo does not need a label predicate — the BeginLineNo is a known file-line index recorded in the active frame, so the END side re-segments the file from the top and returns the slice starting at the first piece whose CharIndexSegment.Begin.LineIndex matches. Enums FanucModalMacroSyntax.SyntaxPhase Identifies which pipeline phase the instance runs in. The two values correspond to the Evaluation-bundle and PostLogic-bundle registrations of this same syntax class." }, "api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html", "title": "Class LabelScanUtil | HiAPI-C# 2025", - "summary": "Class LabelScanUtil Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Shared “re-segment a file and skip pieces until a label matches” scan, used by both FanucGotoSyntax (unconditional GOTO redirect) and SubProgramReturnSyntax (M99 P{seq} jump into the caller file). Reads the file via ReadLines(int, string, string), segments through the provided ISegmenter, runs the caller-supplied probe syntaxes on each candidate block to extract IndexNote.Number, and returns the slice from the first matching block to EOF. Returns null when no block matches — the caller's responsibility to surface the appropriate diagnostic. The probes are idempotent because the downstream Parsing bundle re-runs the same syntaxes on the yielded pieces with no-op effect (the regex patterns no longer match once the N-prefix is consumed and the parenthesised comment stripped). public static class LabelScanUtil Inheritance object LabelScanUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods SegmentAndSkipUntilLabel(ISegmenter, string, string, int, int, int, List, NcDiagnosticProgress) Re-segments absPath from offset 0, scans for a block whose Number equals targetN (after the probeSyntaxes have stamped it in-place), and returns the sub-list of pieces from that block to EOF. Pieces are produced via GetSyntaxPieces(ISegmenter, IEnumerable, int, NcDiagnosticProgress, CancellationToken) with SentenceIndex stamped starting at sentenceIndexBegin. Returns null when no match is found; the caller emits its own brand-specific “label not found” diagnostic. The predicate is fixed at the IndexNote.Number section — the section name comes from nameof() so a future rename propagates without re-edits. Reconfigurability for non-standard label-output sections is achieved by replacing the probe syntaxes (the natural extension point) rather than parameterising the predicate path here: a probe stack that doesn't end up writing IndexNote on candidates is by definition not participating in this scan. public static List SegmentAndSkipUntilLabel(ISegmenter segmenter, string absPath, string labelPath, int fileIndex, int sentenceIndexBegin, int targetN, List probeSyntaxes, NcDiagnosticProgress diag) Parameters segmenter ISegmenter Segmenter used to slice the file into Sentence blocks. absPath string Absolute path to read line content from. labelPath string Project-relative path to stamp on each line's IndexedFileLine label (so diagnostics anchor to a relative form, not the resolver's transient absolute path). fileIndex int Fresh file index to stamp on each scanned line, allocated by the caller from FileIndexCounterDependency. sentenceIndexBegin int Starting execution-order index for the produced pieces. targetN int Integer label target to match against Number. probeSyntaxes List Ordered list of helper syntaxes to run on each candidate block before the predicate check (typically comment-stripper(s) followed by a head-index parser). May be null. diag NcDiagnosticProgress Sink for any diagnostics produced by the probe syntaxes (e.g. comment-stripper malformed-comment warnings). Returns List" + "summary": "Class LabelScanUtil Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Shared “re-segment a file and skip pieces until a label matches” scan, used by both FanucGotoSyntax (unconditional GOTO redirect) and SubProgramReturnSyntax (M99 P{seq} jump into the caller file). Reads the file via ReadLines(int, string, string), segments through the provided ISegmenter, runs the caller-supplied probe syntaxes on each candidate block to extract IndexNote.Number, and returns the slice from the first matching block to EOF. Returns null when no block matches — the caller's responsibility to surface the appropriate diagnostic. The probes are idempotent because the downstream Parsing bundle re-runs the same syntaxes on the yielded pieces with no-op effect (the regex patterns no longer match once the N-prefix is consumed and the parenthesised comment stripped). public static class LabelScanUtil Inheritance object LabelScanUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, List, Func, NcDiagnosticProgress) Predicate-driven overload. The caller supplies match as the per-candidate gate (run on the candidate block's JsonObject after the probe syntaxes have finished stamping). This unblocks scans whose label representation differs from IndexNote.Number — for example END m blocks identified by a custom probe-written section, where reusing IndexNote would collide with real N{m} head indices in the same file. The default targetN overload delegates here with the IndexNote.Number == targetN predicate baked in; existing callers (Fanuc unconditional GOTO, M99 P{seq} jump) are unchanged. public static List SegmentAndSkipUntilLabel(ISegmenter segmenter, List ncDependencyList, string absPath, string labelPath, int fileIndex, int sentenceIndexBegin, List probeSyntaxes, Func match, NcDiagnosticProgress diag) Parameters segmenter ISegmenter Segmenter used to slice the file into Sentence blocks. ncDependencyList List NC dependency list forwarded to GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) while re-segmenting the scanned file. absPath string Absolute path to read line content from. labelPath string Project-relative path to stamp on each line's IndexedFileLine label. fileIndex int Fresh file index to stamp on each scanned line, allocated by the caller from FileIndexCounterDependency. sentenceIndexBegin int Starting execution-order index for the produced pieces. probeSyntaxes List Ordered list of helper syntaxes to run on each candidate block before the predicate check. May be null. match Func Per-candidate predicate; true selects the first match. diag NcDiagnosticProgress Sink for any diagnostics produced by the probe syntaxes. Returns List SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, int, List, NcDiagnosticProgress) Re-segments absPath from offset 0, scans for a block whose Number equals targetN (after the probeSyntaxes have stamped it in-place), and returns the sub-list of pieces from that block to EOF. Pieces are produced via GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) with SentenceIndex stamped starting at sentenceIndexBegin. Returns null when no match is found; the caller emits its own brand-specific “label not found” diagnostic. The predicate is fixed at the IndexNote.Number section — the section name comes from nameof() so a future rename propagates without re-edits. Reconfigurability for non-standard label-output sections is achieved by replacing the probe syntaxes (the natural extension point) rather than parameterising the predicate path here: a probe stack that doesn't end up writing IndexNote on candidates is by definition not participating in this scan. public static List SegmentAndSkipUntilLabel(ISegmenter segmenter, List ncDependencyList, string absPath, string labelPath, int fileIndex, int sentenceIndexBegin, int targetN, List probeSyntaxes, NcDiagnosticProgress diag) Parameters segmenter ISegmenter Segmenter used to slice the file into Sentence blocks. ncDependencyList List NC dependency list forwarded to GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) while re-segmenting the scanned file. absPath string Absolute path to read line content from. labelPath string Project-relative path to stamp on each line's IndexedFileLine label (so diagnostics anchor to a relative form, not the resolver's transient absolute path). fileIndex int Fresh file index to stamp on each scanned line, allocated by the caller from FileIndexCounterDependency. sentenceIndexBegin int Starting execution-order index for the produced pieces. targetN int Integer label target to match against Number. probeSyntaxes List Ordered list of helper syntaxes to run on each candidate block before the predicate check (typically comment-stripper(s) followed by a head-index parser). May be null. diag NcDiagnosticProgress Sink for any diagnostics produced by the probe syntaxes (e.g. comment-stripper malformed-comment warnings). Returns List" }, "api/Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html", @@ -3897,7 +3867,7 @@ "api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html", "title": "Class MacroInlineUtil | HiAPI-C# 2025", - "summary": "Class MacroInlineUtil Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Shared inline mechanism for Fanuc Custom Macro B body expansion — used by both FanucMacroCallSyntax (one-shot) and FanucModalMacroSyntax's expansion phase (modal trigger). Both callers do the same three things on every produced SyntaxPiece: stamp a FanucMacroCall clone, stamp a fresh MacroFrame id, and stamp argument bindings into Vars.Local. Centralising lets the two call sites stay in lock-step — frame allocation, file-index allocation, and the inline-piece JSON shape are guaranteed identical. Frame ids share the same FileIndexCounterDependency counter as file indices — both just need within-session uniqueness and the counter is rewound on session start in lock-step with the pipeline. The main NC file is allocated index 0 first, so all inline frame ids land at > 0 and never collide with main. public static class MacroInlineUtil Inheritance object MacroInlineUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ApplyLocalBindings(JsonObject, IReadOnlyDictionary) Writes the resolved #N → value bindings into Vars.Local on the given block. No-op when bindings is empty. Always overwrites any pre-existing Vars.Local on the block — for inlined macro bodies this is a fresh stamp. public static void ApplyLocalBindings(JsonObject json, IReadOnlyDictionary bindings) Parameters json JsonObject bindings IReadOnlyDictionary BuildInlinedPieces(ResolvedFile, int, IReadOnlyDictionary, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, int, NcDiagnosticProgress) Yields L repetitions of the macro body as inline-ready SyntaxPiece entries. Each repetition gets its own freshly-allocated FileIndex and MacroFrame id; every yielded piece is stamped with a deep clone of callRecord, the frame id, and the resolved #N → value bindings. The caller passes the result to PrependSource(IEnumerable) on the source layer. public static IEnumerable BuildInlinedPieces(MacroFileResolver.ResolvedFile resolvedFile, int l, IReadOnlyDictionary bindings, JsonObject callRecord, JsonObject pushedCallStack, FileIndexCounterDependency counterDep, ISegmenter segmenter, int sentenceIndexBegin, NcDiagnosticProgress ncDiagnosticProgress) Parameters resolvedFile MacroFileResolver.ResolvedFile l int bindings IReadOnlyDictionary callRecord JsonObject pushedCallStack JsonObject counterDep FileIndexCounterDependency segmenter ISegmenter sentenceIndexBegin int ncDiagnosticProgress NcDiagnosticProgress Returns IEnumerable BuildLocalBindings(JsonObject) Translates the argument-letter map captured by the host call ({ “A”: 1.5, “B”: 2.0, ... }) into the #N → value bindings the macro body's expression evaluator will read off Vars.Local. Skips non-numeric (string) args silently — those are unresolved variable references that the evaluator's own VariableExpression–Unevaluated diagnostic will surface; writing a string into Vars.Local would just propagate the residue. public static Dictionary BuildLocalBindings(JsonObject args) Parameters args JsonObject Returns Dictionary" + "summary": "Class MacroInlineUtil Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Shared inline mechanism for Fanuc Custom Macro B body expansion — used by both FanucMacroCallSyntax (one-shot) and FanucModalMacroSyntax's expansion phase (modal trigger). Both callers do the same three things on every produced SyntaxPiece: stamp a FanucMacroCall clone, stamp a fresh MacroFrame id, and stamp argument bindings into Vars.Local. Centralising lets the two call sites stay in lock-step — frame allocation, file-index allocation, and the inline-piece JSON shape are guaranteed identical. Frame ids share the same FileIndexCounterDependency counter as file indices — both just need within-session uniqueness and the counter is rewound on session start in lock-step with the pipeline. The main NC file is allocated index 0 first, so all inline frame ids land at > 0 and never collide with main. public static class MacroInlineUtil Inheritance object MacroInlineUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ApplyLocalBindings(JsonObject, IReadOnlyDictionary) Writes the resolved #N → value bindings into Vars.Local on the given block. No-op when bindings is empty. Always overwrites any pre-existing Vars.Local on the block — for inlined macro bodies this is a fresh stamp. public static void ApplyLocalBindings(JsonObject json, IReadOnlyDictionary bindings) Parameters json JsonObject bindings IReadOnlyDictionary BuildInlinedPieces(ResolvedFile, int, IReadOnlyDictionary, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, List, int, NcDiagnosticProgress) Yields L repetitions of the macro body as inline-ready SyntaxPiece entries. Each repetition gets its own freshly-allocated FileIndex and MacroFrame id; every yielded piece is stamped with a deep clone of callRecord, the frame id, and the resolved #N → value bindings. The caller passes the result to PrependSource(IEnumerable) on the source layer. public static IEnumerable BuildInlinedPieces(MacroFileResolver.ResolvedFile resolvedFile, int l, IReadOnlyDictionary bindings, JsonObject callRecord, JsonObject pushedCallStack, FileIndexCounterDependency counterDep, ISegmenter segmenter, List ncDependencyList, int sentenceIndexBegin, NcDiagnosticProgress ncDiagnosticProgress) Parameters resolvedFile MacroFileResolver.ResolvedFile l int bindings IReadOnlyDictionary callRecord JsonObject pushedCallStack JsonObject counterDep FileIndexCounterDependency segmenter ISegmenter ncDependencyList List sentenceIndexBegin int ncDiagnosticProgress NcDiagnosticProgress Returns IEnumerable BuildLocalBindings(JsonObject) Translates the argument-letter map captured by the host call ({ “A”: 1.5, “B”: 2.0, ... }) into the #N → value bindings the macro body's expression evaluator will read off Vars.Local. Skips non-numeric (string) args silently — those are unresolved variable references that the evaluator's own VariableExpression–Unevaluated diagnostic will surface; writing a string into Vars.Local would just propagate the residue. public static Dictionary BuildLocalBindings(JsonObject args) Parameters args JsonObject Returns Dictionary" }, "api/Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html", @@ -3912,12 +3882,12 @@ "api/Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html", "title": "Class SubProgramReturnSyntax | HiAPI-C# 2025", - "summary": "Class SubProgramReturnSyntax Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Consumes Fanuc-style M99 subprogram-return blocks and pops one CallStack frame. Plain M99 relies on the natural pipeline tail — the inlined body's last block is followed in layers[0] by the caller's next block, so the “return” happens implicitly; this syntax only consumes the M99 trigger (so UnconsumedCheckSyntax doesn't warn), stamps a SubProgramReturn diagnostic section, and writes the popped CallStack for downstream blocks to carry. M99 P{seq} additionally redirects control flow to the caller's N{seq} block via ReplaceSource(IEnumerable). The caller's file is resolved from the popped frame's CallerFilePath; the scan uses the same SegmentAndSkipUntilLabel(ISegmenter, string, string, int, int, int, List, NcDiagnosticProgress) helper as FanucGotoSyntax, with hardcoded Fanuc-default probes (QuoteCommentSyntax + HeadIndexSyntax with symbol \"N\") because the M99 P semantic itself is Fanuc-family-only and Mazak / Syntec follow the same conventions. The iteration is counted against FanucGotoIterationDependency, sharing the same runaway-loop guard as GOTO — keyed on the same (FileName, TargetN) bucket so a tight M98 → M99 P → M98 … loop trips the same threshold. Pipeline placement: same Evaluation bundle slot it always occupied, right after SubProgramCallSyntax at the head. Needs FanucGotoIterationDependency, ProjectFolderDependency, SegmenterDependency, SyntaxPieceLayerDependency, FileIndexCounterDependency on the dep list when M99 P{seq} is to fire; without them the plain-M99 path still works and the P-jump emits a configuration warning. Detection is on the Parsing.M99 sub-object written by M99Syntax (a ParameterizedFlagSyntax) — the keyword \"M99\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. public class SubProgramReturnSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object SubProgramReturnSyntax Implements ISituNcSyntax INcSyntax 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 SubProgramReturnSyntax() Parameterless instance with default probe list. public SubProgramReturnSyntax() SubProgramReturnSyntax(XElement, string, IProgress) Loads LabelProbeSyntaxes from XML produced by MakeXmlSource(string, string, bool). An absent wrapper falls back to the default probe list. public SubProgramReturnSyntax(XElement src, string baseDirectory, IProgress progress) Parameters src XElement Root element named XName. baseDirectory string Project base directory propagated to child XFactory calls. progress IProgress Diagnostic sink propagated to child factories. Properties LabelProbeSyntaxes Ordered list of probe syntaxes run on each candidate block during the M99 P{seq} caller-side scan, before the integer label predicate fires. Defaults match Fanuc / Mazak / Syntec (parenthesised comment stripper + N head-index parser); API customers can swap or extend (e.g. add a TailCommentSyntax for ; end-of-block comments, or insert a BlockSkipSyntax to exclude /-prefixed candidates) without subclassing. Mirrors the same hosted-list pattern as LabelProbeSyntaxes. public List LabelProbeSyntaxes { get; set; } Property Value List Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class SubProgramReturnSyntax Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Consumes Fanuc-style M99 subprogram-return blocks and pops one CallStack frame. Plain M99 relies on the natural pipeline tail — the inlined body's last block is followed in layers[0] by the caller's next block, so the “return” happens implicitly; this syntax only consumes the M99 trigger (so UnconsumedCheckSyntax doesn't warn), stamps a SubProgramReturn diagnostic section, and writes the popped CallStack for downstream blocks to carry. M99 P{seq} additionally redirects control flow to the caller's N{seq} block via ReplaceSource(IEnumerable). The caller's file is resolved from the popped frame's CallerFilePath; the scan uses the same LabelScanUtil.SegmentAndSkipUntilLabel helper as FanucGotoSyntax, with hardcoded Fanuc-default probes (QuoteCommentSyntax + HeadIndexSyntax with symbol \"N\") because the M99 P semantic itself is Fanuc-family-only and Mazak / Syntec follow the same conventions. The iteration is counted against FanucGotoIterationDependency, sharing the same runaway-loop guard as GOTO — keyed on the same (FileName, TargetN) bucket so a tight M98 → M99 P → M98 … loop trips the same threshold. Pipeline placement: same Evaluation bundle slot it always occupied, right after SubProgramCallSyntax at the head. Needs FanucGotoIterationDependency, ProjectFolderDependency, SegmenterDependency, SyntaxPieceLayerDependency, FileIndexCounterDependency on the dep list when M99 P{seq} is to fire; without them the plain-M99 path still works and the P-jump emits a configuration warning. Detection is on the Parsing.M99 sub-object written by M99Syntax (a ParameterizedFlagSyntax) — the keyword \"M99\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. public class SubProgramReturnSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object SubProgramReturnSyntax Implements ISituNcSyntax INcSyntax 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 SubProgramReturnSyntax() Parameterless instance with default probe list. public SubProgramReturnSyntax() SubProgramReturnSyntax(XElement, string, IProgress) Loads LabelProbeSyntaxes from XML produced by MakeXmlSource(string, string, bool). An absent wrapper falls back to the default probe list. public SubProgramReturnSyntax(XElement src, string baseDirectory, IProgress progress) Parameters src XElement Root element named XName. baseDirectory string Project base directory propagated to child XFactory calls. progress IProgress Diagnostic sink propagated to child factories. Properties LabelProbeSyntaxes Ordered list of probe syntaxes run on each candidate block during the M99 P{seq} caller-side scan, before the integer label predicate fires. Defaults match Fanuc / Mazak / Syntec (parenthesised comment stripper + N head-index parser); API customers can swap or extend (e.g. add a TailCommentSyntax for ; end-of-block comments, or insert a BlockSkipSyntax to exclude /-prefixed candidates) without subclassing. Mirrors the same hosted-list pattern as LabelProbeSyntaxes. public List LabelProbeSyntaxes { get; set; } Property Value List Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html", "title": "Class VariableEvaluatorSyntax | HiAPI-C# 2025", - "summary": "Class VariableEvaluatorSyntax Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Pure expression normalizer for Custom Macro B syntax. Walks the parser-stage residue on a single block and inlines numeric values wherever a Fanuc-style variable reference or bracket expression appears — but does not write to any specific store. Routing “where the resolved literal lands” stays in the brand-specific reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableTable's reader, FanucSystemControlVariableSyntax, …) which run after this syntax on the same block. Two passes per block: Assignments normalize — Parsing.Assignments.#nnn entries whose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\") are evaluated via the VariableEvaluatorSyntax.ChainLookup and the RHS string is replaced with the resolved literal (round-trip-safe \"R\"-format). The entry stays in Parsing.Assignments so downstream reader syntaxes consume it as a pure-literal assignment. Iteration follows source order (Parsing.Assignments insertion order). Parsing tree substitution — every string-typed value reachable from Parsing. (axis tags, canned-cycle sub-objects) is parsed; on a successful evaluation the string is replaced with a numeric JsonValue. Failures silently leave the original string and rely on downstream GetParsedDouble(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) at consumer sites to surface VariableExpression--Unevaluated only if the tag is actually read. Lookup chain (first non-null wins, configured per brand preset via RuntimeVariableLookups + IVariableLookup instances on NcDependencyList): Current block's own resolved assignments — built-in to VariableEvaluatorSyntax.ChainLookup; covers same-block forward references in source order (an earlier #nnn=literal is visible to a later RHS that mentions #nnn). Each IRuntimeVariableLookup in RuntimeVariableLookups, in list order. Typical contents for a Fanuc-family preset: LocalVariableLookup (#1-#33), VolatileVariableLookup (#100-#499), FanucPositionVariableLookup (#5001-#5043). Each IVariableLookup on the runner's NcDependencyList, in registration order (RetainedCommonVariableTable, FanucParameterTable, FanucToolOffsetVariableLookup). Each lookup self-gates its id range; the evaluator stays brand- and range-agnostic. Adding a new variable surface is additive: register an IVariableLookup on a dependency or push an IRuntimeVariableLookup onto the per-preset list. Same-block forward reference — when an Assignment RHS references a #nnn that is also being assigned later in the same block (i.e. listed in Parsing.Assignments after the RHS being evaluated), the VariableEvaluatorSyntax.ChainLookup cannot pick up the not-yet-resolved value and falls back to traceback / dependency-table reads — effectively the pre-block value. A VariableEvaluator--SameBlockForwardReference warning is emitted per such RHS so the user is told the source-order semantics were not honoured. Practical impact is near-zero for typical CAM-emitted NC (one assignment per line). public class VariableEvaluatorSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object VariableEvaluatorSyntax Implements ISituNcSyntax INcSyntax 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 VariableEvaluatorSyntax() Default constructor. public VariableEvaluatorSyntax() VariableEvaluatorSyntax(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool); restores RuntimeVariableLookups via XFactory dispatch. public VariableEvaluatorSyntax(XElement src) Parameters src XElement Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string RuntimeVariableLookups Per-preset list of context-sensitive lookups (block-local Vars.Local / Vars.Volatile, position reads, runtime-state reads). Walked in list order, before the dependency-bound IVariableLookups. Brand presets configure this; the list is XML-serialised so a runner rebuilt from XML keeps its brand-specific lookups (each impl is stateless and dispatches by its XName via XFactory). public List RuntimeVariableLookups { get; set; } Property Value List XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class VariableEvaluatorSyntax Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Pure expression normalizer for Custom Macro B syntax. Walks the parser-stage residue on a single block and inlines numeric values wherever a Fanuc-style variable reference or bracket expression appears — but does not write to any specific store. Routing “where the resolved literal lands” stays in the brand-specific reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableTable's reader, FanucSystemControlVariableSyntax, …) which run after this syntax on the same block. Two passes per block: Assignments normalize — Parsing.Assignments.#nnn entries whose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\") are evaluated via the VariableEvaluatorSyntax.ChainLookup and the RHS string is replaced with the resolved literal (round-trip-safe \"R\"-format). The entry stays in Parsing.Assignments so downstream reader syntaxes consume it as a pure-literal assignment. Iteration follows source order (Parsing.Assignments insertion order). Parsing tree substitution — every string-typed value reachable from Parsing. (axis tags, canned-cycle sub-objects) is parsed; on a successful evaluation the string is replaced with a numeric JsonValue. Failures silently leave the original string and rely on downstream GetParsedDouble(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) at consumer sites to surface VariableExpression--Unevaluated only if the tag is actually read. Lookup chain (first non-null wins, configured per brand preset via RuntimeVariableLookups + IVariableLookup instances on NcDependencyList): Current block's own resolved assignments — built-in to VariableEvaluatorSyntax.ChainLookup; covers same-block forward references in source order (an earlier #nnn=literal is visible to a later RHS that mentions #nnn). Each IRuntimeVariableLookup in RuntimeVariableLookups, in list order. Typical contents for a Fanuc-family preset: LocalVariableLookup (#1-#33), VolatileVariableLookup (#100-#499), FanucPositionVariableLookup (#5001-#5043). Each IVariableLookup on the runner's NcDependencyList, in registration order (RetainedCommonVariableTable, FanucParameterTable, FanucToolOffsetVariableLookup). Each lookup self-gates its id range; the evaluator stays brand- and range-agnostic. Adding a new variable surface is additive: register an IVariableLookup on a dependency or push an IRuntimeVariableLookup onto the per-preset list. Same-block forward reference — when an Assignment RHS references a #nnn that is also being assigned later in the same block (i.e. listed in Parsing.Assignments after the RHS being evaluated), the VariableEvaluatorSyntax.ChainLookup cannot pick up the not-yet-resolved value and falls back to traceback / dependency-table reads — effectively the pre-block value. A VariableEvaluator--SameBlockForwardReference warning is emitted per such RHS so the user is told the source-order semantics were not honoured. Practical impact is near-zero for typical CAM-emitted NC (one assignment per line). Formula mirror tree — when either pass actually performs a non-trivial expression evaluation (i.e. the RHS / tag value was not already a pure literal and the evaluator returned a finite value), the original expression string is mirrored to a parallel Formula. entry at the root of the block JSON. The Parsing.* subtree carries the resolved value (R-format string for Assignments; numeric JsonValue for tags); the Formula.* subtree preserves the source-text expression for diagnostics, round-trip reconstruction, and downstream inspection. Pure-literal RHS / tag values produce no Formula entry — the Parsing value is already the original text. Evaluation failures (parse error, vacant variable, non-finite result) also produce no Formula entry — the original string is still in Parsing.* untouched, no preservation needed. public class VariableEvaluatorSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object VariableEvaluatorSyntax Implements ISituNcSyntax INcSyntax 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 VariableEvaluatorSyntax() Default constructor. public VariableEvaluatorSyntax() VariableEvaluatorSyntax(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool); restores RuntimeVariableLookups via XFactory dispatch. public VariableEvaluatorSyntax(XElement src) Parameters src XElement Fields FormulaKey Top-level key under which the Formula mirror tree is written. public const string FormulaKey = \"Formula\" Field Value string Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string RuntimeVariableLookups Per-preset list of context-sensitive lookups (block-local Vars.Local / Vars.Volatile, position reads, runtime-state reads). Walked in list order, before the dependency-bound IVariableLookups. Brand presets configure this; the list is XML-serialised so a runner rebuilt from XML keeps its brand-specific lookups (each impl is stateless and dispatches by its XName via XFactory). public List RuntimeVariableLookups { get; set; } Property Value List XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html", @@ -3927,7 +3897,7 @@ "api/Hi.NcParsers.EvaluationSyntaxs.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.html", "title": "Namespace Hi.NcParsers.EvaluationSyntaxs | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs Classes CallStackUtil Push / pop helpers for the per-block CallStack section. Both produce a fresh deep-cloned JsonObject ready to stamp onto an inlined piece (push site) or onto an M99 return block (pop site); the caller is responsible for deep-cloning again if it distributes the same stamp across multiple pieces of an L-repetition. Pairs with ModalCarrySyntax at the Logic stage: explicit push / pop writes seed the section at frame boundaries, ModalCarry copies it forward to every block in between so each block is self-contained for cache-dump readers and downstream consumers (notably M99 P{seq} reading the top frame's CallerFilePath). LabelScanUtil Shared “re-segment a file and skip pieces until a label matches” scan, used by both FanucGotoSyntax (unconditional GOTO redirect) and SubProgramReturnSyntax (M99 P{seq} jump into the caller file). Reads the file via ReadLines(int, string, string), segments through the provided ISegmenter, runs the caller-supplied probe syntaxes on each candidate block to extract IndexNote.Number, and returns the slice from the first matching block to EOF. Returns null when no block matches — the caller's responsibility to surface the appropriate diagnostic. The probes are idempotent because the downstream Parsing bundle re-runs the same syntaxes on the yielded pieces with no-op effect (the regex patterns no longer match once the N-prefix is consumed and the parenthesised comment stripped). MacroFileResolver Shared subprogram-/macro-file resolver for Fanuc-style O lookups consumed by SubProgramCallSyntax (M98 / M198) and FanucMacroCallSyntax (G65). Single helper so the three path forms — file name, project-relative path, absolute path — are produced together at one site and each caller gets exactly the form it should consume: FileName — bare O####.NC form the resolver matched. Stored in JSON sections (FanucMacroCall, SubProgramCall) as the structural NC-language identifier; independent of which folder the dependency happened to be pointing at, so the JSON stays portable across environments. RelPath — relative path against the project base directory (e.g. \"NC/O1234.NC\"). Used as the IndexedFileLine label so diagnostics on inlined blocks align with the relative form already used for the main file label. AbsPath — absolute path. Used only at the ReadLines(int, string, string) call site for actual disk I/O; never persisted, never returned to JSON. Lives inside the resolver's stack frame and the segmenter's enumeration. Filename lookup order (first match wins) mirrors real Fanuc fallback: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC. Case-insensitive match is delegated to the host filesystem (Windows is, Linux is not). MacroInlineUtil Shared inline mechanism for Fanuc Custom Macro B body expansion — used by both FanucMacroCallSyntax (one-shot) and FanucModalMacroSyntax's expansion phase (modal trigger). Both callers do the same three things on every produced SyntaxPiece: stamp a FanucMacroCall clone, stamp a fresh MacroFrame id, and stamp argument bindings into Vars.Local. Centralising lets the two call sites stay in lock-step — frame allocation, file-index allocation, and the inline-piece JSON shape are guaranteed identical. Frame ids share the same FileIndexCounterDependency counter as file indices — both just need within-session uniqueness and the counter is rewound on session start in lock-step with the pipeline. The main NC file is allocated index 0 first, so all inline frame ids land at > 0 and never collide with main. RetainedCommonVariableReadingSyntax Obtains values for Fanuc-style retained common variables (#500-#999) by consuming literal numeric assignments from Parsing.Assignments.#nnn and writing them straight to a registered RetainedCommonVariableTable. No SyntaxPiece JSON mirror is created — the table is the single source of truth for retained values, and VariableEvaluatorSyntax reads from the table directly. The hincproj round-trip preserves writes across project sessions. Only literal numeric RHS values are consumed by this syntax (#500 = 1.234 ✓; #600 = #500 + 1 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them and writes the result through the same table. The two syntaxes are decoupled. If no RetainedCommonVariableTable is registered on the runner's NcDependencyList, this syntax is a no-op. SubProgramCallSyntax Inlines a Fanuc-style subprogram into the source layer when an M98 or M198 host block is reached. M98 P_ L_ reads the matching O

    file from InternalFolder; M198 P_ reads from ExternalFolder (Fanuc external-storage call — same mechanism as M98, different lookup root). The file is segmented through the host runner's segmenter (SegmenterDependency) and the resulting SyntaxPieces are prepended into layers[0] via PrependSource(IEnumerable); the rest of the pipeline picks them up through ordinary walkNode.Next traversal as if they had always been part of the host file. Pipeline placement: first child of the Fanuc Evaluation BundleSyntax. By the time this runs, M98Syntax / M198Syntax (each a ParameterizedFlagSyntax) have written a Parsing.M98 / Parsing.M198 sub-object carrying the captured P / L parameters. Note: those sub-objects are this syntax's only trigger — \"M98\" / \"M198\" never reach Parsing.Flags, because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. Filename lookup uses a fallback chain: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC — first match wins. Case-insensitive match is delegated to the host filesystem (Windows is, Linux is not). L > 1 inlines the same subprogram L times in series. Each repetition is a fresh segmentation pass so each block gets its own SyntaxPiece with an independent JSON object — the downstream pipeline mutates JSON in place and would clobber sibling repetitions if instances were shared. Not yet supported: M99 P{seq} early return inside a subprogram and partial-program calls (M98 P{seq}{prog} split encoding). Custom Macro B argument-binding calls (G65 / G66 / G67) live in FanucMacroCallSyntax and FanucModalMacroSyntax — those handle the argument-letter-to-#1..#26 binding and the macro-call frame isolation that M98 deliberately does not provide. SubProgramReturnSyntax Consumes Fanuc-style M99 subprogram-return blocks and pops one CallStack frame. Plain M99 relies on the natural pipeline tail — the inlined body's last block is followed in layers[0] by the caller's next block, so the “return” happens implicitly; this syntax only consumes the M99 trigger (so UnconsumedCheckSyntax doesn't warn), stamps a SubProgramReturn diagnostic section, and writes the popped CallStack for downstream blocks to carry. M99 P{seq} additionally redirects control flow to the caller's N{seq} block via ReplaceSource(IEnumerable). The caller's file is resolved from the popped frame's CallerFilePath; the scan uses the same SegmentAndSkipUntilLabel(ISegmenter, string, string, int, int, int, List, NcDiagnosticProgress) helper as FanucGotoSyntax, with hardcoded Fanuc-default probes (QuoteCommentSyntax + HeadIndexSyntax with symbol \"N\") because the M99 P semantic itself is Fanuc-family-only and Mazak / Syntec follow the same conventions. The iteration is counted against FanucGotoIterationDependency, sharing the same runaway-loop guard as GOTO — keyed on the same (FileName, TargetN) bucket so a tight M98 → M99 P → M98 … loop trips the same threshold. Pipeline placement: same Evaluation bundle slot it always occupied, right after SubProgramCallSyntax at the head. Needs FanucGotoIterationDependency, ProjectFolderDependency, SegmenterDependency, SyntaxPieceLayerDependency, FileIndexCounterDependency on the dep list when M99 P{seq} is to fire; without them the plain-M99 path still works and the P-jump emits a configuration warning. Detection is on the Parsing.M99 sub-object written by M99Syntax (a ParameterizedFlagSyntax) — the keyword \"M99\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. VariableEvaluatorSyntax Pure expression normalizer for Custom Macro B syntax. Walks the parser-stage residue on a single block and inlines numeric values wherever a Fanuc-style variable reference or bracket expression appears — but does not write to any specific store. Routing “where the resolved literal lands” stays in the brand-specific reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableTable's reader, FanucSystemControlVariableSyntax, …) which run after this syntax on the same block. Two passes per block: Assignments normalize — Parsing.Assignments.#nnn entries whose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\") are evaluated via the VariableEvaluatorSyntax.ChainLookup and the RHS string is replaced with the resolved literal (round-trip-safe \"R\"-format). The entry stays in Parsing.Assignments so downstream reader syntaxes consume it as a pure-literal assignment. Iteration follows source order (Parsing.Assignments insertion order). Parsing tree substitution — every string-typed value reachable from Parsing. (axis tags, canned-cycle sub-objects) is parsed; on a successful evaluation the string is replaced with a numeric JsonValue. Failures silently leave the original string and rely on downstream GetParsedDouble(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) at consumer sites to surface VariableExpression--Unevaluated only if the tag is actually read. Lookup chain (first non-null wins, configured per brand preset via RuntimeVariableLookups + IVariableLookup instances on NcDependencyList): Current block's own resolved assignments — built-in to VariableEvaluatorSyntax.ChainLookup; covers same-block forward references in source order (an earlier #nnn=literal is visible to a later RHS that mentions #nnn). Each IRuntimeVariableLookup in RuntimeVariableLookups, in list order. Typical contents for a Fanuc-family preset: LocalVariableLookup (#1-#33), VolatileVariableLookup (#100-#499), FanucPositionVariableLookup (#5001-#5043). Each IVariableLookup on the runner's NcDependencyList, in registration order (RetainedCommonVariableTable, FanucParameterTable, FanucToolOffsetVariableLookup). Each lookup self-gates its id range; the evaluator stays brand- and range-agnostic. Adding a new variable surface is additive: register an IVariableLookup on a dependency or push an IRuntimeVariableLookup onto the per-preset list. Same-block forward reference — when an Assignment RHS references a #nnn that is also being assigned later in the same block (i.e. listed in Parsing.Assignments after the RHS being evaluated), the VariableEvaluatorSyntax.ChainLookup cannot pick up the not-yet-resolved value and falls back to traceback / dependency-table reads — effectively the pre-block value. A VariableEvaluator--SameBlockForwardReference warning is emitted per such RHS so the user is told the source-order semantics were not honoured. Practical impact is near-zero for typical CAM-emitted NC (one assignment per line). VolatileVariableReadingSyntax Obtains values for Fanuc-style non-retained common variables (#100-#499). Reads literal numeric assignments from Parsing.Assignments.#nnn, dict-merges them with the previous block's volatile state, and writes the resulting per-block dictionary into Vars.Volatile. Lifetime is bounded by MachiningSession: within one session the dictionary carries forward block-by-block via this syntax; session restart abandons the SyntaxPiece JSON dataflow and starts fresh. Program-end (M02/M30) clearing is handled by ProgramEndCleanSyntax. Only literal numeric RHS values are consumed by this syntax (#124 = 15. ✓; #100 = #1 + 5 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them and writes the result into the same per-block dictionary. The two syntaxes are decoupled — the evaluator's lookup tracebacks via SyntaxPiece linkage so it does not depend on having run before or after this syntax. Structs MacroFileResolver.ResolvedFile Tri-form resolution result. FileName is the bare matched name; RelPath is that name joined with the folder portion of the dependency (relative when the folder is configured relative, absolute fallback when it isn't); AbsPath is the fully-resolved I/O target." + "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs Classes CallStackUtil Push / pop helpers for the per-block CallStack section. Both produce a fresh deep-cloned JsonObject ready to stamp onto an inlined piece (push site) or onto an M99 return block (pop site); the caller is responsible for deep-cloning again if it distributes the same stamp across multiple pieces of an L-repetition. Pairs with ModalCarrySyntax at the Logic stage: explicit push / pop writes seed the section at frame boundaries, ModalCarry copies it forward to every block in between so each block is self-contained for cache-dump readers and downstream consumers (notably M99 P{seq} reading the top frame's CallerFilePath). LabelScanUtil Shared “re-segment a file and skip pieces until a label matches” scan, used by both FanucGotoSyntax (unconditional GOTO redirect) and SubProgramReturnSyntax (M99 P{seq} jump into the caller file). Reads the file via ReadLines(int, string, string), segments through the provided ISegmenter, runs the caller-supplied probe syntaxes on each candidate block to extract IndexNote.Number, and returns the slice from the first matching block to EOF. Returns null when no block matches — the caller's responsibility to surface the appropriate diagnostic. The probes are idempotent because the downstream Parsing bundle re-runs the same syntaxes on the yielded pieces with no-op effect (the regex patterns no longer match once the N-prefix is consumed and the parenthesised comment stripped). MacroFileResolver Shared subprogram-/macro-file resolver for Fanuc-style O lookups consumed by SubProgramCallSyntax (M98 / M198) and FanucMacroCallSyntax (G65). Single helper so the three path forms — file name, project-relative path, absolute path — are produced together at one site and each caller gets exactly the form it should consume: FileName — bare O####.NC form the resolver matched. Stored in JSON sections (FanucMacroCall, SubProgramCall) as the structural NC-language identifier; independent of which folder the dependency happened to be pointing at, so the JSON stays portable across environments. RelPath — relative path against the project base directory (e.g. \"NC/O1234.NC\"). Used as the IndexedFileLine label so diagnostics on inlined blocks align with the relative form already used for the main file label. AbsPath — absolute path. Used only at the ReadLines(int, string, string) call site for actual disk I/O; never persisted, never returned to JSON. Lives inside the resolver's stack frame and the segmenter's enumeration. Filename lookup order (first match wins) mirrors real Fanuc fallback: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC. Case-insensitive match is delegated to the host filesystem (Windows is, Linux is not). MacroInlineUtil Shared inline mechanism for Fanuc Custom Macro B body expansion — used by both FanucMacroCallSyntax (one-shot) and FanucModalMacroSyntax's expansion phase (modal trigger). Both callers do the same three things on every produced SyntaxPiece: stamp a FanucMacroCall clone, stamp a fresh MacroFrame id, and stamp argument bindings into Vars.Local. Centralising lets the two call sites stay in lock-step — frame allocation, file-index allocation, and the inline-piece JSON shape are guaranteed identical. Frame ids share the same FileIndexCounterDependency counter as file indices — both just need within-session uniqueness and the counter is rewound on session start in lock-step with the pipeline. The main NC file is allocated index 0 first, so all inline frame ids land at > 0 and never collide with main. RetainedCommonVariableReadingSyntax Obtains values for Fanuc-style retained common variables (#500-#999) by consuming literal numeric assignments from Parsing.Assignments.#nnn and writing them straight to a registered RetainedCommonVariableTable. No SyntaxPiece JSON mirror is created — the table is the single source of truth for retained values, and VariableEvaluatorSyntax reads from the table directly. The hincproj round-trip preserves writes across project sessions. Only literal numeric RHS values are consumed by this syntax (#500 = 1.234 ✓; #600 = #500 + 1 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them and writes the result through the same table. The two syntaxes are decoupled. If no RetainedCommonVariableTable is registered on the runner's NcDependencyList, this syntax is a no-op. SubProgramCallSyntax Inlines a Fanuc-style subprogram into the source layer when an M98 or M198 host block is reached. M98 P_ L_ reads the matching O

    file from InternalFolder; M198 P_ reads from ExternalFolder (Fanuc external-storage call — same mechanism as M98, different lookup root). The file is segmented through the host runner's segmenter (SegmenterDependency) and the resulting SyntaxPieces are prepended into layers[0] via PrependSource(IEnumerable); the rest of the pipeline picks them up through ordinary walkNode.Next traversal as if they had always been part of the host file. Pipeline placement: first child of the Fanuc Evaluation BundleSyntax. By the time this runs, M98Syntax / M198Syntax (each a ParameterizedFlagSyntax) have written a Parsing.M98 / Parsing.M198 sub-object carrying the captured P / L parameters. Note: those sub-objects are this syntax's only trigger — \"M98\" / \"M198\" never reach Parsing.Flags, because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. Filename lookup uses a fallback chain: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC — first match wins. Case-insensitive match is delegated to the host filesystem (Windows is, Linux is not). L > 1 inlines the same subprogram L times in series. Each repetition is a fresh segmentation pass so each block gets its own SyntaxPiece with an independent JSON object — the downstream pipeline mutates JSON in place and would clobber sibling repetitions if instances were shared. Not yet supported: M99 P{seq} early return inside a subprogram and partial-program calls (M98 P{seq}{prog} split encoding). Custom Macro B argument-binding calls (G65 / G66 / G67) live in FanucMacroCallSyntax and FanucModalMacroSyntax — those handle the argument-letter-to-#1..#26 binding and the macro-call frame isolation that M98 deliberately does not provide. SubProgramReturnSyntax Consumes Fanuc-style M99 subprogram-return blocks and pops one CallStack frame. Plain M99 relies on the natural pipeline tail — the inlined body's last block is followed in layers[0] by the caller's next block, so the “return” happens implicitly; this syntax only consumes the M99 trigger (so UnconsumedCheckSyntax doesn't warn), stamps a SubProgramReturn diagnostic section, and writes the popped CallStack for downstream blocks to carry. M99 P{seq} additionally redirects control flow to the caller's N{seq} block via ReplaceSource(IEnumerable). The caller's file is resolved from the popped frame's CallerFilePath; the scan uses the same LabelScanUtil.SegmentAndSkipUntilLabel helper as FanucGotoSyntax, with hardcoded Fanuc-default probes (QuoteCommentSyntax + HeadIndexSyntax with symbol \"N\") because the M99 P semantic itself is Fanuc-family-only and Mazak / Syntec follow the same conventions. The iteration is counted against FanucGotoIterationDependency, sharing the same runaway-loop guard as GOTO — keyed on the same (FileName, TargetN) bucket so a tight M98 → M99 P → M98 … loop trips the same threshold. Pipeline placement: same Evaluation bundle slot it always occupied, right after SubProgramCallSyntax at the head. Needs FanucGotoIterationDependency, ProjectFolderDependency, SegmenterDependency, SyntaxPieceLayerDependency, FileIndexCounterDependency on the dep list when M99 P{seq} is to fire; without them the plain-M99 path still works and the P-jump emits a configuration warning. Detection is on the Parsing.M99 sub-object written by M99Syntax (a ParameterizedFlagSyntax) — the keyword \"M99\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. VariableEvaluatorSyntax Pure expression normalizer for Custom Macro B syntax. Walks the parser-stage residue on a single block and inlines numeric values wherever a Fanuc-style variable reference or bracket expression appears — but does not write to any specific store. Routing “where the resolved literal lands” stays in the brand-specific reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableTable's reader, FanucSystemControlVariableSyntax, …) which run after this syntax on the same block. Two passes per block: Assignments normalize — Parsing.Assignments.#nnn entries whose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\") are evaluated via the VariableEvaluatorSyntax.ChainLookup and the RHS string is replaced with the resolved literal (round-trip-safe \"R\"-format). The entry stays in Parsing.Assignments so downstream reader syntaxes consume it as a pure-literal assignment. Iteration follows source order (Parsing.Assignments insertion order). Parsing tree substitution — every string-typed value reachable from Parsing. (axis tags, canned-cycle sub-objects) is parsed; on a successful evaluation the string is replaced with a numeric JsonValue. Failures silently leave the original string and rely on downstream GetParsedDouble(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) at consumer sites to surface VariableExpression--Unevaluated only if the tag is actually read. Lookup chain (first non-null wins, configured per brand preset via RuntimeVariableLookups + IVariableLookup instances on NcDependencyList): Current block's own resolved assignments — built-in to VariableEvaluatorSyntax.ChainLookup; covers same-block forward references in source order (an earlier #nnn=literal is visible to a later RHS that mentions #nnn). Each IRuntimeVariableLookup in RuntimeVariableLookups, in list order. Typical contents for a Fanuc-family preset: LocalVariableLookup (#1-#33), VolatileVariableLookup (#100-#499), FanucPositionVariableLookup (#5001-#5043). Each IVariableLookup on the runner's NcDependencyList, in registration order (RetainedCommonVariableTable, FanucParameterTable, FanucToolOffsetVariableLookup). Each lookup self-gates its id range; the evaluator stays brand- and range-agnostic. Adding a new variable surface is additive: register an IVariableLookup on a dependency or push an IRuntimeVariableLookup onto the per-preset list. Same-block forward reference — when an Assignment RHS references a #nnn that is also being assigned later in the same block (i.e. listed in Parsing.Assignments after the RHS being evaluated), the VariableEvaluatorSyntax.ChainLookup cannot pick up the not-yet-resolved value and falls back to traceback / dependency-table reads — effectively the pre-block value. A VariableEvaluator--SameBlockForwardReference warning is emitted per such RHS so the user is told the source-order semantics were not honoured. Practical impact is near-zero for typical CAM-emitted NC (one assignment per line). Formula mirror tree — when either pass actually performs a non-trivial expression evaluation (i.e. the RHS / tag value was not already a pure literal and the evaluator returned a finite value), the original expression string is mirrored to a parallel Formula. entry at the root of the block JSON. The Parsing.* subtree carries the resolved value (R-format string for Assignments; numeric JsonValue for tags); the Formula.* subtree preserves the source-text expression for diagnostics, round-trip reconstruction, and downstream inspection. Pure-literal RHS / tag values produce no Formula entry — the Parsing value is already the original text. Evaluation failures (parse error, vacant variable, non-finite result) also produce no Formula entry — the original string is still in Parsing.* untouched, no preservation needed. VolatileVariableReadingSyntax Obtains values for Fanuc-style non-retained common variables (#100-#499). Reads literal numeric assignments from Parsing.Assignments.#nnn, dict-merges them with the previous block's volatile state, and writes the resulting per-block dictionary into Vars.Volatile. Lifetime is bounded by MachiningSession: within one session the dictionary carries forward block-by-block via this syntax; session restart abandons the SyntaxPiece JSON dataflow and starts fresh. Program-end (M02/M30) clearing is handled by ProgramEndCleanSyntax. Only literal numeric RHS values are consumed by this syntax (#124 = 15. ✓; #100 = #1 + 5 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them and writes the result into the same per-block dictionary. The two syntaxes are decoupled — the evaluator's lookup tracebacks via SyntaxPiece linkage so it does not depend on having run before or after this syntax. Structs MacroFileResolver.ResolvedFile Tri-form resolution result. FileName is the bare matched name; RelPath is that name joined with the folder portion of the dependency (relative when the folder is configured relative, absolute fallback when it isn't); AbsPath is the fully-resolved I/O target." }, "api/Hi.NcParsers.IGetSentence.html": { "href": "api/Hi.NcParsers.IGetSentence.html", @@ -3944,6 +3914,11 @@ "title": "Interface ISentenceIndexed | HiAPI-C# 2025", "summary": "Interface ISentenceIndexed Namespace Hi.NcParsers Assembly HiMech.dll Abstraction for an object that carries a SentenceIndex — a 0-based ordinal of its source Sentence in NC execution order. Use as a cross-process alignment key (messages, ClStripPos, MachiningStep, etc.) when source order (MixedIndex(IFileLineIndex)) is not enough because SubProgram inline reorders blocks relative to (FileIndex, LineIndex). public interface ISentenceIndexed 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 SentenceIndex 0-based ordinal in pipeline execution order. int SentenceIndex { get; } Property Value int" }, + "api/Hi.NcParsers.ISessionResettable.html": { + "href": "api/Hi.NcParsers.ISessionResettable.html", + "title": "Interface ISessionResettable | HiAPI-C# 2025", + "summary": "Interface ISessionResettable Namespace Hi.NcParsers Assembly HiMech.dll Marker for objects that hold session-scoped runtime state which must be cleared when RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) initializes a new session pipeline (the state.IsInitialized == false edge). Implementers may live on either chain: INcDependency or INcSyntax. SoftNcRunner scans NcDependencyList and NcSyntaxList on the session-init edge and calls OnSessionReset() on every match. Distinct from IPowerResettable: power-reset clears retained-but-volatile state on a controller power cycle (e.g., Fanuc #100-#499), an edge that survives ordinary session boundaries. Session-reset clears state whose lifetime is one pipeline pass (iteration counters, file-index allocators, etc.). public interface ISessionResettable 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) Methods OnSessionReset() Clears the session-scoped subset owned by this object. Called by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) on the same edge that rebuilds the syntax-piece pipeline so a runner reused across sessions does not leak counters / allocators / accumulators from the previous session. void OnSessionReset()" + }, "api/Hi.NcParsers.IndexedSentence.html": { "href": "api/Hi.NcParsers.IndexedSentence.html", "title": "Class IndexedSentence | HiAPI-C# 2025", @@ -4057,12 +4032,12 @@ "api/Hi.NcParsers.Keywords.FanucGoto.html": { "href": "api/Hi.NcParsers.Keywords.FanucGoto.html", "title": "Class FanucGoto | HiAPI-C# 2025", - "summary": "Class FanucGoto Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc Custom Macro B GOTO record. Stamped on the host block by FanucGotoSyntax after the control-flow decision has been made; produced earlier by FanucGotoParsingSyntax as a parsing-stage sub-section (Parsing.FanucGoto) carrying the raw captured fields. Two source forms map to the same shape: GOTO — unconditional jump. Condition is null. IF [] GOTO — conditional jump. Condition holds the expression text from inside the brackets. At parsing time N is a raw token from the source — it may be a literal (\"100\"), a variable reference (\"#1\"), or a bracketed expression (\"#[#2+5]\"). VariableEvaluatorSyntax substitutes a resolved literal back into the same field in the Evaluation bundle; FanucGotoSyntax then int.TryParses the final string to produce an int target. public class FanucGoto Inheritance object FanucGoto 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 Condition Raw boolean expression text from inside the IF [...] brackets, or null for the unconditional form. Evaluator boolean support is pending — until then, FanucGotoSyntax emits a warning and falls through for any non-null Condition. public string Condition { get; set; } Property Value string Fired Whether the GOTO actually redirected control flow on this block. False on conditional GOTOs whose condition evaluated to false, on conditional GOTOs whose condition was not evaluable, and on iteration-limit-exceeded blocks. The host block is preserved in either case so diagnostic readers can still see the call. public bool Fired { get; set; } Property Value bool N Target sequence-number expression — kept as a string so the in-place evaluator can substitute \"#1\" → “3” before the Evaluation stage parses it as an int. public string N { get; set; } Property Value string Term Triggering phrase: “GOTO” for the unconditional form, “IF...GOTO” for the conditional form. public string Term { get; set; } Property Value string" + "summary": "Class FanucGoto Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc Custom Macro B GOTO record. Stamped on the host block by FanucGotoSyntax after the control-flow decision has been made; produced earlier by FanucGotoParsingSyntax as a parsing-stage sub-section (Parsing.FanucGoto) carrying the raw captured fields. Two source forms map to the same shape: GOTO — unconditional jump. Condition is null. IF [] GOTO — conditional jump. Condition holds the expression text from inside the brackets. At parsing time N is a raw token from the source — it may be a literal (\"100\"), a variable reference (\"#1\"), or a bracketed expression (\"#[#2+5]\"). VariableEvaluatorSyntax substitutes a resolved literal back into the same field in the Evaluation bundle; FanucGotoSyntax then int.TryParses the final string to produce an int target. Lifecycle of the condition fields. Condition is written at Parsing time as the raw expression text and substituted in place by VariableEvaluatorSyntax pass-2 — the original text is preserved at Formula.FanucGoto.Condition when substitution succeeds. ConditionEvaluated is the host-level stamp written by FanucGotoSyntax carrying the tri-state truthy outcome. public class FanucGoto Inheritance object FanucGoto 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 Condition Raw boolean expression text from inside the IF [...] brackets at Parsing time; substituted to a numeric JsonValue in place by VariableEvaluatorSyntax when the expression evaluates successfully. The original text survives at Formula.FanucGoto.Condition. Null for the unconditional form. Note: not written on the host-level stamp; the gate outcome lives at ConditionEvaluated. public string Condition { get; set; } Property Value string ConditionEvaluated Tri-state outcome of evaluating the IF-form's boolean condition, stamped on the host block by FanucGotoSyntax: true — condition met (gate fires). false — condition not met (gate falls through silently). null — evaluator could not produce a finite truth value (vacant variable, parse error, NaN / ±∞), or the host block is the unconditional GOTO form. The original expression text is preserved at Formula.FanucGoto.Condition by VariableEvaluatorSyntax. public bool? ConditionEvaluated { get; set; } Property Value bool? Fired Whether the GOTO actually redirected control flow on this block. False on conditional GOTOs whose condition evaluated to false, on conditional GOTOs whose condition was not evaluable, and on iteration-limit-exceeded blocks. The host block is preserved in either case so diagnostic readers can still see the call. public bool Fired { get; set; } Property Value bool N Target sequence-number expression — kept as a string so the in-place evaluator can substitute \"#1\" → “3” before the Evaluation stage parses it as an int. public string N { get; set; } Property Value string Term Triggering phrase: “GOTO” for the unconditional form, “IF...GOTO” for the conditional form. public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.FanucIfThen.html": { "href": "api/Hi.NcParsers.Keywords.FanucIfThen.html", "title": "Class FanucIfThen | HiAPI-C# 2025", - "summary": "Class FanucIfThen Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc Custom Macro B IF [] THEN single-block conditional record. Stamped on the host block by FanucIfThenSyntax after the gate decision; produced earlier by FanucIfThenParsingSyntax as a parsing-stage sub-section (Parsing.FanucIfThen) carrying the raw captured fields plus an internal PendingAssignments sub-object harvested from the body text. Spec: IF [bool-expr] THEN executes only when the condition is truthy. Unlike FanucGoto's conditional form there is no jump — the body affects the current block only, no source splice, no label scan, no iteration watchdog. The most common body shape is a single Custom Macro B assignment (#nnn = ); multiple assignments in one body are also accepted and lifted together. Condition is held as a string at parsing time so VariableEvaluatorSyntax's pass-2 tree walk can substitute it to a numeric JsonValue in place; the FanucIfThenSyntax tail then reads the resolved node polymorphically via the same ReadCondition shape used by FanucGotoSyntax. public class FanucIfThen Inheritance object FanucIfThen 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 Applied Whether the body actually fired on this block. False on conditions that evaluated to zero, on conditions the evaluator could not resolve, and on bodies that did not parse as one or more assignments (a G-code-only body for example, currently unsupported and warned). The host block is preserved in either case so diagnostic readers can still see the IF-THEN call site. public bool Applied { get; set; } Property Value bool BodyText Raw body text after the THEN keyword, retained verbatim for diagnostics and round-trip visibility. The structured sub-section actually lifted on a truthy condition lives at Parsing.FanucIfThen.PendingAssignments, populated by the parsing syntax via NcSyntaxUtil's GrabTagAssignment. public string BodyText { get; set; } Property Value string Condition Raw boolean expression text from inside the IF [...] brackets. String at parsing time; VariableEvaluatorSyntax's pass-2 tree walk substitutes a numeric literal in place when the expression evaluates successfully. FanucIfThenSyntax reads the resulting JSON node polymorphically (number → truthy gate; remaining string → unevaluated warning). public string Condition { get; set; } Property Value string" + "summary": "Class FanucIfThen Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc Custom Macro B IF [] THEN single-block conditional record. Stamped on the host block by FanucIfThenSyntax after the gate decision; produced earlier by FanucIfThenParsingSyntax as a parsing-stage sub-section (Parsing.FanucIfThen) carrying the raw captured fields plus an internal PendingAssignments sub-object harvested from the body text. Spec: IF [bool-expr] THEN executes only when the condition is truthy. Unlike FanucGoto's conditional form there is no jump — the body affects the current block only, no source splice, no label scan, no iteration watchdog. The most common body shape is a single Custom Macro B assignment (#nnn = ); multiple assignments in one body are also accepted and lifted together. Condition is held as a string at parsing time so VariableEvaluatorSyntax's pass-2 tree walk can substitute it to a numeric JsonValue in place; the FanucIfThenSyntax tail then reads the resolved node polymorphically via the same ReadCondition shape used by FanucGotoSyntax. public class FanucIfThen Inheritance object FanucIfThen 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 Applied Whether the body actually fired on this block. False on conditions that evaluated to zero, on conditions the evaluator could not resolve, and on bodies that did not parse as one or more assignments (a G-code-only body for example, currently unsupported and warned). The host block is preserved in either case so diagnostic readers can still see the IF-THEN call site. public bool Applied { get; set; } Property Value bool BodyText Raw body text after the THEN keyword, retained verbatim for diagnostics and round-trip visibility. The structured sub-section actually lifted on a truthy condition lives at Parsing.FanucIfThen.PendingAssignments, populated by the parsing syntax via NcSyntaxUtil's GrabTagAssignment. public string BodyText { get; set; } Property Value string Condition Raw boolean expression text from inside the IF [...] brackets at Parsing time; substituted to a numeric JsonValue in place by VariableEvaluatorSyntax's pass-2 tree walk when the expression evaluates successfully. The original text survives at Formula.FanucIfThen.Condition. Note: not written on the host-level stamp; the gate outcome lives at ConditionEvaluated. public string Condition { get; set; } Property Value string ConditionEvaluated Tri-state outcome of evaluating the IF-form's boolean condition, stamped on the host block by FanucIfThenSyntax: true — condition met (body fires). false — condition not met (body skipped silently). null — evaluator could not produce a finite truth value (vacant variable, parse error, NaN / ±∞). The original expression text is preserved at Formula.FanucIfThen.Condition by VariableEvaluatorSyntax. public bool? ConditionEvaluated { get; set; } Property Value bool?" }, "api/Hi.NcParsers.Keywords.FanucMacroCall.html": { "href": "api/Hi.NcParsers.Keywords.FanucMacroCall.html", @@ -4084,6 +4059,11 @@ "title": "Class FanucProgramNumber | HiAPI-C# 2025", "summary": "Class FanucProgramNumber Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc-family program identifier header that follows a TapeBoundary line — e.g. O1234 or . Wrapper records the surface form so a parsed block can be emitted back to the original notation. public class FanucProgramNumber Inheritance object FanucProgramNumber 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) Fields WrapperAngle Wrapper value for the angle-bracketed form: . public const string WrapperAngle = \"Angle\" Field Value string Remarks Fanuc 30i / 31i / 32i extended program-name notation. Some CAM post-processors emit this at the head of subprogram files. WrapperNone Wrapper value for the bare form: O1234. public const string WrapperNone = \"None\" Field Value string Properties Number The numeric portion of the program identifier, as written (no leading zero normalization). public string Number { get; set; } Property Value string Wrapper Surface form of the wrapping symbols around the O token — one of WrapperNone or WrapperAngle. New values may be added as additional notations are observed; consumers should treat unknown values as round-trip-only. public string Wrapper { get; set; } Property Value string" }, + "api/Hi.NcParsers.Keywords.FanucWhileDo.html": { + "href": "api/Hi.NcParsers.Keywords.FanucWhileDo.html", + "title": "Class FanucWhileDo | HiAPI-C# 2025", + "summary": "Class FanucWhileDo Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc Custom Macro B WHILE/END bounded-loop record. Stamped on the host block by FanucWhileDoSyntax after the control-flow decision has been made; produced earlier by FanucWhileDoParsingSyntax as a parsing-stage sub-section (Parsing.FanucWhileDo) carrying the raw captured fields. Two phrases map to the same shape, distinguished by Term: WHILE [] DO — loop entry. Condition holds the expression text from inside the brackets at parsing time; substituted to a numeric JsonValue by VariableEvaluatorSyntax in place. ConditionEvaluated carries the host-level truthy outcome at stamp time. END — loop terminator. Carries no condition; unconditionally reverse-jumps to the matching WHILE block on every execution (re-evaluation of the entry condition is the WHILE block's responsibility). LoopId is the spec-named \"identification number for nesting\" (the m in DO m / END m). Nested loops must use distinct LoopIds; matching is by exact value. Same-LoopId nesting is spec-undefined and not given special handling here. Active loop frames are carried block-to-block via the top-level WhileFrames JSON section (a JsonObject keyed by LoopId-as-string, each entry recording the BeginLineNo of the WHILE block that opened that frame). Carried by ModalCarrySyntax as part of its Logic tracked keys (mutated in Evaluation, must reach Logic-stage consumers and downstream blocks unchanged). public class FanucWhileDo Inheritance object FanucWhileDo 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 Condition Raw boolean expression text from inside the WHILE's [...] brackets at Parsing time; substituted to a numeric JsonValue in place by VariableEvaluatorSyntax when the expression evaluates successfully. The original text survives at Formula.FanucWhileDo.Condition. Null on the END phrase. Note: not written on the host-level stamp; the gate outcome lives at ConditionEvaluated. public string Condition { get; set; } Property Value string ConditionEvaluated Tri-state outcome of evaluating the WHILE's boolean condition, stamped on the host block by FanucWhileDoSyntax: true — condition met (body executes; loop continues). false — condition not met (loop exits; forward-jump past matching END). null — evaluator could not produce a finite truth value (vacant variable, parse error, NaN / ±∞); loop exits defensively and emits FanucWhileDo--ConditionNotEvaluated. Null also on the END phrase (no condition to evaluate). The original expression text is preserved at Formula.FanucWhileDo.Condition by VariableEvaluatorSyntax. public bool? ConditionEvaluated { get; set; } Property Value bool? LoopId The m identifier from DO m / END m — the spec-named “identification number for nesting”. Nested loops use distinct LoopIds (1–3 typical); WHILE and END pair by exact match. public int LoopId { get; set; } Property Value int Term Triggering phrase: “WHILE...DO” for the loop entry form, “END” for the loop terminator. public string Term { get; set; } Property Value string" + }, "api/Hi.NcParsers.Keywords.Feedrate.html": { "href": "api/Hi.NcParsers.Keywords.Feedrate.html", "title": "Class Feedrate | HiAPI-C# 2025", @@ -4117,7 +4097,7 @@ "api/Hi.NcParsers.Keywords.IArcMotionDef.html": { "href": "api/Hi.NcParsers.Keywords.IArcMotionDef.html", "title": "Interface IArcMotionDef | HiAPI-C# 2025", - "summary": "Interface IArcMotionDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Arc motion data written by CircularMotionSyntax. Stored under the Hi.Motion JSON section alongside IMotionEventDef properties. public interface IArcMotionDef 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) Examples \"Motion\": { \"Mode\": \"G02\", \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 10.0, \"Y\": 5.0, \"Z\": 0.0 }, \"PlaneNormalDir\": 2, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } Properties AdditionalCircleNum Number of additional full circles (for helix with L parameter). int AdditionalCircleNum { get; } Property Value int ArcCenter Arc center in program coordinates (absolute). object ArcCenter { get; } Property Value object IsCcw True for G03 (CCW), false for G02 (CW). bool IsCcw { get; } Property Value bool PlaneNormalDir Perpendicular axis direction (0=X, 1=Y, 2=Z). G17→2, G18→1, G19→0. int PlaneNormalDir { get; } Property Value int" + "summary": "Interface IArcMotionDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Arc motion data written by CircularMotionSyntax. Stored under the MotionEvent JSON section alongside IMotionEventDef properties. The arc plane is read from the modal PlaneSelect section via GetPlaneNormalDir(JsonObject) rather than cached on the event — same source of truth as IsoG68RotationSyntax. public interface IArcMotionDef 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) Examples \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 10.0, \"Y\": 5.0, \"Z\": 0.0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } Properties AdditionalCircleNum Number of additional full circles (for helix with L parameter). int AdditionalCircleNum { get; } Property Value int ArcCenter Arc center in program coordinates (absolute). object ArcCenter { get; } Property Value object IsCcw True for G03 (CCW), false for G02 (CW). bool IsCcw { get; } Property Value bool" }, "api/Hi.NcParsers.Keywords.ICannedCycleDef.html": { "href": "api/Hi.NcParsers.Keywords.ICannedCycleDef.html", @@ -4372,32 +4352,32 @@ "api/Hi.NcParsers.Keywords.html": { "href": "api/Hi.NcParsers.Keywords.html", "title": "Namespace Hi.NcParsers.Keywords | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.Keywords Classes BlockSkip Optional block skip marker extracted from the head of an NC block. ISO 6983 / Fanuc calls this feature Block Delete (BDT switch); Siemens / Syntec / Mazak use the same / prefix with matching behaviour. The section is only present on blocks that carry a / prefix. Whether the block's NC commands are actually skipped at runtime depends on IBlockSkipConfig: Config absent or the Layer bit OFF → the / prefix is consumed, Body is left null, and the rest of the line parses as a regular NC block (comments still take effect). Config present and the Layer bit ON → the rest of the line is moved into Body and cleared from UnparsedText, so downstream parsing syntaxes see nothing and no NC action is emitted. Comment syntaxes run before this one so comments (and any embedded CsScript) still take effect. Not a comment: a comment is static metadata, block skip is a runtime toggle that can change per machine/operator setting. CallFrame One entry in Frames. Holds the caller-side information consumers need to “unwind” or “look back” — currently only the relative file path of the caller, used by SubProgramReturnSyntax on M99 P{seq} to locate the caller's N{seq} block. CallStack JSON-section data shape representing the active call-frame stack on a block — pushed by call-and-inline syntaxes (SubProgramCallSyntax for M98/M198, FanucMacroCallSyntax for G65, and FanucModalMacroSyntax's expansion phase for G66 implicit triggers) and popped by SubProgramReturnSyntax on M99. Every block between push and pop carries the section forward via ModalCarrySyntax; the caller's blocks before push and after pop carry the surrounding stack state (typically empty when running from the main file). The section is wrapped in a JsonObject rather than exposed as a bare JsonArray so it fits ModalCarry's \"deep-clone JsonObject\" carry pattern — the array of frames lives inside Frames. CannedCycle Section key holder + concrete implementation for ICannedCycleDef. Comment Comment extracted from an NC block. Symbol identifies the comment style; Text holds the content without the symbol. Downstream syntaxes (e.g., CsScript) may further trim Text after extracting embedded markers. CompoundMotion Section key holder + concrete implementation for ICompoundMotionDef. Coolant Section key holder + concrete implementation for ICoolantDef. CoordinateOffset Work coordinate offset state written by IsoCoordinateOffsetSyntax. Property names are used as JSON keys via nameof. Managed commands (ISO): G54, G55, G56, G57, G58, G59, G59.1–G59.9. Siemens: G54–G57 + G505–G599 (extended), G500 to cancel. Heidenhain: CYCL DEF 247 (Datum Preset) / CYCL DEF 7 (Datum Shift). CsScript Section-key holder for inline C# scripts attached to an NC block. Carries BeginScript (run before the block's acts) and EndScript (run after). Resolved by CsScriptBeginSemantic and CsScriptEndSemantic. Dwell Section key holder + concrete implementation for IDwellDef. FanucGoto Fanuc Custom Macro B GOTO record. Stamped on the host block by FanucGotoSyntax after the control-flow decision has been made; produced earlier by FanucGotoParsingSyntax as a parsing-stage sub-section (Parsing.FanucGoto) carrying the raw captured fields. Two source forms map to the same shape: GOTO — unconditional jump. Condition is null. IF [] GOTO — conditional jump. Condition holds the expression text from inside the brackets. At parsing time N is a raw token from the source — it may be a literal (\"100\"), a variable reference (\"#1\"), or a bracketed expression (\"#[#2+5]\"). VariableEvaluatorSyntax substitutes a resolved literal back into the same field in the Evaluation bundle; FanucGotoSyntax then int.TryParses the final string to produce an int target. FanucIfThen Fanuc Custom Macro B IF [] THEN single-block conditional record. Stamped on the host block by FanucIfThenSyntax after the gate decision; produced earlier by FanucIfThenParsingSyntax as a parsing-stage sub-section (Parsing.FanucIfThen) carrying the raw captured fields plus an internal PendingAssignments sub-object harvested from the body text. Spec: IF [bool-expr] THEN executes only when the condition is truthy. Unlike FanucGoto's conditional form there is no jump — the body affects the current block only, no source splice, no label scan, no iteration watchdog. The most common body shape is a single Custom Macro B assignment (#nnn = ); multiple assignments in one body are also accepted and lifted together. Condition is held as a string at parsing time so VariableEvaluatorSyntax's pass-2 tree walk can substitute it to a numeric JsonValue in place; the FanucIfThenSyntax tail then reads the resolved node polymorphically via the same ReadCondition shape used by FanucGotoSyntax. FanucMacroCall One-shot custom-macro-call record written by FanucMacroCallSyntax. Lives on both the G65 host block (the caller) and every inlined block of the macro body — so a cache-dump reader can land on any block inside the macro and immediately see “this block belongs to a G65 call of FileName with these argument bindings” without back-walking to find the host. Each inlined block additionally carries the resolved Vars.Local #1-#26 bindings derived from Args (see FanucMacroArgumentMap), so LocalVariableLookup resolves macro args in a single-block lookup. Frame isolation is structural: caller blocks never have Vars.Local written, so after the macro body ends, the next caller block reads null for any #1-#26 without any explicit frame marker. FanucModalMacro Modal-macro-call record left by FanucModalMacroSyntax. Carries Fanuc G66 setup state forward block-to-block until cancelled by G67. The section is also written on the G67 block itself (with Term = “G67”) so cache dumps show the cancel edge; subsequent blocks then carry no section at all. Per-block expansion of the modal call into an actual macro inline at every positioning move is not yet implemented — a FanucModalMacro--NotExpanded warning is emitted on the setup block to flag the simulation gap. The setup state itself is captured faithfully so external tooling can detect \"this block sits inside a G66 modal\" via the carried section. FanucPathSmoothing Section data holder for IFanucPathSmoothingDef. FanucProgramNumber Fanuc-family program identifier header that follows a TapeBoundary line — e.g. O1234 or . Wrapper records the surface form so a parsed block can be emitted back to the original notation. Feedrate Section key holder + concrete implementation for IFeedrateDef. IndexNote JSON-section data shape pairing a single-character address symbol (e.g. ‘O’, ‘N’) with its numeric index, used to annotate program/sequence numbers on an NC block. IsoLocalCoordinateOffset ISO/Fanuc-family local coordinate offset state (G52) written by IsoLocalCoordinateOffsetSyntax. Property names are used as JSON keys via nameof. G52 X Y Z installs a local coordinate-system shift that stacks on top of the active G54-G59 work offset. The cancel mechanism is to write G52 X0 Y0 Z0 (or hit M30 / reset) — there is no separate G code for \"cancel\". The offset vector is therefore always modal: zero is a valid modal value, not a \"disabled\" state, so the section is recorded on every block. Brand-specific kin: Siemens TRANS/ATRANS (which can also carry rotation/scale/mirror) and Heidenhain TRANS DATUM are handled by their own syntaxes and write to their own sections — they do not share this key, because their data shapes are richer. MachineCoordinateState Section key holder for IMachineCoordinateStateDef. MacroFrame Top-level integer marker stamped onto a SyntaxPiece's JSON to identify which call frame the block belongs to. Brand-agnostic by design — written by FanucMacroCallSyntax today, reusable by any future call-inlining syntax (Fanuc G66 modal expansion, Heidenhain LBL CALL, …) that needs local-variable isolation across call boundaries. Semantics: the value is an opaque id; only equality matters. Two blocks with the same MacroFrame id share a call frame (locals visible across them via single-step carry); two blocks with different ids do not. The id 0 is reserved for the main program frame and is returned by Get(JsonObject) when the field is absent — so a plain caller block needs no stamp and yet compares distinct from any inlined frame. Stored as a top-level JSON int (not an object section) so it stays lightweight on every inlined block. Decoupled from FanucMacroCall: that section is a diagnostic record of the call (what file, what args), while MacroFrame is the purely functional marker the local-variable I/O syntaxes consult. MotionEvent Section key holder + concrete implementation for IMotionEventDef. MotionState Section key holder + concrete implementation for IMotionStateDef. PathSmoothing Section key holder for IPathSmoothingDef. PlaneSelect Section key holder for IPlaneSelectDef. Positioning Section key holder + concrete implementation for IPositioningDef. ProgramEnd Section key holder for IProgramEndDef. ProgramStop Section key holder + concrete implementation for IProgramStopDef. RadiusCompensation Section key holder + concrete implementation for IRadiusCompensationDef. SpindleControl Section key holder + concrete implementation for ISpindleControlDef. SpindleOrientation Section key holder + concrete implementation for ISpindleOrientationDef. SpindleSpeed Section key holder + concrete implementation for ISpindleSpeedDef. SubProgramCall Subprogram call record left by SubProgramCallSyntax on the M98 / M198 host block and on every inlined body block. The call itself emits no motion act; this section is bookkeeping so cache dumps and diagnostic readers can see \"this block triggered (or sits inside) an inline of program P\". M98 and M198 share the exact same section shape. The difference between them is purely environmental — which folder the resolver looks in (SubProgramFolderConfig.InternalFolder vs ExternalFolder) — and that lives on the dependency, not in this JSON record. SubProgramReturn Subprogram return record left on the M99 host block by SubProgramReturnSyntax. Return blocks produce no motion acts; this section makes the consumed M99 visible in cache dumps and surfaces the M99 P{seq} jump decision. TapeBoundary Tape leader / trailer line — the literal % that historically marked the start and end of a punched paper-tape program. ISO-style controllers (Fanuc, Mazak, Syntec, Siemens) all preserve it as a file-level boundary marker. Distinct from a comment: the controller uses it as a tape/file delimiter, not as embedded operator text. TiltTransform Concrete class for ITiltTransformDef section serialization. ToolHeightCompensation Section key holder for IToolHeightCompensationDef. Unit Section key holder + concrete implementation for IUnitDef. Vars JSON section schema for per-block variable storage. Each sub-property names a sub-section that holds a { “#nnn”: value } dictionary keyed by Fanuc-style variable id. The sub-sections partition the variable space by lifetime: Local — #1-#33, scope: macro call frame (pushed/popped by G65 / G66 / M99). Volatile — #100-#499, non-retained common; carries block-to-block, cleared by ProgramEndCleanSyntax on M02 / M30. SystemControl — #3000-#3999, controller-side system variables; offline-only round-trip record (real controller effects such as clock reset / alarm trigger / message pause are not simulated). The property types are JsonObject rather than strongly-typed dictionaries because each sub-section's keys are dynamic Fanuc variable ids (#100, #5001, …) discovered at parse time, not a fixed schema. This class exists solely to give the section name and sub-keys stable nameof() targets — instances are never constructed at runtime. Interfaces IArcMotionDef Arc motion data written by CircularMotionSyntax. Stored under the Hi.Motion JSON section alongside IMotionEventDef properties. ICannedCycleDef Canned cycle modal state (Group 09). Captures which cycle is currently active, its return mode (G98/G99), and the resolved absolute parameter set used for modal lookback. Written by CannedCycleResolveSyntax on every block that belongs to the canned-cycle group: cycle code present (G81/G82/G83/G73/G84/G74/G85/G86/G89/G76/G87), modal repeat (cycle still active, only coordinates given), or explicit cancel (G80). Term = \"G80\" is the explicit-cancel sentinel used by FindPreviousActiveCycle(LazyLinkedListNode, string[]) to terminate modal lookback without ambiguity; regular blocks (e.g. G00 X.. Y..) simply omit the section entirely. ICompoundMotionDef Compound motion section definition for commands that produce multiple sub-operations (G28, G53.1, G81, G82, etc.). Contains a ItemsKey array resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil. Item types (discriminated by key presence): Hi.Motion — rapid/feed linear motion (IMotionEventDef + IMachineCoordinateStateDef) Dwell — pause (Time in seconds) SpindleControl — spindle direction change (Direction) SpindleOrientation — oriented spindle stop (OSS) (Angle_deg) ICoolantDef Coolant state (M07 mist / M08 flood / M09 off). Written by CoolantSyntax. Modal — persists until changed. IsOn is the on/off convenience flag (true for M07 and M08, false for M09). Mode carries the abstract kind (Flood / Mist / Off) for consumers that need to distinguish flood vs mist. IDwellDef Dwell/pause section definition for use inside Sequence items. Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActDelay. IFanucPathSmoothingDef Fanuc-specific path smoothing state written by FanucPathSmoothingSyntax. Extends IPathSmoothingDef with the Fanuc G05.1 R argument (precision / smoothness level number, R1..R10 mapping to controller-internal tuning macro variables). Q is binary in current Fanuc firmware (Q0 disable / Q1 enable), so IsEnabled covers it directly — no raw Q field is stored. JSON section key remains nameof(PathSmoothing) so generic readers (cache dumps, modal carry, UI) can cast to IPathSmoothingDef across all controller brands; brand-specific readers cast to IFanucPathSmoothingDef for the extra fields. IFeedrateDef Feedrate state written by FeedrateSyntax. Property names are used as JSON keys via nameof. ISO standard: F command + G94 (per minute) / G95 (per revolution). Supported by all major CNC brands. IFlagsDef JSON section schema describing the modal/non-modal flags that take effect on an NC block. Each entry in Flags is a brand-specific keyword recognized by the soft-NC runtime. IMachineCoordinateStateDef Modal machine-coordinate state — absolute six-axis machine position after the block has executed. Written on every block by motion-related LogicSyntaxs (McAbcSyntax, McAbcXyzFallbackSyntax, McXyzSyntax, MachineCoordSelectSyntax, G53p1RotaryPositionSyntax, ReferenceReturnSyntax); seeded on the init block by HomeMcInitializer; carried across non-motion blocks by ModalCarrySyntax. Only configured axes appear as keys (X/Y/Z/A/B/C). Non-existent axes (e.g., A/B/C on a 3-axis machine) are omitted rather than written as NaN sentinels. IMotionEventDef One-shot motion event — present on every block whose source programmed a motion command, regardless of whether the resulting displacement is non-zero. A redundant G01 X10 on a block already at X10 still gets a MotionEvent; the motion semantics (McLinearMotionSemantic, McArcMotionSemantic, ClLinearMotionSemantic) then early-return on distance <= 0 and emit no IAct. NOT carried forward across blocks. Reason for the \"programmed, not displaced\" definition: Fanuc G66 modal macro fires once per programmed motion command (per Fanuc spec — no distance gate), so FanucModalMacroSyntax.Expansion uses MotionEvent presence as its trigger. Suppressing the section on zero-distance moves would silently change G66 behaviour. The modal sibling MotionState separately latches the Group-01 mode for readers that only need to know \"what G-code is active\". Property names are used as JSON keys via nameof. IMotionStateDef Modal motion state — Group 01 G-code mode (G00 / G01 / G02 / G03 ...). Written on every block by LinearMotionSyntax / CircularMotionSyntax; carried across non-motion blocks by ModalCarrySyntax. Property names are used as JSON keys via nameof. Unlike sibling modal sections (Unit, PlaneSelect, Positioning) which carry both a brand-specific Term and a brand-neutral conventional field, MotionState intentionally keeps only Term: the brand-neutral semantic (\"what kind of motion happened\") lives on the sibling one-shot MotionEvent (Form = McLinear / McArc / ClLinear / ClArc). State here is purely the modal latch of the last Group-01 G-code so downstream FindPrevious* can resume motion-mode bookkeeping. IParsingDef JSON section schema carrying the raw, brand-specific parsing trace for an NC block. The Parsing node holds intermediate parser output used by downstream syntaxes and diagnostics. IPathSmoothingDef Path smoothing state. The base interface is brand-agnostic; controller brands extend it with their own argument fields (e.g. IFanucPathSmoothingDef for Fanuc G05.1 R precision-level). Fanuc-flavour writes are produced by FanucPathSmoothingSyntax. ISO/Fanuc G05.1 Q1 (enable) / G05.1 Q0 (disable): high-precision contour control / AICC / Nano Smoothing. Controller-internal interpolation black box — simulation records the state but does not alter the tool path. IPlaneSelectDef Active plane selection state written by PlaneSelectSyntax. Property names are used as JSON keys via nameof. ISO: G17/G18/G19. Heidenhain: implicit from L/CC syntax. Term carries the brand-specific G-code; Plane stores the conventional, brand-neutral axis-pair name (XY/ZX/YZ). IPositioningDef Modal positioning state — ISO Group 03 (G90 absolute / G91 incremental). Written by PositioningSyntax, consumed by IncrementalResolveSyntax, canned cycle syntaxes, and MachineCoordSelectSyntax. Property names are used as JSON keys via nameof. Term is the brand-specific G-code (Fanuc/ISO G90/G91); Mode is the conventional, brand-neutral name (Absolute / Incremental). IProgramEndDef Program end marker (M02/M30). Written by ProgramEndSyntax. Other syntaxes (e.g. IsoLocalCoordinateOffsetSyntax) read this section to reset modal state instead of detecting M30 directly. IProgramStopDef Program-stop marker (M00 unconditional / M01 optional). Written by ProgramStopSyntax on each block that carries an M00/M01 flag. Non-modal: the section appears only on the exact block where the stop code is present. Distinct from IProgramEndDef (M02/M30, end of program). M00 halts execution unconditionally; the operator must press Cycle Start to resume. M01 is an optional stop gated by the operator's \"Optional Stop\" panel switch — ignored when the switch is off. This parsing-layer section records the NC intent; runtime / semantic layers decide whether to actually pause. IProgramXyzDef JSON section schema carrying the program-coordinate position commanded on the current block. Written by ProgramXyzSyntax before the ProgramToMcTransform chain composes it into machine coordinates. IRadiusCompensationDef Radius compensation state written by RadiusCompensationSyntax. Property names are used as JSON keys via nameof. Managed commands (ISO): G41 (left), G42 (right), G40 (cancel). Heidenhain Klartext maps RL → G41, RR → G42, R0 → G40. When active, the tool path is offset perpendicular to the programmed path by Radius_mm; Side determines left vs right. The root ProgramXyz retains the user-programmed position; MachineCoordinate is overwritten to reflect the compensated path. ISpindleControlDef Spindle control item for use inside ItemsKey arrays. Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActSpindleDirection. ISpindleOrientationDef Oriented spindle stop item for use inside ItemsKey arrays. Commands the spindle to stop at a specific angular position (OSS). Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActSpindleOrientation. ISpindleSpeedDef Spindle speed and direction state written by SpindleSpeedSyntax. Property names are used as JSON keys via nameof. ISO: S command for speed, M03/M04/M05 for direction. Heidenhain: M3/M4/M5. Siemens: M3/M4/M5 or SPOS. Direction is stored as the conventional SpindleDirection enum name (CW/CCW/STOP), not as brand-specific M-codes. ITiltTransformDef Tilt transform state written by tilt transform syntaxes. Property names are used as JSON keys via nameof. Managed commands (ISO/Fanuc): G68 (2D rotation), G68.2 (tilted work plane), G69 (cancel). Siemens equivalent: CYCLE800, ROT/AROT (handled by separate syntax). Heidenhain equivalent: PLANE SPATIAL / PLANE RESET (handled by separate syntax). IToolHeightCompensationDef Tool height compensation state written by ToolHeightOffsetSyntax. Property names are used as JSON keys via nameof. The JSON section can be deserialized to an instance implementing this interface. Managed commands (ISO/Fanuc): G43, G44, G49. Fanuc extension: G43.4 (TCPM — parsed only in Fanuc syntax list). Siemens equivalent: TRAFOOF/TRAORI (handled by separate syntax). Heidenhain equivalent: TOOL CALL / M128/M129 (handled by separate syntax). ITransformationDef Chain of named ProgramXyz → MachineCoordinate transformation entries. Stored as a JsonArray of entries, each with “Source”, “Kind”, and “Mat4d” keys. Each contributing INcSyntax adds or replaces its own entry by source name. GetComposedTransform(JsonObject) composes entries in order: McXyz = ProgramXyz * T[0] * T[1] * ... * T[n]. Kind contour-validity classification. Each entry is either: \"Static\" — the Mat4d is valid for any point along the contour. Tilt, coord-offset, and the kinematic pivot in non-RTCP / rotary-stable blocks are all Static. \"Dynamic\" — the Mat4d is a block-endpoint snapshot of a rotary-state-dependent transform (RTCP rotary-dynamic). Composition still yields a correct endpoint MC, but the matrix is not contour-valid: intermediate CL-point positions cannot be derived by applying it to an interpolated ProgramXyz. The semantic layer (ClLinearMotionSemantic) handles per-step IK separately. Use HasDynamicEntry(JsonObject) to detect the presence of any Dynamic entry on this block. IUnitDef Unit-system state (ISO Group 06: G20 inch / G21 metric). Written by UnitModeSyntax. Modal. HiNC's NC pipeline works exclusively in millimetres. G21 is therefore a no-op confirmation of the default; G20 is reported as an Unsupported Error and callers are expected to pre-convert the NC program to metric before loading. IUnparsedTextDef JSON section schema carrying the residual block text that was not consumed by any registered syntax. Used for diagnostics and round-trip preservation." + "summary": "Namespace Hi.NcParsers.Keywords Classes BlockSkip Optional block skip marker extracted from the head of an NC block. ISO 6983 / Fanuc calls this feature Block Delete (BDT switch); Siemens / Syntec / Mazak use the same / prefix with matching behaviour. The section is only present on blocks that carry a / prefix. Whether the block's NC commands are actually skipped at runtime depends on IBlockSkipConfig: Config absent or the Layer bit OFF → the / prefix is consumed, Body is left null, and the rest of the line parses as a regular NC block (comments still take effect). Config present and the Layer bit ON → the rest of the line is moved into Body and cleared from UnparsedText, so downstream parsing syntaxes see nothing and no NC action is emitted. Comment syntaxes run before this one so comments (and any embedded CsScript) still take effect. Not a comment: a comment is static metadata, block skip is a runtime toggle that can change per machine/operator setting. CallFrame One entry in Frames. Holds the caller-side information consumers need to “unwind” or “look back” — currently only the relative file path of the caller, used by SubProgramReturnSyntax on M99 P{seq} to locate the caller's N{seq} block. CallStack JSON-section data shape representing the active call-frame stack on a block — pushed by call-and-inline syntaxes (SubProgramCallSyntax for M98/M198, FanucMacroCallSyntax for G65, and FanucModalMacroSyntax's expansion phase for G66 implicit triggers) and popped by SubProgramReturnSyntax on M99. Every block between push and pop carries the section forward via ModalCarrySyntax; the caller's blocks before push and after pop carry the surrounding stack state (typically empty when running from the main file). The section is wrapped in a JsonObject rather than exposed as a bare JsonArray so it fits ModalCarry's \"deep-clone JsonObject\" carry pattern — the array of frames lives inside Frames. CannedCycle Section key holder + concrete implementation for ICannedCycleDef. Comment Comment extracted from an NC block. Symbol identifies the comment style; Text holds the content without the symbol. Downstream syntaxes (e.g., CsScript) may further trim Text after extracting embedded markers. CompoundMotion Section key holder + concrete implementation for ICompoundMotionDef. Coolant Section key holder + concrete implementation for ICoolantDef. CoordinateOffset Work coordinate offset state written by IsoCoordinateOffsetSyntax. Property names are used as JSON keys via nameof. Managed commands (ISO): G54, G55, G56, G57, G58, G59, G59.1–G59.9. Siemens: G54–G57 + G505–G599 (extended), G500 to cancel. Heidenhain: CYCL DEF 247 (Datum Preset) / CYCL DEF 7 (Datum Shift). CsScript Section-key holder for inline C# scripts attached to an NC block. Carries BeginScript (run before the block's acts) and EndScript (run after). Resolved by CsScriptBeginSemantic and CsScriptEndSemantic. Dwell Section key holder + concrete implementation for IDwellDef. FanucGoto Fanuc Custom Macro B GOTO record. Stamped on the host block by FanucGotoSyntax after the control-flow decision has been made; produced earlier by FanucGotoParsingSyntax as a parsing-stage sub-section (Parsing.FanucGoto) carrying the raw captured fields. Two source forms map to the same shape: GOTO — unconditional jump. Condition is null. IF [] GOTO — conditional jump. Condition holds the expression text from inside the brackets. At parsing time N is a raw token from the source — it may be a literal (\"100\"), a variable reference (\"#1\"), or a bracketed expression (\"#[#2+5]\"). VariableEvaluatorSyntax substitutes a resolved literal back into the same field in the Evaluation bundle; FanucGotoSyntax then int.TryParses the final string to produce an int target. Lifecycle of the condition fields. Condition is written at Parsing time as the raw expression text and substituted in place by VariableEvaluatorSyntax pass-2 — the original text is preserved at Formula.FanucGoto.Condition when substitution succeeds. ConditionEvaluated is the host-level stamp written by FanucGotoSyntax carrying the tri-state truthy outcome. FanucIfThen Fanuc Custom Macro B IF [] THEN single-block conditional record. Stamped on the host block by FanucIfThenSyntax after the gate decision; produced earlier by FanucIfThenParsingSyntax as a parsing-stage sub-section (Parsing.FanucIfThen) carrying the raw captured fields plus an internal PendingAssignments sub-object harvested from the body text. Spec: IF [bool-expr] THEN executes only when the condition is truthy. Unlike FanucGoto's conditional form there is no jump — the body affects the current block only, no source splice, no label scan, no iteration watchdog. The most common body shape is a single Custom Macro B assignment (#nnn = ); multiple assignments in one body are also accepted and lifted together. Condition is held as a string at parsing time so VariableEvaluatorSyntax's pass-2 tree walk can substitute it to a numeric JsonValue in place; the FanucIfThenSyntax tail then reads the resolved node polymorphically via the same ReadCondition shape used by FanucGotoSyntax. FanucMacroCall One-shot custom-macro-call record written by FanucMacroCallSyntax. Lives on both the G65 host block (the caller) and every inlined block of the macro body — so a cache-dump reader can land on any block inside the macro and immediately see “this block belongs to a G65 call of FileName with these argument bindings” without back-walking to find the host. Each inlined block additionally carries the resolved Vars.Local #1-#26 bindings derived from Args (see FanucMacroArgumentMap), so LocalVariableLookup resolves macro args in a single-block lookup. Frame isolation is structural: caller blocks never have Vars.Local written, so after the macro body ends, the next caller block reads null for any #1-#26 without any explicit frame marker. FanucModalMacro Modal-macro-call record left by FanucModalMacroSyntax. Carries Fanuc G66 setup state forward block-to-block until cancelled by G67. The section is also written on the G67 block itself (with Term = “G67”) so cache dumps show the cancel edge; subsequent blocks then carry no section at all. Per-block expansion of the modal call into an actual macro inline at every positioning move is not yet implemented — a FanucModalMacro--NotExpanded warning is emitted on the setup block to flag the simulation gap. The setup state itself is captured faithfully so external tooling can detect \"this block sits inside a G66 modal\" via the carried section. FanucPathSmoothing Section data holder for IFanucPathSmoothingDef. FanucProgramNumber Fanuc-family program identifier header that follows a TapeBoundary line — e.g. O1234 or . Wrapper records the surface form so a parsed block can be emitted back to the original notation. FanucWhileDo Fanuc Custom Macro B WHILE/END bounded-loop record. Stamped on the host block by FanucWhileDoSyntax after the control-flow decision has been made; produced earlier by FanucWhileDoParsingSyntax as a parsing-stage sub-section (Parsing.FanucWhileDo) carrying the raw captured fields. Two phrases map to the same shape, distinguished by Term: WHILE [] DO — loop entry. Condition holds the expression text from inside the brackets at parsing time; substituted to a numeric JsonValue by VariableEvaluatorSyntax in place. ConditionEvaluated carries the host-level truthy outcome at stamp time. END — loop terminator. Carries no condition; unconditionally reverse-jumps to the matching WHILE block on every execution (re-evaluation of the entry condition is the WHILE block's responsibility). LoopId is the spec-named \"identification number for nesting\" (the m in DO m / END m). Nested loops must use distinct LoopIds; matching is by exact value. Same-LoopId nesting is spec-undefined and not given special handling here. Active loop frames are carried block-to-block via the top-level WhileFrames JSON section (a JsonObject keyed by LoopId-as-string, each entry recording the BeginLineNo of the WHILE block that opened that frame). Carried by ModalCarrySyntax as part of its Logic tracked keys (mutated in Evaluation, must reach Logic-stage consumers and downstream blocks unchanged). Feedrate Section key holder + concrete implementation for IFeedrateDef. IndexNote JSON-section data shape pairing a single-character address symbol (e.g. ‘O’, ‘N’) with its numeric index, used to annotate program/sequence numbers on an NC block. IsoLocalCoordinateOffset ISO/Fanuc-family local coordinate offset state (G52) written by IsoLocalCoordinateOffsetSyntax. Property names are used as JSON keys via nameof. G52 X Y Z installs a local coordinate-system shift that stacks on top of the active G54-G59 work offset. The cancel mechanism is to write G52 X0 Y0 Z0 (or hit M30 / reset) — there is no separate G code for \"cancel\". The offset vector is therefore always modal: zero is a valid modal value, not a \"disabled\" state, so the section is recorded on every block. Brand-specific kin: Siemens TRANS/ATRANS (which can also carry rotation/scale/mirror) and Heidenhain TRANS DATUM are handled by their own syntaxes and write to their own sections — they do not share this key, because their data shapes are richer. MachineCoordinateState Section key holder for IMachineCoordinateStateDef. MacroFrame Top-level integer marker stamped onto a SyntaxPiece's JSON to identify which call frame the block belongs to. Brand-agnostic by design — written by FanucMacroCallSyntax today, reusable by any future call-inlining syntax (Fanuc G66 modal expansion, Heidenhain LBL CALL, …) that needs local-variable isolation across call boundaries. Semantics: the value is an opaque id; only equality matters. Two blocks with the same MacroFrame id share a call frame (locals visible across them via single-step carry); two blocks with different ids do not. The id 0 is reserved for the main program frame and is returned by Get(JsonObject) when the field is absent — so a plain caller block needs no stamp and yet compares distinct from any inlined frame. Stored as a top-level JSON int (not an object section) so it stays lightweight on every inlined block. Decoupled from FanucMacroCall: that section is a diagnostic record of the call (what file, what args), while MacroFrame is the purely functional marker the local-variable I/O syntaxes consult. MotionEvent Section key holder + concrete implementation for IMotionEventDef. MotionState Section key holder + concrete implementation for IMotionStateDef. PathSmoothing Section key holder for IPathSmoothingDef. PlaneSelect Section key holder for IPlaneSelectDef. Positioning Section key holder + concrete implementation for IPositioningDef. ProgramEnd Section key holder for IProgramEndDef. ProgramStop Section key holder + concrete implementation for IProgramStopDef. RadiusCompensation Section key holder + concrete implementation for IRadiusCompensationDef. SpindleControl Section key holder + concrete implementation for ISpindleControlDef. SpindleOrientation Section key holder + concrete implementation for ISpindleOrientationDef. SpindleSpeed Section key holder + concrete implementation for ISpindleSpeedDef. SubProgramCall Subprogram call record left by SubProgramCallSyntax on the M98 / M198 host block and on every inlined body block. The call itself emits no motion act; this section is bookkeeping so cache dumps and diagnostic readers can see \"this block triggered (or sits inside) an inline of program P\". M98 and M198 share the exact same section shape. The difference between them is purely environmental — which folder the resolver looks in (SubProgramFolderConfig.InternalFolder vs ExternalFolder) — and that lives on the dependency, not in this JSON record. SubProgramReturn Subprogram return record left on the M99 host block by SubProgramReturnSyntax. Return blocks produce no motion acts; this section makes the consumed M99 visible in cache dumps and surfaces the M99 P{seq} jump decision. TapeBoundary Tape leader / trailer line — the literal % that historically marked the start and end of a punched paper-tape program. ISO-style controllers (Fanuc, Mazak, Syntec, Siemens) all preserve it as a file-level boundary marker. Distinct from a comment: the controller uses it as a tape/file delimiter, not as embedded operator text. TiltTransform Concrete class for ITiltTransformDef section serialization. ToolHeightCompensation Section key holder for IToolHeightCompensationDef. Unit Section key holder + concrete implementation for IUnitDef. Vars JSON section schema for per-block variable storage. Each sub-property names a sub-section that holds a { “#nnn”: value } dictionary keyed by Fanuc-style variable id. The sub-sections partition the variable space by lifetime: Local — #1-#33, scope: macro call frame (pushed/popped by G65 / G66 / M99). Volatile — #100-#499, non-retained common; carries block-to-block, cleared by ProgramEndCleanSyntax on M02 / M30. SystemControl — #3000-#3999, controller-side system variables; offline-only round-trip record (real controller effects such as clock reset / alarm trigger / message pause are not simulated). The property types are JsonObject rather than strongly-typed dictionaries because each sub-section's keys are dynamic Fanuc variable ids (#100, #5001, …) discovered at parse time, not a fixed schema. This class exists solely to give the section name and sub-keys stable nameof() targets — instances are never constructed at runtime. Interfaces IArcMotionDef Arc motion data written by CircularMotionSyntax. Stored under the MotionEvent JSON section alongside IMotionEventDef properties. The arc plane is read from the modal PlaneSelect section via GetPlaneNormalDir(JsonObject) rather than cached on the event — same source of truth as IsoG68RotationSyntax. ICannedCycleDef Canned cycle modal state (Group 09). Captures which cycle is currently active, its return mode (G98/G99), and the resolved absolute parameter set used for modal lookback. Written by CannedCycleResolveSyntax on every block that belongs to the canned-cycle group: cycle code present (G81/G82/G83/G73/G84/G74/G85/G86/G89/G76/G87), modal repeat (cycle still active, only coordinates given), or explicit cancel (G80). Term = \"G80\" is the explicit-cancel sentinel used by FindPreviousActiveCycle(LazyLinkedListNode, string[]) to terminate modal lookback without ambiguity; regular blocks (e.g. G00 X.. Y..) simply omit the section entirely. ICompoundMotionDef Compound motion section definition for commands that produce multiple sub-operations (G28, G53.1, G81, G82, etc.). Contains a ItemsKey array resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil. Item types (discriminated by key presence): Hi.Motion — rapid/feed linear motion (IMotionEventDef + IMachineCoordinateStateDef) Dwell — pause (Time in seconds) SpindleControl — spindle direction change (Direction) SpindleOrientation — oriented spindle stop (OSS) (Angle_deg) ICoolantDef Coolant state (M07 mist / M08 flood / M09 off). Written by CoolantSyntax. Modal — persists until changed. IsOn is the on/off convenience flag (true for M07 and M08, false for M09). Mode carries the abstract kind (Flood / Mist / Off) for consumers that need to distinguish flood vs mist. IDwellDef Dwell/pause section definition for use inside Sequence items. Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActDelay. IFanucPathSmoothingDef Fanuc-specific path smoothing state written by FanucPathSmoothingSyntax. Extends IPathSmoothingDef with the Fanuc G05.1 R argument (precision / smoothness level number, R1..R10 mapping to controller-internal tuning macro variables). Q is binary in current Fanuc firmware (Q0 disable / Q1 enable), so IsEnabled covers it directly — no raw Q field is stored. JSON section key remains nameof(PathSmoothing) so generic readers (cache dumps, modal carry, UI) can cast to IPathSmoothingDef across all controller brands; brand-specific readers cast to IFanucPathSmoothingDef for the extra fields. IFeedrateDef Feedrate state written by FeedrateSyntax. Property names are used as JSON keys via nameof. ISO standard: F command + G94 (per minute) / G95 (per revolution). Supported by all major CNC brands. IFlagsDef JSON section schema describing the modal/non-modal flags that take effect on an NC block. Each entry in Flags is a brand-specific keyword recognized by the soft-NC runtime. IMachineCoordinateStateDef Modal machine-coordinate state — absolute six-axis machine position after the block has executed. Written on every block by motion-related LogicSyntaxs (McAbcSyntax, McAbcXyzFallbackSyntax, McXyzSyntax, MachineCoordSelectSyntax, G53p1RotaryPositionSyntax, ReferenceReturnSyntax); seeded on the init block by HomeMcInitializer; carried across non-motion blocks by ModalCarrySyntax. Only configured axes appear as keys (X/Y/Z/A/B/C). Non-existent axes (e.g., A/B/C on a 3-axis machine) are omitted rather than written as NaN sentinels. IMotionEventDef One-shot motion event — present on every block whose source programmed a motion command, regardless of whether the resulting displacement is non-zero. A redundant G01 X10 on a block already at X10 still gets a MotionEvent; the motion semantics (McLinearMotionSemantic, McArcMotionSemantic, ClLinearMotionSemantic) then early-return on distance <= 0 and emit no IAct. NOT carried forward across blocks. Reason for the \"programmed, not displaced\" definition: Fanuc G66 modal macro fires once per programmed motion command (per Fanuc spec — no distance gate), so FanucModalMacroSyntax.Expansion uses MotionEvent presence as its trigger. Suppressing the section on zero-distance moves would silently change G66 behaviour. The modal sibling MotionState separately latches the Group-01 mode for readers that only need to know \"what G-code is active\". Property names are used as JSON keys via nameof. IMotionStateDef Modal motion state — Group 01 G-code mode (G00 / G01 / G02 / G03 ...). Written on every block by LinearMotionSyntax / CircularMotionSyntax; carried across non-motion blocks by ModalCarrySyntax. Property names are used as JSON keys via nameof. Unlike sibling modal sections (Unit, PlaneSelect, Positioning) which carry both a brand-specific Term and a brand-neutral conventional field, MotionState intentionally keeps only Term: the brand-neutral semantic (\"what kind of motion happened\") lives on the sibling one-shot MotionEvent (Form = McLinear / McArc / ClLinear / ClArc). State here is purely the modal latch of the last Group-01 G-code so downstream FindPrevious* can resume motion-mode bookkeeping. IParsingDef JSON section schema carrying the raw, brand-specific parsing trace for an NC block. The Parsing node holds intermediate parser output used by downstream syntaxes and diagnostics. IPathSmoothingDef Path smoothing state. The base interface is brand-agnostic; controller brands extend it with their own argument fields (e.g. IFanucPathSmoothingDef for Fanuc G05.1 R precision-level). Fanuc-flavour writes are produced by FanucPathSmoothingSyntax. ISO/Fanuc G05.1 Q1 (enable) / G05.1 Q0 (disable): high-precision contour control / AICC / Nano Smoothing. Controller-internal interpolation black box — simulation records the state but does not alter the tool path. IPlaneSelectDef Active plane selection state written by PlaneSelectSyntax. Property names are used as JSON keys via nameof. ISO: G17/G18/G19. Heidenhain: implicit from L/CC syntax. Term carries the brand-specific G-code; Plane stores the conventional, brand-neutral axis-pair name (XY/ZX/YZ). IPositioningDef Modal positioning state — ISO Group 03 (G90 absolute / G91 incremental). Written by PositioningSyntax, consumed by IncrementalResolveSyntax, canned cycle syntaxes, and MachineCoordSelectSyntax. Property names are used as JSON keys via nameof. Term is the brand-specific G-code (Fanuc/ISO G90/G91); Mode is the conventional, brand-neutral name (Absolute / Incremental). IProgramEndDef Program end marker (M02/M30). Written by ProgramEndSyntax. Other syntaxes (e.g. IsoLocalCoordinateOffsetSyntax) read this section to reset modal state instead of detecting M30 directly. IProgramStopDef Program-stop marker (M00 unconditional / M01 optional). Written by ProgramStopSyntax on each block that carries an M00/M01 flag. Non-modal: the section appears only on the exact block where the stop code is present. Distinct from IProgramEndDef (M02/M30, end of program). M00 halts execution unconditionally; the operator must press Cycle Start to resume. M01 is an optional stop gated by the operator's \"Optional Stop\" panel switch — ignored when the switch is off. This parsing-layer section records the NC intent; runtime / semantic layers decide whether to actually pause. IProgramXyzDef JSON section schema carrying the program-coordinate position commanded on the current block. Written by ProgramXyzSyntax before the ProgramToMcTransform chain composes it into machine coordinates. IRadiusCompensationDef Radius compensation state written by RadiusCompensationSyntax. Property names are used as JSON keys via nameof. Managed commands (ISO): G41 (left), G42 (right), G40 (cancel). Heidenhain Klartext maps RL → G41, RR → G42, R0 → G40. When active, the tool path is offset perpendicular to the programmed path by Radius_mm; Side determines left vs right. The root ProgramXyz retains the user-programmed position; MachineCoordinate is overwritten to reflect the compensated path. ISpindleControlDef Spindle control item for use inside ItemsKey arrays. Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActSpindleDirection. ISpindleOrientationDef Oriented spindle stop item for use inside ItemsKey arrays. Commands the spindle to stop at a specific angular position (OSS). Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActSpindleOrientation. ISpindleSpeedDef Spindle speed and direction state written by SpindleSpeedSyntax. Property names are used as JSON keys via nameof. ISO: S command for speed, M03/M04/M05 for direction. Heidenhain: M3/M4/M5. Siemens: M3/M4/M5 or SPOS. Direction is stored as the conventional SpindleDirection enum name (CW/CCW/STOP), not as brand-specific M-codes. ITiltTransformDef Tilt transform state written by tilt transform syntaxes. Property names are used as JSON keys via nameof. Managed commands (ISO/Fanuc): G68 (2D rotation), G68.2 (tilted work plane), G69 (cancel). Siemens equivalent: CYCLE800, ROT/AROT (handled by separate syntax). Heidenhain equivalent: PLANE SPATIAL / PLANE RESET (handled by separate syntax). IToolHeightCompensationDef Tool height compensation state written by ToolHeightOffsetSyntax. Property names are used as JSON keys via nameof. The JSON section can be deserialized to an instance implementing this interface. Managed commands (ISO/Fanuc): G43, G44, G49. Fanuc extension: G43.4 (TCPM — parsed only in Fanuc syntax list). Siemens equivalent: TRAFOOF/TRAORI (handled by separate syntax). Heidenhain equivalent: TOOL CALL / M128/M129 (handled by separate syntax). ITransformationDef Chain of named ProgramXyz → MachineCoordinate transformation entries. Stored as a JsonArray of entries, each with “Source”, “Kind”, and “Mat4d” keys. Each contributing INcSyntax adds or replaces its own entry by source name. GetComposedTransform(JsonObject) composes entries in order: McXyz = ProgramXyz * T[0] * T[1] * ... * T[n]. Kind contour-validity classification. Each entry is either: \"Static\" — the Mat4d is valid for any point along the contour. Tilt, coord-offset, and the kinematic pivot in non-RTCP / rotary-stable blocks are all Static. \"Dynamic\" — the Mat4d is a block-endpoint snapshot of a rotary-state-dependent transform (RTCP rotary-dynamic). Composition still yields a correct endpoint MC, but the matrix is not contour-valid: intermediate CL-point positions cannot be derived by applying it to an interpolated ProgramXyz. The semantic layer (ClLinearMotionSemantic) handles per-step IK separately. Use HasDynamicEntry(JsonObject) to detect the presence of any Dynamic entry on this block. IUnitDef Unit-system state (ISO Group 06: G20 inch / G21 metric). Written by UnitModeSyntax. Modal. HiNC's NC pipeline works exclusively in millimetres. G21 is therefore a no-op confirmation of the default; G20 is reported as an Unsupported Error and callers are expected to pre-convert the NC program to metric before loading. IUnparsedTextDef JSON section schema carrying the residual block text that was not consumed by any registered syntax. Used for diagnostics and round-trip preservation." }, "api/Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html", "title": "Class BackBoringSyntax | HiAPI-C# 2025", - "summary": "Class BackBoringSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G87 back boring cycle. Supports modal repetition. Cuts upward from Z to R — used to bore the back side of a workpiece. Cycle sequence: Oriented spindle stop (OSS) at current position Rapid (shifted) to init position, then down to bottom Z — tool enters pre-drilled hole without contacting bore wall Shift back to hole center at bottom Spindle start (CW) Feed upward from Z to R-point (back boring cut) Oriented spindle stop at R Tool shift, rapid retract (shifted) to final Z Shift back to center, spindle restart Q specifies the lateral shift distance (mm). Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. public class BackBoringSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object BackBoringSyntax Implements ISituNcSyntax INcSyntax 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 BackBoringSyntax() Initializes a new instance with default settings. public BackBoringSyntax() BackBoringSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public BackBoringSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class BackBoringSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G87 back boring cycle. Supports modal repetition. Cuts upward from Z to R — used to bore the back side of a workpiece. Cycle sequence: Oriented spindle stop (OSS) at current position Rapid (shifted) to init position, then down to bottom Z — tool enters pre-drilled hole without contacting bore wall Shift back to hole center at bottom Spindle start (CW) Feed upward from Z to R-point (back boring cut) Oriented spindle stop at R Tool shift, rapid retract (shifted) to final Z Shift back to center, spindle restart Q specifies the lateral shift distance (mm). Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. public class BackBoringSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object BackBoringSyntax Implements ISituNcSyntax INcSyntax 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) Examples G87 G98 — pre-populated CannedCycle, no #Previous: so initZ = 0, F=600 → 10 mm/s, shift Q=1. Eleven items — the longest canned-cycle item list — split into three phases: enter shifted (OSS, shifted-init, shifted-bottom, back-to- center, spindle-CW); cut upward (feed bottom → R); retract shifted (OSS again, shifted-at-R, shifted-final, back-to-center, spindle- restart). Note that the feed step goes UP (Z=-10 → Z=2), not down, which is the defining feature of back boring: #BeforeBuild: { \"Parsing\": { \"G87\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"Q\": 1, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G87\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"Q\": 1 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G87\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"Q\": 1 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G87\", \"Items\": [ { \"SpindleOrientation\": { \"Angle_deg\": 0 } }, { \"ProgramXyz\": { \"X\": 51, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 51, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"SpindleControl\": { \"Direction\": \"CW\" } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleOrientation\": { \"Angle_deg\": 0 } }, { \"ProgramXyz\": { \"X\": 51, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 51, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"SpindleControl\": { \"Direction\": \"CW\" } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } Constructors BackBoringSyntax() Initializes a new instance with default settings. public BackBoringSyntax() BackBoringSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public BackBoringSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html", "title": "Enum BareG28Behavior | HiAPI-C# 2025", - "summary": "Enum BareG28Behavior Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Writes ICompoundMotionDef section for G28 reference point return. Reads intermediate XYZ from Parsing.G28 (written by G28Syntax) and converts to machine coordinates via ResolveProgramXyz(JsonNode, LazyLinkedListNode, ISentenceCarrier, NcDiagnosticProgress). Must be placed after LinearMotionSyntax in the syntax chain. Removes the IMotionEventDef section written by LinearMotionSyntax (G28 handles its own motion). Overwrites root MachineCoordinateState and ProgramXyz with reference position for subsequent block lookback. public enum BareG28Behavior 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 Alarm = 0 Emit Coord-RefReturn–003 validation error and consume the bare G28 without emitting motion. AllAxesHome = 1 Interpret bare G28 as if every configured axis were listed at its current modal value, so item 0 (intermediate) is a no-op and item 1 sends each configured axis to its home. Requires an IMachineAxisConfig dep; without one the syntax falls back to Alarm. Examples All cases hardcode a TestDeps.HomeMc with X/Y home at 0 and Z home at 100 (typical mill where Z-home is above the table) and leave the ProgramToMcTransform chain at identity so the final ProgramXyz equals MachineCoordinateState. The G28 pattern emits a 2-item CompoundMotion: item 0 is the intermediate point in ProgramXyz, item 1 is the final position in MachineCoordinateState. Axes not present in the G28 block keep the previous-block MC value rather than going home. G91 G28 X0 Y0 Z0 with a #Previous: block carrying MachineCoordinateState=(50,60,70) — all three axes go home, so the final MC is the configured home (0,0,100): #Previous: { \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 70 } } #BeforeBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } } #AfterBuild: { \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 100 } } ] }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 100 } } G91 G28 Z0 — only Z goes to its home; X/Y inherit from the previous block's MC. Item 0's intermediate ProgramXyz takes X/Y from the inherited program XYZ (= previous MC under identity transform) and Z from the literal 0 in the G28 block: #Previous: { \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 70 } } #BeforeBuild: { \"Parsing\": { \"G28\": { \"Z\": 0 } } } #AfterBuild: { \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 50, \"Y\": 60, \"Z\": 0 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 100 } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 60, \"Z\": 100 } } No IHomeMcConfig dep on the dependency list — the syntax early-returns and the G28 sub-section stays in Parsing for an upstream consumer or downstream syntax to handle: #BeforeBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } } #AfterBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } } Rotary cases below add TestDeps.AxisConfig declaring B as rotary and extend HomeMc with the conventional B home at 0°. Each rotary block uses literal B = 45° so item 0's intermediate (45°), item 1's home (0°), and #Previous: modal B (30°) are pairwise distinct — a test that swaps any two values for any other is caught by the assertion. The wrap pass (McAbcCyclicPathSyntax) is a different syntax, so these per-SUT conformance assertions show only the raw literal / canonical-home values written by this syntax, before any cyclic normalization runs. G91 G28 B45. — pure rotary G28. Emits a 2-item CompoundMotion whose items carry only ABC keys in MC; no XYZ ProgramXyz and no XYZ MC because the block doesn't reference X/Y/Z (and the conformance harness doesn't run McXyzSyntax downstream — in the full pipeline that syntax fills root MachineCoordinateState's XYZ from root ProgramXyz, but with no XYZ in the block there's nothing to fill anyway). Root MC.B holds the canonical home for modal carry-forward; root ProgramXyz is not written: #BeforeBuild: { \"Parsing\": { \"G28\": { \"B\": 45 } } } #AfterBuild: { \"MachineCoordinateState\": { \"B\": 0 }, \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"B\": 45 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"B\": 0 } } ] } } G28 X0. B45. mixed XYZ + rotary. Both axis kinds occupy the same two items: item 0 carries the XYZ intermediate ProgramXyz alongside the rotary literal in MC; item 1 carries the final XYZ MC alongside the rotary home in MC. Root MachineCoordinateState here holds only the rotary modal value (B = 0, the home); the XYZ portion of root MC would be filled by the downstream McXyzSyntax in the full pipeline (out of scope for this per-SUT conformance). Root MachineCoordinateState appears first because the rotary-home write happens before CompoundMotion / ProgramXyz are inserted. #Previous: carries B = 30 so the prev rotary modal is distinct from both the literal (45) and the home (0): #Previous: { \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 70, \"B\": 30 } } #BeforeBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"B\": 45 } } } #AfterBuild: { \"MachineCoordinateState\": { \"B\": 0 }, \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 0, \"Y\": 60, \"Z\": 70 }, \"MachineCoordinateState\": { \"B\": 45 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 0, \"Y\": 60, \"Z\": 70, \"B\": 0 } } ] }, \"ProgramXyz\": { \"X\": 0, \"Y\": 60, \"Z\": 70 } } Bare G28 — no axis specifiers — exercises the configurable BareG28 policy. Default Alarm emits Coord-RefReturn--003 and consumes the G28 without motion (the diagnostic surfaces through the NcDiagnosticProgress sink, not the block JSON, so the canonical #AfterBuild is just an empty object): #BeforeBuild: { \"Parsing\": { \"G28\": {} } } #AfterBuild: {} Bare G28 with BareG28 set to AllAxesHome: the syntax synthesises a literal at the inherited program position for every configured linear axis and the previous modal angle for every configured rotary axis (here X/Y/Z taken from the #Previous: MC under the identity ProgramToMcTransform, B taken from the prev modal). Item 0's intermediate therefore equals current (no motion in stage 1) and item 1 sends each axis to its home: #Previous: { \"MachineCoordinateState\": { \"X\": 10, \"Y\": 20, \"Z\": 30, \"B\": 45 } } #BeforeBuild: { \"Parsing\": { \"G28\": {} } } #AfterBuild: { \"MachineCoordinateState\": { \"B\": 0 }, \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 10, \"Y\": 20, \"Z\": 30 }, \"MachineCoordinateState\": { \"B\": 45 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 100, \"B\": 0 } } ] }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 100 } }" + "summary": "Enum BareG28Behavior Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Configurable handling for a G28 block with no axis specifiers (“bare G28”) — value of BareG28. Real Fanuc-class controllers vary: older 0i-M alarms (PS010), some 30i variants send every configured axis to home. Default to Alarm so silent NC bugs surface; opt into AllAxesHome per syntax instance. public enum BareG28Behavior 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 Alarm = 0 Emit Coord-RefReturn–003 validation error and consume the bare G28 without emitting motion. AllAxesHome = 1 Interpret bare G28 as if every configured axis were listed at its current modal value, so item 0 (intermediate) is a no-op and item 1 sends each configured axis to its home. Requires an IMachineAxisConfig dep; without one the syntax falls back to Alarm." }, "api/Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html", "title": "Class BoringCycleSyntax | HiAPI-C# 2025", - "summary": "Class BoringCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G85/G86/G89 boring cycles. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G86 only] Spindle stop at bottom [G89 only] Dwell P seconds at bottom Retract: G85/G89 → feed retract, G86 → rapid retract [G86 only] Spindle restart (CW) after retract G85: feed to Z, feed retract — smooth bore finish. G86: feed to Z, spindle stop (implicit), rapid retract. G89: feed to Z, dwell P, feed retract — like G85 with bottom dwell. Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class BoringCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object BoringCycleSyntax Implements ISituNcSyntax INcSyntax 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) Remarks G86 emits SpindleControl items for spindle stop (before retract) and spindle restart CW (after retract). The restart assumes the previous direction was CW (M03), which is the typical boring setup. Constructors BoringCycleSyntax() Initializes a new instance with default settings. public BoringCycleSyntax() BoringCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public BoringCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class BoringCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G85/G86/G89 boring cycles. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G86 only] Spindle stop at bottom [G89 only] Dwell P seconds at bottom Retract: G85/G89 → feed retract, G86 → rapid retract [G86 only] Spindle restart (CW) after retract G85: feed to Z, feed retract — smooth bore finish. G86: feed to Z, spindle stop (implicit), rapid retract. G89: feed to Z, dwell P, feed retract — like G85 with bottom dwell. Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class BoringCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object BoringCycleSyntax Implements ISituNcSyntax INcSyntax 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) Examples All cases below pre-populate CannedCycle as CannedCycleResolveSyntax would have written it. There is no #Previous:, so GetLastProgramXyz returns Vec3d.Zero → initZ = 0. F is supplied inside the cycle section so ResolveFeedrate(JsonObject, JsonObject, ISentenceCarrier, NcDiagnosticProgress) writes block-level Feedrate (G94 default, 600 mm/min → 10 mm/s) before items are emitted. All cases use G98 return mode so finalZ = initZ = 0. G85 — feed to bottom, feed retract (smooth bore finish). The retract item carries the same Feedrate_mmds as the down-stroke. Four items: #BeforeBuild: { \"Parsing\": { \"G85\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G85\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G85\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G85\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } G86 — feed to bottom, spindle stop, rapid retract, spindle restart CW. First marker to spell out { \"SpindleControl\": { \"Direction\": ... } } items. The retract item carries IsRapid: true rather than a feedrate. Six items: #BeforeBuild: { \"Parsing\": { \"G86\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G86\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G86\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G86\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleControl\": { \"Direction\": \"STOP\" } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"SpindleControl\": { \"Direction\": \"CW\" } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } G89 with P=0.3s dwell — like G85 but inserts a { Dwell: { Time: 0.3 } } item at the bottom before the feed retract. Five items: #BeforeBuild: { \"Parsing\": { \"G89\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600, \"P\": 0.3 } }, \"CannedCycle\": { \"Term\": \"G89\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G89\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G89\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"Dwell\": { \"Time\": 0.3 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } Remarks G86 emits SpindleControl items for spindle stop (before retract) and spindle restart CW (after retract). The restart assumes the previous direction was CW (M03), which is the typical boring setup. Constructors BoringCycleSyntax() Initializes a new instance with default settings. public BoringCycleSyntax() BoringCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public BoringCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html", "title": "Class CannedCycleResolveSyntax | HiAPI-C# 2025", - "summary": "Class CannedCycleResolveSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Resolves the canned-cycle Group-09 state for the current block and writes the result to the CannedCycle section. Active cycle (direct G81..G89 or modal repeat): merges Parsing overrides with previous-cycle stored params, applies G91 incremental-to-absolute conversion and missing-axis fallback, writes CannedCycle with Term, ReturnMode, and Params. The resolved cycle sub-section is left in Parsing under the cycle code for downstream cycle syntaxes (DrillingCycleSyntax, etc.) to read. Explicit cancel (G80 flag present on a non-cycle block): consumes the G80 flag and writes CannedCycle = { Term: \"G80\" }, acting as a hard sentinel for Hi.NcParsers.LogicSyntaxs.CannedCycleSyntaxUtil modal lookback. No Group-09 activity: leaves the block untouched. Must be placed after PositioningSyntax and before the individual cycle syntaxes in the chain. public class CannedCycleResolveSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object CannedCycleResolveSyntax Implements ISituNcSyntax INcSyntax 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) Properties Default Default instance with standard settings. public static CannedCycleResolveSyntax Default { get; } Property Value CannedCycleResolveSyntax Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class CannedCycleResolveSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Resolves the canned-cycle Group-09 state for the current block and writes the result to the CannedCycle section. Active cycle (direct G81..G89 or modal repeat): merges Parsing overrides with previous-cycle stored params, applies G91 incremental-to-absolute conversion and missing-axis fallback, writes CannedCycle with Term, ReturnMode, and Params. The resolved cycle sub-section is left in Parsing under the cycle code for downstream cycle syntaxes (DrillingCycleSyntax, etc.) to read. Explicit cancel (G80 flag present on a non-cycle block): consumes the G80 flag and writes CannedCycle = { Term: \"G80\" }, acting as a hard sentinel for Hi.NcParsers.LogicSyntaxs.CannedCycleSyntaxUtil modal lookback. No Group-09 activity: leaves the block untouched. Must be placed after PositioningSyntax and before the individual cycle syntaxes in the chain. public class CannedCycleResolveSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object CannedCycleResolveSyntax Implements ISituNcSyntax INcSyntax 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) Examples Direct G81 active cycle, no #Previous: (so lastProgramXyz = Vec3d.Zero) and no Positioning mode (so the absolute-coordinate path runs, not G91 incremental). The resolved cycle sub-section is left in Parsing under the cycle code for downstream cycle syntaxes to consume; the CannedCycle section carries the snapshot used for modal lookback. ReturnMode defaults to G98 when neither the current block nor a previous block declares G98/G99: #BeforeBuild: { \"Parsing\": { \"G81\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"Parsing\": { \"G81\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"CannedCycle\": { \"Term\": \"G81\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } Modal repeat: the current block carries only an X override and no cycle code, but #Previous: has an active G81 with stored params. MergeModalCycleSection(JsonObject, JsonObject, ISentenceCarrier, NcDiagnosticProgress) merges X=60 (override) with Y/Z/R from stored params, removes the consumed X from Parsing root, and writes the merged section back to Parsing.G81. ReturnMode inherits “G98” from the previous block's ReturnMode: #Previous: { \"CannedCycle\": { \"Term\": \"G81\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } #BeforeBuild: { \"Parsing\": { \"X\": 60 } } #AfterBuild: { \"Parsing\": { \"G81\": { \"X\": 60, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"CannedCycle\": { \"Term\": \"G81\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 60, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } Explicit G80 cancel: standalone G80 flag with no cycle data. The G80 flag is consumed and CannedCycle = { Term: G80 } is written as a hard sentinel that FindPreviousActiveCycle(LazyLinkedListNode, string[]) reads to terminate modal lookback. No ReturnMode hint here (no G98/G99 flag on the same block): #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G80\"] } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G80\" } } Properties Default Default instance with standard settings. public static CannedCycleResolveSyntax Default { get; } Property Value CannedCycleResolveSyntax Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html", "title": "Class CircularMotionSyntax | HiAPI-C# 2025", - "summary": "Class CircularMotionSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Writes McArc motion for circular commands (ISO G02/G03). Detects motion mode from Flags, reads I/J/K center offsets or R radius from Parsing, computes arc center in program coordinates, and writes a one-shot MotionEvent (form + arc params) plus a modal MotionState (Term). G02/G03 mode is modal (Group 01) — persists across blocks via Term. Arc parameters (I/J/K/R) are per-block and must be present in every arc block. Must be placed before LinearMotionSyntax in the syntax chain. Both share the Group 01 motion slot; whichever writes a MotionEvent first claims it. public class CircularMotionSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object CircularMotionSyntax Implements ISituNcSyntax INcSyntax 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) Examples All cases below have the current block's ProgramXyz already set (as a prior ProgramXyzSyntax would have produced) and run with no #Previous:, so GetLastProgramXyz returns Vec3d.Zero. The G17 XY plane is implicit (no PlaneSelect section means PlaneNormalDir = 2). G02 with I/J — quarter arc from (0,0,0) to (10,0,0) around (5,0,0); I=5 J=0 are incremental offsets from start to center. The G02 flag is consumed (Parsing removed once empty); MotionState + MotionEvent are written: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"PlaneNormalDir\": 2, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } Modal carry of G02: no motion flag on the current block but a #Previous: MotionState.Term = \"G02\" tells us we are still in circular mode. I/J on the current block describe the arc the same way: #Previous: { \"MotionState\": { \"Term\": \"G02\" } } #BeforeBuild: { \"Parsing\": { \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"PlaneNormalDir\": 2, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } No I/J/K/R on the block — the per-block arc data is missing, so the syntax bails out early; the G02 flag stays in Parsing.Flags for some other syntax to act on (or to surface as residue if no one does): #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"] }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"Parsing\": { \"Flags\": [\"G02\"] }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } R-format degenerate (chord = 2R, semicircle): start (0,0,0) → end (10,0,0), R=5. perpDistSq resolves to 0 so the computed center collapses to the chord midpoint (5,0,0); no sqrt drift on this branch: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"R\": 5 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"PlaneNormalDir\": 2, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } R-format non-trivial: G02 90° arc from (0,0,0) to (10,10,0) with R=10. The center comes from the cross-product + sqrt + normalize path inside ResolveCenterFromR(Vec3d, Vec3d, int, bool, double), but for this particular axis-aligned chord the rounding errors cancel and the center lands at exactly (10, 0, 0) — i.e. no ULP drift here, in contrast to e.g. McAbcCyclicPathSyntax's rad/deg round-trip: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"R\": 10 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 10, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 10, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"PlaneNormalDir\": 2, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } G03 CCW with I/J — same geometry as case 0 (start (0,0,0), end (10,0,0), I=5 J=0 → center (5,0,0)) but the G03 flag flips IsCcw to true. Direction is the only differentiating output; arc-center math is unchanged: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G03\"], \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G03\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"PlaneNormalDir\": 2, \"IsCcw\": true, \"AdditionalCircleNum\": 0 } } Full circle G02 — start == end (both (0,0,0)), I=5 J=0 places center off-start at (5,0,0). The isFullCircle guard (chord length < 1e-6 and center-to-start > 1e-6) flips AdditionalCircleNum to 1 so a downstream motion semantic knows to draw the closed loop: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"PlaneNormalDir\": 2, \"IsCcw\": false, \"AdditionalCircleNum\": 1 } } Constructors CircularMotionSyntax() Initializes a new instance with default settings. public CircularMotionSyntax() CircularMotionSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public CircularMotionSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class CircularMotionSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Writes McArc motion for circular commands (ISO G02/G03). Detects motion mode from Flags, reads I/J/K center offsets or R radius from Parsing, computes arc center in program coordinates, and writes a one-shot MotionEvent (form + arc params) plus a modal MotionState (Term). G02/G03 mode is modal (Group 01) — persists across blocks via Term. Arc parameters (I/J/K/R) are per-block and must be present in every arc block. Must be placed before LinearMotionSyntax in the syntax chain. Both share the Group 01 motion slot; whichever writes a MotionEvent first claims it. public class CircularMotionSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object CircularMotionSyntax Implements ISituNcSyntax INcSyntax 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) Examples All cases below have the current block's ProgramXyz already set (as a prior ProgramXyzSyntax would have produced) and run with no #Previous:, so GetLastProgramXyz returns Vec3d.Zero. The G17 XY plane is implicit (no PlaneSelect section means GetPlaneNormalDir(JsonObject) returns 2 — the XY-plane default — so arc math runs with Z as the perpendicular axis). G02 with I/J — quarter arc from (0,0,0) to (10,0,0) around (5,0,0); I=5 J=0 are incremental offsets from start to center. The G02 flag is consumed (Parsing removed once empty); MotionState + MotionEvent are written: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } Modal carry of G02: no motion flag on the current block but a #Previous: MotionState.Term = \"G02\" tells us we are still in circular mode. I/J on the current block describe the arc the same way: #Previous: { \"MotionState\": { \"Term\": \"G02\" } } #BeforeBuild: { \"Parsing\": { \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } No I/J/K/R on the block — the per-block arc data is missing, so the syntax bails out early; the G02 flag stays in Parsing.Flags for some other syntax to act on (or to surface as residue if no one does): #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"] }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"Parsing\": { \"Flags\": [\"G02\"] }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } R-format degenerate (chord = 2R, semicircle): start (0,0,0) → end (10,0,0), R=5. perpDistSq resolves to 0 so the computed center collapses to the chord midpoint (5,0,0); no sqrt drift on this branch: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"R\": 5 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } R-format non-trivial: G02 90° arc from (0,0,0) to (10,10,0) with R=10. The center comes from the cross-product + sqrt + normalize path inside ResolveCenterFromSignedRadius(Vec3d, Vec3d, int, bool, double), but for this particular axis-aligned chord the rounding errors cancel and the center lands at exactly (10, 0, 0) — i.e. no ULP drift here, in contrast to e.g. McAbcCyclicPathSyntax's rad/deg round-trip: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"R\": 10 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 10, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 10, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } G03 CCW with I/J — same geometry as case 0 (start (0,0,0), end (10,0,0), I=5 J=0 → center (5,0,0)) but the G03 flag flips IsCcw to true. Direction is the only differentiating output; arc-center math is unchanged: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G03\"], \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G03\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": true, \"AdditionalCircleNum\": 0 } } Full circle G02 — start == end (both (0,0,0)), I=5 J=0 places center off-start at (5,0,0). Plane-restricted closure (IsClosedOnPlane(Vec3d, Vec3d, int, double)) flips AdditionalCircleNum to 1 so a downstream motion semantic knows to draw the closed loop: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 1 } } Fanuc L parameter (helix turn count, 1-based) — L3 on a start==end closed loop means three total turns, so AdditionalCircleNum = L − 1 = 2. Matches legacy NcProc.cs:442; the L parameter is consumed alongside I/J/K/R: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"I\": 5, \"J\": 0, \"L\": 3 }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 2 } } K-as-pitch helix on G17 (XY plane) — when the plane-normal axis letter (K for G17, J for G18, I for G19) is present on an IJK-format arc, it is the per-turn axial pitch, not a center offset. Here K = −3 mm/turn over ΔZ = −9 mm gives AdditionalCircleNum = floor(−9 / −3) = 3. The center stays on the begin-plane (Z = 0) — ResolveCenterFromIjk zeros the plane-normal component before adding to begin. Matches legacy NcProc.cs:458: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"I\": 5, \"J\": 0, \"K\": -3 }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": -9 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": -9 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 3 } } Constructors CircularMotionSyntax() Initializes a new instance with default settings. public CircularMotionSyntax() CircularMotionSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public CircularMotionSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.CoolantSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.CoolantSyntax.html", @@ -4412,7 +4392,7 @@ "api/Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html", "title": "Class DrillingCycleSyntax | HiAPI-C# 2025", - "summary": "Class DrillingCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G81/G82 drilling cycle (rapid retract). Supports modal repetition. G82 covers G81 — the only difference is an optional dwell (P) at the bottom. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G82 only] Dwell P seconds at bottom Rapid from bottom to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class DrillingCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object DrillingCycleSyntax Implements ISituNcSyntax INcSyntax 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) Remarks G85 (feed retract) and G86 (spindle-stop retract) have different retract behaviors and require separate syntax classes. Constructors DrillingCycleSyntax() Initializes a new instance with default settings. public DrillingCycleSyntax() DrillingCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public DrillingCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class DrillingCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G81/G82 drilling cycle (rapid retract). Supports modal repetition. G82 covers G81 — the only difference is an optional dwell (P) at the bottom. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G82 only] Dwell P seconds at bottom Rapid from bottom to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class DrillingCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object DrillingCycleSyntax Implements ISituNcSyntax INcSyntax 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) Examples All cases below pre-populate CannedCycle as CannedCycleResolveSyntax would have written it (term, return mode, snapshot params) and leave the resolved cycle sub-section in Parsing for this syntax to consume. There is no #Previous:, so GetLastProgramXyz returns Vec3d.Zero → initZ = 0. F is supplied inside the cycle section so ResolveFeedrate(JsonObject, JsonObject, ISentenceCarrier, NcDiagnosticProgress) writes the block-level Feedrate (G94 default, mm/min → mm/s) before the items are emitted. G81 G98 — rapid to init (z=0), rapid to R, feed to bottom Z=-10 at F=600 mm/min → 10 mm/s, rapid back to init Z=0. Four items. The resolved cycle sub-section is removed by CleanupParsing(JsonObject, JsonObject, string); the empty Parsing drops off through CleanupParsing(JsonObject): #BeforeBuild: { \"Parsing\": { \"G81\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G81\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G81\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G81\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } G82 with dwell P=0.5s — inserts a Dwell item between the feed-to-bottom rapid and the final retract, otherwise identical to G81. Five items total: #BeforeBuild: { \"Parsing\": { \"G82\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600, \"P\": 0.5 } }, \"CannedCycle\": { \"Term\": \"G82\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G82\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G82\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"Dwell\": { \"Time\": 0.5 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } Remarks G85 (feed retract) and G86 (spindle-stop retract) have different retract behaviors and require separate syntax classes. Constructors DrillingCycleSyntax() Initializes a new instance with default settings. public DrillingCycleSyntax() DrillingCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public DrillingCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax.html", @@ -4427,17 +4407,17 @@ "api/Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html", "title": "Class FineBoringSyntax | HiAPI-C# 2025", - "summary": "Class FineBoringSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G76 fine boring cycle. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Oriented spindle stop (OSS) Tool shift by Q in +X direction (clear bore wall) Rapid retract (shifted) to final Z Tool shift back to center Spindle restart (CW) Q specifies the lateral shift distance (mm) to avoid dragging the tool across the finished bore surface during retract. Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. public class FineBoringSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FineBoringSyntax Implements ISituNcSyntax INcSyntax 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 FineBoringSyntax() Initializes a new instance with default settings. public FineBoringSyntax() FineBoringSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public FineBoringSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class FineBoringSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G76 fine boring cycle. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Oriented spindle stop (OSS) Tool shift by Q in +X direction (clear bore wall) Rapid retract (shifted) to final Z Tool shift back to center Spindle restart (CW) Q specifies the lateral shift distance (mm) to avoid dragging the tool across the finished bore surface during retract. Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. public class FineBoringSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FineBoringSyntax Implements ISituNcSyntax INcSyntax 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) Examples G76 G98 — pre-populated CannedCycle (as CannedCycleResolveSyntax would have written), no #Previous: so initZ = 0, F=600 → 10 mm/s, shift Q=1 (lateral +X clearance for retract). First marker to spell out { “SpindleOrientation”: { “Angle_deg”: 0 } } — the OSS item produced by CreateSpindleOrientationItem(double). Eight items: init, R, feed-down, OSS, shifted-at-bottom (X=51), shifted-retract (X=51, Z=0), back-to-center (X=50, Z=0), spindle-restart CW: #BeforeBuild: { \"Parsing\": { \"G76\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"Q\": 1, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G76\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"Q\": 1 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G76\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"Q\": 1 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G76\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleOrientation\": { \"Angle_deg\": 0 } }, { \"ProgramXyz\": { \"X\": 51, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 51, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"SpindleControl\": { \"Direction\": \"CW\" } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } Constructors FineBoringSyntax() Initializes a new instance with default settings. public FineBoringSyntax() FineBoringSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public FineBoringSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html", "title": "Class G43p4RtcpSyntax | HiAPI-C# 2025", - "summary": "Class G43p4RtcpSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Handles G43.4 RTCP (Rotary Tool Center Point) activation. Writes the IToolHeightCompensationDef section and the ToolHeightCompensationSource entry in ProgramToMcTransform — a tool-normal · offset_mm translation at the block endpoint ABC. The chain entry is tagged KindDynamic when RTCP is active and ABC changes across the block, and KindStatic otherwise. The RTCP kinematic rotary part (Pn→MC rigid transform) is orthogonal to this syntax and is written by PivotTransformationSyntax on every block, because rotary state remains in effect beyond the RTCP modal (e.g. a non-RTCP G01 after G49 still inherits the last ABC from the program). The \"rotary dynamic\" distinction lives on the chain entry's KindKey alone and is read via HasDynamicEntry(JsonObject) by LinearMotionSyntax to pick ClLinear vs McLinear. G43.4 is used by Fanuc, Mazak, Syntec, and Okuma. Siemens (TRAORI) and Heidenhain (M128) are handled by separate syntaxes. Must be placed after ToolHeightOffsetSyntax (to override the ToolHeightCompensation entry when RTCP is active) and before PivotTransformationSyntax (which runs last in the chain). public class G43p4RtcpSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object G43p4RtcpSyntax Implements ISituNcSyntax INcSyntax 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 G43p4RtcpSyntax() Initializes a new instance with default settings. public G43p4RtcpSyntax() G43p4RtcpSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public G43p4RtcpSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class G43p4RtcpSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Handles G43.4 RTCP (Rotary Tool Center Point) activation. Writes the IToolHeightCompensationDef section and the ToolHeightCompensationSource entry in ProgramToMcTransform — a tool-normal · offset_mm translation at the block endpoint ABC. The chain entry is tagged KindDynamic when RTCP is active and ABC changes across the block, and KindStatic otherwise. The RTCP kinematic rotary part (Pn→MC rigid transform) is orthogonal to this syntax and is written by PivotTransformationSyntax on every block, because rotary state remains in effect beyond the RTCP modal (e.g. a non-RTCP G01 after G49 still inherits the last ABC from the program). The \"rotary dynamic\" distinction lives on the chain entry's KindKey alone and is read via HasDynamicEntry(JsonObject) by LinearMotionSyntax to pick ClLinear vs McLinear. G43.4 is used by Fanuc, Mazak, Syntec, and Okuma. Siemens (TRAORI) and Heidenhain (M128) are handled by separate syntaxes. Must be placed after ToolHeightOffsetSyntax (to override the ToolHeightCompensation entry when RTCP is active) and before PivotTransformationSyntax (which runs last in the chain). public class G43p4RtcpSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object G43p4RtcpSyntax Implements ISituNcSyntax INcSyntax 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) Examples Explicit G43.4 H1 activation with no IMachineKinematics and no IToolOffsetConfig in the dependency list — exercises the activate path on its identity-matrix corner. The section is written with Offset_mm = 0 (no offset table → rawHeight = 0); the height-mat falls back to the no-kinematics branch new Mat4d { Trans = UnitZ * 0 } which collapses to identity; abcChanged is false (no current MC, no previous block) so the entry is tagged KindStatic. #BeforeBuild: { \"Parsing\": { \"G43.4\": { \"H\": \"1\" } } } #AfterBuild: { \"ToolHeightCompensation\": { \"Offset_mm\": 0, \"Term\": \"G43.4\", \"OffsetId\": 1 }, \"ProgramToMcTransform\": [ { \"Source\": \"ToolHeightCompensation\", \"Kind\": \"Static\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1] } ] } G43.4 H1 with ToolOffset(1 → 10 mm), a real XyzabcSolver (table-A / head-B 5-axis), and current block already carrying all three rotary axes in MachineCoordinateState (A=0, B=30, C=0 — as a prior McAbcSyntax in the chain would have written). The height-mat goes through MakeToolHeightMat(IMachineKinematics, Vec3d, double) which probes kinematics.McToPn(Zero, abc).Normal at abc = (0, π/6, 0) to get the tool orientation, then scales by 10 mm. With no previous block, abcChanged is false → entry stays Static. Note: all three ABC must be present (or fall back to the per-axis modal lookback path); a partial section with only B set leaves A/C as NaN and the resulting Mat4d.Trans would serialise as non-finite numbers. #BeforeBuild: { \"Parsing\": { \"G43.4\": { \"H\": \"1\" } }, \"MachineCoordinateState\": { \"A\": 0, \"B\": 30, \"C\": 0 } } #AfterBuild: { \"MachineCoordinateState\": { \"A\": 0, \"B\": 30, \"C\": 0 }, \"ToolHeightCompensation\": { \"Offset_mm\": 10, \"Term\": \"G43.4\", \"OffsetId\": 1 }, \"ProgramToMcTransform\": [ { \"Source\": \"ToolHeightCompensation\", \"Kind\": \"Static\", \"Mat4d\": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.999999999999999, 0, 8.660254037844387, 1 ] } ] } Same setup plus a #Previous: block with MachineCoordinateState.B = 0 + XYZ origin — DidAbcChange(LazyLinkedListNode, IMachineAxisConfig) compares the rotary deltas and finds B changed across the block, so the entry is tagged KindDynamic (signalling that the tool orientation varies along the contour): #Previous: { \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 0, \"A\": 0, \"B\": 0, \"C\": 0 } } #BeforeBuild: { \"Parsing\": { \"G43.4\": { \"H\": \"1\" } }, \"MachineCoordinateState\": { \"A\": 0, \"B\": 30, \"C\": 0 } } #AfterBuild: { \"MachineCoordinateState\": { \"A\": 0, \"B\": 30, \"C\": 0 }, \"ToolHeightCompensation\": { \"Offset_mm\": 10, \"Term\": \"G43.4\", \"OffsetId\": 1 }, \"ProgramToMcTransform\": [ { \"Source\": \"ToolHeightCompensation\", \"Kind\": \"Dynamic\", \"Mat4d\": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.999999999999999, 0, 8.660254037844387, 1 ] } ] } Constructors G43p4RtcpSyntax() Initializes a new instance with default settings. public G43p4RtcpSyntax() G43p4RtcpSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public G43p4RtcpSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html", "title": "Class G53p1RotaryPositionSyntax | HiAPI-C# 2025", - "summary": "Class G53p1RotaryPositionSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G53.1 — non-modal, one-shot rotary axis positioning. Positions the rotary axes (A/B/C) to align the physical tool axis with the active tilted work plane defined by G68.2. XYZ position is unchanged; only rotary axes move via rapid traverse. Requires IsoG68p2TiltSyntax (or equivalent) to have written the tilt transform. Uses IMachineKinematics to solve for the target A/B/C via inverse kinematics. Must be placed after IsoG68p2TiltSyntax (needs tilt data) and before ProgramXyzSyntax in the syntax chain. Writes A/B/C into MachineCoordinateState. Motion is handled by LinearMotionSyntax via modal G00/G01. public class G53p1RotaryPositionSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object G53p1RotaryPositionSyntax Implements ISituNcSyntax INcSyntax 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) Remarks When IMachineKinematics is not available (3-axis config), G53.1 is silently consumed with no positional effect. When G68.2 is not active, a validation error is reported. Optional explicit A/B/C on the G53.1 line (post-processor hints) override the IK result. These are read from Parsing via ConsumeAxis(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) and consumed to prevent McAbcSyntax from double-processing. Constructors G53p1RotaryPositionSyntax() Initializes a new instance with default settings. public G53p1RotaryPositionSyntax() G53p1RotaryPositionSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public G53p1RotaryPositionSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class G53p1RotaryPositionSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G53.1 — non-modal, one-shot rotary axis positioning. Positions the rotary axes (A/B/C) to align the physical tool axis with the active tilted work plane defined by G68.2. XYZ position is unchanged; only rotary axes move via rapid traverse. Requires IsoG68p2TiltSyntax (or equivalent) to have written the tilt transform. Uses IMachineKinematics to solve for the target A/B/C via inverse kinematics. Must be placed after IsoG68p2TiltSyntax (needs tilt data) and before ProgramXyzSyntax in the syntax chain. Writes A/B/C into MachineCoordinateState. Motion is handled by LinearMotionSyntax via modal G00/G01. public class G53p1RotaryPositionSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object G53p1RotaryPositionSyntax Implements ISituNcSyntax INcSyntax 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) Examples No-kinematics dep-guard early-return: standalone G53.1 with no IMachineKinematics dep in the list — the syntax detects the flag, finds no kinematics, and silently consumes the flag via ConsumeFlag. Empty Parsing is then removed by CleanupParsing(JsonObject), so the post-Build block is empty: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G53.1\"] } } #AfterBuild: {} IK happy path — G53.1 with active G68.2 tilt on #Previous:, real XyzabcSolver (table-A / head-B 5-axis), and a TestDeps.AxisConfig(A=Rotary, B=Rotary) dep. The syntax reads the previous block's tilt Mat4d, solves OrientationToMcAbc(tiltMat.AxialNormal) for the rotary ABC, converts radians → degrees, writes MachineCoordinateState with both rotary axes (XYZ inherited from prevMc = Vec3d.Zero when no previous MC exists), and stamps ProgramXyz: #Previous: { \"TiltTransform\": { \"Term\": \"G68.2\", \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 }, \"ProgramToMcTransform\": [ { \"Source\": \"TiltTransform\", \"Kind\": \"Static\", \"Mat4d\": [ 1, 0, 0, 0, 0, 0.8660254037844388, 0.5, 0, 0, -0.5, 0.8660254037844388, 0, 0, 0, 0, 1 ] } ] } #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G53.1\"] } } #AfterBuild: { \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 0, \"A\": 29.942194198514308, \"B\": 0 }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } Explicit ABC override — G53.1 A0 B45 on top of the same G68.2 tilt + kinematics + axis-config set up. The IK still solves, but the explicit A=0 and B=45 overrides what IK returned for those axes; C stays at the IK-solved value (C-axis is not present in the table-A/head-B layout, so the rotaryAxes loop only writes A and B): #Previous: { \"TiltTransform\": { \"Term\": \"G68.2\", \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 }, \"ProgramToMcTransform\": [ { \"Source\": \"TiltTransform\", \"Kind\": \"Static\", \"Mat4d\": [ 1, 0, 0, 0, 0, 0.8660254037844388, 0.5, 0, 0, -0.5, 0.8660254037844388, 0, 0, 0, 0, 1 ] } ] } #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G53.1\"], \"A\": 0, \"B\": 45 } } #AfterBuild: { \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 0, \"A\": 0, \"B\": 45 }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } Remarks When IMachineKinematics is not available (3-axis config), G53.1 is silently consumed with no positional effect. When G68.2 is not active, a validation error is reported. Optional explicit A/B/C on the G53.1 line (post-processor hints) override the IK result. These are read from Parsing via ConsumeAxis(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) and consumed to prevent McAbcSyntax from double-processing. Constructors G53p1RotaryPositionSyntax() Initializes a new instance with default settings. public G53p1RotaryPositionSyntax() G53p1RotaryPositionSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public G53p1RotaryPositionSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.html", @@ -4452,7 +4432,7 @@ "api/Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html", "title": "Class HighSpeedPeckCycleSyntax | HiAPI-C# 2025", - "summary": "Class HighSpeedPeckCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G73 high-speed peck drilling cycle (chip breaking). Supports modal repetition. Drills in increments of depth Q, partially retracting by PeckRetractionDistance_mm between strokes (instead of fully back to R like PeckDrillingCycleSyntax). Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: feed Q deeper, rapid retract by d If remainder exists: feed to bottom Z, rapid retract by d Rapid to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class HighSpeedPeckCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object HighSpeedPeckCycleSyntax Implements ISituNcSyntax INcSyntax 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 HighSpeedPeckCycleSyntax() Initializes a new instance with default settings. public HighSpeedPeckCycleSyntax() HighSpeedPeckCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public HighSpeedPeckCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class HighSpeedPeckCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G73 high-speed peck drilling cycle (chip breaking). Supports modal repetition. Drills in increments of depth Q, partially retracting by PeckRetractionDistance_mm between strokes (instead of fully back to R like PeckDrillingCycleSyntax). Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: feed Q deeper, rapid retract by d If remainder exists: feed to bottom Z, rapid retract by d Rapid to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class HighSpeedPeckCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object HighSpeedPeckCycleSyntax Implements ISituNcSyntax INcSyntax 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) Examples G73 G98 two-stroke chip-break — pre-populated CannedCycle (as CannedCycleResolveSyntax would have written), no #Previous: so initZ = 0, F=600 in the cycle section translated to 10 mm/s. Geometry: R=2, Z=-18, Q=10 → totalFeedLength = 20 → strokeCount = 2, no remainder. FallbackConfig default PeckRetractionDistance_mm = 5 sets the partial retract amount d. Per stroke, the chip-break rapid retracts to strokeZ + d (a small jump, in contrast to PeckDrillingCycleSyntax which rapids fully back to R). G98 final rapid is always emitted (no finalZ != rPoint guard here, unlike the G83 path). Seven items: init, R, feed-stroke1 (z=-8), rapid-to-strokeZ+d (z=-3), feed-stroke2 (z=-18), rapid-to-strokeZ+d (z=-13), final-init (z=0): #BeforeBuild: { \"Parsing\": { \"G73\": { \"X\": 50, \"Y\": 30, \"Z\": -18, \"R\": 2, \"Q\": 10, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G73\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -18, \"R\": 2, \"Q\": 10 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G73\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -18, \"R\": 2, \"Q\": 10 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G73\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -8 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -3 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -18 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -13 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } Constructors HighSpeedPeckCycleSyntax() Initializes a new instance with default settings. public HighSpeedPeckCycleSyntax() HighSpeedPeckCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public HighSpeedPeckCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html", @@ -4472,7 +4452,7 @@ "api/Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html", "title": "Class IsoG68p2TiltSyntax | HiAPI-C# 2025", - "summary": "Class IsoG68p2TiltSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll ISO/Fanuc: resolves G68.2 (tilted work plane) and G69 (cancel). Computes a tilt Mat4d from I/J/K euler angles (Fanuc ZXZ convention) and composes it into ProgramToMcTransform. Managed commands: G68.2, G69 (idempotent with IsoG68RotationSyntax). Siemens equivalent: CYCLE800 (separate syntax). Heidenhain equivalent: PLANE SPATIAL (separate syntax). public class IsoG68p2TiltSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object IsoG68p2TiltSyntax Implements ISituNcSyntax INcSyntax 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) Remarks G68.2 optionally uses IMachineKinematics dependency for IK refinement. The ZXZ euler convention is Fanuc-specific: Rz(K) * Rx(J) * Rz(I) * Translate(origin). Optional A/B/C parameters are post-processor rotary axis hints. When present and IMachineKinematics is available, the tilt is computed as: kinematicRotation(postAbc) * orientationDelta * Translate(origin) where orientationDelta = kinematicRotation(ijkAbc).Inverse * ijkRotation preserves the exact IJK orientation while aligning with the post-processor's solution. Constructors IsoG68p2TiltSyntax() Initializes a new instance with default settings. public IsoG68p2TiltSyntax() IsoG68p2TiltSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public IsoG68p2TiltSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class IsoG68p2TiltSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll ISO/Fanuc: resolves G68.2 (tilted work plane) and G69 (cancel). Computes a tilt Mat4d from I/J/K euler angles (Fanuc ZXZ convention) and composes it into ProgramToMcTransform. Managed commands: G68.2, G69 (idempotent with IsoG68RotationSyntax). Siemens equivalent: CYCLE800 (separate syntax). Heidenhain equivalent: PLANE SPATIAL (separate syntax). public class IsoG68p2TiltSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object IsoG68p2TiltSyntax Implements ISituNcSyntax INcSyntax 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) Examples G69 cancel via TryHandleG69(JsonObject, JsonObject) — the kinematics-free short-circuit path that writes the identity tilt. Standalone G69 — the flag is consumed, TiltTransform is written with Term: \"G69\", and an identity Mat4d entry is added to ProgramToMcTransform so any previously composed tilt rotation is reset: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G69\"] } } #AfterBuild: { \"TiltTransform\": { \"Term\": \"G69\" }, \"ProgramToMcTransform\": [ { \"Source\": \"TiltTransform\", \"Kind\": \"Static\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1] } ] } G68.2 with IJK = (0, 30, 0) and no kinematics dep — exercises the pure ZXZ Fanuc euler math (Rz(K=0) * Rx(J=30°) * Rz(I=0) * Translate(0) = Rx(30°)) without any IK refinement. The TiltTransform section retains the G68.2 ctor params for debug; the chain entry's Mat4d is the rotation matrix: #BeforeBuild: { \"Parsing\": { \"G68.2\": { \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 } } } #AfterBuild: { \"TiltTransform\": { \"Term\": \"G68.2\", \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 }, \"ProgramToMcTransform\": [ { \"Source\": \"TiltTransform\", \"Kind\": \"Static\", \"Mat4d\": [ 1, 0, 0, 0, 0, 0.8660254037844387, 0.49999999999999994, 0, 0, -0.49999999999999994, 0.8660254037844387, 0, 0, 0, 0, 1 ] } ] } Same G68.2 IJK with a real XyzabcSolver (table-A / head-B 5-axis layout) — hasPostAbc is false but the kinematics solves OrientationToMcAbc(tiltByIjk) successfully, so the refinement path ijkAbcOrientation * orientationDelta * Translate(origin) runs. The resulting Mat4d preserves the IJK orientation but aligns it with the kinematic ABC solution: #BeforeBuild: { \"Parsing\": { \"G68.2\": { \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 } } } #AfterBuild: { \"TiltTransform\": { \"Term\": \"G68.2\", \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 }, \"ProgramToMcTransform\": [ { \"Source\": \"TiltTransform\", \"Kind\": \"Static\", \"Mat4d\": [ 1, 0, 0, 0, 0, 0.8660254037844388, 0.5, 0, 0, -0.5, 0.8660254037844388, 0, 0, 0, 0, 1 ] } ] } G68.2 IJK with explicit post-processor rotary hints A=0, B=30 — hasPostAbc is true, kinematics first solves tiltByIjk → ijkMcAbc, then overrides A/B with the explicit values to form postMcAbc; the final Mat4d combines postAbcOrient * orientationDeltaIjkToPost * Translate(origin). The TiltTransform section gains the consumed A and B entries: #BeforeBuild: { \"Parsing\": { \"G68.2\": { \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 }, \"A\": 0, \"B\": 30 } } #AfterBuild: { \"TiltTransform\": { \"Term\": \"G68.2\", \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0, \"A\": 0, \"B\": 30 }, \"ProgramToMcTransform\": [ { \"Source\": \"TiltTransform\", \"Kind\": \"Static\", \"Mat4d\": [ 0.8660254037844387, 0.0002477343364339079, -0.4999999386276948, 0, 0, 0.9999998772553897, 0.0004954686728678159, 0, 0.49999999999999994, -0.00042908845748289027, 0.8660252974844881, 0, 0, 0, 0, 1 ] } ] } Remarks G68.2 optionally uses IMachineKinematics dependency for IK refinement. The ZXZ euler convention is Fanuc-specific: Rz(K) * Rx(J) * Rz(I) * Translate(origin). Optional A/B/C parameters are post-processor rotary axis hints. When present and IMachineKinematics is available, the tilt is computed as: kinematicRotation(postAbc) * orientationDelta * Translate(origin) where orientationDelta = kinematicRotation(ijkAbc).Inverse * ijkRotation preserves the exact IJK orientation while aligning with the post-processor's solution. Constructors IsoG68p2TiltSyntax() Initializes a new instance with default settings. public IsoG68p2TiltSyntax() IsoG68p2TiltSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public IsoG68p2TiltSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax.html", @@ -4512,12 +4492,12 @@ "api/Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html", "title": "Class PeckDrillingCycleSyntax | HiAPI-C# 2025", - "summary": "Class PeckDrillingCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G83 peck drilling cycle. Supports modal repetition. Drills in increments of depth Q, fully retracting to R between strokes. Cycle sequence (per stroke): Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: rapid to clearance above previous depth, feed Q deeper, rapid back to R If remainder exists: feed to bottom Z, rapid to R Rapid from R/bottom to final (G98 → init Z, G99 → R) Retraction distance is read from ICannedCycleConfig (Fanuc #4002 / Syntec Pr4002, or FallbackConfig fallback). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class PeckDrillingCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object PeckDrillingCycleSyntax Implements ISituNcSyntax INcSyntax 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) Remarks G73 (high-speed peck) retracts only a small distance instead of fully back to R — see HighSpeedPeckCycleSyntax. Constructors PeckDrillingCycleSyntax() Initializes a new instance with default settings. public PeckDrillingCycleSyntax() PeckDrillingCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public PeckDrillingCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class PeckDrillingCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G83 peck drilling cycle. Supports modal repetition. Drills in increments of depth Q, fully retracting to R between strokes. Cycle sequence (per stroke): Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: rapid to clearance above previous depth, feed Q deeper, rapid back to R If remainder exists: feed to bottom Z, rapid to R Rapid from R/bottom to final (G98 → init Z, G99 → R) Retraction distance is read from ICannedCycleConfig (Fanuc #4002 / Syntec Pr4002, or FallbackConfig fallback). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class PeckDrillingCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object PeckDrillingCycleSyntax Implements ISituNcSyntax INcSyntax 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) Examples Both cases below pre-populate CannedCycle as CannedCycleResolveSyntax would have written it. There is no #Previous:, so GetLastProgramXyz returns Vec3d.Zero → initZ = 0. A FallbackConfig dep with the default PeckRetractionDistance_mm = 5 is injected via BuildAndDump(..., deps:). Cycle parameters are chosen so totalFeedLength = R − bottomZ = 10 and Q = 10 → exactly one stroke, no remainder; the items list stays minimal. G83 G98 — rapid to init (z=0), rapid to R=2, feed to bottom Z=-8 at F=600 mm/min → 10 mm/s, rapid back to R=2, then a final rapid to init Z=0 (G98). Five items: #BeforeBuild: { \"Parsing\": { \"G83\": { \"X\": 50, \"Y\": 30, \"Z\": -8, \"R\": 2, \"Q\": 10, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G83\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -8, \"R\": 2, \"Q\": 10 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G83\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -8, \"R\": 2, \"Q\": 10 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G83\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -8 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } G83 G99 — same cycle but the return mode is R-point. Since the retract-to-R rapid already lands at z = R, the finalZ != rPoint guard skips the extra final-rapid item. Four items, and the block's ProgramXyz lookback anchor lands at R-point: #BeforeBuild: { \"Parsing\": { \"G83\": { \"X\": 50, \"Y\": 30, \"Z\": -8, \"R\": 2, \"Q\": 10, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G83\", \"ReturnMode\": \"G99\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -8, \"R\": 2, \"Q\": 10 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G83\", \"ReturnMode\": \"G99\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -8, \"R\": 2, \"Q\": 10 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G83\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -8 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 } } Remarks G73 (high-speed peck) retracts only a small distance instead of fully back to R — see HighSpeedPeckCycleSyntax. Constructors PeckDrillingCycleSyntax() Initializes a new instance with default settings. public PeckDrillingCycleSyntax() PeckDrillingCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public PeckDrillingCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html", "title": "Class PivotTransformationSyntax | HiAPI-C# 2025", - "summary": "Class PivotTransformationSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Writes the PivotTransformSource entry into ProgramToMcTransform on every block, capturing the Pn→MC kinematic rigid transform for the block's endpoint rotary state. Mirrors legacy HardNcLine.GetProgramXyz's use of McToPn(DVec3d) — without this entry, the transform chain would miss the rotary rotation on any block whose MachineCoordinate.ABC is non-zero, and McXyzSyntax (and ProgramXyzSyntax's inverse lookback) would silently drift. Scope is not limited to RTCP modal: as long as rotary axes are physically at a non-zero position (e.g. after a non-RTCP G00 B90 plus any subsequent motion), the kinematic chain still contributes a non-identity rigid transform that must appear in the endpoint chain. G43p4RtcpSyntax is orthogonal and only governs the dynamic-rotary KindKey tagging used by LinearMotionSyntax to pick the motion form. Chain position: must run after all Pn-frame writers (IsoG68p2TiltSyntax, ToolHeightOffsetSyntax, G43p4RtcpSyntax, IsoCoordinateOffsetSyntax, brand-specific coord offset syntaxes) so the PivotTransform entry naturally lands as the last chain element. Must run before McXyzSyntax / ProgramXyzSyntax so they see the completed chain. Silently no-ops when IMachineKinematics is absent (3-axis configurations without rotary kinematics). public class PivotTransformationSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object PivotTransformationSyntax Implements ISituNcSyntax INcSyntax 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 PivotTransformationSyntax() Initializes a new instance with default settings. public PivotTransformationSyntax() PivotTransformationSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public PivotTransformationSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class PivotTransformationSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Writes the PivotTransformSource entry into ProgramToMcTransform on every block, capturing the Pn→MC kinematic rigid transform for the block's endpoint rotary state. Mirrors legacy HardNcLine.GetProgramXyz's use of McToPn(DVec3d) — without this entry, the transform chain would miss the rotary rotation on any block whose MachineCoordinate.ABC is non-zero, and McXyzSyntax (and ProgramXyzSyntax's inverse lookback) would silently drift. Scope is not limited to RTCP modal: as long as rotary axes are physically at a non-zero position (e.g. after a non-RTCP G00 B90 plus any subsequent motion), the kinematic chain still contributes a non-identity rigid transform that must appear in the endpoint chain. G43p4RtcpSyntax is orthogonal and only governs the dynamic-rotary KindKey tagging used by LinearMotionSyntax to pick the motion form. Chain position: must run after all Pn-frame writers (IsoG68p2TiltSyntax, ToolHeightOffsetSyntax, G43p4RtcpSyntax, IsoCoordinateOffsetSyntax, brand-specific coord offset syntaxes) so the PivotTransform entry naturally lands as the last chain element. Must run before McXyzSyntax / ProgramXyzSyntax so they see the completed chain. Silently no-ops when IMachineKinematics is absent (3-axis configurations without rotary kinematics). public class PivotTransformationSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object PivotTransformationSyntax Implements ISituNcSyntax INcSyntax 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) Examples Identity probe — a TestDeps.Kinematics stub that makes McToPn pass through XYZ and return a fixed UnitZ normal, so MakePivotTransformMat(IMachineKinematics, Vec3d)'s four-basis probing returns identity K(0) and K(abc), and the product K(0) * K(abc).GetInverse() collapses to identity. With no current or previous MachineCoordinateState, endpoint ABC defaults to (0,0,0); no dynamic entries exist yet so the entry is tagged KindStatic. Case for the dep-guard contract only; the real kinematics paths are covered by the cases below. #BeforeBuild: {} #AfterBuild: { \"ProgramToMcTransform\": [ { \"Source\": \"PivotTransform\", \"Kind\": \"Static\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1] } ] } Real XyzabcSolver (table-A / head-B 5-axis layout [O][Z][A][w];[O][Y][X][B][S][t]) with current block declaring MachineCoordinateState.A = 45 — endpoint ABC = (π/4, 0, 0) radians. Table-side A rotation moves the tool position in the workpiece frame, so MakePivotTransformMat's four-basis probe returns a non-identity rigid matrix. The exact Mat4d below was captured from BuildAndDump's actual output (per gotcha #2: rad/deg trig drift, always dump first): #BeforeBuild: { \"MachineCoordinateState\": { \"A\": 45 } } #AfterBuild: { \"MachineCoordinateState\": { \"A\": 45 }, \"ProgramToMcTransform\": [ { \"Source\": \"PivotTransform\", \"Kind\": \"Static\", \"Mat4d\": [ 1, 0, 0, 0, 0, 0.7071067811865475, -0.7071067811865475, 0, 0, 0.7071067811865475, 0.7071067811865475, 0, 0, 0, 0, 1 ] } ] } Stub TestDeps.Kinematics with a pre-existing Dynamic chain entry on the current block (as G43p4RtcpSyntax would have written when RTCP is dynamic). HasDynamicEntry(JsonObject) returns true so the PivotTransform entry is tagged KindDynamic even though the math itself collapses to identity: #BeforeBuild: { \"ProgramToMcTransform\": [ { \"Source\": \"ToolHeightCompensation\", \"Kind\": \"Dynamic\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1] } ] } #AfterBuild: { \"ProgramToMcTransform\": [ { \"Source\": \"ToolHeightCompensation\", \"Kind\": \"Dynamic\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1] }, { \"Source\": \"PivotTransform\", \"Kind\": \"Dynamic\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1] } ] } Constructors PivotTransformationSyntax() Initializes a new instance with default settings. public PivotTransformationSyntax() PivotTransformationSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public PivotTransformationSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax.html", @@ -4557,7 +4537,7 @@ "api/Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html", "title": "Class ReferenceReturnSyntax | HiAPI-C# 2025", - "summary": "Class ReferenceReturnSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G28 reference point return syntax. Behaviour is documented in detail on the example attached to BareG28Behavior; this class is the ISituNcSyntax implementation that the BareG28 property configures. public class ReferenceReturnSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object ReferenceReturnSyntax Implements ISituNcSyntax INcSyntax 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 ReferenceReturnSyntax() Initializes a new instance with default settings (BareG28 = Alarm). public ReferenceReturnSyntax() ReferenceReturnSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public ReferenceReturnSyntax(XElement src) Parameters src XElement Source XML element. Properties BareG28 Behaviour for a G28 block with no axis specifiers. Defaults to Alarm. public BareG28Behavior BareG28 { get; set; } Property Value BareG28Behavior Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class ReferenceReturnSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Writes ICompoundMotionDef section for G28 reference point return. Reads intermediate XYZ from Parsing.G28 (written by G28Syntax) and converts to machine coordinates via ResolveProgramXyz(JsonNode, LazyLinkedListNode, ISentenceCarrier, NcDiagnosticProgress). Must be placed after LinearMotionSyntax in the syntax chain. Removes the IMotionEventDef section written by LinearMotionSyntax (G28 handles its own motion). Overwrites root MachineCoordinateState and ProgramXyz with reference position for subsequent block lookback. public class ReferenceReturnSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object ReferenceReturnSyntax Implements ISituNcSyntax INcSyntax 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) Examples All cases hardcode a TestDeps.HomeMc with X/Y home at 0 and Z home at 100 (typical mill where Z-home is above the table) and leave the ProgramToMcTransform chain at identity so the final ProgramXyz equals MachineCoordinateState. The G28 pattern emits a 2-item CompoundMotion: item 0 is the intermediate point in ProgramXyz, item 1 is the final position in MachineCoordinateState. Axes not present in the G28 block keep the previous-block MC value rather than going home. G91 G28 X0 Y0 Z0 with a #Previous: block carrying MachineCoordinateState=(50,60,70) — all three axes go home, so the final MC is the configured home (0,0,100): #Previous: { \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 70 } } #BeforeBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } } #AfterBuild: { \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 100 } } ] }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 100 } } G91 G28 Z0 — only Z goes to its home; X/Y inherit from the previous block's MC. Item 0's intermediate ProgramXyz takes X/Y from the inherited program XYZ (= previous MC under identity transform) and Z from the literal 0 in the G28 block: #Previous: { \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 70 } } #BeforeBuild: { \"Parsing\": { \"G28\": { \"Z\": 0 } } } #AfterBuild: { \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 50, \"Y\": 60, \"Z\": 0 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 100 } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 60, \"Z\": 100 } } No IHomeMcConfig dep on the dependency list — the syntax early-returns and the G28 sub-section stays in Parsing for an upstream consumer or downstream syntax to handle: #BeforeBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } } #AfterBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } } Rotary cases below add TestDeps.AxisConfig declaring B as rotary and extend HomeMc with the conventional B home at 0°. Each rotary block uses literal B = 45° so item 0's intermediate (45°), item 1's home (0°), and #Previous: modal B (30°) are pairwise distinct — a test that swaps any two values for any other is caught by the assertion. The wrap pass (McAbcCyclicPathSyntax) is a different syntax, so these per-SUT conformance assertions show only the raw literal / canonical-home values written by this syntax, before any cyclic normalization runs. G91 G28 B45. — pure rotary G28. Emits a 2-item CompoundMotion whose items carry only ABC keys in MC; no XYZ ProgramXyz and no XYZ MC because the block doesn't reference X/Y/Z (and the conformance harness doesn't run McXyzSyntax downstream — in the full pipeline that syntax fills root MachineCoordinateState's XYZ from root ProgramXyz, but with no XYZ in the block there's nothing to fill anyway). Root MC.B holds the canonical home for modal carry-forward; root ProgramXyz is not written: #BeforeBuild: { \"Parsing\": { \"G28\": { \"B\": 45 } } } #AfterBuild: { \"MachineCoordinateState\": { \"B\": 0 }, \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"B\": 45 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"B\": 0 } } ] } } G28 X0. B45. mixed XYZ + rotary. Both axis kinds occupy the same two items: item 0 carries the XYZ intermediate ProgramXyz alongside the rotary literal in MC; item 1 carries the final XYZ MC alongside the rotary home in MC. Root MachineCoordinateState here holds only the rotary modal value (B = 0, the home); the XYZ portion of root MC would be filled by the downstream McXyzSyntax in the full pipeline (out of scope for this per-SUT conformance). Root MachineCoordinateState appears first because the rotary-home write happens before CompoundMotion / ProgramXyz are inserted. #Previous: carries B = 30 so the prev rotary modal is distinct from both the literal (45) and the home (0): #Previous: { \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 70, \"B\": 30 } } #BeforeBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"B\": 45 } } } #AfterBuild: { \"MachineCoordinateState\": { \"B\": 0 }, \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 0, \"Y\": 60, \"Z\": 70 }, \"MachineCoordinateState\": { \"B\": 45 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 0, \"Y\": 60, \"Z\": 70, \"B\": 0 } } ] }, \"ProgramXyz\": { \"X\": 0, \"Y\": 60, \"Z\": 70 } } Bare G28 — no axis specifiers — exercises the configurable BareG28 policy. Default Alarm emits Coord-RefReturn--003 and consumes the G28 without motion (the diagnostic surfaces through the NcDiagnosticProgress sink, not the block JSON, so the canonical #AfterBuild is just an empty object): #BeforeBuild: { \"Parsing\": { \"G28\": {} } } #AfterBuild: {} Bare G28 with BareG28 set to AllAxesHome: the syntax synthesises a literal at the inherited program position for every configured linear axis and the previous modal angle for every configured rotary axis (here X/Y/Z taken from the #Previous: MC under the identity ProgramToMcTransform, B taken from the prev modal). Item 0's intermediate therefore equals current (no motion in stage 1) and item 1 sends each axis to its home: #Previous: { \"MachineCoordinateState\": { \"X\": 10, \"Y\": 20, \"Z\": 30, \"B\": 45 } } #BeforeBuild: { \"Parsing\": { \"G28\": {} } } #AfterBuild: { \"MachineCoordinateState\": { \"B\": 0 }, \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 10, \"Y\": 20, \"Z\": 30 }, \"MachineCoordinateState\": { \"B\": 45 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 100, \"B\": 0 } } ] }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 100 } } Constructors ReferenceReturnSyntax() Initializes a new instance with default settings (BareG28 = Alarm). public ReferenceReturnSyntax() ReferenceReturnSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public ReferenceReturnSyntax(XElement src) Parameters src XElement Source XML element. Properties BareG28 Behaviour for a G28 block with no axis specifiers. Defaults to Alarm. public BareG28Behavior BareG28 { get; set; } Property Value BareG28Behavior Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.html", @@ -4582,7 +4562,7 @@ "api/Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html", "title": "Class TappingCycleSyntax | HiAPI-C# 2025", - "summary": "Class TappingCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G84 (right-hand) / G74 (left-hand) tapping cycles. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Spindle reverse at bottom Feed retract to final Z (G98 → init Z, G99 → R) Spindle restore to forward direction G84: forward = CW (M03), reverse = CCW (M04). G74: forward = CCW (M04), reverse = CW (M03). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class TappingCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object TappingCycleSyntax Implements ISituNcSyntax INcSyntax 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 TappingCycleSyntax() Initializes a new instance with default settings. public TappingCycleSyntax() TappingCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public TappingCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class TappingCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G84 (right-hand) / G74 (left-hand) tapping cycles. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Spindle reverse at bottom Feed retract to final Z (G98 → init Z, G99 → R) Spindle restore to forward direction G84: forward = CW (M03), reverse = CCW (M04). G74: forward = CCW (M04), reverse = CW (M03). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class TappingCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object TappingCycleSyntax Implements ISituNcSyntax INcSyntax 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) Examples Both cases G98 — pre-populated CannedCycle, no #Previous: so initZ = 0, F=600 → 10 mm/s. Six items each: init, R, feed-down, spindle reverse, feed retract, spindle restore. The retract is a feed (not a rapid) because the tap is physically threaded into the workpiece and a rapid would strip the threads. G84 right-hand — forward CW (M03), reverse CCW (M04) at the bottom to back out, then restore CW after retract: #BeforeBuild: { \"Parsing\": { \"G84\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G84\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G84\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G84\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleControl\": { \"Direction\": \"CCW\" } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleControl\": { \"Direction\": \"CW\" } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } G74 left-hand — same shape but the two spindle items are flipped: forward CCW (M04), reverse CW (M03) at the bottom, restore CCW after retract. Tests that the syntax dispatches on cycleCode == G84 to pick the right pair: #BeforeBuild: { \"Parsing\": { \"G74\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G74\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G74\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G74\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleControl\": { \"Direction\": \"CW\" } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleControl\": { \"Direction\": \"CCW\" } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } Constructors TappingCycleSyntax() Initializes a new instance with default settings. public TappingCycleSyntax() TappingCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public TappingCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.TiltTransformUtil.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.TiltTransformUtil.html", @@ -4607,7 +4587,7 @@ "api/Hi.NcParsers.LogicSyntaxs.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.html", "title": "Namespace Hi.NcParsers.LogicSyntaxs | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.LogicSyntaxs Classes BackBoringSyntax G87 back boring cycle. Supports modal repetition. Cuts upward from Z to R — used to bore the back side of a workpiece. Cycle sequence: Oriented spindle stop (OSS) at current position Rapid (shifted) to init position, then down to bottom Z — tool enters pre-drilled hole without contacting bore wall Shift back to hole center at bottom Spindle start (CW) Feed upward from Z to R-point (back boring cut) Oriented spindle stop at R Tool shift, rapid retract (shifted) to final Z Shift back to center, spindle restart Q specifies the lateral shift distance (mm). Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. BoringCycleSyntax G85/G86/G89 boring cycles. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G86 only] Spindle stop at bottom [G89 only] Dwell P seconds at bottom Retract: G85/G89 → feed retract, G86 → rapid retract [G86 only] Spindle restart (CW) after retract G85: feed to Z, feed retract — smooth bore finish. G86: feed to Z, spindle stop (implicit), rapid retract. G89: feed to Z, dwell P, feed retract — like G85 with bottom dwell. Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. CannedCycleResolveSyntax Resolves the canned-cycle Group-09 state for the current block and writes the result to the CannedCycle section. Active cycle (direct G81..G89 or modal repeat): merges Parsing overrides with previous-cycle stored params, applies G91 incremental-to-absolute conversion and missing-axis fallback, writes CannedCycle with Term, ReturnMode, and Params. The resolved cycle sub-section is left in Parsing under the cycle code for downstream cycle syntaxes (DrillingCycleSyntax, etc.) to read. Explicit cancel (G80 flag present on a non-cycle block): consumes the G80 flag and writes CannedCycle = { Term: \"G80\" }, acting as a hard sentinel for Hi.NcParsers.LogicSyntaxs.CannedCycleSyntaxUtil modal lookback. No Group-09 activity: leaves the block untouched. Must be placed after PositioningSyntax and before the individual cycle syntaxes in the chain. CircularMotionSyntax Writes McArc motion for circular commands (ISO G02/G03). Detects motion mode from Flags, reads I/J/K center offsets or R radius from Parsing, computes arc center in program coordinates, and writes a one-shot MotionEvent (form + arc params) plus a modal MotionState (Term). G02/G03 mode is modal (Group 01) — persists across blocks via Term. Arc parameters (I/J/K/R) are per-block and must be present in every arc block. Must be placed before LinearMotionSyntax in the syntax chain. Both share the Group 01 motion slot; whichever writes a MotionEvent first claims it. CoolantSyntax Consumes M07 (mist ON), M08 (flood ON), and M09 (coolant OFF) from Flags and writes the ICoolantDef section with both IsOn (convenience flag) and Mode (abstract mode name: Flood / Mist / Off). Modal — persists via backward lookback. CoordinateOffsetUtil Shared utilities for all coordinate offset syntaxes (ISO, Siemens, Heidenhain). Handles section IO, backward lookback, and ProgramToMcTransform composition. DrillingCycleSyntax G81/G82 drilling cycle (rapid retract). Supports modal repetition. G82 covers G81 — the only difference is an optional dwell (P) at the bottom. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G82 only] Dwell P seconds at bottom Rapid from bottom to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. FanucPathSmoothingSyntax Consumes Fanuc G05.1 (high-precision contour / AICC II / Nano Smoothing) and records the modal state in the PathSmoothing JSON section using the FanucPathSmoothing schema. Q1 enables, Q0 disables; the optional R{n} precision-level is preserved as Level. The simulation does not alter the tool path — this is a controller-internal interpolation black box; the captured state exists for bidirectional NC-text reconstruction. Modal carry to subsequent blocks is handled by ModalCarrySyntax, which already tracks the PathSmoothing section key and deep-clones it forward. FeedrateSyntax Consumes F (feedrate) from Parsing and G94/G95 mode from Flags. Both are modal — persist across blocks via backward node lookback. Writes resolved state to a IFeedrateDef section. FineBoringSyntax G76 fine boring cycle. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Oriented spindle stop (OSS) Tool shift by Q in +X direction (clear bore wall) Rapid retract (shifted) to final Z Tool shift back to center Spindle restart (CW) Q specifies the lateral shift distance (mm) to avoid dragging the tool across the finished bore surface during retract. Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. G43p4RtcpSyntax Handles G43.4 RTCP (Rotary Tool Center Point) activation. Writes the IToolHeightCompensationDef section and the ToolHeightCompensationSource entry in ProgramToMcTransform — a tool-normal · offset_mm translation at the block endpoint ABC. The chain entry is tagged KindDynamic when RTCP is active and ABC changes across the block, and KindStatic otherwise. The RTCP kinematic rotary part (Pn→MC rigid transform) is orthogonal to this syntax and is written by PivotTransformationSyntax on every block, because rotary state remains in effect beyond the RTCP modal (e.g. a non-RTCP G01 after G49 still inherits the last ABC from the program). The \"rotary dynamic\" distinction lives on the chain entry's KindKey alone and is read via HasDynamicEntry(JsonObject) by LinearMotionSyntax to pick ClLinear vs McLinear. G43.4 is used by Fanuc, Mazak, Syntec, and Okuma. Siemens (TRAORI) and Heidenhain (M128) are handled by separate syntaxes. Must be placed after ToolHeightOffsetSyntax (to override the ToolHeightCompensation entry when RTCP is active) and before PivotTransformationSyntax (which runs last in the chain). G53p1RotaryPositionSyntax G53.1 — non-modal, one-shot rotary axis positioning. Positions the rotary axes (A/B/C) to align the physical tool axis with the active tilted work plane defined by G68.2. XYZ position is unchanged; only rotary axes move via rapid traverse. Requires IsoG68p2TiltSyntax (or equivalent) to have written the tilt transform. Uses IMachineKinematics to solve for the target A/B/C via inverse kinematics. Must be placed after IsoG68p2TiltSyntax (needs tilt data) and before ProgramXyzSyntax in the syntax chain. Writes A/B/C into MachineCoordinateState. Motion is handled by LinearMotionSyntax via modal G00/G01. HighSpeedPeckCycleSyntax G73 high-speed peck drilling cycle (chip breaking). Supports modal repetition. Drills in increments of depth Q, partially retracting by PeckRetractionDistance_mm between strokes (instead of fully back to R like PeckDrillingCycleSyntax). Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: feed Q deeper, rapid retract by d If remainder exists: feed to bottom Z, rapid retract by d Rapid to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. IncrementalResolveSyntax Resolves G91 incremental axis values to absolute in-place within Parsing and its sub-sections. Reads Term written by PositioningSyntax. WorkingPathList specifies which JSON paths contain axis values that need incremental-to-absolute conversion. Default: [[\"Parsing\"], [\"Parsing\", \"G28\"]]. All matching paths are converted. Canned cycle paths (Parsing.G81, G82, G83, …) are intentionally excluded — their Z/R incremental semantics differ from normal axes (R is relative to init level, Z is relative to R-point). Resolution is handled by ResolveCycleCoordinates(JsonObject, Vec3d, double?, double?, double, double) inside each cycle syntax class, which runs before this syntax. Uses AxisNames to determine which tags are motion axes. Traces backward nodes for last known ProgramXyz to resolve incremental values. After this syntax, all axis values in the working paths are absolute — ProgramXyzSyntax can consume them without incremental logic. IsoCoordinateOffsetSyntax ISO/Fanuc/Mazak/Okuma/Syntec: resolves G54–G59.9 work coordinate offset. Reads G54/G55/.../G59.9 from Flags, looks up offset Vec3d via IIsoCoordinateConfig dependencies (e.g. brand parameter table or IsoCoordinateTable), composes into ProgramToMcTransform. Modal — active coordinate persists via backward lookback. Default coordinate ID is set by StaticInitializer. IsoG68RotationSyntax ISO/Fanuc: resolves G68 (2D coordinate rotation) and G69 (cancel). Computes a rotation Mat4d around the active plane normal and composes it into ProgramToMcTransform. No IMachineKinematics dependency needed — G68 is pure geometric rotation. Managed commands: G68, G69 (idempotent with IsoG68p2TiltSyntax). IsoG68p2TiltSyntax ISO/Fanuc: resolves G68.2 (tilted work plane) and G69 (cancel). Computes a tilt Mat4d from I/J/K euler angles (Fanuc ZXZ convention) and composes it into ProgramToMcTransform. Managed commands: G68.2, G69 (idempotent with IsoG68RotationSyntax). Siemens equivalent: CYCLE800 (separate syntax). Heidenhain equivalent: PLANE SPATIAL (separate syntax). IsoLocalCoordinateOffsetSyntax ISO G52: Local coordinate system offset (additive to G54-series). G52 X10 Y20 Z5 → sets local offset. G52 X0 Y0 Z0 → cancels (resets to zero). M30 (program end) → also cancels. Reads Parsing.G52 (from G52Syntax), writes IsoLocalCoordinateOffset section, and adds an \"IsoLocalCoordinateOffset\" entry to the transformation chain. Modal — persists via backward lookback until changed or cancelled. LinearMotionSyntax Writes McLinear motion for linear commands (ISO G00/G01, Heidenhain L/LN). Detects motion mode from Flags, writes a one-shot MotionEvent section (form + isRapid) plus a modal MotionState section (Term) when MachineCoordinateState exists on the block. McLinearMotionSemantic discriminates between XYZ-only and XYZABC motion by checking whether rotary axis values are present in MachineCoordinateState. Must be placed after McAbcSyntax in the syntax chain. MachineCoordSelectSyntax Handles G53 (machine coordinate selection) — non-modal, one-shot. The axis values (X/Y/Z) in the block are interpreted as machine coordinates, bypassing all work offsets, local coordinates, tool height compensation, and coordinate rotations. If G91 (incremental) is active, G53 is ignored per ISO standard. Must be placed before ProgramXyzSyntax in the syntax chain. When G53 is active, this syntax consumes X/Y/Z from Parsing and writes MachineCoordinateState directly, preventing ProgramXyzSyntax from processing them as program coordinates. McAbcCyclicPathSyntax Resolve modular rotary axes to the shortest cyclic path relative to the previous node. Uses IsModularRotary(string) to determine which axes within MachineCoordinateState need cyclic resolution. Falls back to hardcoded A/B/C if no IMachineAxisConfig is available. Must be placed after ProgramXyzSyntax in NcSyntaxList. Two stages, mirroring McXyzSyntax: Root MachineCoordinateState — anchored at the previous block's modal rotary state. CompoundMotion.ItemsKey[*] — sequential walk through items, anchoring item 0 at the previous block's modal state and item i > 0 at item i-1's post-cycle value (per-axis chain). Items without a rotary MachineCoordinateState are skipped. The items pass enables rotary motion (e.g. G28 ABC intermediate / home stages) to surface as motion IAct segments rather than a single root-MC stamp. McAbcSyntax Writes rotary axis values (A/B/C) into MachineCoordinateState from Parsing and modal lookback. Only active when IMachineAxisConfig declares rotary axes. Works for both 3+2-axis (no IMachineKinematics) and simultaneous 5-axis configurations. This syntax is intentionally ABC-only. When the block is rotary-only (no ProgramXyz, e.g. G00 A30.) the section is created with ABC but without X/Y/Z. McAbcXyzFallbackSyntax — placed after McXyzSyntax — copies X/Y/Z from the previous block's MachineCoordinateState to finish the section. Splitting the XYZ fill out lets this syntax run before McXyzSyntax (and before G43p4RtcpSyntax) without accidentally filling X/Y/Z from prev and thereby short-circuiting DeriveMcXyz(JsonObject, Mat4d). Missing rotary axes are filled from previous MachineCoordinateState lookback, unless the current section already has the value (e.g., from HomeMcInitializer). Values are stored in degrees (matching McAbcCyclicPathSyntax). Must be placed before McXyzSyntax so syntaxes that need the current-block ABC to compute transforms (e.g. G43p4RtcpSyntax) can see it; and before McAbcCyclicPathSyntax and LinearMotionSyntax. McAbcXyzFallbackSyntax Fills missing X/Y/Z on an ABC-only MachineCoordinateState section. Behaviour depends on whether the block is under RTCP with rotary motion, as indicated by HasDynamicEntry(JsonObject): Non-dynamic (no RTCP or RTCP with ABC stable) — the programmed tool tip stays put in MC while rotary axes (if any) are unchanged, so we simply copy X/Y/Z from the previous block's MachineCoordinateState. This matches NC modal XYZ carry-forward for rotary-only blocks such as G00 A30. (non-RTCP pivoting). Dynamic (RTCP active + ABC changing) — the programmed tool tip must stay fixed in program coordinates while MC XYZ shifts to compensate the new rotary state. Looks up the last ProgramXyz and re-derives MC = inheritedProgramXyz × composedTransform, where the composed transform is the block's endpoint chain (now including PivotTransformSource as a full rotation+translation Mat4d, so the chain already encodes the kinematic IK). The carried ProgramXyz is also stamped onto the current block so downstream consumers see a consistent ProgramXyz + MC pair. Pair with McAbcSyntax, which runs early to write ABC but deliberately leaves X/Y/Z empty so McXyzSyntax can still derive MC XYZ from ProgramXyz via the transform chain when the block carries linear motion. If McXyzSyntax has nothing to derive (no ProgramXyz), this syntax completes the MC section as described above. Does nothing when the section already carries all three of X/Y/Z (normal linear-motion blocks), or when there is no section at all (pure parse-only block that introduces no MC). Must be placed after McXyzSyntax and before McAbcCyclicPathSyntax / LinearMotionSyntax. McXyzSyntax Derives MachineCoordinateState from ProgramXyz by applying the composed ProgramToMcTransform. Processes two stages: Root ProgramXyz → root MachineCoordinate CompoundMotion.ItemsKey[*] — derives MachineCoordinate from ProgramXyz for items that have ProgramXyz but no MachineCoordinate Must be placed after syntaxes that write ProgramXyz (e.g., ReferenceReturnSyntax) and before syntaxes that read MachineCoordinate (e.g., LinearMotionSyntax). PeckDrillingCycleSyntax G83 peck drilling cycle. Supports modal repetition. Drills in increments of depth Q, fully retracting to R between strokes. Cycle sequence (per stroke): Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: rapid to clearance above previous depth, feed Q deeper, rapid back to R If remainder exists: feed to bottom Z, rapid to R Rapid from R/bottom to final (G98 → init Z, G99 → R) Retraction distance is read from ICannedCycleConfig (Fanuc #4002 / Syntec Pr4002, or FallbackConfig fallback). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. PivotTransformationSyntax Writes the PivotTransformSource entry into ProgramToMcTransform on every block, capturing the Pn→MC kinematic rigid transform for the block's endpoint rotary state. Mirrors legacy HardNcLine.GetProgramXyz's use of McToPn(DVec3d) — without this entry, the transform chain would miss the rotary rotation on any block whose MachineCoordinate.ABC is non-zero, and McXyzSyntax (and ProgramXyzSyntax's inverse lookback) would silently drift. Scope is not limited to RTCP modal: as long as rotary axes are physically at a non-zero position (e.g. after a non-RTCP G00 B90 plus any subsequent motion), the kinematic chain still contributes a non-identity rigid transform that must appear in the endpoint chain. G43p4RtcpSyntax is orthogonal and only governs the dynamic-rotary KindKey tagging used by LinearMotionSyntax to pick the motion form. Chain position: must run after all Pn-frame writers (IsoG68p2TiltSyntax, ToolHeightOffsetSyntax, G43p4RtcpSyntax, IsoCoordinateOffsetSyntax, brand-specific coord offset syntaxes) so the PivotTransform entry naturally lands as the last chain element. Must run before McXyzSyntax / ProgramXyzSyntax so they see the completed chain. Silently no-ops when IMachineKinematics is absent (3-axis configurations without rotary kinematics). PlaneSelectSyntax Consumes G17/G18/G19 plane selection from Flags and writes IPlaneSelectDef section using conventional axis-pair names (XY/ZX/YZ). Modal — persists via backward lookback. Default is XY (G17). Downstream consumers (CircularMotionSyntax, IsoG68RotationSyntax) call GetPlaneNormalDir(JsonObject) to read the resolved plane. PositioningSyntax Detects G90/G91 positioning mode from Flags (or by modal lookback) and writes a Positioning section (Term, Mode) to the block JSON. Fanuc/ISO: reads G90/G91 from Flags (global modal). Heidenhain: would need a separate implementation reading I-prefix per axis. Siemens: would extend with AC()/IC() per-axis override. Does NOT convert incremental values — that is handled by IncrementalResolveSyntax which can be placed later in the syntax chain, after canned cycle syntaxes have consumed their parameters with cycle-specific G91 semantics. ProgramEndCleanSyntax Clears the per-block Vars.Volatile dictionary on blocks that triggered program end (M02 / M30, identified by the ProgramEnd section written by ProgramEndSyntax). Real Fanuc clears non-retained common variables (#100-#499) on program end + reset; this syntax models that behaviour at the simulator level. The clear happens on the same block that carried M02/M30 — the next block's VolatileVariableReadingSyntax carry then sees an empty dictionary on the predecessor and starts fresh. Pipeline placement: must run after both ProgramEndSyntax (which writes the ProgramEnd section this syntax checks) and VolatileVariableReadingSyntax (so the carry has already happened on this block; this syntax overwrites the result). Retained common variables (#500-#999, owned by RetainedCommonVariableTable) are untouched — they survive program end on real hardware (NV-RAM). Local variables (#1-#33, scope: macro call frame) are also untouched here; their lifecycle belongs to G65/G66/M99 push/pop, not program end. Also clears any active FanucModalMacro on the same edge: a G66 modal that was still active when M02/M30 hit is implicitly cancelled, matching real Fanuc reset behaviour. The section is overwritten with a G67-shaped cancel marker so the carry mechanism in FanucModalMacroSyntax sees the boundary and does not propagate the modal past the program-end edge. ProgramEndSyntax Consumes M02/M30 (program end) from Flags and writes IProgramEndDef section. Downstream syntaxes that need to reset modal state on program end (e.g. IsoLocalCoordinateOffsetSyntax for G52 reset) should read the ProgramEnd section rather than scanning for M30 in Flags directly. Must be placed before syntaxes that depend on the ProgramEnd section. ProgramStopSyntax Consumes M00 (unconditional stop) and M01 (optional stop) from Flags and writes a IProgramStopDef section on the block that carried the flag. Non-modal: the section is written only on the exact block where the stop code appears. Siblings with ProgramEndSyntax (M02/M30) which handles end-of-program, not in-program stops. The parsing layer only records NC intent. Whether M01 actually pauses the run is a runtime/semantic decision gated by the operator's \"Optional Stop\" switch (analogous to IBlockSkipConfig for block skip). ProgramXyzSyntax Resolves ProgramXyz (leaf coordinate) from syntax XYZ tags. Writes ProgramXyz sub-object to SyntaxPiece.JsonObject. Must be placed after BundleSyntax since it uses cross-node lookback for last position. McXyzSyntax (placed after this in the chain) reads ProgramXyz and writes MachineCoordinateState. ProgramXyzUtil Shared utilities for ProgramXyz and MachineCoordinateState lookback and resolution. Used by ProgramXyzSyntax, ReferenceReturnSyntax, and semantic resolvers that need position lookback. Two strategies for \"what's the program coordinate at a block's endpoint?\" — both invert an MC value through an ProgramToMcTransform chain, but they pick the chain from different nodes: By current-state transform (ComputeProgramXyzByCurrentTransform(LazyLinkedListNode, Vec3d)) — modal anchor is MachineCoordinateState. Re-expresses an MC value (typically a predecessor's modal MC) into the current block's program frame using the current block's chain. Suitable for chain-change blocks where the spindle physically stays put while the chain (G54 swap, G68.2 activation, G43.4 toggle, tool-height change, ...) re-anchors the program frame; mirrors legacy HardNcLine.RebuildProgramXyzByMc. By corresponding-state transform (ComputeProgramXyzByCorrespondingTransform(LazyLinkedListNode)) — modal anchor is ProgramXyz. Recovers the program coordinate that nodeCarryingMc was originally commanded at, by inverting that same node's own transform on its own MC. Suitable for RTCP rotary-dynamic inheritance, where the modal invariant is \"tool tip in workpiece frame stays put while rotary axes turn\" — the recovered Vec3d carries forward as the next rotary block's modal ProgramXyz unchanged, regardless of how its PivotTransform differs. Both strategies yield the same Vec3d when prev and current share the same chain modal state; they only diverge across chain boundaries (RTCP toggle, coord-system swap, tilt activation) and at rotary motion (PivotTransform difference). Pick the wrong one and the result lands in a stale frame: Non-RTCP using \"corresponding\" — leaves the pre-chain-change values, so a block emitted right after G43.4 H03 would inherit ProgramXyz still in the G49 frame and the next motion's MC.Z drifts by the introduced tool-height offset. (This was the 2026-04-25 SoftNc / HardNc divergence on DemoPmcAirPlane/NC/02-ED6L20.NC.) RTCP using \"current\" — double-counts the rotary PivotTransform difference, so the inherited workpiece anchor rotates by the C delta on every rotary block. Direct callers of the two strategy helpers are rare — typically you call the dispatcher ResolveBlockProgramXyz(LazyLinkedListNode, Vec3d) (block's own MC vs predecessor lookback, picks strategy from HasDynamicEntry(JsonObject)) or GetLastProgramXyz(LazyLinkedListNode) (pure predecessor lookback). ReferenceReturnSyntax G28 reference point return syntax. Behaviour is documented in detail on the example attached to BareG28Behavior; this class is the ISituNcSyntax implementation that the BareG28 property configures. RotaryAxisUtil Shared utilities for rotary axis (A/B/C) resolution. Used by G53p1RotaryPositionSyntax, McAbcSyntax, IsoG68p2TiltSyntax, and other syntaxes that read or write rotary axis values. SpindleSpeedSyntax Consumes S (spindle speed) and M03/M04/M05 (spindle direction) from Parsing. Both are modal — persist across blocks via backward node lookback. Writes resolved state to a ISpindleSpeedDef section. Direction is converted from ISO M-codes to the conventional SpindleDirection enum at this layer. TappingCycleSyntax G84 (right-hand) / G74 (left-hand) tapping cycles. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Spindle reverse at bottom Feed retract to final Z (G98 → init Z, G99 → R) Spindle restore to forward direction G84: forward = CW (M03), reverse = CCW (M04). G74: forward = CCW (M04), reverse = CW (M03). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. TiltTransformUtil Shared utilities for all tilt transform syntaxes (ISO, Siemens, Heidenhain). Handles section IO, backward lookback, and ProgramToMcTransform composition. ToolChangeSyntax Consumes T (tool number) and M06 (tool change) from Parsing. T is modal — persists across blocks. M06 triggers the change. Writes resolved state to a ToolChange section: { “ToolId”: 1, “IsChange”: true, “Term”: “M06” }. TermKey records the trigger command and is only written when IsChangeKey is true (i.e. the block actually carried the tool-change M code); modal-only blocks omit it. ToolHeightOffsetSyntax Resolves ISO tool height offset (G43/G44/G49) to the effective offset value (mm) and composes the offset as a translation into the accumulated ProgramToMcTransform matrix. RTCP modes (G43.4, TRAORI, M128) are handled by separate brand-specific syntaxes (e.g., G43p4RtcpSyntax). UnitModeSyntax Detects the unit-system code (ISO Group 06: G20 inch / G21 metric) from Flags and writes a Unit section (Term, System). Modal — absence of an explicit flag inherits the previous block's unit, defaulting to Metric at program start. The HiNC pipeline works exclusively in millimetres. When G20 is detected this syntax emits an Unit--InchNotSupported Unsupported Error so upstream callers are forced to pre-convert the NC program to metric. G21 is accepted as a no-op confirmation of the default. Enums BareG28Behavior Writes ICompoundMotionDef section for G28 reference point return. Reads intermediate XYZ from Parsing.G28 (written by G28Syntax) and converts to machine coordinates via ResolveProgramXyz(JsonNode, LazyLinkedListNode, ISentenceCarrier, NcDiagnosticProgress). Must be placed after LinearMotionSyntax in the syntax chain. Removes the IMotionEventDef section written by LinearMotionSyntax (G28 handles its own motion). Overwrites root MachineCoordinateState and ProgramXyz with reference position for subsequent block lookback." + "summary": "Namespace Hi.NcParsers.LogicSyntaxs Classes BackBoringSyntax G87 back boring cycle. Supports modal repetition. Cuts upward from Z to R — used to bore the back side of a workpiece. Cycle sequence: Oriented spindle stop (OSS) at current position Rapid (shifted) to init position, then down to bottom Z — tool enters pre-drilled hole without contacting bore wall Shift back to hole center at bottom Spindle start (CW) Feed upward from Z to R-point (back boring cut) Oriented spindle stop at R Tool shift, rapid retract (shifted) to final Z Shift back to center, spindle restart Q specifies the lateral shift distance (mm). Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. BoringCycleSyntax G85/G86/G89 boring cycles. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G86 only] Spindle stop at bottom [G89 only] Dwell P seconds at bottom Retract: G85/G89 → feed retract, G86 → rapid retract [G86 only] Spindle restart (CW) after retract G85: feed to Z, feed retract — smooth bore finish. G86: feed to Z, spindle stop (implicit), rapid retract. G89: feed to Z, dwell P, feed retract — like G85 with bottom dwell. Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. CannedCycleResolveSyntax Resolves the canned-cycle Group-09 state for the current block and writes the result to the CannedCycle section. Active cycle (direct G81..G89 or modal repeat): merges Parsing overrides with previous-cycle stored params, applies G91 incremental-to-absolute conversion and missing-axis fallback, writes CannedCycle with Term, ReturnMode, and Params. The resolved cycle sub-section is left in Parsing under the cycle code for downstream cycle syntaxes (DrillingCycleSyntax, etc.) to read. Explicit cancel (G80 flag present on a non-cycle block): consumes the G80 flag and writes CannedCycle = { Term: \"G80\" }, acting as a hard sentinel for Hi.NcParsers.LogicSyntaxs.CannedCycleSyntaxUtil modal lookback. No Group-09 activity: leaves the block untouched. Must be placed after PositioningSyntax and before the individual cycle syntaxes in the chain. CircularMotionSyntax Writes McArc motion for circular commands (ISO G02/G03). Detects motion mode from Flags, reads I/J/K center offsets or R radius from Parsing, computes arc center in program coordinates, and writes a one-shot MotionEvent (form + arc params) plus a modal MotionState (Term). G02/G03 mode is modal (Group 01) — persists across blocks via Term. Arc parameters (I/J/K/R) are per-block and must be present in every arc block. Must be placed before LinearMotionSyntax in the syntax chain. Both share the Group 01 motion slot; whichever writes a MotionEvent first claims it. CoolantSyntax Consumes M07 (mist ON), M08 (flood ON), and M09 (coolant OFF) from Flags and writes the ICoolantDef section with both IsOn (convenience flag) and Mode (abstract mode name: Flood / Mist / Off). Modal — persists via backward lookback. CoordinateOffsetUtil Shared utilities for all coordinate offset syntaxes (ISO, Siemens, Heidenhain). Handles section IO, backward lookback, and ProgramToMcTransform composition. DrillingCycleSyntax G81/G82 drilling cycle (rapid retract). Supports modal repetition. G82 covers G81 — the only difference is an optional dwell (P) at the bottom. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G82 only] Dwell P seconds at bottom Rapid from bottom to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. FanucPathSmoothingSyntax Consumes Fanuc G05.1 (high-precision contour / AICC II / Nano Smoothing) and records the modal state in the PathSmoothing JSON section using the FanucPathSmoothing schema. Q1 enables, Q0 disables; the optional R{n} precision-level is preserved as Level. The simulation does not alter the tool path — this is a controller-internal interpolation black box; the captured state exists for bidirectional NC-text reconstruction. Modal carry to subsequent blocks is handled by ModalCarrySyntax, which already tracks the PathSmoothing section key and deep-clones it forward. FeedrateSyntax Consumes F (feedrate) from Parsing and G94/G95 mode from Flags. Both are modal — persist across blocks via backward node lookback. Writes resolved state to a IFeedrateDef section. FineBoringSyntax G76 fine boring cycle. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Oriented spindle stop (OSS) Tool shift by Q in +X direction (clear bore wall) Rapid retract (shifted) to final Z Tool shift back to center Spindle restart (CW) Q specifies the lateral shift distance (mm) to avoid dragging the tool across the finished bore surface during retract. Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. G43p4RtcpSyntax Handles G43.4 RTCP (Rotary Tool Center Point) activation. Writes the IToolHeightCompensationDef section and the ToolHeightCompensationSource entry in ProgramToMcTransform — a tool-normal · offset_mm translation at the block endpoint ABC. The chain entry is tagged KindDynamic when RTCP is active and ABC changes across the block, and KindStatic otherwise. The RTCP kinematic rotary part (Pn→MC rigid transform) is orthogonal to this syntax and is written by PivotTransformationSyntax on every block, because rotary state remains in effect beyond the RTCP modal (e.g. a non-RTCP G01 after G49 still inherits the last ABC from the program). The \"rotary dynamic\" distinction lives on the chain entry's KindKey alone and is read via HasDynamicEntry(JsonObject) by LinearMotionSyntax to pick ClLinear vs McLinear. G43.4 is used by Fanuc, Mazak, Syntec, and Okuma. Siemens (TRAORI) and Heidenhain (M128) are handled by separate syntaxes. Must be placed after ToolHeightOffsetSyntax (to override the ToolHeightCompensation entry when RTCP is active) and before PivotTransformationSyntax (which runs last in the chain). G53p1RotaryPositionSyntax G53.1 — non-modal, one-shot rotary axis positioning. Positions the rotary axes (A/B/C) to align the physical tool axis with the active tilted work plane defined by G68.2. XYZ position is unchanged; only rotary axes move via rapid traverse. Requires IsoG68p2TiltSyntax (or equivalent) to have written the tilt transform. Uses IMachineKinematics to solve for the target A/B/C via inverse kinematics. Must be placed after IsoG68p2TiltSyntax (needs tilt data) and before ProgramXyzSyntax in the syntax chain. Writes A/B/C into MachineCoordinateState. Motion is handled by LinearMotionSyntax via modal G00/G01. HighSpeedPeckCycleSyntax G73 high-speed peck drilling cycle (chip breaking). Supports modal repetition. Drills in increments of depth Q, partially retracting by PeckRetractionDistance_mm between strokes (instead of fully back to R like PeckDrillingCycleSyntax). Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: feed Q deeper, rapid retract by d If remainder exists: feed to bottom Z, rapid retract by d Rapid to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. IncrementalResolveSyntax Resolves G91 incremental axis values to absolute in-place within Parsing and its sub-sections. Reads Term written by PositioningSyntax. WorkingPathList specifies which JSON paths contain axis values that need incremental-to-absolute conversion. Default: [[\"Parsing\"], [\"Parsing\", \"G28\"]]. All matching paths are converted. Canned cycle paths (Parsing.G81, G82, G83, …) are intentionally excluded — their Z/R incremental semantics differ from normal axes (R is relative to init level, Z is relative to R-point). Resolution is handled by ResolveCycleCoordinates(JsonObject, Vec3d, double?, double?, double, double) inside each cycle syntax class, which runs before this syntax. Uses AxisNames to determine which tags are motion axes. Traces backward nodes for last known ProgramXyz to resolve incremental values. After this syntax, all axis values in the working paths are absolute — ProgramXyzSyntax can consume them without incremental logic. IsoCoordinateOffsetSyntax ISO/Fanuc/Mazak/Okuma/Syntec: resolves G54–G59.9 work coordinate offset. Reads G54/G55/.../G59.9 from Flags, looks up offset Vec3d via IIsoCoordinateConfig dependencies (e.g. brand parameter table or IsoCoordinateTable), composes into ProgramToMcTransform. Modal — active coordinate persists via backward lookback. Default coordinate ID is set by StaticInitializer. IsoG68RotationSyntax ISO/Fanuc: resolves G68 (2D coordinate rotation) and G69 (cancel). Computes a rotation Mat4d around the active plane normal and composes it into ProgramToMcTransform. No IMachineKinematics dependency needed — G68 is pure geometric rotation. Managed commands: G68, G69 (idempotent with IsoG68p2TiltSyntax). IsoG68p2TiltSyntax ISO/Fanuc: resolves G68.2 (tilted work plane) and G69 (cancel). Computes a tilt Mat4d from I/J/K euler angles (Fanuc ZXZ convention) and composes it into ProgramToMcTransform. Managed commands: G68.2, G69 (idempotent with IsoG68RotationSyntax). Siemens equivalent: CYCLE800 (separate syntax). Heidenhain equivalent: PLANE SPATIAL (separate syntax). IsoLocalCoordinateOffsetSyntax ISO G52: Local coordinate system offset (additive to G54-series). G52 X10 Y20 Z5 → sets local offset. G52 X0 Y0 Z0 → cancels (resets to zero). M30 (program end) → also cancels. Reads Parsing.G52 (from G52Syntax), writes IsoLocalCoordinateOffset section, and adds an \"IsoLocalCoordinateOffset\" entry to the transformation chain. Modal — persists via backward lookback until changed or cancelled. LinearMotionSyntax Writes McLinear motion for linear commands (ISO G00/G01, Heidenhain L/LN). Detects motion mode from Flags, writes a one-shot MotionEvent section (form + isRapid) plus a modal MotionState section (Term) when MachineCoordinateState exists on the block. McLinearMotionSemantic discriminates between XYZ-only and XYZABC motion by checking whether rotary axis values are present in MachineCoordinateState. Must be placed after McAbcSyntax in the syntax chain. MachineCoordSelectSyntax Handles G53 (machine coordinate selection) — non-modal, one-shot. The axis values (X/Y/Z) in the block are interpreted as machine coordinates, bypassing all work offsets, local coordinates, tool height compensation, and coordinate rotations. If G91 (incremental) is active, G53 is ignored per ISO standard. Must be placed before ProgramXyzSyntax in the syntax chain. When G53 is active, this syntax consumes X/Y/Z from Parsing and writes MachineCoordinateState directly, preventing ProgramXyzSyntax from processing them as program coordinates. McAbcCyclicPathSyntax Resolve modular rotary axes to the shortest cyclic path relative to the previous node. Uses IsModularRotary(string) to determine which axes within MachineCoordinateState need cyclic resolution. Falls back to hardcoded A/B/C if no IMachineAxisConfig is available. Must be placed after ProgramXyzSyntax in NcSyntaxList. Two stages, mirroring McXyzSyntax: Root MachineCoordinateState — anchored at the previous block's modal rotary state. CompoundMotion.ItemsKey[*] — sequential walk through items, anchoring item 0 at the previous block's modal state and item i > 0 at item i-1's post-cycle value (per-axis chain). Items without a rotary MachineCoordinateState are skipped. The items pass enables rotary motion (e.g. G28 ABC intermediate / home stages) to surface as motion IAct segments rather than a single root-MC stamp. McAbcSyntax Writes rotary axis values (A/B/C) into MachineCoordinateState from Parsing and modal lookback. Only active when IMachineAxisConfig declares rotary axes. Works for both 3+2-axis (no IMachineKinematics) and simultaneous 5-axis configurations. This syntax is intentionally ABC-only. When the block is rotary-only (no ProgramXyz, e.g. G00 A30.) the section is created with ABC but without X/Y/Z. McAbcXyzFallbackSyntax — placed after McXyzSyntax — copies X/Y/Z from the previous block's MachineCoordinateState to finish the section. Splitting the XYZ fill out lets this syntax run before McXyzSyntax (and before G43p4RtcpSyntax) without accidentally filling X/Y/Z from prev and thereby short-circuiting DeriveMcXyz(JsonObject, Mat4d). Missing rotary axes are filled from previous MachineCoordinateState lookback, unless the current section already has the value (e.g., from HomeMcInitializer). Values are stored in degrees (matching McAbcCyclicPathSyntax). Must be placed before McXyzSyntax so syntaxes that need the current-block ABC to compute transforms (e.g. G43p4RtcpSyntax) can see it; and before McAbcCyclicPathSyntax and LinearMotionSyntax. McAbcXyzFallbackSyntax Fills missing X/Y/Z on an ABC-only MachineCoordinateState section. Behaviour depends on whether the block is under RTCP with rotary motion, as indicated by HasDynamicEntry(JsonObject): Non-dynamic (no RTCP or RTCP with ABC stable) — the programmed tool tip stays put in MC while rotary axes (if any) are unchanged, so we simply copy X/Y/Z from the previous block's MachineCoordinateState. This matches NC modal XYZ carry-forward for rotary-only blocks such as G00 A30. (non-RTCP pivoting). Dynamic (RTCP active + ABC changing) — the programmed tool tip must stay fixed in program coordinates while MC XYZ shifts to compensate the new rotary state. Looks up the last ProgramXyz and re-derives MC = inheritedProgramXyz × composedTransform, where the composed transform is the block's endpoint chain (now including PivotTransformSource as a full rotation+translation Mat4d, so the chain already encodes the kinematic IK). The carried ProgramXyz is also stamped onto the current block so downstream consumers see a consistent ProgramXyz + MC pair. Pair with McAbcSyntax, which runs early to write ABC but deliberately leaves X/Y/Z empty so McXyzSyntax can still derive MC XYZ from ProgramXyz via the transform chain when the block carries linear motion. If McXyzSyntax has nothing to derive (no ProgramXyz), this syntax completes the MC section as described above. Does nothing when the section already carries all three of X/Y/Z (normal linear-motion blocks), or when there is no section at all (pure parse-only block that introduces no MC). Must be placed after McXyzSyntax and before McAbcCyclicPathSyntax / LinearMotionSyntax. McXyzSyntax Derives MachineCoordinateState from ProgramXyz by applying the composed ProgramToMcTransform. Processes two stages: Root ProgramXyz → root MachineCoordinate CompoundMotion.ItemsKey[*] — derives MachineCoordinate from ProgramXyz for items that have ProgramXyz but no MachineCoordinate Must be placed after syntaxes that write ProgramXyz (e.g., ReferenceReturnSyntax) and before syntaxes that read MachineCoordinate (e.g., LinearMotionSyntax). PeckDrillingCycleSyntax G83 peck drilling cycle. Supports modal repetition. Drills in increments of depth Q, fully retracting to R between strokes. Cycle sequence (per stroke): Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: rapid to clearance above previous depth, feed Q deeper, rapid back to R If remainder exists: feed to bottom Z, rapid to R Rapid from R/bottom to final (G98 → init Z, G99 → R) Retraction distance is read from ICannedCycleConfig (Fanuc #4002 / Syntec Pr4002, or FallbackConfig fallback). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. PivotTransformationSyntax Writes the PivotTransformSource entry into ProgramToMcTransform on every block, capturing the Pn→MC kinematic rigid transform for the block's endpoint rotary state. Mirrors legacy HardNcLine.GetProgramXyz's use of McToPn(DVec3d) — without this entry, the transform chain would miss the rotary rotation on any block whose MachineCoordinate.ABC is non-zero, and McXyzSyntax (and ProgramXyzSyntax's inverse lookback) would silently drift. Scope is not limited to RTCP modal: as long as rotary axes are physically at a non-zero position (e.g. after a non-RTCP G00 B90 plus any subsequent motion), the kinematic chain still contributes a non-identity rigid transform that must appear in the endpoint chain. G43p4RtcpSyntax is orthogonal and only governs the dynamic-rotary KindKey tagging used by LinearMotionSyntax to pick the motion form. Chain position: must run after all Pn-frame writers (IsoG68p2TiltSyntax, ToolHeightOffsetSyntax, G43p4RtcpSyntax, IsoCoordinateOffsetSyntax, brand-specific coord offset syntaxes) so the PivotTransform entry naturally lands as the last chain element. Must run before McXyzSyntax / ProgramXyzSyntax so they see the completed chain. Silently no-ops when IMachineKinematics is absent (3-axis configurations without rotary kinematics). PlaneSelectSyntax Consumes G17/G18/G19 plane selection from Flags and writes IPlaneSelectDef section using conventional axis-pair names (XY/ZX/YZ). Modal — persists via backward lookback. Default is XY (G17). Downstream consumers (CircularMotionSyntax, IsoG68RotationSyntax) call GetPlaneNormalDir(JsonObject) to read the resolved plane. PositioningSyntax Detects G90/G91 positioning mode from Flags (or by modal lookback) and writes a Positioning section (Term, Mode) to the block JSON. Fanuc/ISO: reads G90/G91 from Flags (global modal). Heidenhain: would need a separate implementation reading I-prefix per axis. Siemens: would extend with AC()/IC() per-axis override. Does NOT convert incremental values — that is handled by IncrementalResolveSyntax which can be placed later in the syntax chain, after canned cycle syntaxes have consumed their parameters with cycle-specific G91 semantics. ProgramEndCleanSyntax Clears the per-block Vars.Volatile dictionary on blocks that triggered program end (M02 / M30, identified by the ProgramEnd section written by ProgramEndSyntax). Real Fanuc clears non-retained common variables (#100-#499) on program end + reset; this syntax models that behaviour at the simulator level. The clear happens on the same block that carried M02/M30 — the next block's VolatileVariableReadingSyntax carry then sees an empty dictionary on the predecessor and starts fresh. Pipeline placement: must run after both ProgramEndSyntax (which writes the ProgramEnd section this syntax checks) and VolatileVariableReadingSyntax (so the carry has already happened on this block; this syntax overwrites the result). Retained common variables (#500-#999, owned by RetainedCommonVariableTable) are untouched — they survive program end on real hardware (NV-RAM). Local variables (#1-#33, scope: macro call frame) are also untouched here; their lifecycle belongs to G65/G66/M99 push/pop, not program end. Also clears any active FanucModalMacro on the same edge: a G66 modal that was still active when M02/M30 hit is implicitly cancelled, matching real Fanuc reset behaviour. The section is overwritten with a G67-shaped cancel marker so the carry mechanism in FanucModalMacroSyntax sees the boundary and does not propagate the modal past the program-end edge. ProgramEndSyntax Consumes M02/M30 (program end) from Flags and writes IProgramEndDef section. Downstream syntaxes that need to reset modal state on program end (e.g. IsoLocalCoordinateOffsetSyntax for G52 reset) should read the ProgramEnd section rather than scanning for M30 in Flags directly. Must be placed before syntaxes that depend on the ProgramEnd section. ProgramStopSyntax Consumes M00 (unconditional stop) and M01 (optional stop) from Flags and writes a IProgramStopDef section on the block that carried the flag. Non-modal: the section is written only on the exact block where the stop code appears. Siblings with ProgramEndSyntax (M02/M30) which handles end-of-program, not in-program stops. The parsing layer only records NC intent. Whether M01 actually pauses the run is a runtime/semantic decision gated by the operator's \"Optional Stop\" switch (analogous to IBlockSkipConfig for block skip). ProgramXyzSyntax Resolves ProgramXyz (leaf coordinate) from syntax XYZ tags. Writes ProgramXyz sub-object to SyntaxPiece.JsonObject. Must be placed after BundleSyntax since it uses cross-node lookback for last position. McXyzSyntax (placed after this in the chain) reads ProgramXyz and writes MachineCoordinateState. ProgramXyzUtil Shared utilities for ProgramXyz and MachineCoordinateState lookback and resolution. Used by ProgramXyzSyntax, ReferenceReturnSyntax, and semantic resolvers that need position lookback. Two strategies for \"what's the program coordinate at a block's endpoint?\" — both invert an MC value through an ProgramToMcTransform chain, but they pick the chain from different nodes: By current-state transform (ComputeProgramXyzByCurrentTransform(LazyLinkedListNode, Vec3d)) — modal anchor is MachineCoordinateState. Re-expresses an MC value (typically a predecessor's modal MC) into the current block's program frame using the current block's chain. Suitable for chain-change blocks where the spindle physically stays put while the chain (G54 swap, G68.2 activation, G43.4 toggle, tool-height change, ...) re-anchors the program frame; mirrors legacy HardNcLine.RebuildProgramXyzByMc. By corresponding-state transform (ComputeProgramXyzByCorrespondingTransform(LazyLinkedListNode)) — modal anchor is ProgramXyz. Recovers the program coordinate that nodeCarryingMc was originally commanded at, by inverting that same node's own transform on its own MC. Suitable for RTCP rotary-dynamic inheritance, where the modal invariant is \"tool tip in workpiece frame stays put while rotary axes turn\" — the recovered Vec3d carries forward as the next rotary block's modal ProgramXyz unchanged, regardless of how its PivotTransform differs. Both strategies yield the same Vec3d when prev and current share the same chain modal state; they only diverge across chain boundaries (RTCP toggle, coord-system swap, tilt activation) and at rotary motion (PivotTransform difference). Pick the wrong one and the result lands in a stale frame: Non-RTCP using \"corresponding\" — leaves the pre-chain-change values, so a block emitted right after G43.4 H03 would inherit ProgramXyz still in the G49 frame and the next motion's MC.Z drifts by the introduced tool-height offset. (This was the 2026-04-25 SoftNc / HardNc divergence on DemoPmcAirPlane/NC/02-ED6L20.NC.) RTCP using \"current\" — double-counts the rotary PivotTransform difference, so the inherited workpiece anchor rotates by the C delta on every rotary block. Direct callers of the two strategy helpers are rare — typically you call the dispatcher ResolveBlockProgramXyz(LazyLinkedListNode, Vec3d) (block's own MC vs predecessor lookback, picks strategy from HasDynamicEntry(JsonObject)) or GetLastProgramXyz(LazyLinkedListNode) (pure predecessor lookback). ReferenceReturnSyntax Writes ICompoundMotionDef section for G28 reference point return. Reads intermediate XYZ from Parsing.G28 (written by G28Syntax) and converts to machine coordinates via ResolveProgramXyz(JsonNode, LazyLinkedListNode, ISentenceCarrier, NcDiagnosticProgress). Must be placed after LinearMotionSyntax in the syntax chain. Removes the IMotionEventDef section written by LinearMotionSyntax (G28 handles its own motion). Overwrites root MachineCoordinateState and ProgramXyz with reference position for subsequent block lookback. RotaryAxisUtil Shared utilities for rotary axis (A/B/C) resolution. Used by G53p1RotaryPositionSyntax, McAbcSyntax, IsoG68p2TiltSyntax, and other syntaxes that read or write rotary axis values. SpindleSpeedSyntax Consumes S (spindle speed) and M03/M04/M05 (spindle direction) from Parsing. Both are modal — persist across blocks via backward node lookback. Writes resolved state to a ISpindleSpeedDef section. Direction is converted from ISO M-codes to the conventional SpindleDirection enum at this layer. TappingCycleSyntax G84 (right-hand) / G74 (left-hand) tapping cycles. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Spindle reverse at bottom Feed retract to final Z (G98 → init Z, G99 → R) Spindle restore to forward direction G84: forward = CW (M03), reverse = CCW (M04). G74: forward = CCW (M04), reverse = CW (M03). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. TiltTransformUtil Shared utilities for all tilt transform syntaxes (ISO, Siemens, Heidenhain). Handles section IO, backward lookback, and ProgramToMcTransform composition. ToolChangeSyntax Consumes T (tool number) and M06 (tool change) from Parsing. T is modal — persists across blocks. M06 triggers the change. Writes resolved state to a ToolChange section: { “ToolId”: 1, “IsChange”: true, “Term”: “M06” }. TermKey records the trigger command and is only written when IsChangeKey is true (i.e. the block actually carried the tool-change M code); modal-only blocks omit it. ToolHeightOffsetSyntax Resolves ISO tool height offset (G43/G44/G49) to the effective offset value (mm) and composes the offset as a translation into the accumulated ProgramToMcTransform matrix. RTCP modes (G43.4, TRAORI, M128) are handled by separate brand-specific syntaxes (e.g., G43p4RtcpSyntax). UnitModeSyntax Detects the unit-system code (ISO Group 06: G20 inch / G21 metric) from Flags and writes a Unit section (Term, System). Modal — absence of an explicit flag inherits the previous block's unit, defaulting to Metric at program start. The HiNC pipeline works exclusively in millimetres. When G20 is detected this syntax emits an Unit--InchNotSupported Unsupported Error so upstream callers are forced to pre-convert the NC program to metric. G21 is accepted as a no-op confirmation of the default. Enums BareG28Behavior Configurable handling for a G28 block with no axis specifiers (“bare G28”) — value of BareG28. Real Fanuc-class controllers vary: older 0i-M alarms (PS010), some 30i variants send every configured axis to home. Default to Alarm so silent NC bugs surface; opt into AllAxesHome per syntax instance." }, "api/Hi.NcParsers.NcDiagnostic.html": { "href": "api/Hi.NcParsers.NcDiagnostic.html", @@ -4669,10 +4649,15 @@ "title": "Class FanucProgramNumberSyntax | HiAPI-C# 2025", "summary": "Class FanucProgramNumberSyntax Namespace Hi.NcParsers.ParsingSyntaxs.Fanuc Assembly HiMech.dll Detects a Fanuc-family program identifier header — O1234 or — that follows a TapeBoundary line, and records it under FanucProgramNumber on the block JSON. The wrapping form (bare vs angle-bracketed) is preserved in Wrapper so the block can be emitted back to its original notation. public class FanucProgramNumberSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucProgramNumberSyntax Implements ISituNcSyntax INcSyntax 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) Examples Bare O1234 on the first block of the stream (no #Previous:) — start-of-stream is itself a tape boundary per IsPreviousNodeTapeBoundary(LazyLinkedListNode), so the syntax fires; the consumed text leaves nothing behind: #BeforeBuild.UnparsedText: O1234 #AfterBuild: { \"FanucProgramNumber\": { \"Number\": \"1234\", \"Wrapper\": \"None\" } } Angle-bracketed after an explicit TapeBoundary block (% on the prior line) — Wrapper records the surface form: #Previous: { \"TapeBoundary\": { \"Text\": \"\" } } #BeforeBuild.UnparsedText: #AfterBuild: { \"FanucProgramNumber\": { \"Number\": \"5678\", \"Wrapper\": \"Angle\" } } O1234 followed by trailing text (e.g. an inline comment) — only the program-number header is consumed; the rest stays on UnparsedText for downstream syntaxes to handle: #Previous: { \"TapeBoundary\": { \"Text\": \"\" } } #BeforeBuild.UnparsedText: O1234 (PART-A) #AfterBuild: { \"UnparsedText\": \"(PART-A)\", \"FanucProgramNumber\": { \"Number\": \"1234\", \"Wrapper\": \"None\" } } Previous block is not a tape boundary (e.g. ordinary FanucProgramNumber already in the stream) — the guard rejects the block, leaving UnparsedText intact: #Previous: { \"FanucProgramNumber\": { \"Number\": \"1000\", \"Wrapper\": \"None\" } } #BeforeBuild.UnparsedText: O9999 #AfterBuild: { \"UnparsedText\": \"O9999\" } Constructors FanucProgramNumberSyntax() Parameterless instance for bundle composition (no XML state). public FanucProgramNumberSyntax() FanucProgramNumberSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public FanucProgramNumberSyntax(XElement src) Parameters src XElement Root element named XName. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, + "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html": { + "href": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html", + "title": "Class FanucWhileDoParsingSyntax | HiAPI-C# 2025", + "summary": "Class FanucWhileDoParsingSyntax Namespace Hi.NcParsers.ParsingSyntaxs.Fanuc Assembly HiMech.dll Parses the two Fanuc Custom Macro B WHILE/END phrases out of UnparsedText into a Parsing.FanucWhileDo sub-object: WHILE [] DO — loop entry, writes { Term: \"WHILE...DO\", LoopId, Condition }. END — loop terminator, writes { Term: \"END\", LoopId }. Pipeline placement. This syntax must run before TagAssignmentSyntax in the Parsing bundle — same lesson as FanucIfThenParsingSyntax: although the WHILE / END phrases per Fanuc spec do not coexist with assignments on the same block, the defensive ordering prevents a body fragment from being half-eaten as a stand-alone assignment if a non-spec NC file appears. LoopId is captured as an int directly (Fanuc spec restricts the m identifier to small literal integers 1–3 typical, no expression form). The WHILE's Condition is captured as a string and substituted in place by VariableEvaluatorSyntax's pass-2 tree walk; FanucWhileDoSyntax then reads it via the shared FanucConditionReader. public class FanucWhileDoParsingSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucWhileDoParsingSyntax Implements ISituNcSyntax INcSyntax 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) Examples #Input: WHILE [#100 LT 3] DO 1 #Output: { \"Parsing\": { \"FanucWhileDo\": { \"Term\": \"WHILE...DO\", \"LoopId\": 1, \"Condition\": \"#100 LT 3\" } } } #Input: END 1 #Output: { \"Parsing\": { \"FanucWhileDo\": { \"Term\": \"END\", \"LoopId\": 1 } } } Constructors FanucWhileDoParsingSyntax() Parameterless instance for bundle composition (no XML state). public FanucWhileDoParsingSyntax() FanucWhileDoParsingSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public FanucWhileDoParsingSyntax(XElement src) Parameters src XElement Root element named XName. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.html": { "href": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.html", "title": "Namespace Hi.NcParsers.ParsingSyntaxs.Fanuc | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.ParsingSyntaxs.Fanuc Classes FanucGotoParsingSyntax Parses Fanuc Custom Macro B GOTO phrases out of the remaining UnparsedText into a Parsing.FanucGoto sub-object. Two forms are recognised: GOTO — unconditional jump. IF [] GOTO — conditional jump. IF [...] GOTO is matched as a single phrase, not as an IF syntax composed with a GOTO syntax — Fanuc only permits the two fixed forms (the other being IF [...] THEN , out of scope here), so a phrase-level parser is more faithful and avoids parsing-ambiguity rabbit holes. is captured as a raw token (literal like \"100\", variable like \"#1\", or bracketed expression like \"#[#2+5]\"). VariableEvaluatorSyntax substitutes the resolved literal back into the same field downstream; FanucGotoSyntax then parses the final string as an int. Storing as a string at parsing time mirrors how axis tags and canned-cycle params accept #N references and the evaluator rewrites them in place. Pipeline placement: after HeadIndexSyntax (so the leading N{seq} on a block like N50 GOTO 100 has already been consumed) and after QuoteCommentSyntax (so a parenthesised (GOTO 100) inside a comment never matches). The phrase consumes the entire remaining text on the block — Fanuc allows only the GOTO / IF-GOTO phrase after any preceding head index, no other instructions on the same block. FanucIfThenParsingSyntax Parses the Fanuc Custom Macro B IF [] THEN single-block conditional phrase out of UnparsedText into a Parsing.FanucIfThen sub-object. Sibling to FanucGotoParsingSyntax — Fanuc spec only permits two IF-led control phrases (IF [...] GOTO handled there, IF [...] THEN handled here) so each form is matched phrase-level rather than composed from a generic IF combinator. Body shape. The body after THEN is conceptually a single statement that affects the current block only — no jump, no label scan. Almost always a Custom Macro B assignment (#nnn = ); multiple assignments in the same body (#100 = 5. #101 = #100 + 1) are also accepted. The parsing syntax pre-extracts these via GrabTagAssignment(ref string, IEnumerable, string, IEnumerable) into Parsing.FanucIfThen.PendingAssignments as {tag: rhs-string} entries — that shape lets VariableEvaluatorSyntax's pass-2 tree walk substitute each RHS to a numeric in place, and lets FanucIfThenSyntax lift the resolved entries into Parsing.Assignments only when the gate condition fires (so unfired bodies leave no trace in the readers). Pipeline placement. This syntax must run before FanucGotoParsingSyntax — the bare IF-GOTO regex over there (^IF[..]GOTO n$) is anchored, but consuming IF-THEN here first keeps the two phrases textually disjoint and avoids any future regression if either regex is loosened. Also placed before TagAssignmentSyntax so a bare IF [...] THEN #100 = 5. is not first half-eaten as a plain assignment. Raw BodyText is retained verbatim on the parsing section regardless of whether the body parsed as assignments — it carries the round-trip view and lets the evaluation syntax warn (FanucIfThen--UnsupportedBody) if no PendingAssignments were produced on a truthy condition. FanucProgramNumberSyntax Detects a Fanuc-family program identifier header — O1234 or — that follows a TapeBoundary line, and records it under FanucProgramNumber on the block JSON. The wrapping form (bare vs angle-bracketed) is preserved in Wrapper so the block can be emitted back to its original notation." + "summary": "Namespace Hi.NcParsers.ParsingSyntaxs.Fanuc Classes FanucGotoParsingSyntax Parses Fanuc Custom Macro B GOTO phrases out of the remaining UnparsedText into a Parsing.FanucGoto sub-object. Two forms are recognised: GOTO — unconditional jump. IF [] GOTO — conditional jump. IF [...] GOTO is matched as a single phrase, not as an IF syntax composed with a GOTO syntax — Fanuc only permits the two fixed forms (the other being IF [...] THEN , out of scope here), so a phrase-level parser is more faithful and avoids parsing-ambiguity rabbit holes. is captured as a raw token (literal like \"100\", variable like \"#1\", or bracketed expression like \"#[#2+5]\"). VariableEvaluatorSyntax substitutes the resolved literal back into the same field downstream; FanucGotoSyntax then parses the final string as an int. Storing as a string at parsing time mirrors how axis tags and canned-cycle params accept #N references and the evaluator rewrites them in place. Pipeline placement: after HeadIndexSyntax (so the leading N{seq} on a block like N50 GOTO 100 has already been consumed) and after QuoteCommentSyntax (so a parenthesised (GOTO 100) inside a comment never matches). The phrase consumes the entire remaining text on the block — Fanuc allows only the GOTO / IF-GOTO phrase after any preceding head index, no other instructions on the same block. FanucIfThenParsingSyntax Parses the Fanuc Custom Macro B IF [] THEN single-block conditional phrase out of UnparsedText into a Parsing.FanucIfThen sub-object. Sibling to FanucGotoParsingSyntax — Fanuc spec only permits two IF-led control phrases (IF [...] GOTO handled there, IF [...] THEN handled here) so each form is matched phrase-level rather than composed from a generic IF combinator. Body shape. The body after THEN is conceptually a single statement that affects the current block only — no jump, no label scan. Almost always a Custom Macro B assignment (#nnn = ); multiple assignments in the same body (#100 = 5. #101 = #100 + 1) are also accepted. The parsing syntax pre-extracts these via GrabTagAssignment(ref string, IEnumerable, string, IEnumerable) into Parsing.FanucIfThen.PendingAssignments as {tag: rhs-string} entries — that shape lets VariableEvaluatorSyntax's pass-2 tree walk substitute each RHS to a numeric in place, and lets FanucIfThenSyntax lift the resolved entries into Parsing.Assignments only when the gate condition fires (so unfired bodies leave no trace in the readers). Pipeline placement. This syntax must run before FanucGotoParsingSyntax — the bare IF-GOTO regex over there (^IF[..]GOTO n$) is anchored, but consuming IF-THEN here first keeps the two phrases textually disjoint and avoids any future regression if either regex is loosened. Also placed before TagAssignmentSyntax so a bare IF [...] THEN #100 = 5. is not first half-eaten as a plain assignment. Raw BodyText is retained verbatim on the parsing section regardless of whether the body parsed as assignments — it carries the round-trip view and lets the evaluation syntax warn (FanucIfThen--UnsupportedBody) if no PendingAssignments were produced on a truthy condition. FanucProgramNumberSyntax Detects a Fanuc-family program identifier header — O1234 or — that follows a TapeBoundary line, and records it under FanucProgramNumber on the block JSON. The wrapping form (bare vs angle-bracketed) is preserved in Wrapper so the block can be emitted back to its original notation. FanucWhileDoParsingSyntax Parses the two Fanuc Custom Macro B WHILE/END phrases out of UnparsedText into a Parsing.FanucWhileDo sub-object: WHILE [] DO — loop entry, writes { Term: \"WHILE...DO\", LoopId, Condition }. END — loop terminator, writes { Term: \"END\", LoopId }. Pipeline placement. This syntax must run before TagAssignmentSyntax in the Parsing bundle — same lesson as FanucIfThenParsingSyntax: although the WHILE / END phrases per Fanuc spec do not coexist with assignments on the same block, the defensive ordering prevents a body fragment from being half-eaten as a stand-alone assignment if a non-spec NC file appears. LoopId is captured as an int directly (Fanuc spec restricts the m identifier to small literal integers 1–3 typical, no expression form). The WHILE's Condition is captured as a string and substituted in place by VariableEvaluatorSyntax's pass-2 tree walk; FanucWhileDoSyntax then reads it via the shared FanucConditionReader." }, "api/Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html": { "href": "api/Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html", @@ -4817,22 +4802,22 @@ "api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html": { "href": "api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html", "title": "Class HeidenhainSegmenter | HiAPI-C# 2025", - "summary": "Class HeidenhainSegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Heidenhain NC block builder. Also support single line NC block. public class HeidenhainSegmenter : ISegmenter, IToXElement Inheritance object HeidenhainSegmenter Implements ISegmenter IToXElement 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 HeidenhainSegmenter() Creates a HeidenhainSegmenter with the default block-keyword list. public HeidenhainSegmenter() Properties Name Display name of this segmenter. public string Name { get; } Property Value string XName XML element name used to register and serialize this segmenter. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." + "summary": "Class HeidenhainSegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Heidenhain NC block builder. Also support single line NC block. public class HeidenhainSegmenter : ISegmenter, IToXElement Inheritance object HeidenhainSegmenter Implements ISegmenter IToXElement 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 HeidenhainSegmenter() Creates a HeidenhainSegmenter with the default block-keyword list. public HeidenhainSegmenter() Properties Name Display name of this segmenter. public string Name { get; } Property Value string XName XML element name used to register and serialize this segmenter. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, List, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDependencyList List Dependency list of the owning runner; segmenters that consume header rows (e.g. CsvSegmenter) read host-wired dependencies from here. May be null in lightweight test fixtures — implementations that need a dependency must null-check. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.NcParsers.Segmenters.ISegmenter.html": { "href": "api/Hi.NcParsers.Segmenters.ISegmenter.html", "title": "Interface ISegmenter | HiAPI-C# 2025", - "summary": "Interface ISegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Interface to segment IndexedFileLines into Sentences. public interface ISegmenter : IToXElement Inherited Members IToXElement.ToXElement() 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 Name Display name of this segmenter. string Name { get; } Property Value string Methods GetSentences(LazyLinkedList, NcDiagnosticProgress) Segments the indexed file lines into Sentences. IEnumerable GetSentences(LazyLinkedList indexedFileLines, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences." + "summary": "Interface ISegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Interface to segment IndexedFileLines into Sentences. public interface ISegmenter : IToXElement Inherited Members IToXElement.ToXElement() 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 Name Display name of this segmenter. string Name { get; } Property Value string Methods GetSentences(LazyLinkedList, List, NcDiagnosticProgress) Segments the indexed file lines into Sentences. IEnumerable GetSentences(LazyLinkedList indexedFileLines, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDependencyList List Dependency list of the owning runner; segmenters that consume header rows (e.g. CsvSegmenter) read host-wired dependencies from here. May be null in lightweight test fixtures — implementations that need a dependency must null-check. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences." }, "api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html": { "href": "api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html", "title": "Class InlineDelimiterSegmenter | HiAPI-C# 2025", - "summary": "Class InlineDelimiterSegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Segments NC lines by an inline delimiter (e.g. ';'). A line containing the delimiter produces multiple Sentences, each with a precise FileLineCharIndexSegment. Lines without the delimiter produce a single Sentence. public class InlineDelimiterSegmenter : ISegmenter, IToXElement Inheritance object InlineDelimiterSegmenter Implements ISegmenter IToXElement 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 InlineDelimiterSegmenter() Creates an InlineDelimiterSegmenter using DefaultDelimiter. public InlineDelimiterSegmenter() InlineDelimiterSegmenter(char) Creates an InlineDelimiterSegmenter with a custom delimiter character. public InlineDelimiterSegmenter(char delimiter) Parameters delimiter char Fields DefaultDelimiter Default delimiter: ';'. public static readonly char DefaultDelimiter Field Value char Properties Delimiter The inline delimiter character. public char Delimiter { get; } Property Value char Name Display name of this segmenter. public string Name { get; } Property Value string XName XML element name used to register and serialize this segmenter. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." + "summary": "Class InlineDelimiterSegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Segments NC lines by an inline delimiter (e.g. ';'). A line containing the delimiter produces multiple Sentences, each with a precise FileLineCharIndexSegment. Lines without the delimiter produce a single Sentence. public class InlineDelimiterSegmenter : ISegmenter, IToXElement Inheritance object InlineDelimiterSegmenter Implements ISegmenter IToXElement 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 InlineDelimiterSegmenter() Creates an InlineDelimiterSegmenter using DefaultDelimiter. public InlineDelimiterSegmenter() InlineDelimiterSegmenter(char) Creates an InlineDelimiterSegmenter with a custom delimiter character. public InlineDelimiterSegmenter(char delimiter) Parameters delimiter char Fields DefaultDelimiter Default delimiter: ';'. public static readonly char DefaultDelimiter Field Value char Properties Delimiter The inline delimiter character. public char Delimiter { get; } Property Value char Name Display name of this segmenter. public string Name { get; } Property Value string XName XML element name used to register and serialize this segmenter. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, List, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDependencyList List Dependency list of the owning runner; segmenters that consume header rows (e.g. CsvSegmenter) read host-wired dependencies from here. May be null in lightweight test fixtures — implementations that need a dependency must null-check. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html": { "href": "api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html", "title": "Class SingleLineSegmenter | HiAPI-C# 2025", - "summary": "Class SingleLineSegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Maps each physical source line to one Sentence (no multi-line merging). public class SingleLineSegmenter : ISegmenter, IToXElement Inheritance object SingleLineSegmenter Implements ISegmenter IToXElement 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 Name Display name of this segmenter. public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." + "summary": "Class SingleLineSegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Maps each physical source line to one Sentence (no multi-line merging). public class SingleLineSegmenter : ISegmenter, IToXElement Inheritance object SingleLineSegmenter Implements ISegmenter IToXElement 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 Name Display name of this segmenter. public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, List, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDependencyList List Dependency list of the owning runner; segmenters that consume header rows (e.g. CsvSegmenter) read host-wired dependencies from here. May be null in lightweight test fixtures — implementations that need a dependency must null-check. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.NcParsers.Segmenters.html": { "href": "api/Hi.NcParsers.Segmenters.html", @@ -4977,7 +4962,7 @@ "api/Hi.NcParsers.Syntaxs.SyntaxPiece.html": { "href": "api/Hi.NcParsers.Syntaxs.SyntaxPiece.html", "title": "Class SyntaxPiece | HiAPI-C# 2025", - "summary": "Class SyntaxPiece Namespace Hi.NcParsers.Syntaxs Assembly HiMech.dll One NC block's source line paired with its parsed JSON payload during soft-NC processing. public class SyntaxPiece : ISentenceCarrier, IGetSentence, ISentenceIndexed Inheritance object SyntaxPiece Implements ISentenceCarrier IGetSentence ISentenceIndexed 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) Remarks The design pattern of Sentence and JsonObject are one-one mapping. JSON value type convention: Prefer base types (double, int) over string for numeric values in JsonObject. This applies to both parsing syntaxes and logic syntaxes. Strings should only be used when the value is genuinely textual (e.g., macro variable references like \"#1\", \"Q2\", coordinate IDs like \"G54\") or when the value cannot be parsed to a number. Use FloatTagValueSyntax, IntegerTagValueSyntax, or FloatParamPrefixes / IntParamPrefixes to store typed values at parse time. Constructors SyntaxPiece(Sentence, JsonObject, int) Creates a piece binding sentence to jsonObject with its execution-order sentenceIndex. public SyntaxPiece(Sentence sentence, JsonObject jsonObject, int sentenceIndex) Parameters sentence Sentence jsonObject JsonObject sentenceIndex int Properties JsonObject Structured parse result built by syntax passes. public JsonObject JsonObject { get; set; } Property Value JsonObject Sentence Indexed source line and block text for this piece. public Sentence Sentence { get; set; } Property Value Sentence SentenceIndex 0-based ordinal in NC execution order. Stamped at piece construction time by GetSyntaxPieces(ISegmenter, IEnumerable, int, NcDiagnosticProgress, CancellationToken) from the destination layers[0]'s running count, so subprogram pieces inlined by SubProgramCallSyntax get sequential indices that interleave correctly between host blocks. Useful as a cross-process alignment key (messages, ClStripPos, MachiningStep) — unlike FileLineUtil.MixedIndex(), it reflects execution order rather than (FileIndex, LineIndex) source order. Required at construction: the index is identity, not optional metadata. Read-only after construction; the pipeline guarantees one stamping per piece at the wrapping chokepoint. public int SentenceIndex { get; } Property Value int Methods GetSentence() Returns the source Sentence carried by this object. public Sentence GetSentence() Returns Sentence ToString() Serialize with Hi.NcParsers.Syntaxs.NcSyntaxUtil.Options to support NaN/Infinity. public override string ToString() Returns string" + "summary": "Class SyntaxPiece Namespace Hi.NcParsers.Syntaxs Assembly HiMech.dll One NC block's source line paired with its parsed JSON payload during soft-NC processing. public class SyntaxPiece : ISentenceCarrier, IGetSentence, ISentenceIndexed Inheritance object SyntaxPiece Implements ISentenceCarrier IGetSentence ISentenceIndexed 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) Remarks The design pattern of Sentence and JsonObject are one-one mapping. JSON value type convention: Prefer base types (double, int) over string for numeric values in JsonObject. This applies to both parsing syntaxes and logic syntaxes. Strings should only be used when the value is genuinely textual (e.g., macro variable references like \"#1\", \"Q2\", coordinate IDs like \"G54\") or when the value cannot be parsed to a number. Use FloatTagValueSyntax, IntegerTagValueSyntax, or FloatParamPrefixes / IntParamPrefixes to store typed values at parse time. Constructors SyntaxPiece(Sentence, JsonObject, int) Creates a piece binding sentence to jsonObject with its execution-order sentenceIndex. public SyntaxPiece(Sentence sentence, JsonObject jsonObject, int sentenceIndex) Parameters sentence Sentence jsonObject JsonObject sentenceIndex int Properties JsonObject Structured parse result built by syntax passes. public JsonObject JsonObject { get; set; } Property Value JsonObject Sentence Indexed source line and block text for this piece. public Sentence Sentence { get; set; } Property Value Sentence SentenceIndex 0-based ordinal in NC execution order. Stamped at piece construction time by GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) from the destination layers[0]'s running count, so subprogram pieces inlined by SubProgramCallSyntax get sequential indices that interleave correctly between host blocks. Useful as a cross-process alignment key (messages, ClStripPos, MachiningStep) — unlike FileLineUtil.MixedIndex(), it reflects execution order rather than (FileIndex, LineIndex) source order. Required at construction: the index is identity, not optional metadata. Read-only after construction; the pipeline guarantees one stamping per piece at the wrapping chokepoint. public int SentenceIndex { get; } Property Value int Methods GetSentence() Returns the source Sentence carried by this object. public Sentence GetSentence() Returns Sentence ToString() Serialize with Hi.NcParsers.Syntaxs.NcSyntaxUtil.Options to support NaN/Infinity. public override string ToString() Returns string" }, "api/Hi.NcParsers.Syntaxs.SyntaxStageKeys.html": { "href": "api/Hi.NcParsers.Syntaxs.SyntaxStageKeys.html", @@ -5007,7 +4992,7 @@ "api/Hi.NcParsers.html": { "href": "api/Hi.NcParsers.html", "title": "Namespace Hi.NcParsers | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers Classes IndexedSentence Minimal ISentenceCarrier pairing a Sentence with its execution-order SentenceIndex. Use when there is no richer host object that already carries the sentence — e.g. CSV-driven runs that go straight from an input line to a Sentence without a SyntaxPiece wrapper. NcDiagnostic A structured diagnostic from the SoftNcRunner pipeline, designed for IProgress consumption. Id is composed as {Primary}-{Secondary}--{Abbrev} (e.g., Cycle-Peck--BadPeckQ, Syntax-Build--Exception). For irregular cases that don't fit the pattern, use a custom string. NcDiagnosticProgress Helper that emits NcDiagnostic records via an IProgress sink. Provides one method per (NcDiagnosticCategory, NcDiagnosticSeverity) pair, each with an optional Sentence overload locating the issue in the NC source. Sentence A small NC block for one or several lines. SoftNcRunner Configurable NC Runner. SoftNcUtil JSON helpers for soft-NC blocks: vectors under Parsing, motion-term queries, flag grab/remove on raw text, and unparsed-line trimming. Interfaces IGetSentence Abstraction for a source that carries a Sentence. ISentenceCarrier Carries a reference to a source Sentence together with its execution-order SentenceIndex. Used as the cross-process alignment carrier for diagnostics, messages, ClStripPos, MachiningStep, etc. — both the source content (via GetSentence()) and the execution-order position (via SentenceIndex) are available without needing two separate references. ISentenceIndexed Abstraction for an object that carries a SentenceIndex — a 0-based ordinal of its source Sentence in NC execution order. Use as a cross-process alignment key (messages, ClStripPos, MachiningStep, etc.) when source order (MixedIndex(IFileLineIndex)) is not enough because SubProgram inline reorders blocks relative to (FileIndex, LineIndex). Enums NcDiagnosticCategory Diagnostic category of an NC diagnostic. System + Error → exception/bug, unconsidered case Unsupported + Warning → known unsupported, likely harmless Unsupported + Error → known unsupported, likely matters Validation + Warning → manufacturing/physics may be unfeasible Validation + Error → manufacturing/physics is unfeasible Configuration + Message → dependency/config applied, informational event (e.g. a block skipped by an enabled IBlockSkipConfig layer) Configuration + Warning → dependency/config missing, using fallback Configuration + Error → dependency/config missing, cannot proceed NcDiagnosticSeverity Importance level of an NC diagnostic. Combined with NcDiagnosticCategory to form the full diagnostic meaning (e.g., Unsupported + Warning)." + "summary": "Namespace Hi.NcParsers Classes IndexedSentence Minimal ISentenceCarrier pairing a Sentence with its execution-order SentenceIndex. Use when there is no richer host object that already carries the sentence — e.g. CSV-driven runs that go straight from an input line to a Sentence without a SyntaxPiece wrapper. NcDiagnostic A structured diagnostic from the SoftNcRunner pipeline, designed for IProgress consumption. Id is composed as {Primary}-{Secondary}--{Abbrev} (e.g., Cycle-Peck--BadPeckQ, Syntax-Build--Exception). For irregular cases that don't fit the pattern, use a custom string. NcDiagnosticProgress Helper that emits NcDiagnostic records via an IProgress sink. Provides one method per (NcDiagnosticCategory, NcDiagnosticSeverity) pair, each with an optional Sentence overload locating the issue in the NC source. Sentence A small NC block for one or several lines. SoftNcRunner Configurable NC Runner. SoftNcUtil JSON helpers for soft-NC blocks: vectors under Parsing, motion-term queries, flag grab/remove on raw text, and unparsed-line trimming. Interfaces IGetSentence Abstraction for a source that carries a Sentence. ISentenceCarrier Carries a reference to a source Sentence together with its execution-order SentenceIndex. Used as the cross-process alignment carrier for diagnostics, messages, ClStripPos, MachiningStep, etc. — both the source content (via GetSentence()) and the execution-order position (via SentenceIndex) are available without needing two separate references. ISentenceIndexed Abstraction for an object that carries a SentenceIndex — a 0-based ordinal of its source Sentence in NC execution order. Use as a cross-process alignment key (messages, ClStripPos, MachiningStep, etc.) when source order (MixedIndex(IFileLineIndex)) is not enough because SubProgram inline reorders blocks relative to (FileIndex, LineIndex). ISessionResettable Marker for objects that hold session-scoped runtime state which must be cleared when RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) initializes a new session pipeline (the state.IsInitialized == false edge). Implementers may live on either chain: INcDependency or INcSyntax. SoftNcRunner scans NcDependencyList and NcSyntaxList on the session-init edge and calls OnSessionReset() on every match. Distinct from IPowerResettable: power-reset clears retained-but-volatile state on a controller power cycle (e.g., Fanuc #100-#499), an edge that survives ordinary session boundaries. Session-reset clears state whose lifetime is one pipeline pass (iteration counters, file-index allocators, etc.). Enums NcDiagnosticCategory Diagnostic category of an NC diagnostic. System + Error → exception/bug, unconsidered case Unsupported + Warning → known unsupported, likely harmless Unsupported + Error → known unsupported, likely matters Validation + Warning → manufacturing/physics may be unfeasible Validation + Error → manufacturing/physics is unfeasible Configuration + Message → dependency/config applied, informational event (e.g. a block skipped by an enabled IBlockSkipConfig layer) Configuration + Warning → dependency/config missing, using fallback Configuration + Error → dependency/config missing, cannot proceed NcDiagnosticSeverity Importance level of an NC diagnostic. Combined with NcDiagnosticCategory to form the full diagnostic meaning (e.g., Unsupported + Warning)." }, "api/Hi.Numerical.Acts.ActActualTime.html": { "href": "api/Hi.Numerical.Acts.ActActualTime.html", @@ -5254,25 +5239,50 @@ "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.CsvParsers.CsvRowSemantic.html": { + "href": "api/Hi.Numerical.CsvParsers.CsvRowSemantic.html", + "title": "Class CsvRowSemantic | HiAPI-C# 2025", + "summary": "Class CsvRowSemantic Namespace Hi.Numerical.CsvParsers Assembly HiMech.dll Final-stage semantic that turns each row JSON stamped by CsvRowSyntax into the same IAct sequence the legacy CsvRunner produced: optional ActLineCsScript (begin), ActActualTime, ActToolingTeleport, ActFeedrate, ActSpindleDirection, ActSpindleSpeed, ActMcXyzabcStep / ActMcXyzabcLinearContour, ActData, and optional ActLineCsScript (end). Stateless — the previous machine coordinate is recovered by walking back through the SyntaxPiece chain and reading the typed double cells CsvRowSyntax already stamped, so no carry-state lives on the semantic instance or in extra JSON sections. The previous actual time is recovered the same way; that cell stays as a string (the source format may be TimeSpan or DateTime) and is re-parsed on demand — at most once per row. public class CsvRowSemantic : INcSemantic, IMakeXmlSource Inheritance object CsvRowSemantic Implements INcSemantic 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) Properties DisplayName The process name shown on UI. public string DisplayName { get; } Property Value string XName XML element name for Generators registration. 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory Resolve(LazyLinkedListNode, List, NcDiagnosticProgress) Resolve the syntaxPieceNode into a sequence of IAct. May also mutate SyntaxPiece.JsonObject for downstream semantics. public IEnumerable Resolve(LazyLinkedListNode syntaxPieceNode, List dependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode dependencyList List ncDiagnosticProgress NcDiagnosticProgress Returns IEnumerable" + }, + "api/Hi.Numerical.CsvParsers.CsvRowSyntax.html": { + "href": "api/Hi.Numerical.CsvParsers.CsvRowSyntax.html", + "title": "Class CsvRowSyntax | HiAPI-C# 2025", + "summary": "Class CsvRowSyntax Namespace Hi.Numerical.CsvParsers Assembly HiMech.dll Per-row CSV parsing syntax for the soft NC runner. Reads the active TitleList via SegmenterDependency, splits the row text using GetCsvDictionary(IList, string), and stamps the resulting column→value map into JsonObject under the CsvRowKey property for CsvRowSemantic to consume. Numeric cells are pre-typed to double (or bool) at this stage so downstream readers — including CsvRowSemantic's backwards walk for the previous machine coordinate — touch native JSON numbers instead of re-parsing strings on every visit. Columns kept as strings: the script / time / spindle-direction tags whose semantic interpretation is non-numeric, plus any column whose key appears in ParsingDictionary (the caller-supplied parsing function expects the raw cell text). public class CsvRowSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object CsvRowSyntax Implements ISituNcSyntax INcSyntax 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) Fields CsvRowKey JSON property name under which the parsed row dictionary is stored. public const string CsvRowKey = \"CsvRow\" Field Value string Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, + "api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html": { + "href": "api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html", + "title": "Class CsvRunnerConfig | HiAPI-C# 2025", + "summary": "Class CsvRunnerConfig Namespace Hi.Numerical.CsvParsers Assembly HiMech.dll Configuration class for CSV Runner. Lives in NcDependencyList when wired with CsvSoftRunner; consumed by CsvRowSyntax and CsvRowSemantic for tag-name lookup and custom-field parsing. public class CsvRunnerConfig : INcDependency, IMakeXmlSource Inheritance object CsvRunnerConfig Implements INcDependency 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 CsvRunnerConfig() Default constructor. public CsvRunnerConfig() CsvRunnerConfig(XElement) Constructor from XML. public CsvRunnerConfig(XElement src) Parameters src XElement XML element Properties ActualTimeTag Actual time tag for CSV parsing. public string ActualTimeTag { get; set; } Property Value string CutterLocationPrefix Cutter Location Prefix Tag for CSV Parsing. public string CutterLocationPrefix { get; set; } Property Value string DurationTag Duration tag for CSV parsing. public string DurationTag { get; set; } Property Value string FeedrateTag_mmdmin Feedrate for Simulator Tag for CSV Parsing. public string FeedrateTag_mmdmin { get; set; } Property Value string LineBeginCsScriptTag LineBeginCsScript Tag for CSV Parsing. public string LineBeginCsScriptTag { get; set; } Property Value string LineEndCsScriptTag LineEndCsScript Tag for CSV Parsing. public string LineEndCsScriptTag { get; set; } Property Value string MachineCoordinatePrefix Machine Coordinate Prefix Tag for CSV Parsing. public string MachineCoordinatePrefix { get; set; } Property Value string ParsingDictionary Parsing dictionary for custom field parsing. Note: This dictionary cannot be serialized to XML as it contains functions. public Dictionary> ParsingDictionary { get; set; } Property Value Dictionary> SpindleDirectionTag Spindle direction Tag for CSV Parsing. public string SpindleDirectionTag { get; set; } Property Value string SpindleSpeedTag_rpm Spindle speed for Simulator Tag for CSV Parsing. public string SpindleSpeedTag_rpm { get; set; } Property Value string ToolIdTag Tool ID Tag for CSV Parsing. public string ToolIdTag { get; set; } Property Value string 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, + "api/Hi.Numerical.CsvParsers.CsvSegmenter.html": { + "href": "api/Hi.Numerical.CsvParsers.CsvSegmenter.html", + "title": "Class CsvSegmenter | HiAPI-C# 2025", + "summary": "Class CsvSegmenter Namespace Hi.Numerical.CsvParsers Assembly HiMech.dll Segments a CSV stream for the SoftNcRunner pipeline. Consumes the first IndexedFileLine as the title row (populating TitleList and registering any new columns as step variables via StepPropertyAccessDictionaryDependency), then yields each subsequent line as a one-line Sentence for CsvRowSyntax to parse. public class CsvSegmenter : ISegmenter, IToXElement Inheritance object CsvSegmenter Implements ISegmenter IToXElement 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 Name Display name of this segmenter. public string Name { get; } Property Value string TitleList Column titles parsed from the first row of the most recent GetSentences(LazyLinkedList, List, NcDiagnosticProgress) invocation. Quote- and whitespace-trimmed to match the convention established in the legacy CsvRunner. Reset on each new call so per-file headers stay accurate across multi-file sessions. public List TitleList { get; } Property Value List XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, List, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDependencyList List Dependency list of the owning runner; segmenters that consume header rows (e.g. CsvSegmenter) read host-wired dependencies from here. May be null in lightweight test fixtures — implementations that need a dependency must null-check. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." + }, + "api/Hi.Numerical.CsvParsers.CsvSoftRunner.html": { + "href": "api/Hi.Numerical.CsvParsers.CsvSoftRunner.html", + "title": "Class CsvSoftRunner | HiAPI-C# 2025", + "summary": "Class CsvSoftRunner Namespace Hi.Numerical.CsvParsers Assembly HiMech.dll Factory for a SoftNcRunner wired to replay CSV files (deprecates the legacy CsvRunner). The returned runner has a single-syntax pipeline: CsvSegmenter → CsvRowSyntax → CsvRowSemantic. Default NcDependencyList: CsvRunnerConfig — tag names + custom field parsers. NcKinematicsDependency — provider left null; host wires it the same way it does for brand presets (see BuildCoordinateConverter). StepPropertyAccessDictionaryDependency — wired by the host so CSV title columns auto-register as step variables. FileIndexCounterDependency, SegmenterDependency, SyntaxPieceLayerDependency — runtime plumbing required by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken). MachiningServiceDependency is intentionally not included by default; clients that build custom syntaxes around CsvSoftRunner can append it themselves. public static class CsvSoftRunner Inheritance object CsvSoftRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Create(CsvRunnerConfig) Builds a fresh SoftNcRunner pre-configured to consume CSV input. Call once per machining session so the runner's per-session state starts clean (mirrors the legacy CsvRunner's reset on project change). public static SoftNcRunner Create(CsvRunnerConfig config = null) Parameters config CsvRunnerConfig Optional CSV column-tag configuration; a default CsvRunnerConfig is created when null. Returns SoftNcRunner" + }, + "api/Hi.Numerical.CsvParsers.html": { + "href": "api/Hi.Numerical.CsvParsers.html", + "title": "Namespace Hi.Numerical.CsvParsers | HiAPI-C# 2025", + "summary": "Namespace Hi.Numerical.CsvParsers Classes CsvRowSemantic Final-stage semantic that turns each row JSON stamped by CsvRowSyntax into the same IAct sequence the legacy CsvRunner produced: optional ActLineCsScript (begin), ActActualTime, ActToolingTeleport, ActFeedrate, ActSpindleDirection, ActSpindleSpeed, ActMcXyzabcStep / ActMcXyzabcLinearContour, ActData, and optional ActLineCsScript (end). Stateless — the previous machine coordinate is recovered by walking back through the SyntaxPiece chain and reading the typed double cells CsvRowSyntax already stamped, so no carry-state lives on the semantic instance or in extra JSON sections. The previous actual time is recovered the same way; that cell stays as a string (the source format may be TimeSpan or DateTime) and is re-parsed on demand — at most once per row. CsvRowSyntax Per-row CSV parsing syntax for the soft NC runner. Reads the active TitleList via SegmenterDependency, splits the row text using GetCsvDictionary(IList, string), and stamps the resulting column→value map into JsonObject under the CsvRowKey property for CsvRowSemantic to consume. Numeric cells are pre-typed to double (or bool) at this stage so downstream readers — including CsvRowSemantic's backwards walk for the previous machine coordinate — touch native JSON numbers instead of re-parsing strings on every visit. Columns kept as strings: the script / time / spindle-direction tags whose semantic interpretation is non-numeric, plus any column whose key appears in ParsingDictionary (the caller-supplied parsing function expects the raw cell text). CsvRunnerConfig Configuration class for CSV Runner. Lives in NcDependencyList when wired with CsvSoftRunner; consumed by CsvRowSyntax and CsvRowSemantic for tag-name lookup and custom-field parsing. CsvSegmenter Segments a CSV stream for the SoftNcRunner pipeline. Consumes the first IndexedFileLine as the title row (populating TitleList and registering any new columns as step variables via StepPropertyAccessDictionaryDependency), then yields each subsequent line as a one-line Sentence for CsvRowSyntax to parse. CsvSoftRunner Factory for a SoftNcRunner wired to replay CSV files (deprecates the legacy CsvRunner). The returned runner has a single-syntax pipeline: CsvSegmenter → CsvRowSyntax → CsvRowSemantic. Default NcDependencyList: CsvRunnerConfig — tag names + custom field parsers. NcKinematicsDependency — provider left null; host wires it the same way it does for brand presets (see BuildCoordinateConverter). StepPropertyAccessDictionaryDependency — wired by the host so CSV title columns auto-register as step variables. FileIndexCounterDependency, SegmenterDependency, SyntaxPieceLayerDependency — runtime plumbing required by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken). MachiningServiceDependency is intentionally not included by default; clients that build custom syntaxes around CsvSoftRunner can append it themselves." + }, "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(LocalProjectService) Initializes a new instance. public CsvRunner(LocalProjectService localProjectService) Parameters localProjectService LocalProjectService The local project service. Properties Config Configuration for CSV Runner. public CsvRunnerConfig Config { get; set; } Property Value CsvRunnerConfig Methods Reset() Reset runtime data, including the execution-order Hi.Numerical.FilePlayers.CsvRunner.sentenceIndex counter. Called from LocalProjectService.ResetRuntime only — session stop (EndSession) deliberately does not reset the runner. public void Reset() RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) Runs raw Control lines and yields source sentence and Act pairs. public IEnumerable RunControlLines(string relFilePath, IEnumerable lines, MachiningSession machiningSession, SessionProgress sessionMessageHost, CancellationToken cancellationToken) Parameters relFilePath string The relative path of the control file lines IEnumerable The enumerable collection of command (control code) lines machiningSession MachiningSession Session-scoped state shared across multiple RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) calls (e.g. lazy-initialized pipeline state, file-index counter). sessionMessageHost SessionProgress cancellationToken CancellationToken Cancellation token to cancel the operation Returns IEnumerable Enumerable of source sentence and Act pairs" }, - "api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html": { - "href": "api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html", - "title": "Class CsvRunnerConfig | HiAPI-C# 2025", - "summary": "Class CsvRunnerConfig Namespace Hi.Numerical.FilePlayers Assembly HiNc.dll Configuration class for CSV Runner. public class CsvRunnerConfig : IMakeXmlSource Inheritance object CsvRunnerConfig 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 CsvRunnerConfig() Default constructor. public CsvRunnerConfig() CsvRunnerConfig(XElement) Constructor from XML. public CsvRunnerConfig(XElement src) Parameters src XElement XML element Properties ActualTimeTag Actual time tag for CSV parsing. public string ActualTimeTag { get; set; } Property Value string CutterLocationPrefix Cutter Location Prefix Tag for CSV Parsing. public string CutterLocationPrefix { get; set; } Property Value string DurationTag Duration tag for CSV parsing. public string DurationTag { get; set; } Property Value string FeedrateTag_mmdmin Feedrate for Simulator Tag for CSV Parsing. public string FeedrateTag_mmdmin { get; set; } Property Value string LineBeginCsScriptTag LineBeginCsScript Tag for CSV Parsing. public string LineBeginCsScriptTag { get; set; } Property Value string LineEndCsScriptTag LineEndCsScript Tag for CSV Parsing. public string LineEndCsScriptTag { get; set; } Property Value string MachineCoordinatePrefix Machine Coordinate Prefix Tag for CSV Parsing. public string MachineCoordinatePrefix { get; set; } Property Value string ParsingDictionary Parsing dictionary for custom field parsing. Note: This dictionary cannot be serialized to XML as it contains functions. public Dictionary> ParsingDictionary { get; set; } Property Value Dictionary> SpindleDirectionTag Spindle direction Tag for CSV Parsing. public string SpindleDirectionTag { get; set; } Property Value string SpindleSpeedTag_rpm Spindle speed for Simulator Tag for CSV Parsing. public string SpindleSpeedTag_rpm { get; set; } Property Value string ToolIdTag Tool ID Tag for CSV Parsing. public string ToolIdTag { get; set; } Property Value string 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. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" - }, "api/Hi.Numerical.FilePlayers.HardNcRunner.html": { "href": "api/Hi.Numerical.FilePlayers.HardNcRunner.html", "title": "Class HardNcRunner | HiAPI-C# 2025", - "summary": "Class HardNcRunner Namespace Hi.Numerical.FilePlayers Assembly HiNc.dll Provides functionality for running and processing NC code lines. public class HardNcRunner : IControlRunner Inheritance object HardNcRunner 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) Properties NcLines Gets the linked list of NC lines. public LinkedList NcLines { get; } Property Value LinkedList Methods RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) Runs raw NC lines and yields NcLine and Act pairs. public IEnumerable RunControlLines(string relNcFilePath, IEnumerable lines, MachiningSession machiningSession, SessionProgress sessionProgress, CancellationToken cancellationToken) Parameters relNcFilePath string The relative path of the NC file lines IEnumerable The enumerable collection of NC code lines machiningSession MachiningSession sessionProgress SessionProgress The session message host for logging. cancellationToken CancellationToken Cancellation token to cancel the operation Returns IEnumerable Enumerable of NcLine and Act pairs" + "summary": "Class HardNcRunner Namespace Hi.Numerical.FilePlayers Assembly HiNc.dll Provides functionality for running and processing NC code lines. public class HardNcRunner : IControlRunner Inheritance object HardNcRunner 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) Properties NcLines Gets the linked list of NC lines. public LinkedList NcLines { get; } Property Value LinkedList Methods RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) Runs raw NC lines and yields NcLine and Act pairs. public IEnumerable RunControlLines(string relNcFilePath, IEnumerable lines, MachiningSession machiningSession, SessionProgress sessionProgress, CancellationToken cancellationToken) Parameters relNcFilePath string The relative path of the NC file lines IEnumerable The enumerable collection of NC code lines machiningSession MachiningSession The machining session that owns runtime state for this run. sessionProgress SessionProgress The session message host for logging. cancellationToken CancellationToken Cancellation token to cancel the operation Returns IEnumerable Enumerable of NcLine and Act pairs" }, "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 CsvRunner Provides functionality for running and processing csv lines. CsvRunnerConfig Configuration class for CSV Runner. HardNcRunner Provides functionality for running and processing NC code lines." + "summary": "Namespace Hi.Numerical.FilePlayers Classes CsvRunner Provides functionality for running and processing csv lines. HardNcRunner Provides functionality for running and processing NC code lines." }, "api/Hi.Numerical.FlexDictionaryUtil.html": { "href": "api/Hi.Numerical.FlexDictionaryUtil.html", @@ -6274,76 +6284,6 @@ "title": "Namespace HiMachining.Milling | HiAPI-C# 2025", "summary": "Namespace HiMachining.Milling Classes ClMillingDevice A milling device driven by CL(Cutter Location)." }, - "api/HiNc.Grpcs.MachiningProjectGrpcServer.html": { - "href": "api/HiNc.Grpcs.MachiningProjectGrpcServer.html", - "title": "Class MachiningProjectGrpcServer | HiAPI-C# 2025", - "summary": "Class MachiningProjectGrpcServer Namespace HiNc.Grpcs Assembly HiNc.dll Server for exposing machining project functionality via gRPC. public class MachiningProjectGrpcServer : IDisposable, IMakeXmlSource Inheritance object MachiningProjectGrpcServer Implements IDisposable 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 MachiningProjectGrpcServer(LocalProjectService) Initializes a new instance of the MachiningProjectGrpcServer class. public MachiningProjectGrpcServer(LocalProjectService localProjectService) Parameters localProjectService LocalProjectService MachiningProjectGrpcServer(XElement, LocalProjectService) Initializes a new instance of the MachiningProjectGrpcServer class from XML. public MachiningProjectGrpcServer(XElement src, LocalProjectService localProjectService) Parameters src XElement XML source element localProjectService LocalProjectService The local project service. Properties IsServiceRunning Gets whether the service is currently running. public bool IsServiceRunning { get; } Property Value bool ServicePort Gets or sets the port used by the gRPC service. public int ServicePort { get; set; } Property Value int WebApplication Gets the web application instance for the gRPC server. public WebApplication WebApplication { get; } Property Value WebApplication XName Name for XML IO. public static string XName { get; } Property Value string Methods 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 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. Reg(XFactory) Registers this type's deserializer (and its legacy alias) with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory StartAsync() Starts the gRPC server asynchronously. public Task StartAsync() Returns Task A task representing the asynchronous operation StopAsync() Stops the gRPC server asynchronously. public Task StopAsync() Returns Task A task representing the asynchronous operation" - }, - "api/HiNc.Grpcs.html": { - "href": "api/HiNc.Grpcs.html", - "title": "Namespace HiNc.Grpcs | HiAPI-C# 2025", - "summary": "Namespace HiNc.Grpcs Classes MachiningProjectGrpcServer Server for exposing machining project functionality via gRPC." - }, - "api/numerical.Empty.html": { - "href": "api/numerical.Empty.html", - "title": "Class Empty | HiAPI-C# 2025", - "summary": "Class Empty Namespace numerical Assembly HiGeom.dll public sealed class Empty : IMessage, IEquatable, IDeepCloneable, IBufferMessage, IMessage Inheritance object Empty Implements IMessage IEquatable IDeepCloneable IBufferMessage IMessage Inherited Members object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Constructors Empty() public Empty() Empty(Empty) public Empty(Empty other) Parameters other Empty Properties Descriptor public static MessageDescriptor Descriptor { get; } Property Value MessageDescriptor Parser public static MessageParser Parser { get; } Property Value MessageParser Methods CalculateSize() Calculates the size of this message in Protocol Buffer wire format, in bytes. public int CalculateSize() Returns int The number of bytes required to write this message to a coded output stream. Clone() Creates a deep clone of this object. public Empty Clone() Returns Empty A deep clone of this object. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object other) Parameters other object Returns bool true if the specified object is equal to the current object; otherwise, false. Equals(Empty) Indicates whether the current object is equal to another object of the same type. public bool Equals(Empty other) Parameters other Empty An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MergeFrom(CodedInputStream) Merges the data from the specified coded input stream with the current message. public void MergeFrom(CodedInputStream input) Parameters input CodedInputStream Remarks See the user guide for precise merge semantics. MergeFrom(Empty) Merges the given message into this one. public void MergeFrom(Empty other) Parameters other Empty Remarks See the user guide for precise merge semantics. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. WriteTo(CodedOutputStream) Writes the data to the given coded output stream. public void WriteTo(CodedOutputStream output) Parameters output CodedOutputStream Coded output stream to write the data to. Must not be null." - }, - "api/numerical.GrpcCsvRowDictionary.html": { - "href": "api/numerical.GrpcCsvRowDictionary.html", - "title": "Class GrpcCsvRowDictionary | HiAPI-C# 2025", - "summary": "Class GrpcCsvRowDictionary Namespace numerical Assembly HiGeom.dll public sealed class GrpcCsvRowDictionary : IMessage, IEquatable, IDeepCloneable, IBufferMessage, IMessage Inheritance object GrpcCsvRowDictionary Implements IMessage IEquatable IDeepCloneable IBufferMessage IMessage Inherited Members object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Constructors GrpcCsvRowDictionary() public GrpcCsvRowDictionary() GrpcCsvRowDictionary(GrpcCsvRowDictionary) public GrpcCsvRowDictionary(GrpcCsvRowDictionary other) Parameters other GrpcCsvRowDictionary Fields CsvRowDictionaryFieldNumber Field number for the “CsvRowDictionary” field. public const int CsvRowDictionaryFieldNumber = 2 Field Value int StatusFieldNumber Field number for the “Status” field. public const int StatusFieldNumber = 1 Field Value int Properties CsvRowDictionary public MapField CsvRowDictionary { get; } Property Value MapField Descriptor public static MessageDescriptor Descriptor { get; } Property Value MessageDescriptor Parser public static MessageParser Parser { get; } Property Value MessageParser Status Status: 0:ok; 1: failed. public int Status { get; set; } Property Value int Methods CalculateSize() Calculates the size of this message in Protocol Buffer wire format, in bytes. public int CalculateSize() Returns int The number of bytes required to write this message to a coded output stream. Clone() Creates a deep clone of this object. public GrpcCsvRowDictionary Clone() Returns GrpcCsvRowDictionary A deep clone of this object. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object other) Parameters other object Returns bool true if the specified object is equal to the current object; otherwise, false. Equals(GrpcCsvRowDictionary) Indicates whether the current object is equal to another object of the same type. public bool Equals(GrpcCsvRowDictionary other) Parameters other GrpcCsvRowDictionary An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MergeFrom(CodedInputStream) Merges the data from the specified coded input stream with the current message. public void MergeFrom(CodedInputStream input) Parameters input CodedInputStream Remarks See the user guide for precise merge semantics. MergeFrom(GrpcCsvRowDictionary) Merges the given message into this one. public void MergeFrom(GrpcCsvRowDictionary other) Parameters other GrpcCsvRowDictionary Remarks See the user guide for precise merge semantics. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. WriteTo(CodedOutputStream) Writes the data to the given coded output stream. public void WriteTo(CodedOutputStream output) Parameters output CodedOutputStream Coded output stream to write the data to. Must not be null." - }, - "api/numerical.GrpcNcStep.html": { - "href": "api/numerical.GrpcNcStep.html", - "title": "Class GrpcNcStep | HiAPI-C# 2025", - "summary": "Class GrpcNcStep Namespace numerical Assembly HiGeom.dll public sealed class GrpcNcStep : IMessage, IEquatable, IDeepCloneable, IBufferMessage, IMessage Inheritance object GrpcNcStep Implements IMessage IEquatable IDeepCloneable IBufferMessage IMessage Inherited Members object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Constructors GrpcNcStep() public GrpcNcStep() GrpcNcStep(GrpcNcStep) public GrpcNcStep(GrpcNcStep other) Parameters other GrpcNcStep Fields CsvRowDictionaryFieldNumber Field number for the “CsvRowDictionary” field. public const int CsvRowDictionaryFieldNumber = 11 Field Value int FeedrateMmdminFieldNumber Field number for the “Feedrate_mmdmin” field. public const int FeedrateMmdminFieldNumber = 8 Field Value int FileIndexFieldNumber Field number for the “FileIndex” field. public const int FileIndexFieldNumber = 4 Field Value int FilePathFieldNumber Field number for the “FilePath” field. public const int FilePathFieldNumber = 2 Field Value int LineFieldNumber Field number for the “Line” field. public const int LineFieldNumber = 3 Field Value int LineIndexFieldNumber Field number for the “LineIndex” field. public const int LineIndexFieldNumber = 5 Field Value int SpindleDirectionFieldNumber Field number for the “SpindleDirection” field. public const int SpindleDirectionFieldNumber = 10 Field Value int SpindleSpeedRpmFieldNumber Field number for the “SpindleSpeed_rpm” field. public const int SpindleSpeedRpmFieldNumber = 9 Field Value int StepIndexFieldNumber Field number for the “StepIndex” field. public const int StepIndexFieldNumber = 1 Field Value int ToolIdFieldNumber Field number for the “ToolId” field. public const int ToolIdFieldNumber = 7 Field Value int WorkTimeFieldNumber Field number for the “WorkTime” field. public const int WorkTimeFieldNumber = 6 Field Value int Properties CsvRowDictionary public MapField CsvRowDictionary { get; } Property Value MapField Descriptor public static MessageDescriptor Descriptor { get; } Property Value MessageDescriptor FeedrateMmdmin public double FeedrateMmdmin { get; set; } Property Value double FileIndex public int FileIndex { get; set; } Property Value int FilePath public string FilePath { get; set; } Property Value string Line public string Line { get; set; } Property Value string LineIndex public int LineIndex { get; set; } Property Value int Parser public static MessageParser Parser { get; } Property Value MessageParser SpindleDirection public int SpindleDirection { get; set; } Property Value int SpindleSpeedRpm public double SpindleSpeedRpm { get; set; } Property Value double StepIndex public int StepIndex { get; set; } Property Value int ToolId public int ToolId { get; set; } Property Value int WorkTime public double WorkTime { get; set; } Property Value double Methods CalculateSize() Calculates the size of this message in Protocol Buffer wire format, in bytes. public int CalculateSize() Returns int The number of bytes required to write this message to a coded output stream. Clone() Creates a deep clone of this object. public GrpcNcStep Clone() Returns GrpcNcStep A deep clone of this object. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object other) Parameters other object Returns bool true if the specified object is equal to the current object; otherwise, false. Equals(GrpcNcStep) Indicates whether the current object is equal to another object of the same type. public bool Equals(GrpcNcStep other) Parameters other GrpcNcStep An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MergeFrom(CodedInputStream) Merges the data from the specified coded input stream with the current message. public void MergeFrom(CodedInputStream input) Parameters input CodedInputStream Remarks See the user guide for precise merge semantics. MergeFrom(GrpcNcStep) Merges the given message into this one. public void MergeFrom(GrpcNcStep other) Parameters other GrpcNcStep Remarks See the user guide for precise merge semantics. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. WriteTo(CodedOutputStream) Writes the data to the given coded output stream. public void WriteTo(CodedOutputStream output) Parameters output CodedOutputStream Coded output stream to write the data to. Must not be null." - }, - "api/numerical.NumericalReflection.html": { - "href": "api/numerical.NumericalReflection.html", - "title": "Class NumericalReflection | HiAPI-C# 2025", - "summary": "Class NumericalReflection Namespace numerical Assembly HiGeom.dll Holder for reflection information generated from UniversalNcs/numerical.proto public static class NumericalReflection Inheritance object NumericalReflection Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor File descriptor for UniversalNcs/numerical.proto public static FileDescriptor Descriptor { get; } Property Value FileDescriptor" - }, - "api/numerical.NumericalService.NumericalServiceBase.html": { - "href": "api/numerical.NumericalService.NumericalServiceBase.html", - "title": "Class NumericalService.NumericalServiceBase | HiAPI-C# 2025", - "summary": "Class NumericalService.NumericalServiceBase Namespace numerical Assembly HiGeom.dll Base class for server-side implementations of NumericalService [BindServiceMethod(typeof(NumericalService), \"BindService\")] public abstract class NumericalService.NumericalServiceBase Inheritance object NumericalService.NumericalServiceBase Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Methods GetNcStepGrpcCsvRowDictionary(Empty, ServerCallContext) public virtual Task GetNcStepGrpcCsvRowDictionary(Empty request, ServerCallContext context) Parameters request Empty context ServerCallContext Returns Task" - }, - "api/numerical.NumericalService.NumericalServiceClient.html": { - "href": "api/numerical.NumericalService.NumericalServiceClient.html", - "title": "Class NumericalService.NumericalServiceClient | HiAPI-C# 2025", - "summary": "Class NumericalService.NumericalServiceClient Namespace numerical Assembly HiGeom.dll Client for NumericalService public class NumericalService.NumericalServiceClient : ClientBase Inheritance object ClientBase ClientBase NumericalService.NumericalServiceClient Inherited Members ClientBase.WithHost(string) ClientBase.CallInvoker object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Constructors NumericalServiceClient() Protected parameterless constructor to allow creation of test doubles. protected NumericalServiceClient() NumericalServiceClient(CallInvoker) Creates a new client for NumericalService that uses a custom CallInvoker. public NumericalServiceClient(CallInvoker callInvoker) Parameters callInvoker CallInvoker The callInvoker to use to make remote calls. NumericalServiceClient(ChannelBase) Creates a new client for NumericalService public NumericalServiceClient(ChannelBase channel) Parameters channel ChannelBase The channel to use to make remote calls. NumericalServiceClient(ClientBaseConfiguration) Protected constructor to allow creation of configured clients. protected NumericalServiceClient(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration The client configuration. Methods GetNcStepGrpcCsvRowDictionary(Empty, CallOptions) public virtual GrpcCsvRowDictionary GetNcStepGrpcCsvRowDictionary(Empty request, CallOptions options) Parameters request Empty options CallOptions Returns GrpcCsvRowDictionary GetNcStepGrpcCsvRowDictionary(Empty, Metadata, DateTime?, CancellationToken) public virtual GrpcCsvRowDictionary GetNcStepGrpcCsvRowDictionary(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty headers Metadata deadline DateTime? cancellationToken CancellationToken Returns GrpcCsvRowDictionary GetNcStepGrpcCsvRowDictionaryAsync(Empty, CallOptions) public virtual AsyncUnaryCall GetNcStepGrpcCsvRowDictionaryAsync(Empty request, CallOptions options) Parameters request Empty options CallOptions Returns AsyncUnaryCall GetNcStepGrpcCsvRowDictionaryAsync(Empty, Metadata, DateTime?, CancellationToken) public virtual AsyncUnaryCall GetNcStepGrpcCsvRowDictionaryAsync(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty headers Metadata deadline DateTime? cancellationToken CancellationToken Returns AsyncUnaryCall NewInstance(ClientBaseConfiguration) Creates a new instance of client from given ClientBaseConfiguration. protected override NumericalService.NumericalServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration Returns NumericalService.NumericalServiceClient" - }, - "api/numerical.NumericalService.html": { - "href": "api/numerical.NumericalService.html", - "title": "Class NumericalService | HiAPI-C# 2025", - "summary": "Class NumericalService Namespace numerical Assembly HiGeom.dll public static class NumericalService Inheritance object NumericalService Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor Service descriptor public static ServiceDescriptor Descriptor { get; } Property Value ServiceDescriptor Methods BindService(ServiceBinderBase, NumericalServiceBase) Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. Note: this method is part of an experimental API that can change or be removed without any prior notice. public static void BindService(ServiceBinderBase serviceBinder, NumericalService.NumericalServiceBase serviceImpl) Parameters serviceBinder ServiceBinderBase Service methods will be bound by calling AddMethod on this object. serviceImpl NumericalService.NumericalServiceBase An object implementing the server-side handling logic. BindService(NumericalServiceBase) Creates service definition that can be registered with a server public static ServerServiceDefinition BindService(NumericalService.NumericalServiceBase serviceImpl) Parameters serviceImpl NumericalService.NumericalServiceBase An object implementing the server-side handling logic. Returns ServerServiceDefinition" - }, - "api/numerical.UniversalNcReflection.html": { - "href": "api/numerical.UniversalNcReflection.html", - "title": "Class UniversalNcReflection | HiAPI-C# 2025", - "summary": "Class UniversalNcReflection Namespace numerical Assembly HiGeom.dll Holder for reflection information generated from UniversalNcs/universal_nc.proto public static class UniversalNcReflection Inheritance object UniversalNcReflection Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor File descriptor for UniversalNcs/universal_nc.proto public static FileDescriptor Descriptor { get; } Property Value FileDescriptor" - }, - "api/numerical.UniversalNcService.UniversalNcServiceBase.html": { - "href": "api/numerical.UniversalNcService.UniversalNcServiceBase.html", - "title": "Class UniversalNcService.UniversalNcServiceBase | HiAPI-C# 2025", - "summary": "Class UniversalNcService.UniversalNcServiceBase Namespace numerical Assembly HiGeom.dll Base class for server-side implementations of UniversalNcService [BindServiceMethod(typeof(UniversalNcService), \"BindService\")] public abstract class UniversalNcService.UniversalNcServiceBase Inheritance object UniversalNcService.UniversalNcServiceBase Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Methods GetNcStepGrpcCsvRowDictionary(GrpcNcStep, ServerCallContext) public virtual Task GetNcStepGrpcCsvRowDictionary(GrpcNcStep request, ServerCallContext context) Parameters request GrpcNcStep context ServerCallContext Returns Task" - }, - "api/numerical.UniversalNcService.UniversalNcServiceClient.html": { - "href": "api/numerical.UniversalNcService.UniversalNcServiceClient.html", - "title": "Class UniversalNcService.UniversalNcServiceClient | HiAPI-C# 2025", - "summary": "Class UniversalNcService.UniversalNcServiceClient Namespace numerical Assembly HiGeom.dll Client for UniversalNcService public class UniversalNcService.UniversalNcServiceClient : ClientBase Inheritance object ClientBase ClientBase UniversalNcService.UniversalNcServiceClient Inherited Members ClientBase.WithHost(string) ClientBase.CallInvoker object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Constructors UniversalNcServiceClient() Protected parameterless constructor to allow creation of test doubles. protected UniversalNcServiceClient() UniversalNcServiceClient(CallInvoker) Creates a new client for UniversalNcService that uses a custom CallInvoker. public UniversalNcServiceClient(CallInvoker callInvoker) Parameters callInvoker CallInvoker The callInvoker to use to make remote calls. UniversalNcServiceClient(ChannelBase) Creates a new client for UniversalNcService public UniversalNcServiceClient(ChannelBase channel) Parameters channel ChannelBase The channel to use to make remote calls. UniversalNcServiceClient(ClientBaseConfiguration) Protected constructor to allow creation of configured clients. protected UniversalNcServiceClient(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration The client configuration. Methods GetNcStepGrpcCsvRowDictionary(GrpcNcStep, CallOptions) public virtual GrpcNcStep GetNcStepGrpcCsvRowDictionary(GrpcNcStep request, CallOptions options) Parameters request GrpcNcStep options CallOptions Returns GrpcNcStep GetNcStepGrpcCsvRowDictionary(GrpcNcStep, Metadata, DateTime?, CancellationToken) public virtual GrpcNcStep GetNcStepGrpcCsvRowDictionary(GrpcNcStep request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request GrpcNcStep headers Metadata deadline DateTime? cancellationToken CancellationToken Returns GrpcNcStep GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, CallOptions) public virtual AsyncUnaryCall GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep request, CallOptions options) Parameters request GrpcNcStep options CallOptions Returns AsyncUnaryCall GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, Metadata, DateTime?, CancellationToken) public virtual AsyncUnaryCall GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request GrpcNcStep headers Metadata deadline DateTime? cancellationToken CancellationToken Returns AsyncUnaryCall NewInstance(ClientBaseConfiguration) Creates a new instance of client from given ClientBaseConfiguration. protected override UniversalNcService.UniversalNcServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration Returns UniversalNcService.UniversalNcServiceClient" - }, - "api/numerical.UniversalNcService.html": { - "href": "api/numerical.UniversalNcService.html", - "title": "Class UniversalNcService | HiAPI-C# 2025", - "summary": "Class UniversalNcService Namespace numerical Assembly HiGeom.dll public static class UniversalNcService Inheritance object UniversalNcService Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor Service descriptor public static ServiceDescriptor Descriptor { get; } Property Value ServiceDescriptor Methods BindService(ServiceBinderBase, UniversalNcServiceBase) Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. Note: this method is part of an experimental API that can change or be removed without any prior notice. public static void BindService(ServiceBinderBase serviceBinder, UniversalNcService.UniversalNcServiceBase serviceImpl) Parameters serviceBinder ServiceBinderBase Service methods will be bound by calling AddMethod on this object. serviceImpl UniversalNcService.UniversalNcServiceBase An object implementing the server-side handling logic. BindService(UniversalNcServiceBase) Creates service definition that can be registered with a server public static ServerServiceDefinition BindService(UniversalNcService.UniversalNcServiceBase serviceImpl) Parameters serviceImpl UniversalNcService.UniversalNcServiceBase An object implementing the server-side handling logic. Returns ServerServiceDefinition" - }, - "api/numerical.html": { - "href": "api/numerical.html", - "title": "Namespace numerical | HiAPI-C# 2025", - "summary": "Namespace numerical Classes Empty GrpcCsvRowDictionary GrpcNcStep NumericalReflection Holder for reflection information generated from UniversalNcs/numerical.proto NumericalService NumericalService.NumericalServiceBase Base class for server-side implementations of NumericalService NumericalService.NumericalServiceClient Client for NumericalService UniversalNcReflection Holder for reflection information generated from UniversalNcs/universal_nc.proto UniversalNcService UniversalNcService.UniversalNcServiceBase Base class for server-side implementations of UniversalNcService UniversalNcService.UniversalNcServiceClient Client for UniversalNcService" - }, "app-anatomy/common/dictionary-service-pattern.html": { "href": "app-anatomy/common/dictionary-service-pattern.html", "title": "DictionaryService and DictionaryHub Pattern | HiAPI-C# 2025", @@ -6377,7 +6317,7 @@ "app-anatomy/geom/cylindroid-control.html": { "href": "app-anatomy/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 Service Application Source Code Path wwwroot/geom/cylindroid-control.js Geom/CylindroidHub.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 HiNC-2025-webservice (Quasar CLI SPA): wwwroot-src/src/components/geom/CylindroidEditor.vue — reusable Z-R pair editor (add / remove / edit); edits the cylindroid by IndexService key and emits changed so the owner can resync. wwwroot-src/src/api/geometry.ts — Cylindroid API wrappers. Geom/CylindroidController.cs — REST endpoints at /api/Cylindroid/* (Get / GetPairCount / GetPairAt / UpdatePairAt / UpdateAllPairs / AddPair / RemovePairAt / SortByZ)." }, "app-anatomy/geom/extended-cylinder-panel.html": { "href": "app-anatomy/geom/extended-cylinder-panel.html", @@ -6467,17 +6407,17 @@ "app-anatomy/mech/holder/cylindroid-holder-panel.html": { "href": "app-anatomy/mech/holder/cylindroid-holder-panel.html", "title": "Cylindroid Holder Panel | HiAPI-C# 2025", - "summary": "Cylindroid Holder Panel The key model is CylindroidHolder. Layout Cylindroid Holder Panel Head Line Title Label Tabs Geometry Tab Cylindroid Panel Resolution Tab Model: PolarResolution2d Polar Resolution 2d Info Tab Name TextField (editable) AbstractNote TextField (readonly) Note TextField (editable) Remember to call UpdateByCylindroid() after geometry reference or content changed. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/CylindroidHolderPanel Web Page Application Source Code Path wwwroot/mech/holder/cylindroid-holder-panel.js Controller/Mech/MechController.cs" + "summary": "Cylindroid Holder Panel The key model is CylindroidHolder. Layout Cylindroid Holder Panel Head Line Title Label Tabs Geometry Tab Cylindroid Panel Resolution Tab Model: PolarResolution2d Polar Resolution 2d Info Tab Name TextField (editable) AbstractNote TextField (readonly) Note TextField (editable) Remember to call UpdateByCylindroid() after geometry reference or content changed. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/CylindroidHolderPanel Web Page Application Source Code Path HiNC-2025-webservice (Quasar CLI SPA): wwwroot-src/src/components/toolhouse/CylindroidHolderEditor.vue — holder-aware editor with Geometry / Resolution / Info tabs; wraps the reusable CylindroidEditor.vue and triggers the holder resync after geometry / resolution edits. wwwroot-src/src/api/cylindroidHolder.ts — typed wrapper over CylindroidHolderController. Mech/CylindroidHolderController.cs — REST endpoints at /api/CylindroidHolder/*: GET Get (+ indexes the holder's Cylindroid for the generic Cylindroid editor), POST UpdateGeometryContent | SetName | SetNote | SetPolarResolution. UpdateGeometryContent performs the resync (UpdateByCylindroid() + ClearCache())." }, "app-anatomy/mech/holder/freeform-holder-panel.html": { "href": "app-anatomy/mech/holder/freeform-holder-panel.html", "title": "Freeform Holder Panel | HiAPI-C# 2025", - "summary": "Freeform Holder Panel The key model is FreeformHolder. Layout Freeform Holder Panel Head Line Title Label Tabs Geometry Tab Geometry Management Panel Anchor Tab (Apply Transformer Manage Panel to set the following tabs) Geom To Spindle Tab Geom To Cutter Tab Resolution Tab Model: PolarResolution2d Polar Resolution 2d Info Tab Name TextField (editable) AbstractNote TextField (readonly) Note TextField (editable) Remember to call UpdateByGeom() after geometry reference or content changed. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/FreeformHolderPanel Web Page Application Source Code Path wwwroot/mech/holder/freeform-holder-panel.js Controller/Mech/MechController.cs" + "summary": "Freeform Holder Panel The key model is FreeformHolder. Layout Freeform Holder Panel Head Line Title Label Tabs Geometry Tab Geometry Management Panel Anchor Tab (Apply Transformer Manage Panel to set the following tabs) Geom To Spindle Tab Geom To Cutter Tab Resolution Tab Model: PolarResolution2d Polar Resolution 2d Info Tab Name TextField (editable) AbstractNote TextField (readonly) Note TextField (editable) Remember to call UpdateByGeom() after geometry reference or content changed. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/FreeformHolderPanel Web Page Application Source Code Path HiNC-2025-webservice (Quasar CLI SPA): not yet ported — FreeformHolder geometry / transformer editing is deferred (see Tool House Page). Existing FreeformHolder objects are preserved; edit via the WPF client or HiNcRcl in the meantime. When ported, it should follow CylindroidHolderEditor.vue + a FreeformHolderController (calling UpdateByGeom() for the resync)." }, "app-anatomy/mech/holder/index.html": { "href": "app-anatomy/mech/holder/index.html", "title": "Holder Panel | HiAPI-C# 2025", - "summary": "Holder Panel This section describes the user interface and behavior for managing different types of tool holders in the application. Tool holders are crucial components in defining a complete tool assembly. Note While tool holders are essential components in real-world machining operations, some users may choose not to define them in simulation environments for convenience, particularly when collision detection is not a primary concern. The system allows for this flexibility, though it's recommended to include holders for accurate representation and comprehensive collision analysis. The primary models involved are subclasses of IHolder. Two common types are: Cylindroid Holder: Represents holders with a cylindrical geometry. See CylindroidHolder. Freeform Holder: Represents holders with more complex, freeform geometry, often defined by STL files. See FreeformHolder. Each holder type will have its own specific user interface elements for defining its geometry and properties. Layout Holder Panel Head Line Object Management Menu Button file extension is Holder The pointed Editor Panel is Holder Management Panel. Title Label Holder Management Panel Holder Type Selection Bar Holder Sub Management Panel The content varied by the Holder Type. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/HolderPanel Web Page Application Source Code Path wwwroot/mech/holder/holder-panel.js Controller/Mech/MechController.cs" + "summary": "Holder Panel This section describes the user interface and behavior for managing different types of tool holders in the application. Tool holders are crucial components in defining a complete tool assembly. Note While tool holders are essential components in real-world machining operations, some users may choose not to define them in simulation environments for convenience, particularly when collision detection is not a primary concern. The system allows for this flexibility, though it's recommended to include holders for accurate representation and comprehensive collision analysis. The primary models involved are subclasses of IHolder. Two common types are: Cylindroid Holder: Represents holders with a cylindrical geometry. See CylindroidHolder. Freeform Holder: Represents holders with more complex, freeform geometry, often defined by STL files. See FreeformHolder. Each holder type will have its own specific user interface elements for defining its geometry and properties. Layout Holder Panel Head Line Object Management Menu Button file extension is Holder The pointed Editor Panel is Holder Management Panel. Title Label Holder Management Panel Holder Type Selection Bar Holder Sub Management Panel The content varied by the Holder Type. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/HolderPanel Web Page Application Source Code Path HiNC-2025-webservice (Quasar CLI SPA): wwwroot-src/src/components/toolhouse/HolderPanel.vue — Holder Type selector that dispatches to a per-type editor component (e.g. CylindroidHolderEditor.vue); Freeform editing is not yet ported. Mech/ToolHouseController.cs — POST SetHolderType, GET GetHolder (returns holder type + abstract note). Per-holder-type editing lives in the dedicated holder controllers." }, "app-anatomy/mech/machining-chain-page.html": { "href": "app-anatomy/mech/machining-chain-page.html", @@ -6502,7 +6442,7 @@ "app-anatomy/mech/tool-house-page.html": { "href": "app-anatomy/mech/tool-house-page.html", "title": "Tool House Page | HiAPI-C# 2025", - "summary": "Tool House Page The page triggers by Main Panel. The key model is MachiningToolHouse. The model UserService is delivered by the host GUI. Layout Tool House Page Tool List Panel The panel has CRUD (and Duplicate) of the tools. Read and Update the selected tool by the Selected Tool Editor Panel. Head Line Object Management Menu Button file extension is MachiningToolHouse The pointed Editor Panel is Tool List Title Label Batch Action Menu Select All Button De-Select All Button (splition bar) Duplication Button Remove Button Create Tool Button Tool List Selection Checkbox (for batch action) Editable Tool ID TextField Editable Note/Abstract TextField Selected Tool Editor Panel Stick Tool Panel Viewer Panel Viewer ToolBar Title Label RenderingCanvas Tool Bar EditorDisplayee Options ToolBar EditorDisplayee Options Menu Dropdown Head Label: Cutter Show Cutter CheckBox (Options of MillingCutterEditorDisplayee) Shape Mode SubMenu Set ShapeMode to Solid Bounding Shape if EnablePhysics is false on GUI initialization. Solid Bounding Shape Ratio Button Detail Physics Shape Ratio Button Visible if EnablePhysics is true. (spliter) Head Label: Holder Show Holder CheckBox (Options of HolderEditorDisplayee) Show Geometry Anchor CheckBox Show Spindle Buckle CheckBox Show Cutter Buckle CheckBox Rendering Mode SubMenu Solid CheckBox Edge CheckBox Hide CheckBox RenderingCanvas The DispEngine.Displayee is MillingToolEditorDisplayee. Tip Do not apply new window for tool creation. Assume the workflow is user create a default content tool and then user setup it in by the edit panel. Add a resizable splition bar between Tool List Panel, Selected Tool Editor Panel and Viewer Panel. The options of MillingCutterEditorDisplayee and HolderEditorDisplayee is enabled only if the upper level options are enabled, i.e. ShowCutter and ShowHolder. Use less layer of EditorDisplayee Options ToolBar for user convenient. Flatten the options of the children displayee except the ratio button group. The Tool ID can not be repeated. When create new tool, assign a new tool ID (maybe the largest ID plus 1). When a tool is entered, call the renderingCanvas.DispEngine.SetViewToHomeView(). Duplication Button Use Duplicate(params object[]) to duplicate the tool. Note/Abstract TextField The Note/Abstract TextField shows note if note existed and is not empty string; otherwise it shows the AbstractNote. The tooltip is the abstract note. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/ToolHousePage Mech/ToolHouse/ToolHouseWindow Web Page Application Source Code Path HiNC-2025-webservice (Quasar CLI SPA): wwwroot-src/src/pages/ToolHousePage.vue — routed page: left Tool List (with inline double-click Tool ID rename) + middle Selected Tool Editor + right Viewer, three panes with Display Options dropdown (Show Cutter / Show Holder + 3 anchor flags + Holder Rendering Mode). wwwroot-src/src/components/toolhouse/StickToolEditor.vue — Cutter / Holder / Clamping / Int. Holder / Info tabs. wwwroot-src/src/components/toolhouse/IntelligentHolderDiv.vue — Intelligent Holder (Observation Location) editor: ObservationAnchorReference enum dropdown + relative Z + ring radius. wwwroot-src/src/components/toolhouse/CutterManagementPanel.vue — cutter-type select + inner tabs (General / Flute Profile / Flute Contours / Optimization). wwwroot-src/src/components/toolhouse/contourTray/ContourTrayDiv.vue — Uniform / Free tray switch + FreeContourTray child CRUD. wwwroot-src/src/components/toolhouse/contourTray/FluteContourDiv.vue — SetupAngle + SideContour selector + BottomContour selector. wwwroot-src/src/components/toolhouse/contourTray/ConstHelixSideContourDiv.vue — Helix / Radial Rake / Radial Relief angles. wwwroot-src/src/components/toolhouse/contourTray/SlideBottomContourDiv.vue — OuterRadius / CutterLength / Eccentric / Disk / AxialRake. wwwroot-src/src/components/toolhouse/MillingCutterOptLimitDiv.vue — EnableOpt + MinFeed / MaxFeed / YieldingUtilizationFactor. wwwroot-src/src/components/toolhouse/HolderPanel.vue — None / CylindroidHolder / FreeformHolder switch; CylindroidHolder edits its backing Cylindroid via the reusable CylindroidEditor.vue. wwwroot-src/src/api/toolHouse.ts — typed wrapper over ToolHouseController (CRUD + Initialize / SelectTool / EnsureCutter / shaper profile / contour tray / holder / FreeContour CRUD / opt-limit / general) and ToolHouseDisplayController (Show flags + Holder rendering mode + Cutter shape mode). Mech/ToolHouseController.cs — REST endpoints: GET /, GET /{id}, GET/PUT /{id}/observation, PUT /{id}/note | exposed-height | preserved-distance | shaper-profile | contour-tray | general | opt-limit, POST /Initialize | SelectTool | CreateTool | DuplicateTool | RenameTool | EnsureCutter | ClearCutter | SetHolderType | GetHolder | ClearToolCache, DELETE /DeleteTool, and FreeContourTray child CRUD at /{id}/contour-tray/contours[/{index}]. Mech/ToolHouseDisplayController.cs — REST endpoints at /api/mech/tool-house-display/* for display options (initialize, select-tool, show-cutter / show-holder / show-geom-anchor / show-spindle-buckle / show-cutter-buckle, holder-rendering-mode, cutter-shape-mode, clear-cache). Not yet ported to the Quasar page (deferred; edit via the WPF client in the meantime): FreeformRemover cutter type. FreeformHolder geometry / transformer editing. FreeformSideContour per-flute CSV position list editing. Existing FreeformSideContour values are preserved on save but read-only in the web UI. Physics-only cutter sub-tabs (Material, InsertCutter, FluteInnerBeam, UpperBeam). CustomSpinningProfile shaper profile type." + "summary": "Tool House Page The page triggers by Main Panel. The key model is MachiningToolHouse. The model UserService is delivered by the host GUI. Layout Tool House Page Tool List Panel The panel has CRUD (and Duplicate) of the tools. Read and Update the selected tool by the Selected Tool Editor Panel. Head Line Object Management Menu Button file extension is MachiningToolHouse The pointed Editor Panel is Tool List Title Label Batch Action Menu Select All Button De-Select All Button (splition bar) Duplication Button Remove Button Create Tool Button Tool List Selection Checkbox (for batch action) Editable Tool ID TextField Editable Note/Abstract TextField Selected Tool Editor Panel Stick Tool Panel Viewer Panel Viewer ToolBar Title Label RenderingCanvas Tool Bar EditorDisplayee Options ToolBar EditorDisplayee Options Menu Dropdown Head Label: Cutter Show Cutter CheckBox (Options of MillingCutterEditorDisplayee) Shape Mode SubMenu Set ShapeMode to Solid Bounding Shape if EnablePhysics is false on GUI initialization. Solid Bounding Shape Ratio Button Detail Physics Shape Ratio Button Visible if EnablePhysics is true. (spliter) Head Label: Holder Show Holder CheckBox (Options of HolderEditorDisplayee) Show Geometry Anchor CheckBox Show Spindle Buckle CheckBox Show Cutter Buckle CheckBox Rendering Mode SubMenu Solid CheckBox Edge CheckBox Hide CheckBox RenderingCanvas The DispEngine.Displayee is MillingToolEditorDisplayee. Tip Do not apply new window for tool creation. Assume the workflow is user create a default content tool and then user setup it in by the edit panel. Add a resizable splition bar between Tool List Panel, Selected Tool Editor Panel and Viewer Panel. The options of MillingCutterEditorDisplayee and HolderEditorDisplayee is enabled only if the upper level options are enabled, i.e. ShowCutter and ShowHolder. Use less layer of EditorDisplayee Options ToolBar for user convenient. Flatten the options of the children displayee except the ratio button group. The Tool ID can not be repeated. When create new tool, assign a new tool ID (maybe the largest ID plus 1). When a tool is entered, call the renderingCanvas.DispEngine.SetViewToHomeView(). Duplication Button Use Duplicate(params object[]) to duplicate the tool. Note/Abstract TextField The Note/Abstract TextField shows note if note existed and is not empty string; otherwise it shows the AbstractNote. The tooltip is the abstract note. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/ToolHousePage Mech/ToolHouse/ToolHouseWindow Web Page Application Source Code Path HiNC-2025-webservice (Quasar CLI SPA): wwwroot-src/src/pages/ToolHousePage.vue — routed page: left Tool List (with inline double-click Tool ID rename) + middle Selected Tool Editor + right Viewer, three panes with Display Options dropdown (Show Cutter / Show Holder + 3 anchor flags + Holder Rendering Mode). wwwroot-src/src/components/toolhouse/StickToolEditor.vue — Cutter / Holder / Clamping / Int. Holder / Info tabs. wwwroot-src/src/components/toolhouse/IntelligentHolderDiv.vue — Intelligent Holder (Observation Location) editor: ObservationAnchorReference enum dropdown + relative Z + ring radius. wwwroot-src/src/components/toolhouse/CutterManagementPanel.vue — cutter-type select + inner tabs (General / Flute Profile / Flute Contours / Optimization). wwwroot-src/src/components/toolhouse/contourTray/ContourTrayDiv.vue — Uniform / Free tray switch + FreeContourTray child CRUD. wwwroot-src/src/components/toolhouse/contourTray/FluteContourDiv.vue — SetupAngle + SideContour selector + BottomContour selector. wwwroot-src/src/components/toolhouse/contourTray/ConstHelixSideContourDiv.vue — Helix / Radial Rake / Radial Relief angles. wwwroot-src/src/components/toolhouse/contourTray/SlideBottomContourDiv.vue — OuterRadius / CutterLength / Eccentric / Disk / AxialRake. wwwroot-src/src/components/toolhouse/MillingCutterOptLimitDiv.vue — EnableOpt + MinFeed / MaxFeed / YieldingUtilizationFactor. wwwroot-src/src/components/toolhouse/HolderPanel.vue — None / CylindroidHolder / FreeformHolder switch; dispatches to a per-type holder editor component. wwwroot-src/src/components/toolhouse/CylindroidHolderEditor.vue — dedicated CylindroidHolder editor (Geometry / Resolution / Info tabs); wraps the reusable CylindroidEditor.vue and resyncs the holder (UpdateByCylindroid()) after geometry / resolution edits. wwwroot-src/src/api/cylindroidHolder.ts — typed wrapper over CylindroidHolderController. wwwroot-src/src/api/toolHouse.ts — typed wrapper over ToolHouseController (CRUD + Initialize / SelectTool / EnsureCutter / shaper profile / contour tray / holder / FreeContour CRUD / opt-limit / general) and ToolHouseDisplayController (Show flags + Holder rendering mode + Cutter shape mode). Mech/ToolHouseController.cs — REST endpoints: GET /, GET /{id}, GET/PUT /{id}/observation, PUT /{id}/note | exposed-height | preserved-distance | shaper-profile | contour-tray | general | opt-limit, POST /Initialize | SelectTool | CreateTool | DuplicateTool | RenameTool | EnsureCutter | ClearCutter | SetHolderType | GetHolder | ClearToolCache, DELETE /DeleteTool, and FreeContourTray child CRUD at /{id}/contour-tray/contours[/{index}]. Mech/ToolHouseDisplayController.cs — REST endpoints at /api/mech/tool-house-display/* for display options (initialize, select-tool, show-cutter / show-holder / show-geom-anchor / show-spindle-buckle / show-cutter-buckle, holder-rendering-mode, cutter-shape-mode, clear-cache). Mech/CylindroidHolderController.cs — holder-aware layer over a tool's CylindroidHolder. REST endpoints at /api/CylindroidHolder/*: GET Get (returns name / note / abstract note / resolution + indexes the holder's Cylindroid), POST UpdateGeometryContent | SetName | SetNote | SetPolarResolution. UpdateGeometryContent is the post-edit resync (UpdateByCylindroid() + ClearCache()) that the generic CylindroidController cannot perform. Not yet ported to the Quasar page (deferred; edit via the WPF client in the meantime): FreeformRemover cutter type. FreeformHolder geometry / transformer editing. FreeformSideContour per-flute CSV position list editing. Existing FreeformSideContour values are preserved on save but read-only in the web UI. Physics-only cutter sub-tabs (Material, InsertCutter, FluteInnerBeam, UpperBeam). CustomSpinningProfile shaper profile type." }, "app-anatomy/mech/topo/transformers.html": { "href": "app-anatomy/mech/topo/transformers.html", @@ -6667,7 +6607,7 @@ "app-anatomy/widget/polar-resolution-2d-panel.html": { "href": "app-anatomy/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 Service Application Source Code Path wwwroot/widget/polar-resolution-2d-panel.js" + "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 HiNC-2025-webservice (Quasar CLI SPA): no standalone widget yet — the resolution is edited inline in the owning holder editor's Resolution tab (e.g. wwwroot-src/src/components/toolhouse/CylindroidHolderEditor.vue) and persisted through that holder's controller (e.g. CylindroidHolderController.SetPolarResolution)." }, "app-anatomy/widget/resizable-bar.html": { "href": "app-anatomy/widget/resizable-bar.html", @@ -6822,7 +6762,7 @@ "manual/analysis/spindle-capability.html": { "href": "manual/analysis/spindle-capability.html", "title": "Spindle Capability | HiAPI-C# 2025", - "summary": "Spindle Capability SpindleCapability (API) describes the energy, torque, power, and thermal envelope of a machine spindle. It is loaded as XML (.SpindleCapability files under Resource/SpindleCapability/) and lives on SpindleCapability (API) as part of the project equipment. This page explains what the model represents physically and how the per-step ratios on a machining step are derived. For editing values interactively, see Spindle Capability Page. For empirical validation of the resulting power numbers against Fanuc ServoGuide, see Spindle Power Evaluation. Boundary curves: continuous vs instantaneous The capability stores two dictionaries keyed by workable duration (in minutes), mapping spindle speed to the maximum power or torque the spindle can deliver for that duration: WorkableDurationToSpindleSpeedPowerContoursDictionary_min_cycleDs_kW (API) WorkableDurationToSpindleSpeedTorqueContoursDictionary_min_cycleDs_Nm (API) Two duration keys are special: PositiveInfinity — the continuous boundary. The spindle can run at any (speed, value) point on this curve forever without overheating. Industry usage often calls this the S1 rating. The smallest finite key (e.g. 15) — the instantaneous boundary. The spindle can run at any (speed, value) point on this curve only for that workable duration before the temperature ceiling is reached. A capability typically also has intermediate keys (e.g. 60 minutes) which document the spindle's published rating curve. Note Why duration-keyed and not just two curves? The duration key serves two roles. The contour values give peak load capability (used by the ratio computation, see below). The duration values implicitly encode the thermal time constants (used by the thermal envelope, see further below). One family of curves drives both. If GearShiftSpindleSpeed_rpm (API) is set, each contour is treated as two segments split at that speed; only the segment for the current spindle speed is used for interpolation. Outside the segment, interpolation uses nearest-neighbour clamping rather than extrapolation. How the four ratios are computed For every machining step where the spindle speed changes, SpindleSpeedCache (API) interpolates each of the four contour-based curves at the current spindle speed and stores four scalar boundaries: Boundary (denominator) Source contour MinInsistentRatioSpindleTorqueBoundary_Nm smallest-key entry of the torque dictionary, interpolated at current rpm InfInsistentRatioSpindleTorqueBoundary_Nm ∞-key entry of the torque dictionary, interpolated at current rpm MinInsistentRatioSpindlePowerBoundary_W smallest-key entry of the power dictionary, interpolated at current rpm InfInsistentRatioSpindlePowerBoundary_W ∞-key entry of the power dictionary, interpolated at current rpm The four MachiningStep ratios are then divisions: \\[ \\begin{aligned} \\text{MaxSpindleTorqueRatio} &= \\frac{\\text{MaxAxialTorque\\_Nm}}{\\text{MinInsistentRatioSpindleTorqueBoundary\\_Nm}} \\\\[6pt] \\text{ContinueSpindleTorqueRatio} &= \\frac{\\text{MaxAxialTorque\\_Nm}}{\\text{InfInsistentRatioSpindleTorqueBoundary\\_Nm}} \\\\[6pt] \\text{MaxSpindlePowerRatio} &= \\frac{\\text{inputPower\\_W}}{\\text{MinInsistentRatioSpindlePowerBoundary\\_W}} \\\\[6pt] \\text{ContinueSpindlePowerRatio} &= \\frac{\\text{inputPower\\_W}}{\\text{InfInsistentRatioSpindlePowerBoundary\\_W}} \\end{aligned} \\] Because the continuous boundary is always lower than (or equal to) the short-duration boundary, the corresponding Continue- ratio is always greater than (or equal to) its Max- counterpart for the same load: A Max- ratio above 100% means the spindle is overdriven instantaneously and will trip thermal protection within the rated short duration. This is the criterion MaxSpindleTorqueRatio (API) and MaxSpindlePowerRatio (API) use to flag tool breakage on Process Machinability. A Continue- ratio above 100% means the spindle cannot sustain this load forever — short bursts may still be safe. Useful for pacing long operations rather than predicting immediate failure. Input power vs output power The power numerator above is input power (energy entering the spindle), not output power (energy reaching the cutting end). They are related by the spindle's energy efficiency: \\(\\text{inputPower\\_W} = \\frac{\\text{AbsAxialPower\\_W}}{\\text{EnergyEfficiency}}\\) — where EnergyEfficiency is EnergyEfficiency (API) and AbsAxialPower_W is what the cutting actually demands. The lost fraction \\((1 - \\text{EnergyEfficiency})\\) becomes heat that the thermal envelope has to dissipate. Spindle Power Evaluation documents the empirical justification for this conversion against measured Fanuc ServoGuide TCMD data. Dry-run idle power Even when the cutter is in air, a rotating spindle dissipates power as bearing friction and aerodynamic windage. HiNC models this as a sum of a linear-in-rpm term (bearing friction) and a higher-order term (windage), parameterised by: DryRunFrictionPowerCoefficient_mWdrpm (API) — friction term coefficient DryRunWindagePowerCoefficient_pWdrpm3 (API) — windage term coefficient The friction term dominates at low rpm; the windage term takes over at high rpm. The thermal envelope (next section) uses the larger of the dry-run idle power and the cutting-induced heat, so the spindle keeps warming up even during air moves. Thermal envelope The same SpindleCapability also drives a thermal model of the spindle body. You do not set heat capacity or convection directly — the thermal model is auto-calibrated from your existing inputs. The continuous (∞-key) curve plus WorkingTemperatureUpperBoundary_C (API) together determine how fast the spindle dumps heat at steady state. Physically: the continuous rating is, by definition, the load the spindle can hold forever without exceeding the working-temperature ceiling — so HiNC infers the steady-state heat-loss capacity from this constraint. The shortest-duration curve plus its duration key together determine how much heat the spindle can absorb before reaching the ceiling. Physically: the short-duration rating is, by definition, the load that brings the spindle to the ceiling exactly within that workable time — so HiNC infers the body's effective thermal mass from this constraint. What this means for you: refining the contour data (more accurate (speed, power/torque) points, better matched duration keys) automatically improves both load-capacity prediction and thermal-response speed. There is no separate thermal parameter to tune. Per-step temperature outputs At each step the body temperature evolves under whatever heat input is currently applied (cutting losses or dry-run, whichever is larger), approaching the steady-state temperature implied by that heat input. The two outputs published per step are: SpindleTemperature_C (API) — current body temperature SpindleWorkingTemperatureRatio (API) — body temperature normalised so that ambient is 0 and the working-temperature ceiling is 1. A value approaching 1.0 means the spindle is near its thermal limit. Note SpindleWorkingTemperatureRatio describes the spindle housing as a whole. It is not the same as the cutter-edge thermal failure tracked by ThermalYieldRatio in Process Machinability, which is a localized cutting-edge phenomenon. Editing and file IO Capabilities are persisted as XML (.SpindleCapability files). Three pre-built spindles ship in Resource/SpindleCapability/: FANUC-aT12-12000i.SpindleCapability TMV-720A-STD-8000RPM.SpindleCapability VP-8--Fanuc-10000RPM.SpindleCapability To edit values interactively, see Spindle Capability Page in the Quasar webservice. The desktop WPF app does not yet have a dedicated editor; load capabilities through the equipment's ObjectManagementMenuButton instead. Related pages Process Machinability — uses MaxSpindleTorqueRatio / MaxSpindlePowerRatio for tool-breakage prediction Spindle Power Evaluation — empirical validation of HiNC spindle power against Fanuc ServoGuide measurements Step Output — full list of per-step physics outputs Spindle Capability Page — UI editor walkthrough" + "summary": "Spindle Capability SpindleCapability (API) describes the energy, torque, power, and thermal envelope of a machine spindle. It is loaded as XML (.SpindleCapability files under Resource/SpindleCapability/) and lives on SpindleCapability (API) as part of the project equipment. This page explains what the model represents physically and how the per-step ratios on a machining step are derived. For editing values interactively, see Spindle Capability Page. For empirical validation of the resulting power numbers against Fanuc ServoGuide, see Spindle Power Evaluation. Boundary curves: continuous vs instantaneous The capability stores two dictionaries keyed by workable duration (in minutes), mapping spindle speed to the maximum power or torque the spindle can deliver for that duration: WorkableDurationToSpindleSpeedPowerContoursDictionary_min_cycleDs_kW (API) WorkableDurationToSpindleSpeedTorqueContoursDictionary_min_cycleDs_Nm (API) Two duration keys are special: PositiveInfinity — the continuous boundary. The spindle can run at any (speed, value) point on this curve forever without overheating. Industry usage often calls this the S1 rating. The smallest finite key (e.g. 15) — the instantaneous boundary. The spindle can run at any (speed, value) point on this curve only for that workable duration before the temperature ceiling is reached. A capability typically also has intermediate keys (e.g. 60 minutes) which document the spindle's published rating curve. Note Why duration-keyed and not just two curves? The duration key serves two roles. The contour values give peak load capability (used by the ratio computation, see below). The duration values implicitly encode the thermal time constants (used by the thermal envelope, see further below). One family of curves drives both. If GearShiftSpindleSpeed_rpm (API) is set, each contour is treated as two segments split at that speed; only the segment for the current spindle speed is used for interpolation. Outside the segment, interpolation uses nearest-neighbour clamping rather than extrapolation. How the four ratios are computed For every machining step where the spindle speed changes, SpindleSpeedCache (API) interpolates each of the four contour-based curves at the current spindle speed and stores four scalar boundaries: Boundary (denominator) Source contour MinInsistentRatioSpindleTorqueBoundary_Nm smallest-key entry of the torque dictionary, interpolated at current rpm InfInsistentRatioSpindleTorqueBoundary_Nm ∞-key entry of the torque dictionary, interpolated at current rpm MinInsistentRatioSpindlePowerBoundary_W smallest-key entry of the power dictionary, interpolated at current rpm InfInsistentRatioSpindlePowerBoundary_W ∞-key entry of the power dictionary, interpolated at current rpm The four MachiningStep ratios are then divisions: \\[ \\begin{aligned} \\text{MaxSpindleTorqueRatio} &= \\frac{\\text{MaxAxialTorque\\_Nm}}{\\text{MinInsistentRatioSpindleTorqueBoundary\\_Nm}} \\\\[6pt] \\text{ContinueSpindleTorqueRatio} &= \\frac{\\text{MaxAxialTorque\\_Nm}}{\\text{InfInsistentRatioSpindleTorqueBoundary\\_Nm}} \\\\[6pt] \\text{MaxSpindlePowerRatio} &= \\frac{\\text{inputPower\\_W}}{\\text{MinInsistentRatioSpindlePowerBoundary\\_W}} \\\\[6pt] \\text{ContinueSpindlePowerRatio} &= \\frac{\\text{inputPower\\_W}}{\\text{InfInsistentRatioSpindlePowerBoundary\\_W}} \\end{aligned} \\] Because the continuous boundary is always lower than (or equal to) the short-duration boundary, the corresponding Continue- ratio is always greater than (or equal to) its Max- counterpart for the same load: A Max- ratio above 100% means the spindle is overdriven instantaneously and will trip thermal protection within the rated short duration. This is the criterion MaxSpindleTorqueRatio (API) and MaxSpindlePowerRatio (API) use to flag tool breakage on Process Machinability. A Continue- ratio above 100% means the spindle cannot sustain this load forever — short bursts may still be safe. Useful for pacing long operations rather than predicting immediate failure. Input power vs output power The power numerator above is input power (energy entering the spindle), not output power (energy reaching the cutting end). They are related by the spindle's energy efficiency: \\(\\text{inputPower\\_W} = \\frac{\\text{AbsAxialPower\\_W}}{\\text{EnergyEfficiency}}\\) — where EnergyEfficiency is EnergyEfficiency (API) and AbsAxialPower_W is what the cutting actually demands. The lost fraction \\((1 - \\text{EnergyEfficiency})\\) becomes heat that the thermal envelope has to dissipate. Spindle Power Evaluation documents the empirical justification for this conversion against measured Fanuc ServoGuide TCMD data. Dry-run idle power Even when the cutter is in air, a rotating spindle dissipates power as bearing friction and aerodynamic windage. HiNC models this as a sum of a linear-in-rpm term (bearing friction) and a higher-order term (windage), parameterised by: DryRunFrictionPowerCoefficient_mWdrpm (API) — friction term coefficient DryRunWindagePowerCoefficient_pWdrpm3 (API) — windage term coefficient The friction term dominates at low rpm; the windage term takes over at high rpm. The thermal envelope (next section) uses the larger of the dry-run idle power and the cutting-induced heat, so the spindle keeps warming up even during air moves. Thermal envelope The same SpindleCapability also drives a thermal model of the spindle body. You do not set heat capacity or convection directly — the thermal model is auto-calibrated from your existing inputs. The continuous (∞-key) curve plus WorkingTemperatureUpperBoundary_C (API) together determine how fast the spindle dumps heat at steady state. Physically: the continuous rating is, by definition, the load the spindle can hold forever without exceeding the working-temperature ceiling — so HiNC infers the steady-state heat-loss capacity from this constraint. The shortest-duration curve plus its duration key together determine how much heat the spindle can absorb before reaching the ceiling. Physically: the short-duration rating is, by definition, the load that brings the spindle to the ceiling exactly within that workable time — so HiNC infers the body's effective thermal mass from this constraint. What this means for you: refining the contour data (more accurate (speed, power/torque) points, better matched duration keys) automatically improves both load-capacity prediction and thermal-response speed. There is no separate thermal parameter to tune. Per-step temperature outputs At each step the body temperature evolves under whatever heat input is currently applied (cutting losses or dry-run, whichever is larger), approaching the steady-state temperature implied by that heat input. The two outputs published per step are: SpindleTemperature_C (API) — current body temperature SpindleWorkingTemperatureRatio (API) — body temperature normalised so that ambient is 0 and the working-temperature ceiling is 1. A value approaching 1.0 means the spindle is near its thermal limit. Note SpindleWorkingTemperatureRatio describes the spindle housing as a whole. It is not the same as the cutter-edge thermal failure tracked by ThermalYieldRatio in Process Machinability, which is a localized cutting-edge phenomenon. Editing and file IO Capabilities are persisted as XML (.SpindleCapability files). Three pre-built spindles ship in Resource/SpindleCapability/: FANUC-aT12-12000i.SpindleCapability TMV-720A-STD-8000RPM.SpindleCapability VP-8--Fanuc-10000RPM.SpindleCapability To edit values interactively, see Spindle Capability Page in the Quasar webservice. The desktop WPF app does not yet have a dedicated editor; load capabilities through the equipment's ObjectManagementMenuButton instead. Related pages Process Machinability — uses MaxSpindleTorqueRatio / MaxSpindlePowerRatio for tool-breakage prediction Spindle Power Evaluation — empirical validation of HiNC spindle power against Fanuc ServoGuide measurements Step Field Reference — full list of per-step physics outputs Spindle Capability Page — UI editor walkthrough" }, "manual/analysis/spindle-power-evaluation.html": { "href": "manual/analysis/spindle-power-evaluation.html", @@ -6837,17 +6777,12 @@ "manual/runtime/index.html": { "href": "manual/runtime/index.html", "title": "Runtime | HiAPI-C# 2025", - "summary": "Runtime Objects, concepts, and APIs that exist during simulation execution. These describe how the simulation progresses and how scripts or the GUI interact with it. Core Concepts Script Command — C# scripting syntax, execution model, warnings MachiningStep — The simulation computation unit Step (Concept) — Short introduction to a step Step Output — CSV field reference for step-level output SessionProgress — Message and progress reporting system API Reference SessionShell Reference — Categorized quick-reference table of all script commands" - }, - "manual/runtime/machining-step.html": { - "href": "manual/runtime/machining-step.html", - "title": "Glossary: Machining Step | HiAPI-C# 2025", - "summary": "Glossary: Machining Step What Is a Machining Step? A MachiningStep (MachiningStep) is a single computation unit in the HiNC simulation. By default, one step corresponds to one spindle revolution, but this interval is configurable via the Basic Simulation workflow. Each step contains data for the time interval between two consecutive steps (from the previous step to the current step). Since this represents a period rather than an instant, many fields are simplified representations using prefixes like Average (Avg), Extremes (Min, Max), Range (Delta), and Maximum Absolute Value (MaxAbs). Key Properties The table below summarizes the primary step output fields. For the complete reference, see MachiningStep. Basic Source Information Property Description FileNo / LineNo / FilePath / LineText Source NC file and line information StepIndex Step sequence index ToolId Active tool ID FlagsText Active G-code modal flags Time and Motion Property Description AccumulatedTime Accumulated simulation time StepDuration Duration of this step BeginSpindleAngle_deg Spindle angle at step start Cl (X, Y, Z, I, J, K) Cutter location point and tool axis vector MC (X, Y, Z, A, B, C) Machine coordinates Feedrate_mmdmin Feed rate (mm/min) SpindleSpeed_rpm Spindle speed (RPM) FeedPerTooth_mm / FeedPerCycle_mm Feed per tooth / per cycle MovingLength_mm Displacement length Cutting Engagement Property Description IsTouched Whether cutting engagement occurred CuttingWidth_mm (ae) Cutting width CuttingDepth_mm (ap) Cutting depth Mrr_mm3ds Material removal rate ChipThickness_mm Chip thickness ChipVolume_mm3 Chip volume Force and Torque Property Description AvgForceToToolOnToolRunningCoordinate_N Average force on tool (X, Y, Z) MaxAbsForce_N Maximum absolute force AvgAbsTorque_Nm Average absolute torque Power and Energy Property Description SpindleInputPower_W Spindle input power SpindleOutputPower_W Spindle output power (after efficiency losses) MaxSpindlePowerRatio Input power / max spindle power capability AccumulatedSpindleEnergyConsumption_kWh Accumulated energy consumption Thermal Property Description CutterDermisTemperature_C Cutter surface temperature WorkpieceDermisTemperature_C Workpiece surface temperature ChipTemperature_C Chip temperature ThermalStress_MPa / ThermalYieldRatio Thermal stress and yield ratio Wear and Deflection Property Description AccumulatedCraterWear_um Accumulated crater wear AccumulatedFlankWearDepth_um / Width_um Accumulated flank wear ReCutDepth_um Re-cut depth from tool deflection Registering Custom Step Variables Beyond default properties, you can register custom step variables using RegisterStepVariable: RegisterStepVariable( \"ChipVolume\", // key \"Chip Volume\", // display name \"mm3\", // unit \"F2\", // format string (step) => step.ChipVolume_mm3 // value function ); PlayNcFile(\"NC/file1.nc\"); Parameters: key: Unique identifier name: Display name (shown in UI) unit: Physical unit (can be null) formatString: .NET numeric format string (can be null) variableFunction: Lambda that computes the value from a step (can be null) Registered variables appear in the UI and in output files from WriteStepFiles. Indexer Access Use the this[string] indexer to read/write custom data on a step: SessionStepBuilt += (preStep, curStep) => { if (curStep != null) curStep[\"MyCustomField\"] = someCalculation(); }; Accessing Step Data GetMillingStep GetMillingStep retrieves a step by index: var step = GetMillingStep(100); if (step != null) { Message($\"ToolId={step.ToolId}, Force={step.MaxAbsForce_N} N\"); } StepCount StepCount returns the total number of steps: Message($\"Total steps: {StepCount}\"); Iterating All Steps for (int i = 0; i < StepCount; i++) { var step = GetMillingStep(i); // process step... } Step Output Files Steps can be exported to CSV using WriteStepFiles: WriteStepFiles(\"Output/[NcName].step.csv\"); The CSV contains all default properties plus any registered custom variables. The file can be read back with PlayCsvFile. For waveform-level data (sub-step time resolution), use WriteShotFiles: WriteShotFiles(\"Output/[NcName].shot.csv\", 1); // 1 ms time resolution Dynamically Registered Variables (Training) After executing TrainMillingPara or ReTrainMillingPara, two additional step variables are automatically registered for steps within the training region: Variable Description TrainingErrRatio Error metric between simulation and measurement for each step AngleOffset Cutter rotation phase difference between measured and simulated data See Also Simulation Step — concept definition Simulation Step Output — complete field reference Glossary: SessionShell Quick-Reference — SessionShell quick-reference Workflow: Basic Machining Simulation — simulation workflow producing steps Workflow: Milling Force Parameter Training — training workflow that adds step variables" + "summary": "Runtime Objects, concepts, and APIs that exist during simulation execution. These describe how the simulation progresses and how scripts or the GUI interact with it. Core Concepts Script Command — C# scripting syntax, execution model, warnings Step — The simulation computation unit: concept, accessing, custom variables, output APIs Step Field Reference — CSV field reference for step-level output SessionProgress — Message and progress reporting system API Reference SessionShell Reference — Categorized quick-reference table of all script commands" }, "manual/runtime/script-command.html": { "href": "manual/runtime/script-command.html", "title": "Glossary: Script Commands | HiAPI-C# 2025", - "summary": "Glossary: Script Commands What Is a Script Command? A script command is a C# statement executed by the HiNC scripting engine. Scripts directly reference members and methods of SessionShell, which serves as the global scope — no explicit object reference is needed. // These are all SessionShell members used directly as globals EnablePhysics = true; MachiningResolution_mm = 0.125; PlayNcFile(\"NC/file1.nc\"); Message(\"Done\"); Script Syntax Basics Scripts use native C# syntax: Feature Syntax Statement terminator ; End-of-line comment // comment String interpolation $\"Value is {variable}\" Positive infinity double.PositiveInfinity Negative infinity double.NegativeInfinity Bitwise OR (for flags) Fx|Fy|Fz All standard C# language features (variables, loops, conditionals, LINQ, etc.) are available. Script Task Page In the HiNC GUI, the Task page contains one or more script panels. Each panel has: Order: Execution order (left to right, top to bottom) Enabled: Whether the script runs (unchecked = skipped) Title: A label for human reference only — has no functional effect Execution Model Session Lifecycle Scripts execute in order on the Task page A PacePlayer(API) controls playback — script commands like PlayNcFile(API) block until the NC program completes Player control commands (Pace()(API), Pause()(API), Reset()(API)) interact with the PacePlayer(API) ResetRuntime(API) clears event handlers, buffers, and runtime state Event-Driven Execution Events like SessionStepBuilt(API) fire during simulation and allow per-step logic: SessionStepBuilt += (preStep, curStep) => { if (curStep != null) Message($\"Step: ToolId={curStep.ToolId}\"); }; PlayNcFile(\"NC/file1.nc\"); Events are cleared by ResetRuntime. Script Commands in NC Code Script commands can be embedded inside NC code comments. Lines starting with ;@ execute before that NC line runs: T01 M06 (;@MachiningResolution_mm=0.03125;) S1270 M03 G43 Z10. H01 For controllers that do not support ; as a comment character (e.g., FANUC), wrap in a comment block: T01 M06 (;@MachiningResolution_mm=0.03125;) File Path Templates Commands that output files support the [NcName] token, which is replaced with each NC file name: PlayNcFile(\"NC/file1.nc\"); PlayNcFile(\"NC/file2.nc\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); // Produces: Output/file1.nc.shot.csv, Output/file2.nc.shot.csv All file paths are relative to the project directory unless an absolute path is given. Important Warnings The following operations can corrupt simulation state or produce incorrect results: Do not save the project during simulation. System-internal configuration (e.g., training-specific resolution overrides) may overwrite your settings. Do not reset the player during milling coefficient training. Close the project instead of pressing the reset button to avoid unexpected errors. Do not modify resolution, tool, or controller settings during training. Changing these mid-training invalidates the results. Do not combine UpdateNcOptOption in SessionStepBuilt(API) with NC-embedded optimization commands. Parallel computation may cause undefined behavior. Global Variables Global provides a key-value dictionary for sharing data across scripts: Global[\"material\"] = \"Steel\"; var material = Global[\"material\"]; Full API Reference For the complete list of available commands, properties, and events, see: SessionShell — full API documentation Glossary: SessionShell Quick-Reference — categorized quick-reference table See Also Glossary: SessionShell Quick-Reference — SessionShell quick-reference Glossary: Machining Step — machining step data model Workflow: Basic Machining Simulation — using scripts in a simulation workflow" + "summary": "Glossary: Script Commands What Is a Script Command? A script command is a C# statement executed by the HiNC scripting engine. Scripts directly reference members and methods of SessionShell, which serves as the global scope — no explicit object reference is needed. // These are all SessionShell members used directly as globals EnablePhysics = true; MachiningResolution_mm = 0.125; PlayNcFile(\"NC/file1.nc\"); Message(\"Done\"); Script Syntax Basics Scripts use native C# syntax: Feature Syntax Statement terminator ; End-of-line comment // comment String interpolation $\"Value is {variable}\" Positive infinity double.PositiveInfinity Negative infinity double.NegativeInfinity Bitwise OR (for flags) Fx|Fy|Fz All standard C# language features (variables, loops, conditionals, LINQ, etc.) are available. Script Task Page In the HiNC GUI, the Task page contains one or more script panels. Each panel has: Order: Execution order (left to right, top to bottom) Enabled: Whether the script runs (unchecked = skipped) Title: A label for human reference only — has no functional effect Execution Model Session Lifecycle Scripts execute in order on the Task page A PacePlayer(API) controls playback — script commands like PlayNcFile(API) block until the NC program completes Player control commands (Pace()(API), Pause()(API), Reset()(API)) interact with the PacePlayer(API) ResetRuntime(API) clears event handlers, buffers, and runtime state Event-Driven Execution Events like SessionStepBuilt(API) fire during simulation and allow per-step logic: SessionStepBuilt += (preStep, curStep) => { if (curStep != null) Message($\"Step: ToolId={curStep.ToolId}\"); }; PlayNcFile(\"NC/file1.nc\"); Events are cleared by ResetRuntime. Script Commands in NC Code Script commands can be embedded inside NC code comments. Lines starting with ;@ execute before that NC line runs: T01 M06 (;@MachiningResolution_mm=0.03125;) S1270 M03 G43 Z10. H01 For controllers that do not support ; as a comment character (e.g., FANUC), wrap in a comment block: T01 M06 (;@MachiningResolution_mm=0.03125;) File Path Templates Commands that output files support the [NcName] token, which is replaced with each NC file name: PlayNcFile(\"NC/file1.nc\"); PlayNcFile(\"NC/file2.nc\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); // Produces: Output/file1.nc.shot.csv, Output/file2.nc.shot.csv All file paths are relative to the project directory unless an absolute path is given. Important Warnings The following operations can corrupt simulation state or produce incorrect results: Do not save the project during simulation. System-internal configuration (e.g., training-specific resolution overrides) may overwrite your settings. Do not reset the player during milling coefficient training. Close the project instead of pressing the reset button to avoid unexpected errors. Do not modify resolution, tool, or controller settings during training. Changing these mid-training invalidates the results. Do not combine UpdateNcOptOption in SessionStepBuilt(API) with NC-embedded optimization commands. Parallel computation may cause undefined behavior. Global Variables Global provides a key-value dictionary for sharing data across scripts: Global[\"material\"] = \"Steel\"; var material = Global[\"material\"]; Full API Reference For the complete list of available commands, properties, and events, see: SessionShell — full API documentation Glossary: SessionShell Quick-Reference — categorized quick-reference table See Also Glossary: SessionShell Quick-Reference — SessionShell quick-reference Step — machining step data model Workflow: Basic Machining Simulation — using scripts in a simulation workflow" }, "manual/runtime/session-progress.html": { "href": "manual/runtime/session-progress.html", @@ -6857,17 +6792,17 @@ "manual/runtime/session-shell.html": { "href": "manual/runtime/session-shell.html", "title": "Glossary: SessionShell Quick-Reference | HiAPI-C# 2025", - "summary": "Glossary: SessionShell Quick-Reference SessionShell is the global scope for all HiNC script commands. This page organizes every command by category with a one-line description and links to the workflow where each is typically used. Simulation Control Command Description Used In PlayNcFile Execute an NC file Workflow: Basic Machining Simulation PlayNc Execute NC code from a string Workflow: Basic Machining Simulation PlayCsvFile Drive simulation from a CSV file Workflow: Basic Machining Simulation, Workflow: Sensor Data Mapping RunNcFile Parse NC file and return action sequence (no auto-pacing) — RunNc Parse NC string and return action sequence (no auto-pacing) — Pace Insert a pausable checkpoint during playback Workflow: Basic Machining Simulation Pause Pause player execution Workflow: Basic Machining Simulation Reset Reset player state Workflow: Basic Machining Simulation PlayAct Execute a custom action object — PlayToolingTeleport Teleport a tool to a new position — PlayClTeleport Teleport tool to a specified CL position and orientation — Configuration — Resolution Command Description Used In MachiningResolution_mm Set workpiece entity resolution (power-of-2 cube width in mm) Workflow: Basic Machining Simulation DispCache_Mb Set display cache size (Mb) Workflow: Basic Machining Simulation MachiningMotionResolution Set machining motion resolution mode Workflow: Basic Machining Simulation Configuration — Physics Command Description Used In EnablePhysics Enable/disable milling force evaluation Workflow: Milling Force Parameter Training, Workflow: NC Optimization EnableWearEffect Enable/disable tool wear effects — MillingForceCycleDivisionNum Divisions per revolution for force calculation Workflow: Milling Force Parameter Training InitSpindleTemperature_C Initial spindle temperature (°C) — EnablePauseOnFailure Pause execution on failure Workflow: Geometry Validation EnableCollisionDetection Enable collision detection Workflow: Geometry Validation EnablePauseOnCollision Pause on collision Workflow: Geometry Validation Data Export Command Description Used In WriteShotFiles Export waveform (shot) data CSV at given time resolution Workflow: Milling Force Parameter Training WriteStepFiles Export step-level data CSV Workflow: Basic Machining Simulation, Workflow: Milling Force Parameter Training Data Mapping Command Description Used In MapSingleByCsvFile One-to-one time-interpolation mapping from CSV Workflow: Sensor Data Mapping MapSeriesByCsvFile One-to-many series mapping from CSV (via ActualTime) Workflow: Sensor Data Mapping AddTimeDataByFile Specify input data with time range for local mapping Workflow: Sensor Data Mapping, Workflow: Milling Force Parameter Training ClearTimeMappingData Clear all mapping data Workflow: Sensor Data Mapping BeginSelection Set range mapping start point (in NC comments) Workflow: Sensor Data Mapping EndSelection Set range mapping end point (in NC comments) Workflow: Sensor Data Mapping LineSelection Single-line data mapping (in NC comments) Workflow: Sensor Data Mapping EnableMapOnSelectionEnd Auto-trigger mapping when selection ends (default: true) Workflow: Sensor Data Mapping Training Command Description Used In TrainMillingPara Train new milling coefficients from mapped data Workflow: Milling Force Parameter Training ReTrainMillingPara Calibrate existing milling coefficients (10% original / 90% new) Workflow: Milling Force Parameter Training LoadCuttingParaByFile Load cutting parameters from file into workpiece Workflow: Milling Force Parameter Training MillingCycleDivisionNum Number of angular divisions per revolution Workflow: Milling Force Parameter Training Optimization Command Description Used In OptimizeToFiles Output optimized NC files Workflow: NC Optimization OptEnableFeedrate Enable sequential feed rate optimization Workflow: NC Optimization OptEnableInterpolation Enable re-interpolation Workflow: NC Optimization OptFeedrateAssignmentRatio Feed rate assignment ratio for re-interpolation Workflow: NC Optimization OptRapidFeed_mmdmin Non-cutting region feed rate (mm/min) Workflow: NC Optimization OptMinFeedrate_mmdmin Minimum cutting feed rate (mm/min) Workflow: NC Optimization OptMaxFeedrate_mmdmin Maximum cutting feed rate (mm/min) Workflow: NC Optimization OptMaxAcceleration_mmds2 Acceleration/deceleration limit (mm/s²) Workflow: NC Optimization OptExtendedPreDistance_mm Pre-distance for cutting region calculation (mm) Workflow: NC Optimization OptExtendedPostDistance_mm Post-distance for cutting region calculation (mm) Workflow: NC Optimization OptSpindlePowerSafetyFactor Spindle power safety factor Workflow: NC Optimization OptSpindleTorqueSafetyFactor Spindle torque safety factor Workflow: NC Optimization OptThermalYieldSafetyFactor Thermal yield safety factor Workflow: NC Optimization OptPreferedForce_N Target cutting force (N) Workflow: NC Optimization Preserve Disable optimization for a single NC line Workflow: NC Optimization BeginPreserve Begin optimization-disabled range Workflow: NC Optimization EndPreserve End optimization-disabled range Workflow: NC Optimization EnableIndividualStepAdjustmentLog Enable per-step optimization log file Workflow: NC Optimization EmbeddedLogMode Set embedded log verbosity (None / SimpleLog / FullLog) Workflow: NC Optimization Geometry Command Description Used In WriteRuntimeGeom Save runtime geometry to file Workflow: Basic Machining Simulation ReadRuntimeGeom Load runtime geometry from file Workflow: Basic Machining Simulation WriteRuntimeGeomToStl Export runtime geometry to STL Workflow: Basic Machining Simulation WriteRuntimeGeomToObj Export runtime geometry to Wavefront OBJ (per-vertex RGB) Workflow: Basic Machining Simulation WriteRuntimeGeomToPly Export runtime geometry to binary PLY (per-vertex RGB) Workflow: Basic Machining Simulation Diff Compare simulated geometry against target Workflow: Geometry Validation RemoveFlyPiece Remove disconnected residual material Workflow: Geometry Validation ScanRuntimeGeomInfDefect Scan for infinite edge cut defects Workflow: Geometry Validation ClearDefectDisplayee Clear defect visualization markers Workflow: Geometry Validation Events Command Description Used In SessionStepBuilt Fired when a machining step is built Workflow: NC Optimization SessionStepSelected Fired when a machining step is selected — Messages Command Description Used In Message Display a general message All workflows ProgressMessage Display a progress message All workflows WarningMessage Display a warning message All workflows ErrorMessage Display an error message All workflows AppendMessagesToFile Export messages to file (optional tag filter) All workflows SessionProgress Session message host object Glossary: Session Progress (Messages) Step Data Access Command Description Used In GetMillingStep Get step by index Workflow: Basic Machining Simulation StepCount Total step count Workflow: Basic Machining Simulation RegisterStepVariable Register a custom step variable Glossary: Machining Step Runtime Management Command Description Used In ResetRuntime Clear event handlers, buffers, and runtime state Workflow: Basic Machining Simulation MachiningSession Get the current machining session object — Properties — Workpiece and Fixture Command Description Used In Workpiece Get/set the workpiece object Workflow: Basic Machining Simulation Fixture Get/set the fixture object Workflow: Basic Machining Simulation Global Global variable dictionary for cross-script data sharing Glossary: Script Commands Tool Setup Command Description Used In GetUniformContourTrayShiftAngle_deg Get tool contour shift angle (deg) — SetUniformContourTrayShiftAngle_deg Set tool contour shift angle (deg) — GetStickMachiningToolObservationHeight_mm Get smart tool holder observation height (mm) — SetStickMachiningToolObservationHeight_mm Set smart tool holder observation height (mm) — Note Tool setup commands are for dynamic adjustment when actual installation conditions differ from defaults. Typically, configure these in the tool configuration file instead. See Also SessionShell — full API documentation Glossary: Script Commands — what is a script command Glossary: Machining Step — step data model Glossary: Session Progress (Messages) — message system" + "summary": "Glossary: SessionShell Quick-Reference SessionShell is the global scope for all HiNC script commands. This page organizes every command by category with a one-line description and links to the workflow where each is typically used. Simulation Control Command Description Used In PlayNcFile Execute an NC file Workflow: Basic Machining Simulation PlayNc Execute NC code from a string Workflow: Basic Machining Simulation PlayCsvFile Drive simulation from a CSV file Workflow: Basic Machining Simulation, Workflow: Sensor Data Mapping RunNcFile Parse NC file and return action sequence (no auto-pacing) — RunNc Parse NC string and return action sequence (no auto-pacing) — Pace Insert a pausable checkpoint during playback Workflow: Basic Machining Simulation Pause Pause player execution Workflow: Basic Machining Simulation Reset Reset player state Workflow: Basic Machining Simulation PlayAct Execute a custom action object — PlayToolingTeleport Teleport a tool to a new position — PlayClTeleport Teleport tool to a specified CL position and orientation — Configuration — Resolution Command Description Used In MachiningResolution_mm Set workpiece entity resolution (power-of-2 cube width in mm) Workflow: Basic Machining Simulation DispCache_Mb Set display cache size (Mb) Workflow: Basic Machining Simulation MachiningMotionResolution Set machining motion resolution mode Workflow: Basic Machining Simulation Configuration — Physics Command Description Used In EnablePhysics Enable/disable milling force evaluation Workflow: Milling Force Parameter Training, Workflow: NC Optimization EnableWearEffect Enable/disable tool wear effects — MillingForceCycleDivisionNum Divisions per revolution for force calculation Workflow: Milling Force Parameter Training InitSpindleTemperature_C Initial spindle temperature (°C) — EnablePauseOnFailure Pause execution on failure Workflow: Geometry Validation EnableCollisionDetection Enable collision detection Workflow: Geometry Validation EnablePauseOnCollision Pause on collision Workflow: Geometry Validation Data Export Command Description Used In WriteShotFiles Export waveform (shot) data CSV at given time resolution Workflow: Milling Force Parameter Training WriteStepFiles Export step-level data CSV Workflow: Basic Machining Simulation, Workflow: Milling Force Parameter Training Data Mapping Command Description Used In MapSingleByCsvFile One-to-one time-interpolation mapping from CSV Workflow: Sensor Data Mapping MapSeriesByCsvFile One-to-many series mapping from CSV (via ActualTime) Workflow: Sensor Data Mapping AddTimeDataByFile Specify input data with time range for local mapping Workflow: Sensor Data Mapping, Workflow: Milling Force Parameter Training ClearTimeMappingData Clear all mapping data Workflow: Sensor Data Mapping BeginSelection Set range mapping start point (in NC comments) Workflow: Sensor Data Mapping EndSelection Set range mapping end point (in NC comments) Workflow: Sensor Data Mapping LineSelection Single-line data mapping (in NC comments) Workflow: Sensor Data Mapping EnableMapOnSelectionEnd Auto-trigger mapping when selection ends (default: true) Workflow: Sensor Data Mapping Training Command Description Used In TrainMillingPara Train new milling coefficients from mapped data Workflow: Milling Force Parameter Training ReTrainMillingPara Calibrate existing milling coefficients (10% original / 90% new) Workflow: Milling Force Parameter Training LoadCuttingParaByFile Load cutting parameters from file into workpiece Workflow: Milling Force Parameter Training MillingCycleDivisionNum Number of angular divisions per revolution Workflow: Milling Force Parameter Training Optimization Command Description Used In OptimizeToFiles Output optimized NC files Workflow: NC Optimization OptEnableFeedrate Enable sequential feed rate optimization Workflow: NC Optimization OptEnableInterpolation Enable re-interpolation Workflow: NC Optimization OptFeedrateAssignmentRatio Feed rate assignment ratio for re-interpolation Workflow: NC Optimization OptRapidFeed_mmdmin Non-cutting region feed rate (mm/min) Workflow: NC Optimization OptMinFeedrate_mmdmin Minimum cutting feed rate (mm/min) Workflow: NC Optimization OptMaxFeedrate_mmdmin Maximum cutting feed rate (mm/min) Workflow: NC Optimization OptMaxAcceleration_mmds2 Acceleration/deceleration limit (mm/s²) Workflow: NC Optimization OptExtendedPreDistance_mm Pre-distance for cutting region calculation (mm) Workflow: NC Optimization OptExtendedPostDistance_mm Post-distance for cutting region calculation (mm) Workflow: NC Optimization OptSpindlePowerSafetyFactor Spindle power safety factor Workflow: NC Optimization OptSpindleTorqueSafetyFactor Spindle torque safety factor Workflow: NC Optimization OptThermalYieldSafetyFactor Thermal yield safety factor Workflow: NC Optimization OptPreferedForce_N Target cutting force (N) Workflow: NC Optimization Preserve Disable optimization for a single NC line Workflow: NC Optimization BeginPreserve Begin optimization-disabled range Workflow: NC Optimization EndPreserve End optimization-disabled range Workflow: NC Optimization EnableIndividualStepAdjustmentLog Enable per-step optimization log file Workflow: NC Optimization EmbeddedLogMode Set embedded log verbosity (None / SimpleLog / FullLog) Workflow: NC Optimization Geometry Command Description Used In WriteRuntimeGeom Save runtime geometry to file Workflow: Basic Machining Simulation ReadRuntimeGeom Load runtime geometry from file Workflow: Basic Machining Simulation WriteRuntimeGeomToStl Export runtime geometry to STL Workflow: Basic Machining Simulation WriteRuntimeGeomToObj Export runtime geometry to Wavefront OBJ (per-vertex RGB) Workflow: Basic Machining Simulation WriteRuntimeGeomToPly Export runtime geometry to binary PLY (per-vertex RGB) Workflow: Basic Machining Simulation Diff Compare simulated geometry against target Workflow: Geometry Validation RemoveFlyPiece Remove disconnected residual material Workflow: Geometry Validation ScanRuntimeGeomInfDefect Scan for infinite edge cut defects Workflow: Geometry Validation ClearDefectDisplayee Clear defect visualization markers Workflow: Geometry Validation Events Command Description Used In SessionStepBuilt Fired when a machining step is built Workflow: NC Optimization SessionStepSelected Fired when a machining step is selected — Messages Command Description Used In Message Display a general message All workflows ProgressMessage Display a progress message All workflows WarningMessage Display a warning message All workflows ErrorMessage Display an error message All workflows AppendMessagesToFile Export messages to file (optional tag filter) All workflows SessionProgress Session message host object Glossary: Session Progress (Messages) Step Data Access Command Description Used In GetMillingStep Get step by index Workflow: Basic Machining Simulation StepCount Total step count Workflow: Basic Machining Simulation RegisterStepVariable Register a custom step variable Step Runtime Management Command Description Used In ResetRuntime Clear event handlers, buffers, and runtime state Workflow: Basic Machining Simulation MachiningSession Get the current machining session object — Properties — Workpiece and Fixture Command Description Used In Workpiece Get/set the workpiece object Workflow: Basic Machining Simulation Fixture Get/set the fixture object Workflow: Basic Machining Simulation Global Global variable dictionary for cross-script data sharing Glossary: Script Commands Tool Setup Command Description Used In GetUniformContourTrayShiftAngle_deg Get tool contour shift angle (deg) — SetUniformContourTrayShiftAngle_deg Set tool contour shift angle (deg) — GetStickMachiningToolObservationHeight_mm Get smart tool holder observation height (mm) — SetStickMachiningToolObservationHeight_mm Set smart tool holder observation height (mm) — Note Tool setup commands are for dynamic adjustment when actual installation conditions differ from defaults. Typically, configure these in the tool configuration file instead. See Also SessionShell — full API documentation Glossary: Script Commands — what is a script command Step — step data model Glossary: Session Progress (Messages) — message system" }, - "manual/runtime/step-intro.html": { - "href": "manual/runtime/step-intro.html", - "title": "Simulation Step | HiAPI-C# 2025", - "summary": "Simulation Step Definition A Step is a single computation unit in the simulation. During cutting, the default is one spindle revolution per step, which can be modified via Workflow: Basic Machining Simulation. Time Significance of Step Data Step data contains information for the time interval between two consecutive steps (i.e., from the previous step to the current step). Since this represents a time interval rather than an instant, many fields are simplified representations of data over that period. Related Pages Simulation Step Output: Complete description of step output fields Glossary: Machining Step: Machining step properties and accessing step data in scripts Workflow: Basic Machining Simulation: Adjusting the computation resolution of steps" + "manual/runtime/step-fields.html": { + "href": "manual/runtime/step-fields.html", + "title": "Step Field Reference | HiAPI-C# 2025", + "summary": "Step Field Reference For the complete and up-to-date field reference, see MachiningStep. To assess the risk of tool breakage, also refer to \"Evaluating Process Machinability\". This page summarizes the main output data for each simulation step, covering source line, kinematics, load, force/torque, power, thermal, and wear information to help quickly understand the machining state at each step. Step data contains information for the time interval between two consecutive steps (i.e., from the previous step to the current step). Many fields are therefore simplified representations over that period. Common prefixes based on the simplification method include Average (Avg), Extremes (Min, Max), Range (Delta), and Maximum Absolute Value (MaxAbs). Basic Source Information FileNo / LineNo / FilePath / LineText / FlagsText: File/line information and flags of the corresponding source NC command. StepIndex: Step sequence index. ToolId: ID of the currently active tool. Time and Motion AccumulatedTime: Accumulated simulation time. StepDuration: Duration of this step (default per-revolution mode: one step equals one spindle revolution). BeginSpindleAngle_deg: Spindle angular displacement at the start of this step. Cl (Cutter Location): Cutter location point (including IJK normal). MC (X, Y, Z, A, B, C): Machine coordinates. MoveOnProgramCoordinate, MovingLength_mm: Displacement vector and length in the program coordinate system. Feedrate_mmdmin / SpindleSpeed_rpm / CuttingSpeed_mmds: Feed rate, spindle speed, and cutting speed. FeedPerTooth_mm / FeedPerCycle_mm / ToothArcDuration_s / SpindleCyclePeriod_s: Feed per tooth/per cycle, tooth arc duration, and spindle cycle period. Cutting Engagement and Material Removal Rate IsTouched: Whether cutting engagement occurred. CuttingWidth_mm (ae) / CuttingDepth_mm (ap): Cutting width / cutting depth. Mrr_mm3ds: Material removal rate. ProgramSideCusp_um, SideCuspList_um: Side cusp height and distribution estimated from program feed and radius. Chip ChipThickness_mm (/um): Chip thickness. ChipVolume_mm3: Chip volume. ChipMass_mg: Chip mass. Force and Torque (Including Mapping Comparison) Coordinate system note: Most fields in this section indicate their coordinate system (e.g., [W] workpiece, [TR] tool running, [SR] spindle rotation). For coordinate system definitions and diagrams, see \"Milling Physics Coordinate Systems\". AvgForceToToolOnToolRunningCoordinate_N, MaxAbsForce_N: Average/maximum force. Various average/maximum torques (about tool tip, about sensor point; in tool running / spindle rotation / workpiece program coordinate systems). AvgAbsTorque_Nm: Average absolute torque. Mapping comparison: AvgMomentXyByMapping_Nm, AvgAbsTorqueByMapping_Nm, error ratios, and symbolic error correlation metrics. Power, Torque, and Energy Consumption SpindleInputPower_W (input power): Energy entering the spindle. SpindleOutputPower_W (output power): Energy acting on the cutting end after spindle energy losses — i.e., the energy causing workpiece and chip deformation and temperature change. Output power is typically proportional to input power, with the ratio being the energy efficiency set in the spindle configuration EnergyEfficiency(API). MaxSpindlePowerRatio (maximum spindle power ratio): Input power / instantaneous maximum power based on spindle capability. ContinueSpindlePowerRatio (continuous spindle power ratio): Input power / unlimited-duration maximum power based on spindle capability. AccumulatedSpindleEnergyConsumption_kWh: Accumulated spindle energy consumption. Max/Continue Spindle Torque Ratio: Instantaneous/continuous spindle torque ratios. Thermal and Temperature CutterBodyTemperature_C / CutterDermisTemperature_C / WorkpieceDermisTemperature_C / ChipTemperature_C: Cutter body, cutter surface, workpiece surface, and chip temperatures. GetCutterDermisTemperature_C(depth_mm) / GetCutterDermisAvgTemperature_C(depth_mm): Cutter subsurface temperature / average temperature at a given depth. ThermalStress_MPa / ThermalYieldRatio: Thermal stress and thermal yield ratio. For tool breakage risk assessment based on thermal yield ratio, see \"Evaluating Process Machinability\". Wear and Deflection For wear models, evaluation metrics, and applicable scenarios, see \"Tool Life and Wear\". InstantCraterWear_um / AccumulatedCraterWear_um: Instantaneous/accumulated crater wear. AccumulatedFlankWearDepth_um / AccumulatedFlankWearWidth_um: Accumulated flank wear depth/width. Tip/Edge Deflection (um): Tool tip and bottom edge deflection (including maximum and delta values), as well as ReCutDepth_um (re-cut depth)." }, - "manual/runtime/step-output.html": { - "href": "manual/runtime/step-output.html", - "title": "Simulation Step Output | HiAPI-C# 2025", - "summary": "Simulation Step Output For the complete and up-to-date field reference, see MachiningStep. To assess the risk of tool breakage, also refer to \"Evaluating Process Machinability\". This page summarizes the main output data for each simulation step, covering source line, kinematics, load, force/torque, power, thermal, and wear information to help quickly understand the machining state at each step. Step data contains information for the time interval between two consecutive steps (i.e., from the previous step to the current step). Many fields are therefore simplified representations over that period. Common prefixes based on the simplification method include Average (Avg), Extremes (Min, Max), Range (Delta), and Maximum Absolute Value (MaxAbs). Basic Source Information FileNo / LineNo / FilePath / LineText / FlagsText: File/line information and flags of the corresponding source NC command. StepIndex: Step sequence index. ToolId: ID of the currently active tool. Time and Motion AccumulatedTime: Accumulated simulation time. StepDuration: Duration of this step (default per-revolution mode: one step equals one spindle revolution). BeginSpindleAngle_deg: Spindle angular displacement at the start of this step. Cl (Cutter Location): Cutter location point (including IJK normal). MoveOnProgramCoordinate, MovingLength_mm: Displacement vector and length in the program coordinate system. Feedrate_mmdmin / SpindleSpeed_rpm / CuttingSpeed_mmds: Feed rate, spindle speed, and cutting speed. FeedPerTooth_mm / FeedPerCycle_mm / ToothArcDuration_s / SpindleCyclePeriod_s: Feed per tooth/per cycle, tooth arc duration, and spindle cycle period. Cutting Engagement and Material Removal Rate IsTouched: Whether cutting engagement occurred. CuttingWidth_mm (ae) / CuttingDepth_mm (ap): Cutting width / cutting depth. Mrr_mm3ds: Material removal rate. ProgramSideCusp_um, SideCuspList_um: Side cusp height and distribution estimated from program feed and radius. Chip ChipThickness_mm (/um): Chip thickness. ChipVolume_mm3: Chip volume. ChipMass_mg: Chip mass. Force and Torque (Including Mapping Comparison) Coordinate system note: Most fields in this section indicate their coordinate system (e.g., [W] workpiece, [TR] tool running, [SR] spindle rotation). For coordinate system definitions and diagrams, see \"Milling Physics Coordinate Systems\". AvgForceToToolOnToolRunningCoordinate_N, MaxAbsForce_N: Average/maximum force. Various average/maximum torques (about tool tip, about sensor point; in tool running / spindle rotation / workpiece program coordinate systems). AvgAbsTorque_Nm: Average absolute torque. Mapping comparison: AvgMomentXyByMapping_Nm, AvgAbsTorqueByMapping_Nm, error ratios, and symbolic error correlation metrics. Power, Torque, and Energy Consumption SpindleInputPower_W (input power): Energy entering the spindle. SpindleOutputPower_W (output power): Energy acting on the cutting end after spindle energy losses — i.e., the energy causing workpiece and chip deformation and temperature change. Output power is typically proportional to input power, with the ratio being the energy efficiency set in the spindle configuration EnergyEfficiency(API). MaxSpindlePowerRatio (maximum spindle power ratio): Input power / instantaneous maximum power based on spindle capability. ContinueSpindlePowerRatio (continuous spindle power ratio): Input power / unlimited-duration maximum power based on spindle capability. AccumulatedSpindleEnergyConsumption_kWh: Accumulated spindle energy consumption. Max/Continue Spindle Torque Ratio: Instantaneous/continuous spindle torque ratios. Thermal and Temperature CutterBodyTemperature_C / CutterDermisTemperature_C / WorkpieceDermisTemperature_C / ChipTemperature_C: Cutter body, cutter surface, workpiece surface, and chip temperatures. GetCutterDermisTemperature_C(depth_mm) / GetCutterDermisAvgTemperature_C(depth_mm): Cutter subsurface temperature / average temperature at a given depth. ThermalStress_MPa / ThermalYieldRatio: Thermal stress and thermal yield ratio. For tool breakage risk assessment based on thermal yield ratio, see \"Evaluating Process Machinability\". Wear and Deflection For wear models, evaluation metrics, and applicable scenarios, see \"Tool Life and Wear\". InstantCraterWear_um / AccumulatedCraterWear_um: Instantaneous/accumulated crater wear. AccumulatedFlankWearDepth_um / AccumulatedFlankWearWidth_um: Accumulated flank wear depth/width. Tip/Edge Deflection (um): Tool tip and bottom edge deflection (including maximum and delta values), as well as ReCutDepth_um (re-cut depth)." + "manual/runtime/step.html": { + "href": "manual/runtime/step.html", + "title": "Step | HiAPI-C# 2025", + "summary": "Step What Is a Step? A MachiningStep (MachiningStep) is a single computation unit in the HiNC simulation. By default, one step corresponds to one spindle revolution, but this interval is configurable via the Basic Simulation workflow. Each step contains data for the time interval between two consecutive steps (from the previous step to the current step). Since this represents a period rather than an instant, many fields are simplified representations using prefixes like Average (Avg), Extremes (Min, Max), Range (Delta), and Maximum Absolute Value (MaxAbs). Registering Custom Step Variables Beyond default properties, you can register custom step variables using RegisterStepVariable: RegisterStepVariable( \"ChipVolume\", // key \"Chip Volume\", // display name \"mm3\", // unit \"F2\", // format string (step) => step.ChipVolume_mm3 // value function ); PlayNcFile(\"NC/file1.nc\"); Parameters: key: Unique identifier name: Display name (shown in UI) unit: Physical unit (can be null) formatString: .NET numeric format string (can be null) variableFunction: Lambda that computes the value from a step (can be null) Registered variables appear in the UI and in output files from WriteStepFiles. Indexer Access Use the this[string] indexer to read/write custom data on a step: SessionStepBuilt += (preStep, curStep) => { if (curStep != null) curStep[\"MyCustomField\"] = someCalculation(); }; Accessing Step Data GetMillingStep GetMillingStep retrieves a step by index: var step = GetMillingStep(100); if (step != null) { Message($\"ToolId={step.ToolId}, Force={step.MaxAbsForce_N} N\"); } StepCount StepCount returns the total number of steps: Message($\"Total steps: {StepCount}\"); Iterating All Steps for (int i = 0; i < StepCount; i++) { var step = GetMillingStep(i); // process step... } Step Output Files Steps can be exported to CSV using WriteStepFiles: WriteStepFiles(\"Output/[NcName].step.csv\"); The CSV contains all default properties plus any registered custom variables. The file can be read back with PlayCsvFile. For waveform-level data (sub-step time resolution), use WriteShotFiles: WriteShotFiles(\"Output/[NcName].shot.csv\", 1); // 1 ms time resolution Dynamically Registered Variables (Training) After executing TrainMillingPara or ReTrainMillingPara, two additional step variables are automatically registered for steps within the training region: Variable Description TrainingErrRatio Error metric between simulation and measurement for each step AngleOffset Cutter rotation phase difference between measured and simulated data See Also Step Field Reference — complete field reference Glossary: SessionShell Quick-Reference — SessionShell quick-reference Workflow: Basic Machining Simulation — simulation workflow producing steps Workflow: Milling Force Parameter Training — training workflow that adds step variables" }, "manual/setup/anchor.html": { "href": "manual/setup/anchor.html", @@ -6962,7 +6897,7 @@ "release-note/index.html": { "href": "release-note/index.html", "title": "Release Note | HiAPI-C# 2025", - "summary": "Release Note HiNc Packages Version 3.1.172 Replace implicit XFactory registration (private static () constructors + _ = X.XName wake-up touches) with explicit public static void Reg(XFactory factory = null) methods across ~270 classes. XFactory becomes an instance class with a process-wide Default singleton; Generators is renamed from Regs and now an instance property; the delegate type is renamed XGeneratorDelegate from GenByXElementDelegate. Composite types chain X.Reg(factory) on dependents in place of the old wake-up touches; multi-name (legacy alias) registrations keep the current XName first and group aliases under a //legacy aliases comment. Entry points (web service, win-desktop, test fixtures) must call Reg once at startup before any project XML is deserialized — registration no longer happens by accident when the type is first touched. See XML IO. HiNc Packages Version 3.1.171 Rename RuntimeApi → SessionShell (the runtime entry point exposed to scripting); IShellCommand → ISessionCommand and RuntimeController → SessionShellController; the Hi.ShellCommands namespace moves to Hi.SessionCommands, and every command implementer's Run() parameter renames scriptApi → sessionShell Tri-state milling-physics contract: MachiningStep physics getters converge on a tri-state result, non-null MillingPhysicsBrief on no-cut steps under EnablePhysics; silently skip thermal physics on null FluteMaterial / WorkpieceMaterial; lazy first-equip warning; align relief-face null-sentinel across NoCut + producer (in NcOpt and forces) Rename IMachiningStepHost → IMachiningService (drops the ICsScriptApi seam) Fixes: rotary IK round-trip anchored to pre-FK interpolated angle; ForceAccelShot.ReadRows skips blank lines HiNc Packages Version 3.1.167 Introduce SoftNcRunner as a pluggable NC parser/runner replacing the legacy HardNcRunner; opt in via EnableSoftNcRunner. see HardNc → SoftNc Rewrite — Progress Report for the in-flight rewrite scope and remaining work Extend coolant model to CoolantMode Flood/Mist/Off and refactor CoolantHeatCondition / MillingTemperatureUtil for multi-mode coolant Bind session events to MachiningSession lifetime: SessionStepBuilt, SessionStepSelected, SessionSyntaxPieceRan, SessionSourcedActEntry (legacy aliases kept as [Obsolete]); add RegisterWriteSyntaxPieces / RegisterWriteSyntaxPiecesWithActs for syntax-piece debug tracing Add ProjectApiVersion carrier through XFactory deserialization for project-XML version negotiation; resolve Workpiece through a lazy Func getter in WorkpieceService HiNc Packages Version 3.1.162 Refactor message management into three independent categories: Diagnostic (IProgress), UI Notification (MessageBoardUtil), App Log (ILogger); remove MessageUtil class entirely and remove ExceptionUtil.ShowException / ExceptionUtil.OnShown (see Message Management) Thread IProgress through XFactory deserialization chain and MachiningProject loading; remove GenMode enum entirely (see XML IO) Add ActionProgress.FromLogger to bridge IProgress APIs to ILogger Rename ShowIfCatched → CatchExceptions with explicit Action handler; remove RoutineBlocker0 Extract WorkpieceService from Workpiece for runtime geometry operations Update ISO coordinate rendering for 3+2 axis machines: coordinate position now uses IsoCoordinateEntryDisplayee with full machining chain anchor instead of table-buckle-only anchor Rename SessionMessageHost → SessionProgress on both SessionProgress and SessionProgress (SessionShell.SessionMessageHost is kept as [Obsolete]) Remove obsolete HiLog logging utility and DynamicMachiningProjectDisplayee0 HiNc Packages Version 3.1.160 Fix NC optimization R-format arc interpolation with negative R values (follow-up to v158 R-format arc fix) Fix cubetree construction defect when a triangle edge passes through a wire corner Mech Builder: geometry (STL) file picker for anchored transformation now offers Project directory in addition to Resource directory. Rename XML IO utilities: XmlSourceAndFile → FileRefSource, CombineAsSubDirectory → GetResourceDirectory, MakeXmlSourceWithRebaseFile → MakeXmlSourceToFileRef HiNc Packages Version 3.1.158 Fix G53.1 tool height compensation behavior: replace NcEnv.SetToolHeightCompensationOnFeatureNormal configuration with automatic detection via NC flag state Make EnableIntegerShrinkOnPositionCommand configurable via project settings (previously hard-coded by CNC brand, now defaults to false with XML IO support) Fix NC optimization splitting R-format arcs (G02/G03 with R parameter) by converting to IJK format, since R sign meaning does not apply correctly to individual fragments Fix step.csv reading crash on null or malformed values Fix XML IO sub-base directory not applied in some project file operations Improve CSV actual time parsing to support DateTime format in addition to TimeSpan (see Workflow: Basic Machining Simulation) Fix CSV title parsing to trim surrounding quotes HiNc Packages Version 3.1.156 Fix G68 coordinate rotation transformation for non-origin rotation centers Fix NC optimization arc/circle offset when splitting arc fragments across multiple lines Fix optimization rotation code jumping at ±180° cycle boundary by applying cyclic angle comparison Fix RTCP on unmatched tool offset Fix blocking issue when time-mapping file not found Fix FlagsText always null after NC parser refactoring HiNc Packages Version 3.1.150 Add cubetree geometry defect scanning (ScanRuntimeGeomInfDefect) and clearing (ClearDefectDisplayee) for detecting and visualizing geometry anomalies in workpieces (see Workflow: Geometry Validation) Upgrade internal fraction representation to float128 precision for improved cubetree geometry accuracy and numerical stability Refactor messaging system from IMessageHost to standard IProgress pattern; SessionProgress (formerly SessionMessageHost) now implements IProgress, and all messaging methods renamed from Add* to Report* (e.g., AddProgress → ReportProgress) Fix cubetree initialization crash Improve postprocess precision by applying sin–cos parameterization instead of direct angle-based formulation for rotary axis numerical solving in XyzabcSolver Add asynchronous anchor solid preparation on project load for improved startup performance HiNc Packages Version 3.1.144 Enhance Siemens Sinumerik support: Siemens CYCLE800 coordinate transform and reset Siemens MCALL CYCLE81() drilling cycle parsing Siemens TRAORI/TRAFOOF/SUPA flag parsing Fix Siemens TRAFOOF plain rotation coordinate transform issue Fix Siemens coordinate transform for successive file running Fix relief face collision floating-point precision issue Replace MongoDB with SQLite for local step data storage (significant package size reduction) Add machining and motion resolution dynamic adjustment functions HiNc Packages Version 3.1.106 Rename mapping API for clearer naming: ReadCsvByTimeInterpolation → MapSingleByCsvFile (one-to-one mapping) MapByActualTime → MapSeriesByCsvFile (one-to-many mapping) Rename CSV column prefix Spindle to Holder for sensor data mapping Unify CSV column tags to MappingUtil for consistent data mapping Fix ChartRange manipulation to be time-based instead of step-based for more accurate time chart display Tune thread priority for machining parallel processing to improve UI responsiveness during simulation Various code cleanup and improvements HiNc Packages Version 3.1.102 Separate resource files (Resource, wwwroot, Doc) to HiNc-Resource nuget package for smaller package size Add ScaledFeedPerCycle function for scaled feed-per-cycle machining motion resolution Upgrade target framework to .NET 10.0 Various code cleanup and improvements HiNc Packages Version 3.1.100 Refactor project architecture: split runtime functions from MachiningProject to LocalProjectService for better separation of concerns Improve MillingTraining module with separate lead and result parameter templates for more accurate cutting parameter training Separate C++ library for code protection Add UTF-8 file path support for runtime geometry IO operations Improve CsvRunner with enhanced time mapping pattern Various architecture improvements and bug fixes HiNc Packages Version 3.1.91 Add NcOptimizationEmbeddedLogMode to control embedded log detail level (None/SimpleLog/FullLog) (see Embedded Log Comments). Fix bug of NcOptProc duplicated feedrate assignment HiNc Packages Version 3.1.90 Rename optimization log API EnableIndividualStepAdjustmentLog Fix crash from workpiece displaying with specific mechanical topology setting Improve .flatproc.log output to maintain step order during parallel computation Various stability improvements and bug fixes HiNc Packages Version 3.1.86 Re-build NcOptProc with stricter optimization logics Add optimization logging features (see Optimization Logs): .flatproc.log file output for optimization process analysis Embedded log comments in optimized NC file marking source lines with (src) suffix Fix cutting depth and width accuracy by bounding-box method with workpiece surface Fix collision check error during concurrent changing collidable object Various stability improvements and bug fixes 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 SessionShell by unifying SessionProgress 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) Various stability improvements and bug fixes HiNc Packages Version 3.1.74 Rename class MillingCutterOptLimit to MillingCutterOptOption Add physics simulation function for relief face collision detection (ReliefFaceCollidingSpeed_mmds, IsReliefFaceCollided) and optimization (EnableLimitByReliefAngle) Add UpdateNcOptOption function to step processing Fix step ordering bug from concurrent processing Fix ClStrip shrinking to zero issue" + "summary": "Release Note HiNc Packages Version 3.1.173 Improve Mrr_mm3ds precision: the material-removal-rate now sums each cut contour's signed area-vector (fan triangulation, skipping non-finite triangles) projected on the feed direction, replacing the per-contour bounding-box area that over-estimated the cut cross-section Add AlignWorkpieceProgramZeroToIso script command: resolves a G54/G55/… entry from the project ISO coordinate table and places workpiece + fixture so the program zero coincides with that machine coordinate (topology math delegated to the new AlignWorkpieceProgramZeroToIso extension) Drop gRPC plumbing from the HiNc package: remove Hi.Grpcs.* ClStrip/Player service runners and protos, MachiningProjectGrpcServer, MonitoringPlayer, and UniversalNcMonitorClient; fold CsvRunnerConfig back into CsvRunner (gRPC services now ship in HiNcRcl / UJoinRcl) HiNc Packages Version 3.1.172 Replace implicit XFactory registration (private static () constructors + _ = X.XName wake-up touches) with explicit public static void Reg(XFactory factory = null) methods across ~270 classes. XFactory becomes an instance class with a process-wide Default singleton; Generators is renamed from Regs and now an instance property; the delegate type is renamed XGeneratorDelegate from GenByXElementDelegate. Composite types chain X.Reg(factory) on dependents in place of the old wake-up touches; multi-name (legacy alias) registrations keep the current XName first and group aliases under a //legacy aliases comment. Entry points (web service, win-desktop, test fixtures) must call Reg once at startup before any project XML is deserialized — registration no longer happens by accident when the type is first touched. See XML IO. HiNc Packages Version 3.1.171 Rename RuntimeApi → SessionShell (the runtime entry point exposed to scripting); IShellCommand → ISessionCommand and RuntimeController → SessionShellController; the Hi.ShellCommands namespace moves to Hi.SessionCommands, and every command implementer's Run() parameter renames scriptApi → sessionShell Tri-state milling-physics contract: MachiningStep physics getters converge on a tri-state result, non-null MillingPhysicsBrief on no-cut steps under EnablePhysics; silently skip thermal physics on null FluteMaterial / WorkpieceMaterial; lazy first-equip warning; align relief-face null-sentinel across NoCut + producer (in NcOpt and forces) Rename IMachiningStepHost → IMachiningService (drops the ICsScriptApi seam) Fixes: rotary IK round-trip anchored to pre-FK interpolated angle; ForceAccelShot.ReadRows skips blank lines HiNc Packages Version 3.1.167 Introduce SoftNcRunner as a pluggable NC parser/runner replacing the legacy HardNcRunner; opt in via EnableSoftNcRunner. see HardNc → SoftNc Rewrite — Progress Report for the in-flight rewrite scope and remaining work Extend coolant model to CoolantMode Flood/Mist/Off and refactor CoolantHeatCondition / MillingTemperatureUtil for multi-mode coolant Bind session events to MachiningSession lifetime: SessionStepBuilt, SessionStepSelected, SessionSyntaxPieceRan, SessionSourcedActEntry (legacy aliases kept as [Obsolete]); add RegisterWriteSyntaxPieces / RegisterWriteSyntaxPiecesWithActs for syntax-piece debug tracing Add ProjectApiVersion carrier through XFactory deserialization for project-XML version negotiation; resolve Workpiece through a lazy Func getter in WorkpieceService HiNc Packages Version 3.1.162 Refactor message management into three independent categories: Diagnostic (IProgress), UI Notification (MessageBoardUtil), App Log (ILogger); remove MessageUtil class entirely and remove ExceptionUtil.ShowException / ExceptionUtil.OnShown (see Message Management) Thread IProgress through XFactory deserialization chain and MachiningProject loading; remove GenMode enum entirely (see XML IO) Add ActionProgress.FromLogger to bridge IProgress APIs to ILogger Rename ShowIfCatched → CatchExceptions with explicit Action handler; remove RoutineBlocker0 Extract WorkpieceService from Workpiece for runtime geometry operations Update ISO coordinate rendering for 3+2 axis machines: coordinate position now uses IsoCoordinateEntryDisplayee with full machining chain anchor instead of table-buckle-only anchor Rename SessionMessageHost → SessionProgress on both SessionProgress and SessionProgress (SessionShell.SessionMessageHost is kept as [Obsolete]) Remove obsolete HiLog logging utility and DynamicMachiningProjectDisplayee0 HiNc Packages Version 3.1.160 Fix NC optimization R-format arc interpolation with negative R values (follow-up to v158 R-format arc fix) Fix cubetree construction defect when a triangle edge passes through a wire corner Mech Builder: geometry (STL) file picker for anchored transformation now offers Project directory in addition to Resource directory. Rename XML IO utilities: XmlSourceAndFile → FileRefSource, CombineAsSubDirectory → GetResourceDirectory, MakeXmlSourceWithRebaseFile → MakeXmlSourceToFileRef HiNc Packages Version 3.1.158 Fix G53.1 tool height compensation behavior: replace NcEnv.SetToolHeightCompensationOnFeatureNormal configuration with automatic detection via NC flag state Make EnableIntegerShrinkOnPositionCommand configurable via project settings (previously hard-coded by CNC brand, now defaults to false with XML IO support) Fix NC optimization splitting R-format arcs (G02/G03 with R parameter) by converting to IJK format, since R sign meaning does not apply correctly to individual fragments Fix step.csv reading crash on null or malformed values Fix XML IO sub-base directory not applied in some project file operations Improve CSV actual time parsing to support DateTime format in addition to TimeSpan (see Workflow: Basic Machining Simulation) Fix CSV title parsing to trim surrounding quotes HiNc Packages Version 3.1.156 Fix G68 coordinate rotation transformation for non-origin rotation centers Fix NC optimization arc/circle offset when splitting arc fragments across multiple lines Fix optimization rotation code jumping at ±180° cycle boundary by applying cyclic angle comparison Fix RTCP on unmatched tool offset Fix blocking issue when time-mapping file not found Fix FlagsText always null after NC parser refactoring HiNc Packages Version 3.1.150 Add cubetree geometry defect scanning (ScanRuntimeGeomInfDefect) and clearing (ClearDefectDisplayee) for detecting and visualizing geometry anomalies in workpieces (see Workflow: Geometry Validation) Upgrade internal fraction representation to float128 precision for improved cubetree geometry accuracy and numerical stability Refactor messaging system from IMessageHost to standard IProgress pattern; SessionProgress (formerly SessionMessageHost) now implements IProgress, and all messaging methods renamed from Add* to Report* (e.g., AddProgress → ReportProgress) Fix cubetree initialization crash Improve postprocess precision by applying sin–cos parameterization instead of direct angle-based formulation for rotary axis numerical solving in XyzabcSolver Add asynchronous anchor solid preparation on project load for improved startup performance HiNc Packages Version 3.1.144 Enhance Siemens Sinumerik support: Siemens CYCLE800 coordinate transform and reset Siemens MCALL CYCLE81() drilling cycle parsing Siemens TRAORI/TRAFOOF/SUPA flag parsing Fix Siemens TRAFOOF plain rotation coordinate transform issue Fix Siemens coordinate transform for successive file running Fix relief face collision floating-point precision issue Replace MongoDB with SQLite for local step data storage (significant package size reduction) Add machining and motion resolution dynamic adjustment functions HiNc Packages Version 3.1.106 Rename mapping API for clearer naming: ReadCsvByTimeInterpolation → MapSingleByCsvFile (one-to-one mapping) MapByActualTime → MapSeriesByCsvFile (one-to-many mapping) Rename CSV column prefix Spindle to Holder for sensor data mapping Unify CSV column tags to MappingUtil for consistent data mapping Fix ChartRange manipulation to be time-based instead of step-based for more accurate time chart display Tune thread priority for machining parallel processing to improve UI responsiveness during simulation Various code cleanup and improvements HiNc Packages Version 3.1.102 Separate resource files (Resource, wwwroot, Doc) to HiNc-Resource nuget package for smaller package size Add ScaledFeedPerCycle function for scaled feed-per-cycle machining motion resolution Upgrade target framework to .NET 10.0 Various code cleanup and improvements HiNc Packages Version 3.1.100 Refactor project architecture: split runtime functions from MachiningProject to LocalProjectService for better separation of concerns Improve MillingTraining module with separate lead and result parameter templates for more accurate cutting parameter training Separate C++ library for code protection Add UTF-8 file path support for runtime geometry IO operations Improve CsvRunner with enhanced time mapping pattern Various architecture improvements and bug fixes HiNc Packages Version 3.1.91 Add NcOptimizationEmbeddedLogMode to control embedded log detail level (None/SimpleLog/FullLog) (see Embedded Log Comments). Fix bug of NcOptProc duplicated feedrate assignment HiNc Packages Version 3.1.90 Rename optimization log API EnableIndividualStepAdjustmentLog Fix crash from workpiece displaying with specific mechanical topology setting Improve .flatproc.log output to maintain step order during parallel computation Various stability improvements and bug fixes HiNc Packages Version 3.1.86 Re-build NcOptProc with stricter optimization logics Add optimization logging features (see Optimization Logs): .flatproc.log file output for optimization process analysis Embedded log comments in optimized NC file marking source lines with (src) suffix Fix cutting depth and width accuracy by bounding-box method with workpiece surface Fix collision check error during concurrent changing collidable object Various stability improvements and bug fixes 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 SessionShell by unifying SessionProgress 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) Various stability improvements and bug fixes HiNc Packages Version 3.1.74 Rename class MillingCutterOptLimit to MillingCutterOptOption Add physics simulation function for relief face collision detection (ReliefFaceCollidingSpeed_mmds, IsReliefFaceCollided) and optimization (EnableLimitByReliefAngle) Add UpdateNcOptOption function to step processing Fix step ordering bug from concurrent processing Fix ClStrip shrinking to zero issue" }, "release-note/softnc-rewrite-report.html": { "href": "release-note/softnc-rewrite-report.html", @@ -7112,7 +7047,7 @@ "workflows/basic-simulation.html": { "href": "workflows/basic-simulation.html", "title": "Workflow: Basic Machining Simulation | HiAPI-C# 2025", - "summary": "Workflow: Basic Machining Simulation This workflow walks through setting up and running a machining simulation from scratch, including project configuration, option tuning, NC execution, and result inspection. flowchart TD Equipment[\"Set machine tool &
    controller brand/type\"] Job[\"Set workpiece, fixture,
    tool house, NC files,
    controller offsets\"] Option[\"Tune simulation options
    (resolution, physics, etc.)\"] Run[\"Run simulation\"] View[\"View results\"] Equipment --> Job --> Option --> Run --> View 1. Set Machine Tool and Controller The machine tool and controller are fixed equipment that define the physical simulation environment. Machine Tool The machine tool (.mt file) provides the kinematic model and STL bodies. Once selected it rarely changes between simulations. Controller Select the controller brand and type (e.g., Fanuc, Heidenhain, Siemens). This determines how NC code is interpreted. See Heidenhain Support and General NC Code Support for details. GUI Operation Open or create a project in the HiNC application and configure machine tool and controller through the corresponding panels before setting up the job. 2. Set Job Components With equipment fixed, configure the job-specific components that change between simulations. Job Components Component Description Workpiece Geometry (STL or parametric), material, and coordinate frame Fixture (optional) Fixture geometry that participates in collision detection Tool House One or more cutting tools with geometry and flute definitions NC Files The NC programs to simulate Controller Offsets Tool offset tables, work offset tables, and other controller-specific presets Tip All file paths used in script commands are relative to the project directory unless an absolute path is given. Script Access The workpiece and fixture objects are available through Workpiece(API) and Fixture(API). var workpiece = Workpiece; var fixture = Fixture; GUI Operation Configure each component through the corresponding panels (Workpiece, Fixture, Tool House windows). 3. Tune Simulation Options Simulation options control the trade-off between accuracy and speed. 3.1 Workpiece Entity Resolution MachiningResolution_mm(API) sets the smallest cube width of the workpiece mesh. MachiningResolution_mm = 0.125; Valid values are powers of 2 (e.g., 4, 2, 1, 0.5, 0.25, 0.125). If you supply a non-power-of-2 value the system rounds to the nearest power of 2. Warning Each halving of mesh width can increase computation time and RAM by up to 8x. Start with a coarser resolution and refine only when needed. 3.2 Display Cache DispCache_Mb = 260; The display resolution depends on the cache size. Recommended value should not exceed 1000 Mb. 3.3 Machining Motion Resolution Machining motion resolution determines the interval of each simulation step. Options: Mode Command Description Feed Per Cycle MachiningMotionResolution = FeedPerCycle; One step per spindle revolution Scaled Feed Per Cycle MachiningMotionResolution = ScaledFeedPerCycle(0.5); One step per revolution × scale factor Feed Per Tooth MachiningMotionResolution = FeedPerTooth; One step per tooth revolution (default) Fixed Pace MachiningMotionResolution = FixedPace(1, 15); Fixed linear (mm) and rotary (deg) resolution Warning Do not use scaled model dimensions as a substitute for adjusting mesh width. Scaling model dimensions causes internal algorithm thresholds (minimum cuttable amount, floating-point-to-fraction range) to become invalid, producing irregular geometry artifacts. Adjust resolution settings instead. 3.4 XML Configuration Resolution can also be set in the .hincproj file or changed mid-simulation via NC code comments: T01 M06 (;@MachiningResolution_mm=0.03125;) 4. Run Simulation There are three ways to drive the simulation. 4.1 PlayNcFile — Execute from a File PlayNcFile(API) reads and executes an NC file. PlayNcFile(\"NC/file1.nc\"); 4.2 PlayNc — Execute from a String PlayNc(API) executes NC code directly from a string, useful for programmatic or dynamically generated commands. double x = 10.0; PlayNc($\"G01 X{x} Y20 F100\", \"Generated Command\"); 4.3 PlayCsvFile — Drive from CSV Data PlayCsvFile(API) drives the simulation from a CSV file containing axis positions, spindle speed, and feed rate. PlayCsvFile(\"Data/file1.csv\"); Required CSV columns (default headers): MC.X, MC.Y, MC.Z, ToolId, SpindleSpeed_rpm, Feedrate_mmdmin. Optional: MC.A, MC.B, MC.C, ActualTime, StepDuration. Tip CSV files exported by WriteStepFiles(API) can be directly read back with PlayCsvFile(API). 4.4 Player Control Command Purpose Pace()(API) Insert a pausable checkpoint Pause()(API) Pause execution Reset()(API) Reset player state PlayNcFile(\"NC/file1.nc\"); if (someCondition) Pause(); 5. View Results 5.1 Runtime Geometry After simulation the workpiece geometry is a Runtime Geometry (cubic mesh). You can save and reload it to avoid re-computing the initial shape: WriteRuntimeGeom(\"Cache/file1.wct\"); WriteRuntimeGeomToStl(\"Output/file1.stl\"); To reload a saved geometry for a subsequent run: ReadRuntimeGeom(\"Cache/init.wct\"); PlayNcFile(\"NC/file1.nc\"); 5.2 Step Data Inspection Each simulation step carries rich data (force, torque, power, thermal, wear). Access individual steps: var step = GetMillingStep(100); Message($\"ToolId={step.ToolId}, Force={step.MaxAbsForce_N} N\"); Total step count: var total = StepCount; Message($\"Total steps: {total}\"); 5.3 Export Data Export step-level CSV: WriteStepFiles(\"Output/[NcName].step.csv\"); Export waveform (shot) CSV: WriteShotFiles(\"Output/[NcName].shot.csv\", 1); 5.4 Messages Use messages to log and track simulation progress: Message(\"Simulation complete\"); AppendMessagesToFile(\"Output/messages.txt\"); Troubleshooting Symptom Likely Cause Fix Very slow simulation Resolution too fine Increase MachiningResolution_mm Irregular bumps on geometry Scaled model dimensions instead of resolution Use resolution settings only; see warning above Display lag DispCache_Mb too large Reduce display cache (< 1000 Mb recommended) Empty step data Simulation not run or tool not engaging workpiece Verify tool path intersects the workpiece See Also Heidenhain Support — controller configuration General NC Code Support — ISO NC support Simulation Step — what a step is Simulation Step Output — step field reference Glossary: Script Commands — script command basics Glossary: SessionShell Quick-Reference — SessionShell quick-reference" + "summary": "Workflow: Basic Machining Simulation This workflow walks through setting up and running a machining simulation from scratch, including project configuration, option tuning, NC execution, and result inspection. flowchart TD Equipment[\"Set machine tool &
    controller brand/type\"] Job[\"Set workpiece, fixture,
    tool house, NC files,
    controller offsets\"] Option[\"Tune simulation options
    (resolution, physics, etc.)\"] Run[\"Run simulation\"] View[\"View results\"] Equipment --> Job --> Option --> Run --> View 1. Set Machine Tool and Controller The machine tool and controller are fixed equipment that define the physical simulation environment. Machine Tool The machine tool (.mt file) provides the kinematic model and STL bodies. Once selected it rarely changes between simulations. Controller Select the controller brand and type (e.g., Fanuc, Heidenhain, Siemens). This determines how NC code is interpreted. See Heidenhain Support and General NC Code Support for details. GUI Operation Open or create a project in the HiNC application and configure machine tool and controller through the corresponding panels before setting up the job. 2. Set Job Components With equipment fixed, configure the job-specific components that change between simulations. Job Components Component Description Workpiece Geometry (STL or parametric), material, and coordinate frame Fixture (optional) Fixture geometry that participates in collision detection Tool House One or more cutting tools with geometry and flute definitions NC Files The NC programs to simulate Controller Offsets Tool offset tables, work offset tables, and other controller-specific presets Tip All file paths used in script commands are relative to the project directory unless an absolute path is given. Script Access The workpiece and fixture objects are available through Workpiece(API) and Fixture(API). var workpiece = Workpiece; var fixture = Fixture; GUI Operation Configure each component through the corresponding panels (Workpiece, Fixture, Tool House windows). 3. Tune Simulation Options Simulation options control the trade-off between accuracy and speed. 3.1 Workpiece Entity Resolution MachiningResolution_mm(API) sets the smallest cube width of the workpiece mesh. MachiningResolution_mm = 0.125; Valid values are powers of 2 (e.g., 4, 2, 1, 0.5, 0.25, 0.125). If you supply a non-power-of-2 value the system rounds to the nearest power of 2. Warning Each halving of mesh width can increase computation time and RAM by up to 8x. Start with a coarser resolution and refine only when needed. 3.2 Display Cache DispCache_Mb = 260; The display resolution depends on the cache size. Recommended value should not exceed 1000 Mb. 3.3 Machining Motion Resolution Machining motion resolution determines the interval of each simulation step. Options: Mode Command Description Feed Per Cycle MachiningMotionResolution = FeedPerCycle; One step per spindle revolution Scaled Feed Per Cycle MachiningMotionResolution = ScaledFeedPerCycle(0.5); One step per revolution × scale factor Feed Per Tooth MachiningMotionResolution = FeedPerTooth; One step per tooth revolution (default) Fixed Pace MachiningMotionResolution = FixedPace(1, 15); Fixed linear (mm) and rotary (deg) resolution Warning Do not use scaled model dimensions as a substitute for adjusting mesh width. Scaling model dimensions causes internal algorithm thresholds (minimum cuttable amount, floating-point-to-fraction range) to become invalid, producing irregular geometry artifacts. Adjust resolution settings instead. 3.4 XML Configuration Resolution can also be set in the .hincproj file or changed mid-simulation via NC code comments: T01 M06 (;@MachiningResolution_mm=0.03125;) 4. Run Simulation There are three ways to drive the simulation. 4.1 PlayNcFile — Execute from a File PlayNcFile(API) reads and executes an NC file. PlayNcFile(\"NC/file1.nc\"); 4.2 PlayNc — Execute from a String PlayNc(API) executes NC code directly from a string, useful for programmatic or dynamically generated commands. double x = 10.0; PlayNc($\"G01 X{x} Y20 F100\", \"Generated Command\"); 4.3 PlayCsvFile — Drive from CSV Data PlayCsvFile(API) drives the simulation from a CSV file containing axis positions, spindle speed, and feed rate. PlayCsvFile(\"Data/file1.csv\"); Required CSV columns (default headers): MC.X, MC.Y, MC.Z, ToolId, SpindleSpeed_rpm, Feedrate_mmdmin. Optional: MC.A, MC.B, MC.C, ActualTime, StepDuration. Headers and timestamp values may be wrapped in double quotes; the parser strips them. ActualTime accepts either HH:mm:ss.fff or an absolute yyyy-MM-dd HH:mm:ss.ffffff form (the absolute form is required when chaining with MapSeriesByCsvFile(API), which matches by TimeTag): \"ActualTime\",\"Feedrate_mmdmin\",\"MC.X\",\"MC.Y\",\"MC.Z\",\"SpindleSpeed_rpm\",\"ToolId\" \"2026-03-16 15:57:45.559000\",10000.0,-351.745,-244.799,-215.799,1270,1 \"2026-03-16 15:57:45.705000\",10000.0,-351.745,-244.799,-215.799,1270,1 When a real-world controller log includes extra columns (e.g., t_receive, cnc_delay_s, status) or uses alternative column names (X/Y/Z, feedrate, spindle_speed), preprocess the file to drop or rename columns before passing it to PlayCsvFile(API). Tip CSV files exported by WriteStepFiles(API) can be directly read back with PlayCsvFile(API). 4.4 Player Control Command Purpose Pace()(API) Insert a pausable checkpoint Pause()(API) Pause execution Reset()(API) Reset player state PlayNcFile(\"NC/file1.nc\"); if (someCondition) Pause(); 5. View Results 5.1 Runtime Geometry After simulation the workpiece geometry is a Runtime Geometry (cubic mesh). You can save and reload it to avoid re-computing the initial shape: WriteRuntimeGeom(\"Cache/file1.wct\"); WriteRuntimeGeomToStl(\"Output/file1.stl\"); To reload a saved geometry for a subsequent run: ReadRuntimeGeom(\"Cache/init.wct\"); PlayNcFile(\"NC/file1.nc\"); 5.2 Step Data Inspection Each simulation step carries rich data (force, torque, power, thermal, wear). Access individual steps: var step = GetMillingStep(100); Message($\"ToolId={step.ToolId}, Force={step.MaxAbsForce_N} N\"); Total step count: var total = StepCount; Message($\"Total steps: {total}\"); 5.3 Export Data Export step-level CSV: WriteStepFiles(\"Output/[NcName].step.csv\"); Export waveform (shot) CSV: WriteShotFiles(\"Output/[NcName].shot.csv\", 1); 5.4 Messages Use messages to log and track simulation progress: Message(\"Simulation complete\"); AppendMessagesToFile(\"Output/messages.txt\"); Troubleshooting Symptom Likely Cause Fix Very slow simulation Resolution too fine Increase MachiningResolution_mm Irregular bumps on geometry Scaled model dimensions instead of resolution Use resolution settings only; see warning above Display lag DispCache_Mb too large Reduce display cache (< 1000 Mb recommended) Empty step data Simulation not run or tool not engaging workpiece Verify tool path intersects the workpiece See Also Heidenhain Support — controller configuration General NC Code Support — ISO NC support Step — what a step is, accessing and outputting step data Step Field Reference — step field reference Glossary: Script Commands — script command basics Glossary: SessionShell Quick-Reference — SessionShell quick-reference" }, "workflows/dynamometer-experiment-sop.html": { "href": "workflows/dynamometer-experiment-sop.html", @@ -7137,7 +7072,7 @@ "workflows/force-training.html": { "href": "workflows/force-training.html", "title": "Workflow: Milling Force Parameter Training | HiAPI-C# 2025", - "summary": "Workflow: Milling Force Parameter Training This workflow covers the end-to-end process of training milling force coefficients from sensor data, including data mapping, coefficient training, quality evaluation, and application of the trained parameters. Milling coefficients are essential parameters for calculating milling forces. Training derives these coefficients from experimental sensor data (dynamometer or smart tool holder) mapped to simulated toolpaths. flowchart TD Prereq[\"Prerequisites
    (sensor data, project setup)\"] Resolution[\"Configure resolution & enable physics\"] Mapping[\"Configure data mapping\"] Simulate[\"Run simulation with NC file\"] Export[\"Export simulation data
    (WriteShotFiles, WriteStepFiles)\"] Map[\"Map sensor data to simulation\"] Train[\"Train milling parameters\"] Evaluate[\"Evaluate training quality\"] Apply[\"Load trained parameters\"] Prereq --> Resolution --> Mapping --> Simulate --> Export Simulate --> Map --> Train --> Evaluate --> Apply 1. Prerequisites Before training you need: Item Description HiNC project Machine tool, workpiece, fixture, tool house configured NC file The NC program used during the physical cutting experiment Sensor data CSV Time-stamped force/torque data from a dynamometer or smart tool holder Controller data CSV (optional) Machine controller log with FileNo, LineNo, ActualTime for two-layer mapping Sensor Data File Format The CSV must contain a header row with ActualTime and at least one force/torque channel: Source Headers Dynamometer Fx (or Workpiece.Fx), Fy, Fz Smart tool holder Mx (or Holder.Mx), My, Mz Accelerometer (optional) Ax, Ay, Az ActualTime,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 ... Tip Keep the completed training project archived. When the HiNC training algorithm is updated, you can re-run training from the same project. 2. Configure Resolution and Enable Physics Resolution Use a finer resolution than normal operation for training accuracy: MachiningResolution_mm = 0.0625; // half or less of production resolution MachiningMotionResolution = FeedPerTooth; Tip Training resolution should be ≤ 0.5× the production resolution for better accuracy. Enable Physics EnablePhysics must be enabled for force calculation: EnablePhysics = true; Milling Force Cycle Division Set the number of angular divisions per revolution before training. Higher values yield more accurate phase alignment: MillingForceCycleDivisionNum = 360; Note This must be set before executing TrainMillingPara. A larger value produces a more accurate AngleOffset result and better milling coefficients. 3. Configure Data Mapping Depending on your data, choose one of the mapping strategies below. 3.1 Local Mapping (Anchor-Based) For mapping sensor data to specific NC path segments: Step A — Specify input data: 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\"); Step B — Specify NC paths (embedded in NC code comments): X13. F20 ;@LineSelection(\"lineA\", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1)); X25. F10 ;@LineSelection(\"lineB\", FirstTouch, null, LastTouch, null); Anchor options: LineBegin, LineEnd, FirstTouch, LastTouch. Offset options: null, ShiftTime_s(), ShiftDistance_mm(). 3.2 Two-Layer Chained Mapping (Controller + Sensor) When you have both controller data and sensor data: PlayNcFile(\"NC/machining.nc\"); MapSingleByCsvFile(\"Data/controller.csv\"); // maps FileNo/LineNo → ActualTime MapSeriesByCsvFile(\"Data/sensor.csv\"); // maps ActualTime → sensor series Note Why two-layer mapping? Running the NC through the system interpreter produces more accurate simulation paths than direct CSV playback. The controller data bridges simulation steps to real time via FileNo/LineNo, and the sensor data bridges real time to force/torque readings. 4. Run Simulation PlayNcFile(\"NC/file1.nc\"); Warning During training, do not: Adjust workpiece, tool, or controller resolution settings Use the NC player reset button (close the project instead) Save the project (system training configuration may overwrite tool resolution settings) 5. Export Simulation Data Export step data and waveform data for analysis: WriteStepFiles(\"Output/[NcName].step.csv\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); The shot file contains time-resolved force columns: Tool.Fx/Fy/Fz, Workpiece.Fx/Fy/Fz, Spindle.Mx/My/Mz. For coordinate system explanations, see Milling Physics Coordinates. 6. Train Milling Parameters TrainMillingPara (New Training) TrainMillingPara trains new coefficients independently of any existing workpiece parameters. TrainMillingPara(Fx|Fy|Fz, \"StainlessSteel.mp\"); ReTrainMillingPara (Calibration) ReTrainMillingPara calibrates existing coefficients (10% original weight, 90% new sample weight). ReTrainMillingPara(Fz|Mx|My|Mz, \"StainlessSteel.mp\"); Sample Flag Requirements Command Minimum Data Types Feed Per Tooth Requirement TrainMillingPara Fx\\|Fy\\|Fz (dynamometer) or Fz\\|Mx\\|My\\|Mz (smart tool holder) At least one sample with different feed per tooth ReTrainMillingPara No restriction No restriction Warning Using only Mx|My|Mz without Fz loses one degree of freedom (torque = r × F loses the r-direction), making coefficient training unreliable. Always include Fz when using torque data. Training Conditions Samples should have stable, repeatable waveforms for at least two spindle revolutions Under unstable conditions, plowing coefficients tend to be over-estimated Any NC path shape (slot milling, side milling, any tool shape) is acceptable when samples are stable 7. Evaluate Training Quality After training, the system reports three quality metrics: Correlation Coefficient (R) A single value for the overall result. Ranges from 0 to 1; for new tools, expect 0.95–0.999. Training Error Ratio (TrainingErrRatio) A per-step variable registered automatically after training. Lower values indicate better step-level quality: \\[ \\text{TrainingErrRatio} = \\sqrt{\\frac{\\sum_{i} e_i^2}{\\sqrt{\\sum_{i} y_i^2 \\cdot \\sum_{i} \\hat{y}_i^2}}} \\] Angle Offset (AngleOffset) A per-step variable representing the cutter rotation phase difference between measured and simulated data: \\[ \\theta_{offset} = \\frac{2\\pi \\cdot i_{min}}{N_{div}} \\] Tip If AngleOffset varies significantly across segments in the same training batch, the spindle may have experienced speed changes, data gaps, or the system could not accurately analyze the samples. 8. Load Trained Parameters After training, load the new coefficients into the workpiece: LoadCuttingParaByFile(\"StainlessSteel.mp\"); Warning If the training output file path is the same as the tool's existing cutting parameter file, reload the project after training to ensure the new parameters take effect. XML Configuration (GUI Workflow) When using the GUI-based training workflow, configure the .hincproj file: MillingPara/trainedPara.mp false 2 1 0 0 1 0 0 Set IsMzEnabled to true if mapped data contains axial spindle torque from a smart tool holder. Complete Script Example MachiningResolution_mm = 0.0625; EnablePhysics = true; MillingForceCycleDivisionNum = 360; 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\"); TrainMillingPara(Fx|Fy|Fz, \"MillingPara/trained.mp\"); LoadCuttingParaByFile(\"MillingPara/trained.mp\"); WriteStepFiles(\"Output/[NcName].step.csv\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); See Also Milling Physics Coordinates — coordinate system reference Sensor Mapping Workflow — detailed mapping workflow Workflow: Basic Machining Simulation — basic simulation setup Workflow: NC Optimization — optimization after training Glossary: Machining Step — step data reference Glossary: SessionShell Quick-Reference — SessionShell quick-reference Training with a Dynamometer (Example) Cascading Mapping (Example)" + "summary": "Workflow: Milling Force Parameter Training This workflow covers the end-to-end process of training milling force coefficients from sensor data, including data mapping, coefficient training, quality evaluation, and application of the trained parameters. Milling coefficients are essential parameters for calculating milling forces. Training derives these coefficients from experimental sensor data (dynamometer or smart tool holder) mapped to simulated toolpaths. flowchart TD Prereq[\"Prerequisites
    (sensor data, project setup)\"] Resolution[\"Configure resolution & enable physics\"] Mapping[\"Configure data mapping\"] Simulate[\"Run simulation with NC file\"] Export[\"Export simulation data
    (WriteShotFiles, WriteStepFiles)\"] Map[\"Map sensor data to simulation\"] Train[\"Train milling parameters\"] Evaluate[\"Evaluate training quality\"] Apply[\"Load trained parameters\"] Prereq --> Resolution --> Mapping --> Simulate --> Export Simulate --> Map --> Train --> Evaluate --> Apply 1. Prerequisites Before training you need: Item Description HiNC project Machine tool, workpiece, fixture, tool house configured NC file The NC program used during the physical cutting experiment Sensor data CSV Time-stamped force/torque data from a dynamometer or smart tool holder Controller data CSV (optional) Machine controller log with FileNo, LineNo, ActualTime for two-layer mapping Sensor Data File Format The CSV must contain a header row with ActualTime and at least one force/torque channel: Source Headers Dynamometer Fx (or Workpiece.Fx), Fy, Fz Smart tool holder Mx (or Holder.Mx), My, Mz Accelerometer (optional) Ax, Ay, Az ActualTime,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 ... Tip Keep the completed training project archived. When the HiNC training algorithm is updated, you can re-run training from the same project. 2. Configure Resolution and Enable Physics Resolution Use a finer resolution than normal operation for training accuracy: MachiningResolution_mm = 0.0625; // half or less of production resolution MachiningMotionResolution = FeedPerTooth; Tip Training resolution should be ≤ 0.5× the production resolution for better accuracy. Enable Physics EnablePhysics must be enabled for force calculation: EnablePhysics = true; Milling Force Cycle Division Set the number of angular divisions per revolution before training. Higher values yield more accurate phase alignment: MillingForceCycleDivisionNum = 360; Note This must be set before executing TrainMillingPara. A larger value produces a more accurate AngleOffset result and better milling coefficients. 3. Configure Data Mapping Depending on your data, choose one of the mapping strategies below. 3.1 Local Mapping (Anchor-Based) For mapping sensor data to specific NC path segments: Step A — Specify input data: 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\"); Step B — Specify NC paths (embedded in NC code comments): X13. F20 ;@LineSelection(\"lineA\", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1)); X25. F10 ;@LineSelection(\"lineB\", FirstTouch, null, LastTouch, null); Anchor options: LineBegin, LineEnd, FirstTouch, LastTouch. Offset options: null, ShiftTime_s(), ShiftDistance_mm(). 3.2 Two-Layer Chained Mapping (Controller + Sensor) When you have both controller data and sensor data: PlayNcFile(\"NC/machining.nc\"); MapSingleByCsvFile(\"Data/controller.csv\"); // maps FileNo/LineNo → ActualTime MapSeriesByCsvFile(\"Data/sensor.csv\"); // maps ActualTime → sensor series Note Why two-layer mapping? Running the NC through the system interpreter produces more accurate simulation paths than direct CSV playback. The controller data bridges simulation steps to real time via FileNo/LineNo, and the sensor data bridges real time to force/torque readings. 4. Run Simulation PlayNcFile(\"NC/file1.nc\"); Warning During training, do not: Adjust workpiece, tool, or controller resolution settings Use the NC player reset button (close the project instead) Save the project (system training configuration may overwrite tool resolution settings) 5. Export Simulation Data Export step data and waveform data for analysis: WriteStepFiles(\"Output/[NcName].step.csv\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); The shot file contains time-resolved force columns: Tool.Fx/Fy/Fz, Workpiece.Fx/Fy/Fz, Spindle.Mx/My/Mz. For coordinate system explanations, see Milling Physics Coordinates. 6. Train Milling Parameters TrainMillingPara (New Training) TrainMillingPara trains new coefficients independently of any existing workpiece parameters. TrainMillingPara(Fx|Fy|Fz, \"StainlessSteel.mp\"); ReTrainMillingPara (Calibration) ReTrainMillingPara calibrates existing coefficients (10% original weight, 90% new sample weight). ReTrainMillingPara(Fz|Mx|My|Mz, \"StainlessSteel.mp\"); Sample Flag Requirements Command Minimum Data Types Feed Per Tooth Requirement TrainMillingPara Fx\\|Fy\\|Fz (dynamometer) or Fz\\|Mx\\|My\\|Mz (smart tool holder) At least one sample with different feed per tooth ReTrainMillingPara No restriction No restriction Warning Using only Mx|My|Mz without Fz loses one degree of freedom (torque = r × F loses the r-direction), making coefficient training unreliable. Always include Fz when using torque data. Training Conditions Samples should have stable, repeatable waveforms for at least two spindle revolutions Under unstable conditions, plowing coefficients tend to be over-estimated Any NC path shape (slot milling, side milling, any tool shape) is acceptable when samples are stable 7. Evaluate Training Quality After training, the system reports three quality metrics: Correlation Coefficient (R) A single value for the overall result. Ranges from 0 to 1; for new tools, expect 0.95–0.999. Training Error Ratio (TrainingErrRatio) A per-step variable registered automatically after training. Lower values indicate better step-level quality: \\[ \\text{TrainingErrRatio} = \\sqrt{\\frac{\\sum_{i} e_i^2}{\\sqrt{\\sum_{i} y_i^2 \\cdot \\sum_{i} \\hat{y}_i^2}}} \\] Angle Offset (AngleOffset) A per-step variable representing the cutter rotation phase difference between measured and simulated data: \\[ \\theta_{offset} = \\frac{2\\pi \\cdot i_{min}}{N_{div}} \\] Tip If AngleOffset varies significantly across segments in the same training batch, the spindle may have experienced speed changes, data gaps, or the system could not accurately analyze the samples. 8. Load Trained Parameters After training, load the new coefficients into the workpiece: LoadCuttingParaByFile(\"StainlessSteel.mp\"); Warning If the training output file path is the same as the tool's existing cutting parameter file, reload the project after training to ensure the new parameters take effect. XML Configuration (GUI Workflow) When using the GUI-based training workflow, configure the .hincproj file: MillingPara/trainedPara.mp false 2 1 0 0 1 0 0 Set IsMzEnabled to true if mapped data contains axial spindle torque from a smart tool holder. Complete Script Example MachiningResolution_mm = 0.0625; EnablePhysics = true; MillingForceCycleDivisionNum = 360; 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\"); TrainMillingPara(Fx|Fy|Fz, \"MillingPara/trained.mp\"); LoadCuttingParaByFile(\"MillingPara/trained.mp\"); WriteStepFiles(\"Output/[NcName].step.csv\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); See Also Milling Physics Coordinates — coordinate system reference Sensor Mapping Workflow — detailed mapping workflow Workflow: Basic Machining Simulation — basic simulation setup Workflow: NC Optimization — optimization after training Step — step data reference Glossary: SessionShell Quick-Reference — SessionShell quick-reference Training with a Dynamometer (Example) Cascading Mapping (Example)" }, "workflows/geometry-validation.html": { "href": "workflows/geometry-validation.html", @@ -7152,6 +7087,6 @@ "workflows/sensor-mapping.html": { "href": "workflows/sensor-mapping.html", "title": "Workflow: Sensor Data Mapping | HiAPI-C# 2025", - "summary": "Workflow: Sensor Data Mapping This workflow covers mapping external sensor data (dynamometer, smart tool holder, accelerometer) to simulation toolpaths so that simulation steps can index real-world measurement data. flowchart TD Prepare[\"Prepare sensor CSV data\"] Configure[\"Configure time mapping\"] Simulate[\"Run simulation\"] Map[\"Map data to simulation steps\"] View[\"View mapped results\"] Prepare --> Configure --> Simulate --> Map --> View Overview Data mapping associates external sensor measurements with simulated machining steps. After mapping, each step can reference real-world force, torque, and acceleration data for: Inspecting machining states Training milling coefficients (see Workflow: Milling Force Parameter Training) Calibrating milling coefficients Comparing simulated vs. measured forces Depending on data volume and application, mapping is either one-to-one (each step maps to one data point) or one-to-many (each step maps to multiple data points from high-sampling-rate sensors). 1. Prepare Sensor CSV Data Sensor Data Format The CSV file must have a header row with ActualTime and sensor channels: Source Headers Aliases Dynamometer Fx, Fy, Fz Workpiece.Fx, Workpiece.Fy, Workpiece.Fz Smart tool holder Mx, My, Mz Holder.Mx, Holder.My, Holder.Mz Accelerometer Ax, Ay, Az — ActualTime,Mx,My,Mz 18:23:54.703,-0.02923,0.10733,0.00409 18:23:54.704,0.04155,-0.04457,0.00448 ... The time format is ::.. Additional fields (e.g., CH1, CH2) may be included and will be available after mapping. Controller Data Format (for Two-Layer Mapping) The controller CSV must contain at least FileNo, LineNo, and ActualTime: FileNo,LineNo,ActualTime,MC.X,MC.Y,MC.Z,... 1,6,00:00:00.030,0,0,0.37,... 2. Configure Time Mapping Strategy A: One-to-One Mapping (MapSingleByCsvFile) MapSingleByCsvFile reads a CSV file and uses time interpolation to map each data point to one simulation step. PlayNcFile(\"NC/file1.nc\"); MapSingleByCsvFile(\"Data/sensor.csv\"); Strategy B: One-to-One via PlayCsvFile PlayCsvFile can drive the simulation directly from CSV data, where each row becomes one step. Custom fields in the CSV are automatically available on each step. PlayCsvFile(\"Data/controller.csv\"); Strategy C: One-to-Many Global Mapping (MapSeriesByCsvFile) For high-sampling-rate data, first establish ActualTime via one-to-one mapping, then map the series: PlayNcFile(\"NC/file1.nc\"); MapSingleByCsvFile(\"Data/controller.csv\"); // establishes ActualTime MapSeriesByCsvFile(\"Data/sensor.csv\"); // maps high-rate series Strategy D: One-to-Many Local Mapping (Anchor-Based) For mapping sensor data to specific NC path segments using anchors. Step 1 — Specify input data and time ranges: 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\"); Step 2 — Specify NC path anchors (embedded in NC code): X13. F20 ;@LineSelection(\"lineA\", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1)); X25. F10 ;@LineSelection(\"lineB\", FirstTouch, null, LastTouch, null); For range mapping across multiple NC lines, use BeginSelection / EndSelection: ;@BeginSelection(\"region1\", LineBegin, null); ... ;@EndSelection(\"region1\", LineEnd, null); Anchor Flags: Flag Description LineBegin Motion start point of the line LineEnd Motion end point of the line FirstTouch First contact with the workpiece LastTouch Last contact with the workpiece Offset Options: Offset Description null No offset ShiftTime_s() Time-based offset (positive = forward) ShiftDistance_mm() Distance-based offset (positive = forward) Note For FANUC controllers that do not support ; as a comment character, enclose the script command in a comment block: X13. F20 (;@LineSelection(\"lineA\", FirstTouch, null, LineEnd, null);) Map on Selection End EnableMapOnSelectionEnd controls automatic mapping when a selection ends (default: true): EnableMapOnSelectionEnd = true; // EndSelection triggers Map automatically Clearing Mapping Data Mapping data persists across player resets. To clear: ClearTimeMappingData(); 3. Run Simulation PlayNcFile(\"NC/file1.nc\"); Note Why interpret NC code instead of playing CSV directly? The system NC interpreter produces more accurate simulation paths than direct controller CSV playback, which has limited sampling resolution that distorts tool paths. 4. Map Data After simulation, apply the mapping strategy chosen in step 2. For the two-layer chained approach: // Chain 1: Controller data → simulation steps (via FileNo/LineNo → ActualTime) MapSingleByCsvFile(\"Data/controller.csv\"); // Chain 2: Sensor data → simulation steps (via ActualTime → sensor readings) MapSeriesByCsvFile(\"Data/sensor.csv\"); The chaining works because: Simulation steps and controller data share FileNo/LineNo anchors Controller data and sensor data share ActualTime anchors After chaining, simulation steps can index sensor data Tip Due to machine acceleration/deceleration, simulation time and actual time diverge over longer durations. Anchor-based linear projection corrects for this drift. 5. View Mapped Results After mapping, sensor data is available on each step. Use the UI to: View color gradient maps on the workpiece geometry Inspect time-series charts Click-to-track specific data channels Export mapped results: WriteStepFiles(\"Output/[NcName].step.csv\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); Complete Two-Layer Mapping Example // Configure resolution MachiningResolution_mm = 0.125; EnablePhysics = true; // Clear any previous mapping data ClearTimeMappingData(); // Run simulation using NC interpreter for accurate paths PlayNcFile(\"NC/machining.nc\"); // Map controller data (contains FileNo, LineNo, ActualTime) MapSingleByCsvFile(\"Data/controller.csv\"); // Map high-rate sensor data (contains ActualTime and force/torque) MapSeriesByCsvFile(\"Data/sensor.csv\"); // Export results WriteStepFiles(\"Output/[NcName].step.csv\"); See Also Workflow: Milling Force Parameter Training — using mapped data for coefficient training Workflow: Basic Machining Simulation — basic simulation setup Glossary: Machining Step — step data model Glossary: SessionShell Quick-Reference — SessionShell quick-reference Example Project: Mapping Controller and Sensor Data to Simulated NC Toolpaths and Updating Milling Coefficients — mapping demo example project Example Project: Training Milling Coefficients with a Dynamometer — dynamometer training example project" + "summary": "Workflow: Sensor Data Mapping This workflow covers mapping external sensor data (dynamometer, smart tool holder, accelerometer) to simulation toolpaths so that simulation steps can index real-world measurement data. flowchart TD Prepare[\"Prepare sensor CSV data\"] Configure[\"Configure time mapping\"] Simulate[\"Run simulation\"] Map[\"Map data to simulation steps\"] View[\"View mapped results\"] Prepare --> Configure --> Simulate --> Map --> View Overview Data mapping associates external sensor measurements with simulated machining steps. After mapping, each step can reference real-world force, torque, and acceleration data for: Inspecting machining states Training milling coefficients (see Workflow: Milling Force Parameter Training) Calibrating milling coefficients Comparing simulated vs. measured forces Depending on data volume and application, mapping is either one-to-one (each step maps to one data point) or one-to-many (each step maps to multiple data points from high-sampling-rate sensors). 1. Prepare Sensor CSV Data Sensor Data Format The CSV file must have a header row with ActualTime and sensor channels: Source Headers Aliases Dynamometer Fx, Fy, Fz Workpiece.Fx, Workpiece.Fy, Workpiece.Fz Smart tool holder Mx, My, Mz Holder.Mx, Holder.My, Holder.Mz Accelerometer Ax, Ay, Az — ActualTime,Mx,My,Mz 18:23:54.703,-0.02923,0.10733,0.00409 18:23:54.704,0.04155,-0.04457,0.00448 ... The time format is ::.. Additional fields (e.g., CH1, CH2) may be included and will be available after mapping. Controller Data Format (for Two-Layer Mapping) The controller CSV must contain at least FileNo, LineNo, and ActualTime: FileNo,LineNo,ActualTime,MC.X,MC.Y,MC.Z,... 1,6,00:00:00.030,0,0,0.37,... 2. Configure Time Mapping Strategy A: One-to-One Mapping (MapSingleByCsvFile) MapSingleByCsvFile reads a CSV file and uses time interpolation to map each data point to one simulation step. PlayNcFile(\"NC/file1.nc\"); MapSingleByCsvFile(\"Data/sensor.csv\"); Strategy B: One-to-One via PlayCsvFile PlayCsvFile can drive the simulation directly from CSV data, where each row becomes one step. Custom fields in the CSV are automatically available on each step. PlayCsvFile(\"Data/controller.csv\"); Strategy C: One-to-Many Global Mapping (MapSeriesByCsvFile) For high-sampling-rate data, first establish ActualTime via one-to-one mapping, then map the series: PlayNcFile(\"NC/file1.nc\"); MapSingleByCsvFile(\"Data/controller.csv\"); // establishes ActualTime MapSeriesByCsvFile(\"Data/sensor.csv\"); // maps high-rate series Strategy D: One-to-Many Local Mapping (Anchor-Based) For mapping sensor data to specific NC path segments using anchors. Step 1 — Specify input data and time ranges: 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\"); Step 2 — Specify NC path anchors (embedded in NC code): X13. F20 ;@LineSelection(\"lineA\", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1)); X25. F10 ;@LineSelection(\"lineB\", FirstTouch, null, LastTouch, null); For range mapping across multiple NC lines, use BeginSelection / EndSelection: ;@BeginSelection(\"region1\", LineBegin, null); ... ;@EndSelection(\"region1\", LineEnd, null); Anchor Flags: Flag Description LineBegin Motion start point of the line LineEnd Motion end point of the line FirstTouch First contact with the workpiece LastTouch Last contact with the workpiece Offset Options: Offset Description null No offset ShiftTime_s() Time-based offset (positive = forward) ShiftDistance_mm() Distance-based offset (positive = forward) Note For FANUC controllers that do not support ; as a comment character, enclose the script command in a comment block: X13. F20 (;@LineSelection(\"lineA\", FirstTouch, null, LineEnd, null);) Map on Selection End EnableMapOnSelectionEnd controls automatic mapping when a selection ends (default: true): EnableMapOnSelectionEnd = true; // EndSelection triggers Map automatically Clearing Mapping Data Mapping data persists across player resets. To clear: ClearTimeMappingData(); 3. Run Simulation PlayNcFile(\"NC/file1.nc\"); Note Why interpret NC code instead of playing CSV directly? The system NC interpreter produces more accurate simulation paths than direct controller CSV playback, which has limited sampling resolution that distorts tool paths. 4. Map Data After simulation, apply the mapping strategy chosen in step 2. For the two-layer chained approach: // Chain 1: Controller data → simulation steps (via FileNo/LineNo → ActualTime) MapSingleByCsvFile(\"Data/controller.csv\"); // Chain 2: Sensor data → simulation steps (via ActualTime → sensor readings) MapSeriesByCsvFile(\"Data/sensor.csv\"); The chaining works because: Simulation steps and controller data share FileNo/LineNo anchors Controller data and sensor data share ActualTime anchors After chaining, simulation steps can index sensor data Tip Due to machine acceleration/deceleration, simulation time and actual time diverge over longer durations. Anchor-based linear projection corrects for this drift. 5. View Mapped Results After mapping, sensor data is available on each step. Use the UI to: View color gradient maps on the workpiece geometry Inspect time-series charts Click-to-track specific data channels Export mapped results: WriteStepFiles(\"Output/[NcName].step.csv\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); Complete Two-Layer Mapping Example // Configure resolution MachiningResolution_mm = 0.125; EnablePhysics = true; // Clear any previous mapping data ClearTimeMappingData(); // Run simulation using NC interpreter for accurate paths PlayNcFile(\"NC/machining.nc\"); // Map controller data (contains FileNo, LineNo, ActualTime) MapSingleByCsvFile(\"Data/controller.csv\"); // Map high-rate sensor data (contains ActualTime and force/torque) MapSeriesByCsvFile(\"Data/sensor.csv\"); // Export results WriteStepFiles(\"Output/[NcName].step.csv\"); See Also Workflow: Milling Force Parameter Training — using mapped data for coefficient training Workflow: Basic Machining Simulation — basic simulation setup Step — step data model Glossary: SessionShell Quick-Reference — SessionShell quick-reference Example Project: Mapping Controller and Sensor Data to Simulated NC Toolpaths and Updating Milling Coefficients — mapping demo example project Example Project: Training Milling Coefficients with a Dynamometer — dynamometer training example project" } } \ No newline at end of file diff --git a/App/wwwroot/HiAPI-docsite/manifest.json b/App/wwwroot/HiAPI-docsite/manifest.json index a5aad312..69b60b95 100644 --- a/App/wwwroot/HiAPI-docsite/manifest.json +++ b/App/wwwroot/HiAPI-docsite/manifest.json @@ -4910,174 +4910,6 @@ "Title": "Hi.Geom", "Summary": null }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.ClStripService.ClStripServiceBase.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.ClStripService.ClStripServiceBase.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.ClStripService.ClStripServiceBase", - "Summary": "

    Base class for server-side implementations of ClStripService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.ClStripService.ClStripServiceClient.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.ClStripService.ClStripServiceClient.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.ClStripService.ClStripServiceClient", - "Summary": "

    Client for ClStripService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.ClStripService.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.ClStripService.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.ClStripService", - "Summary": "

    milling process service based on dictionary data type.

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.ClStripServiceReflection.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.ClStripServiceReflection.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.ClStripServiceReflection", - "Summary": "

    Holder for reflection information generated from Grpcs/ClStripService.proto

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.ClStripServiceRunner.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.ClStripServiceRunner.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.ClStripServiceRunner", - "Summary": "

    Service runner for the ClStrip gRPC service.

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.DictionaryStep.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.DictionaryStep.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.DictionaryStep", - "Summary": "

    step which data type is dictionary

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.PlayerService.PlayerServiceBase.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.PlayerService.PlayerServiceBase.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.PlayerService.PlayerServiceBase", - "Summary": "

    Base class for server-side implementations of PlayerService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.PlayerService.PlayerServiceClient.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.PlayerService.PlayerServiceClient.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.PlayerService.PlayerServiceClient", - "Summary": "

    Client for PlayerService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.PlayerService.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.PlayerService.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.PlayerService", - "Summary": "

    numerical file player service.

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.PlayerServiceReflection.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.PlayerServiceReflection.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.PlayerServiceReflection", - "Summary": "

    Holder for reflection information generated from Grpcs/PlayerService.proto

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.PlayerServiceRunner.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.PlayerServiceRunner.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.PlayerServiceRunner", - "Summary": "

    Service runner for the Player gRPC service.

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs", - "Summary": null - }, { "type": "ManagedReference", "source_relative_path": "api/Hi.HiNcKits.BasePathEnum.yml", @@ -6030,6 +5862,20 @@ "Title": "Hi.MachiningSteps.IMachiningService", "Summary": "

    Represents a host interface for milling steps that provides access to milling equipment and related resources.

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.MachiningSteps.IStepPropertyAccessHost.yml", + "output": { + ".html": { + "relative_path": "api/Hi.MachiningSteps.IStepPropertyAccessHost.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.MachiningSteps.IStepPropertyAccessHost", + "Summary": "

    Narrow host contract for accessing the step-variable registry and registering\nnew step variables. Exposed as a dedicated surface so pipelines that only\nneed step-variable wiring (e.g. )\ndo not have to depend on the broader .

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.MachiningSteps.MachineMotionStep.yml", @@ -9584,7 +9430,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcMech.Xyzabc.CodeXyzabcMachineTool", - "Summary": "

    For legacy compatible. Use instead.

    \n" + "Summary": "

    This machine tool class helps very quick test by the code configuration.\nFor general/end-user use, apply instead.

    \n" }, { "type": "ManagedReference", @@ -9920,7 +9766,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency", - "Summary": "

    Watchdog for Fanuc Custom Macro B GOTO loops. Holds a\n limit (XML-persisted user config —\nthe soft cap above which the upcoming\nFanucGotoSyntax stops firing and emits a warning) plus a\nruntime per-target hit counter ( — not\nserialised, cleared at session start by\n).

    \n

    \nThe dependency is syntax-managed: FanucGotoSyntax reads the\nlimit, increments the counter, and decides whether to fire. There is\nno host Func provider — the dep is placed in\n rather than\n because nothing outside the\nsyntax pipeline writes it; is a plain method call\nthe runner invokes, not a host-wired Func.\n

    \n

    \nThe counter key is (FileName, TargetN) where FileName\nis the source-level file path of the block containing the GOTO (the\nrelative path form carried on — same\nform used by IndexedFileLine labels). Source-level keying means\nmultiple inline invocations of the same subprogram pool their counts\n(they ARE the same source-code GOTO), while two different files with\ntheir own N100 stay isolated (they ARE different jumps).\n

    \n

    \nDefault is 1000 — a runaway-loop\nguard, not a precise iteration budget. Legitimate macro loops\n(multi-hole drill matrices, calibration sweeps) sit well below this;\ntruly infinite loops hit the limit fast. Projects with batch-style\nmacros that legitimately need higher counts can raise the value in\nthe project XML.\n

    \n" + "Summary": "

    Watchdog for Fanuc Custom Macro B GOTO loops. Holds a\n limit (XML-persisted user config —\nthe soft cap above which the upcoming\nFanucGotoSyntax stops firing and emits a warning) plus a\nruntime per-target hit counter ( — not\nserialised, cleared at session start by the\n sweep in\n).

    \n

    \nThe dependency is syntax-managed: FanucGotoSyntax reads the\nlimit, increments the counter, and decides whether to fire. There is\nno host Func provider — the dep is placed in\n rather than\n because nothing outside the\nsyntax pipeline writes it; is the\nsession-init hook the runner invokes through\n, not a host-wired Func.\n

    \n

    \nThe counter key is (FileName, TargetN) where FileName\nis the source-level file path of the block containing the GOTO (the\nrelative path form carried on — same\nform used by IndexedFileLine labels). Source-level keying means\nmultiple inline invocations of the same subprogram pool their counts\n(they ARE the same source-code GOTO), while two different files with\ntheir own N100 stay isolated (they ARE different jumps).\n

    \n

    \nDefault is 1000 — a runaway-loop\nguard, not a precise iteration budget. Legitimate macro loops\n(multi-hole drill matrices, calibration sweeps) sit well below this;\ntruly infinite loops hit the limit fast. Projects with batch-style\nmacros that legitimately need higher counts can raise the value in\nthe project XML.\n

    \n" }, { "type": "ManagedReference", @@ -9964,6 +9810,20 @@ "Title": "Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup", "Summary": "

    Fanuc-side adapter that exposes a wrapped \n(resolved at call time from the dependency list) as an\n following Fanuc Memory C tool\noffset addressing: #2001+N → effective height of offset N\n(geometry − wear).

    \n

    \nThe underlying stays brand-neutral —\nHeidenhain / Siemens can use the same storage with different addressing\nby registering their own adapter alongside the table. Stateless: holds\nno reference of its own and resolves the table from the per-call\ndependencies list, so XML round-trip is trivial (an empty element).\n

    \n

    \nRegistered on a brand preset's\n, not on\n — the wrapper owns no\nlong-lived data, only the Fanuc-style id addressing scheme. The\nunderlying still lives in\nNcDependencyList as the data dependency.\n

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency", + "Summary": "

    Watchdog for Fanuc Custom Macro B WHILE/END m bounded loops. Sibling\nto with the same\n“soft-cap + runtime counter + session-init ”\nshape, but kept as a separate dep (rather than sharing the GOTO\nbucket) so loop and jump iteration limits can be tuned independently\nand so diagnostic codes do not cross.

    \n

    \nThe counter key is (FileName, LoopId) where FileName\nis the source-level file path of the WHILE/END pair (the relative\npath form carried on ). Source-level\nkeying means multiple inline invocations of the same subprogram\npool their counts (same source-code loop), while two different files\neach with their own WHILE DO 1 stay isolated.\n

    \n

    \nThe consuming syntax ()\nincrements the counter at the END m reverse-jump step — not on the\nWHILE entry — so a loop that exits on first WHILE evaluation\n(condition false from the outset) consumes zero iterations. Above\n, the END m block emits a warning\nand suppresses the redirect; subsequent flow falls through past END.\n

    \n

    \nDefault is 10000 — higher than\nthe GOTO equivalent (1000) because WHILE/END is the legitimate\niteration primitive that NcOpt-generated programs (drill grids,\nadaptive sweeps) depend on, and 1000 is too tight for those.\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.yml", @@ -10410,7 +10270,21 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency", - "Summary": "

    Per-session monotonically-increasing file index allocator. Holds the\ncounter as a private field; returns the next\nunused value and increments. rewinds to 0 — the\nowning calls\n on the same edge that initializes a fresh\n, so a controller\npower-reset clears both the syntax-piece pipeline and this counter\nin lock-step.

    \n

    \nTwo consumers share one allocator:\n

    • allocates one\n index per top-level NC file that streams through the runner.
    • allocates a\n fresh index for each inlined subprogram invocation, including\n each L repetition — distinct indices ensure\n (FileIndex, LineIndex) pairs stay unique across overlapping\n subprogram line ranges.
    \nHolding the counter on this dependency rather than on\n avoids a duplicate\nsource-of-truth: the dep is the single seam through which syntaxes\nreach the counter, and there is no third reader that would benefit\nfrom session-state visibility.\n\n" + "Summary": "

    Per-session monotonically-increasing file index allocator. Holds the\ncounter as a private field; returns the next\nunused value and increments. rewinds to 0 —\nthe owning invokes it via\nthe sweep on the same edge that\ninitializes a fresh ,\nso a controller power-reset clears both the syntax-piece pipeline and\nthis counter in lock-step.

    \n

    \nTwo consumers share one allocator:\n

    • allocates one\n index per top-level NC file that streams through the runner.
    • allocates a\n fresh index for each inlined subprogram invocation, including\n each L repetition — distinct indices ensure\n (FileIndex, LineIndex) pairs stay unique across overlapping\n subprogram line ranges.
    \nHolding the counter on this dependency rather than on\n avoids a duplicate\nsource-of-truth: the dep is the single seam through which syntaxes\nreach the counter, and there is no third reader that would benefit\nfrom session-state visibility.\n\n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency", + "Summary": "

    Exposes the full surface to NC pipeline\ncomponents — currently provided for client-authored syntaxes / semantics\nthat need broad host access (machining equipment, session, tool house,\ntime mapping, …). The built-in CSV pipeline does not consume this\ndependency; it uses the narrower\n instead.

    \n" }, { "type": "ManagedReference", @@ -10454,6 +10328,20 @@ "Title": "Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency", "Summary": "

    Exposes the active to syntaxes that need to\nre-segment auxiliary NC text mid-pipeline (e.g.,\n reading an O<n>\nsubprogram file and re-using the host runner's segmenter so the inlined\nblocks are split with the same rules).

    \n

    \nThe actual segmenter is resolved at runtime via\n; \nwires the provider to its own at the\nstart of each session run, so this dependency can sit in\n without participating in XML\nserialization (see ).\n

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency", + "Summary": "

    Exposes the host's step-variable registry to NC pipeline components\n(today: ) as a narrow\n surface.

    \n

    \nThe provider is wired by the host (e.g. LocalProjectService) so\nthe dependency does not carry strong references to host types; this lets\nthe runner be created before the host is fully constructed and reused\nacross project loads.\n

    \n

    \nA sibling exposes the broader\n surface to client-authored syntaxes. The\ntwo dependencies are independent — production hosts typically wire both\nproviders to the same backing object, but a test fixture can supply just\nthis narrow one.\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.yml", @@ -10748,6 +10636,20 @@ "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation", "Summary": null }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader", + "Summary": "

    Shared polymorphic reader for Fanuc Custom Macro B conditional gate\nexpressions (IF [...] GOTO, IF [...] THEN,\nWHILE [...] DO m). The condition node is read post-evaluation —\n's pass-2 tree walk has already\nsubstituted the original expression string with a numeric\n when evaluation succeeded; this helper maps\nthat node to a tri-state truthy outcome plus a display form for\ndiagnostics.

    \n

    \nThree states, mapping directly to the\nConditionEvaluated: true | false | null stamp shape used by\nall three consumers (see ,\n, and the WHILE-loop syntax):\n

    \n
    • Truthy = true — node is a finite non-zero numeric;\n gate fires.
    • Truthy = false — node is a finite numeric equal to\n zero; gate falls through silently.
    • Truthy = null — node is null, still a string\n (evaluator failed), or non-finite double (NaN / ±∞); gate falls\n through and the caller emits its own\n <Syntax>--ConditionNotEvaluated warning.
    \n

    \nThe Display form is the human-readable expression text for\ndiagnostic messages. For resolved numerics it is the value formatted\nvia ; for unresolved\nstrings it is the original expression text. Diagnostics build their\nown message text — the helper just provides the source string so the\ncaller can compose \"IF [<Display>] GOTO ...\" etc.\n

    \n

    \nCallers typically the original node\nbefore passing in here, then again before stamping back, so removing\nthe parsing section and writing the host-level stamp can happen in\nany order without dangling references.\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.yml", @@ -10760,7 +10662,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax", - "Summary": "

    Resolves Fanuc Custom Macro B GOTO control flow.\nTriggered by Parsing.FanucGoto (written by\n); decides whether\nto fire, and on fire calls\n on layers[0] with\nthe re-segmented file content starting at the matching N{target}\nlabel. The host block stays materialised (so cache dumps still see the\nGOTO call site); execution naturally continues from the new source\nonce the pipeline pulls the next block.

    \n

    \nBoth unconditional GOTO <n> and conditional\nIF [<expr>] GOTO <n> are implemented. The conditional\nform leans on 's pass-2 tree walk\nto substitute Parsing.FanucGoto.Condition with a numeric\n when the expression\nevaluates successfully — then reads the\nnode polymorphically. Truthy non-zero fires the redirect; zero falls\nthrough silently; a still-string (unresolved) Condition emits\nFanucGoto--ConditionNotEvaluated and falls through.\n

    \n

    \nPipeline placement: tail of the Fanuc / Mazak / Syntec Evaluation\nbundle. Must run after so any\n#<var> in the target N (e.g. GOTO #1) has been\nsubstituted to a literal in Parsing.FanucGoto.N. Reader syntaxes\n( etc.) are independent —\nthey touch Parsing.Assignments, not Parsing.FanucGoto.\n

    \n

    \nLabel scanning uses two hosted helper syntaxes —\nCommentSyntax and IndexSyntax — applied to\neach candidate block in turn so the predicate\nIndexNote.Number == target matches the same way the Parsing\nbundle would. Both are XML-IO-able so API customers can swap them\n(e.g. for a controller variant using ;-style comments or a\ndifferent head symbol). Defaults match Fanuc: \nand with the \"N\" symbol.\n

    \n" + "Summary": "

    Resolves Fanuc Custom Macro B GOTO control flow.\nTriggered by Parsing.FanucGoto (written by\n); decides whether\nto fire, and on fire calls\n on layers[0] with\nthe re-segmented file content starting at the matching N{target}\nlabel. The host block stays materialised (so cache dumps still see the\nGOTO call site); execution naturally continues from the new source\nonce the pipeline pulls the next block.

    \n

    \nBoth unconditional GOTO <n> and conditional\nIF [<expr>] GOTO <n> are implemented. The conditional\nform leans on 's pass-2 tree walk\nto substitute Parsing.FanucGoto.Condition with a numeric\n when the expression\nevaluates successfully — \nthen reads the node polymorphically. Truthy non-zero fires the\nredirect; zero falls through silently; a still-string (unresolved)\nCondition emits FanucGoto--ConditionNotEvaluated and falls\nthrough.\n

    \n

    \nPipeline placement: tail of the Fanuc / Mazak / Syntec Evaluation\nbundle. Must run after so any\n#<var> in the target N (e.g. GOTO #1) has been\nsubstituted to a literal in Parsing.FanucGoto.N. Reader syntaxes\n( etc.) are independent —\nthey touch Parsing.Assignments, not Parsing.FanucGoto.\n

    \n

    \nLabel scanning uses two hosted helper syntaxes —\nCommentSyntax and IndexSyntax — applied to\neach candidate block in turn so the predicate\nIndexNote.Number == target matches the same way the Parsing\nbundle would. Both are XML-IO-able so API customers can swap them\n(e.g. for a controller variant using ;-style comments or a\ndifferent head symbol). Defaults match Fanuc: \nand with the \"N\" symbol.\n

    \n" }, { "type": "ManagedReference", @@ -10774,7 +10676,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax", - "Summary": "

    Resolves Fanuc Custom Macro B IF [<cond>] THEN <body>\nsingle-block conditionals. Triggered by Parsing.FanucIfThen\n(written by );\nreads the now-resolved node, decides\nwhether to fire, and on fire lifts the parsing-stage\nPendingAssignments sub-object into the canonical\nParsing.Assignments bucket so the brand-specific reader syntaxes\ndownstream route each entry to its store the same way they would handle\nan unconditional #nnn = <literal> on a normal block.

    \n

    \nUnlike there is no source splice, no\nlabel scan, no iteration watchdog — the spec restricts the body to the\ncurrent block. The host block is preserved either way (the stamped\nFanucIfThen section on the host's top-level JSON keeps the\nIF-THEN call site visible to cache dumps and diagnostics, with\n flipped true only on a successful\nfire).\n

    \n

    \nPipeline placement: in the Evaluation bundle after\n (so the Condition expression has\nbeen substituted in place by pass-2 tree walk, and each\nPendingAssignments RHS string has been evaluated to a numeric\n) and before the reader syntaxes\n(,\n,\n,\n) — that ordering lets\nthe lifted entries reach the readers as if they had been written by\n on a normal block.\n

    \n

    \nThree condition outcomes mirror the\n shape:\n

    • Truthy non-zero → lift assignments, stamp Applied=true.
    • Truthy zero → fall through silently, Applied=false.
    • Truthy null (evaluator failed, condition still a string or\n non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not\n lift, Applied=false.
    \nA truthy condition with no PendingAssignments (body did not parse as\none or more assignments — e.g. a G-code body, currently unsupported)\nwarns FanucIfThen--UnsupportedBody and falls through.\n\n" + "Summary": "

    Resolves Fanuc Custom Macro B IF [<cond>] THEN <body>\nsingle-block conditionals. Triggered by Parsing.FanucIfThen\n(written by );\nreads the now-resolved node, decides\nwhether to fire, and on fire lifts the parsing-stage\nPendingAssignments sub-object into the canonical\nParsing.Assignments bucket so the brand-specific reader syntaxes\ndownstream route each entry to its store the same way they would handle\nan unconditional #nnn = <literal> on a normal block.

    \n

    \nUnlike there is no source splice, no\nlabel scan, no iteration watchdog — the spec restricts the body to the\ncurrent block. The host block is preserved either way (the stamped\nFanucIfThen section on the host's top-level JSON keeps the\nIF-THEN call site visible to cache dumps and diagnostics, with\n flipped true only on a successful\nfire).\n

    \n

    \nPipeline placement: in the Evaluation bundle after\n (so the Condition expression has\nbeen substituted in place by pass-2 tree walk, and each\nPendingAssignments RHS string has been evaluated to a numeric\n) and before the reader syntaxes\n(,\n,\n,\n) — that ordering lets\nthe lifted entries reach the readers as if they had been written by\n on a normal block.\n

    \n

    \nThree condition outcomes mirror the\nFanucGotoSyntax.ReadCondition shape:\n

    • Truthy non-zero → lift assignments, stamp Applied=true.
    • Truthy zero → fall through silently, Applied=false.
    • Truthy null (evaluator failed, condition still a string or\n non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not\n lift, Applied=false.
    \nA truthy condition with no PendingAssignments (body did not parse as\none or more assignments — e.g. a G-code body, currently unsupported)\nwarns FanucIfThen--UnsupportedBody and falls through.\n\n" }, { "type": "ManagedReference", @@ -10860,6 +10762,20 @@ "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax", "Summary": "

    Consumes Fanuc-style system-control variable assignments\n(#3000-#3999) — alarm trigger (#3000), millisecond and\nhour clocks (#3001 / #3002), single-block / feed-hold\nbypass flags (#3003 / #3004), pause-with-message\n(#3006), mirror-image flags (#3007), date / time\n(#3011 / #3012), tool-life data (#3030 /\n#3032), etc.

    \n

    \nEvery id in this range is a controller-side state variable — its\nauthoritative value lives on the real hardware (RTC, alarm bus,\noverride switches, …) and an NC write at most triggers a side effect\n(clock reset, alarm raise, message-pause prompt). Offline simulation\nhas none of that machinery, so this syntax does not emulate the\neffect. Instead it:\n

    \n
    1. records the literal write on the block JSON under\nVars.SystemControl (round-trip and cache-dump visibility);
    2. emits a FanucSystemControl--Unsupported\n\nso the user knows the assignment was recognised but its controller-side\neffect is not simulated. Message-severity (not Warning) because these\nwrites are safe no-ops offline — every consumed assignment would emit\na Warning per block, which would be noisy without signalling anything\nthe user must act on;
    3. removes the entry from Parsing.Assignments so it does not\nre-surface as a generic Parsing--Unconsumed diagnostic.
    \n

    \nThe dictionary carries forward block-by-block (same dict-merge pattern\nas ) so a downstream consumer\ncan read the most recent recorded value via SyntaxPiece linkage.\n

    \n

    \nOnly literal numeric RHS values are consumed; non-literal RHS\n(e.g. #3002 = #500) is left in Parsing.Assignments for\n to resolve, mirroring the\nretained / volatile reading syntaxes.\n

    \n

    \nFanuc-family only — Siemens uses named system variables\n($AC_TIME, $A_DAY, …) and Heidenhain uses\nFN18: SYSREAD; neither flows through Parsing.Assignments.#nnn.\n

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax", + "Summary": "

    Resolves Fanuc Custom Macro B WHILE [..] DO m ... END m\nbounded loops. Two phrases dispatched by\n:

    \n
    • WHILE [..] DO m — entry: reads the resolved condition\n via , manages the per-LoopId\n frame in the top-level WhileFrames dict, and either falls\n through (truthy) or forward-jumps past the matching END m\n (falsy / unresolved).
    • END m — terminator: unconditionally reverse-jumps to\n the WHILE block recorded in WhileFrames[LoopId].BeginLineNo\n so the next iteration re-evaluates the entry condition. Increments\n the per-loop iteration counter on\n ; suppresses the\n redirect above .
    \n

    \nWhileFrames carrier. The top-level WhileFrames JSON\nsection is a keyed by LoopId-as-string\nwhose values are { BeginLineNo: int }. Frames are pushed when\na WHILE block first encounters a truthy condition with no existing\nframe for that LoopId; popped when the condition becomes falsy or\nunresolved; otherwise carried forward unchanged by\n's\n tracked-key\nlist. Nested loops with distinct LoopIds coexist in the same dict;\nsame-LoopId nesting (spec-undefined) overwrites and is not given\nspecial handling.\n

    \n

    \nPipeline placement. Evaluation bundle, after the variable\nreaders (defensive — WHILE/END blocks per spec do not carry\nassignments, but the placement is consistent with GOTO). Must run\nafter so the condition string\nhas been substituted to numeric.\n

    \n

    \nForward scan to matching END m uses the\n predicate overload — probe runs the\nbrand-default on each\ncandidate, predicate matches on\nParsing.FanucWhileDo.Term == \"END\" && LoopId == target.\n

    \n

    \nReverse scan to WHILE BeginLineNo does not need a label\npredicate — the BeginLineNo is a known file-line index recorded in\nthe active frame, so the END side re-segments the file from the top\nand returns the slice starting at the first piece whose\n.Begin.LineIndex\nmatches.\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.yml", @@ -10970,7 +10886,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax", - "Summary": "

    Consumes Fanuc-style M99 subprogram-return blocks and pops\none frame. Plain M99 relies on the\nnatural pipeline tail — the inlined body's last block is followed\nin layers[0] by the caller's next block, so the “return”\nhappens implicitly; this syntax only consumes the M99 trigger (so\n doesn't warn),\nstamps a diagnostic section, and\nwrites the popped for downstream blocks to\ncarry.

    \n

    \nM99 P{seq} additionally redirects control flow to the\ncaller's N{seq} block via\n. The caller's file is\nresolved from the popped frame's\n; the scan uses the same\n helper as\n, with hardcoded Fanuc-default\nprobes ( + \nwith symbol \"N\") because the M99 P semantic itself is\nFanuc-family-only and Mazak / Syntec follow the same conventions.\nThe iteration is counted against\n, sharing the same\nrunaway-loop guard as GOTO — keyed on the same\n(FileName, TargetN) bucket so a tight\nM98 → M99 P → M98 … loop trips the same threshold.\n

    \n

    \nPipeline placement: same Evaluation bundle slot it always occupied,\nright after at the head. Needs\n,\n,\n,\n,\n on the dep list when\nM99 P{seq} is to fire; without them the plain-M99 path still\nworks and the P-jump emits a configuration warning.\n

    \n

    \nDetection is on the Parsing.M99 sub-object written by\n\n(a ) — the keyword\n\"M99\" never reaches Parsing.Flags because the\nparameterized match has already consumed the text by the time\n runs.\n

    \n" + "Summary": "

    Consumes Fanuc-style M99 subprogram-return blocks and pops\none frame. Plain M99 relies on the\nnatural pipeline tail — the inlined body's last block is followed\nin layers[0] by the caller's next block, so the “return”\nhappens implicitly; this syntax only consumes the M99 trigger (so\n doesn't warn),\nstamps a diagnostic section, and\nwrites the popped for downstream blocks to\ncarry.

    \n

    \nM99 P{seq} additionally redirects control flow to the\ncaller's N{seq} block via\n. The caller's file is\nresolved from the popped frame's\n; the scan uses the same\n.SegmentAndSkipUntilLabel helper as\n, with hardcoded Fanuc-default\nprobes ( + \nwith symbol \"N\") because the M99 P semantic itself is\nFanuc-family-only and Mazak / Syntec follow the same conventions.\nThe iteration is counted against\n, sharing the same\nrunaway-loop guard as GOTO — keyed on the same\n(FileName, TargetN) bucket so a tight\nM98 → M99 P → M98 … loop trips the same threshold.\n

    \n

    \nPipeline placement: same Evaluation bundle slot it always occupied,\nright after at the head. Needs\n,\n,\n,\n,\n on the dep list when\nM99 P{seq} is to fire; without them the plain-M99 path still\nworks and the P-jump emits a configuration warning.\n

    \n

    \nDetection is on the Parsing.M99 sub-object written by\n\n(a ) — the keyword\n\"M99\" never reaches Parsing.Flags because the\nparameterized match has already consumed the text by the time\n runs.\n

    \n" }, { "type": "ManagedReference", @@ -10984,7 +10900,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax", - "Summary": "

    Pure expression normalizer for Custom Macro B syntax. Walks the\nparser-stage residue on a single block and inlines numeric values\nwherever a Fanuc-style variable reference or bracket expression\nappears — but does not write to any specific store. Routing\n“where the resolved literal lands” stays in the brand-specific\nreader syntaxes (,\n's reader,\n, …) which run\nafter this syntax on the same block.

    \n

    \nTwo passes per block:\n

    \n
    1. \nAssignments normalizeParsing.Assignments.#nnn entries\nwhose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\")\nare evaluated via the and the RHS string is\nreplaced with the resolved literal (round-trip-safe\n\"R\"-format). The entry stays in Parsing.Assignments so\ndownstream reader syntaxes consume it as a pure-literal assignment.\nIteration follows source order (Parsing.Assignments insertion order).\n
    2. \nParsing tree substitution — every string-typed value reachable\nfrom Parsing.<tag> (axis tags, canned-cycle sub-objects)\nis parsed; on a successful evaluation the string is replaced with a\nnumeric . Failures silently leave the original\nstring and rely on downstream\n at consumer sites to surface\nVariableExpression--Unevaluated only if the tag is actually read.\n
    \n

    \nLookup chain (first non-null wins, configured per brand preset via\n + \ninstances on NcDependencyList):\n

    \n
    1. Current block's own resolved assignments — built-in to\n; covers same-block forward references in\nsource order (an earlier #nnn=literal is visible to a later\nRHS that mentions #nnn).
    2. Each in\n, in list order. Typical contents\nfor a Fanuc-family preset:\n (#1-#33),\n (#100-#499),\n\n(#5001-#5043).
    3. Each on the runner's\nNcDependencyList, in registration order\n(,\n,\n).
    \n

    \nEach lookup self-gates its id range; the evaluator stays brand- and\nrange-agnostic. Adding a new variable surface is additive: register\nan on a dependency or push an\n onto the per-preset list.\n

    \n

    \nSame-block forward reference — when an Assignment RHS\nreferences a #nnn that is also being assigned later in\nthe same block (i.e. listed in Parsing.Assignments after the\nRHS being evaluated), the cannot pick up\nthe not-yet-resolved value and falls back to traceback /\ndependency-table reads — effectively the pre-block value. A\nVariableEvaluator--SameBlockForwardReference warning is\nemitted per such RHS so the user is told the source-order semantics\nwere not honoured. Practical impact is near-zero for typical\nCAM-emitted NC (one assignment per line).\n

    \n" + "Summary": "

    Pure expression normalizer for Custom Macro B syntax. Walks the\nparser-stage residue on a single block and inlines numeric values\nwherever a Fanuc-style variable reference or bracket expression\nappears — but does not write to any specific store. Routing\n“where the resolved literal lands” stays in the brand-specific\nreader syntaxes (,\n's reader,\n, …) which run\nafter this syntax on the same block.

    \n

    \nTwo passes per block:\n

    \n
    1. \nAssignments normalizeParsing.Assignments.#nnn entries\nwhose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\")\nare evaluated via the and the RHS string is\nreplaced with the resolved literal (round-trip-safe\n\"R\"-format). The entry stays in Parsing.Assignments so\ndownstream reader syntaxes consume it as a pure-literal assignment.\nIteration follows source order (Parsing.Assignments insertion order).\n
    2. \nParsing tree substitution — every string-typed value reachable\nfrom Parsing.<tag> (axis tags, canned-cycle sub-objects)\nis parsed; on a successful evaluation the string is replaced with a\nnumeric . Failures silently leave the original\nstring and rely on downstream\n at consumer sites to surface\nVariableExpression--Unevaluated only if the tag is actually read.\n
    \n

    \nLookup chain (first non-null wins, configured per brand preset via\n + \ninstances on NcDependencyList):\n

    \n
    1. Current block's own resolved assignments — built-in to\n; covers same-block forward references in\nsource order (an earlier #nnn=literal is visible to a later\nRHS that mentions #nnn).
    2. Each in\n, in list order. Typical contents\nfor a Fanuc-family preset:\n (#1-#33),\n (#100-#499),\n\n(#5001-#5043).
    3. Each on the runner's\nNcDependencyList, in registration order\n(,\n,\n).
    \n

    \nEach lookup self-gates its id range; the evaluator stays brand- and\nrange-agnostic. Adding a new variable surface is additive: register\nan on a dependency or push an\n onto the per-preset list.\n

    \n

    \nSame-block forward reference — when an Assignment RHS\nreferences a #nnn that is also being assigned later in\nthe same block (i.e. listed in Parsing.Assignments after the\nRHS being evaluated), the cannot pick up\nthe not-yet-resolved value and falls back to traceback /\ndependency-table reads — effectively the pre-block value. A\nVariableEvaluator--SameBlockForwardReference warning is\nemitted per such RHS so the user is told the source-order semantics\nwere not honoured. Practical impact is near-zero for typical\nCAM-emitted NC (one assignment per line).\n

    \n

    \nFormula mirror tree — when either pass actually performs a\nnon-trivial expression evaluation (i.e. the RHS / tag value was not\nalready a pure literal and the evaluator returned a finite value),\nthe original expression string is mirrored to a parallel\nFormula.<same path> entry at the root of the block JSON.\nThe Parsing.* subtree carries the resolved value (R-format\nstring for Assignments; numeric for tags);\nthe Formula.* subtree preserves the source-text expression\nfor diagnostics, round-trip reconstruction, and downstream\ninspection. Pure-literal RHS / tag values produce no Formula entry —\nthe Parsing value is already the original text. Evaluation failures\n(parse error, vacant variable, non-finite result) also produce no\nFormula entry — the original string is still in Parsing.*\nuntouched, no preservation needed.\n

    \n" }, { "type": "ManagedReference", @@ -11056,6 +10972,20 @@ "Title": "Hi.NcParsers.ISentenceIndexed", "Summary": "

    Abstraction for an object that carries a —\na 0-based ordinal of its source in NC execution\norder. Use as a cross-process alignment key (messages, ClStripPos,\nMachiningStep, etc.) when source order\n()\nis not enough because SubProgram inline reorders blocks relative to\n(FileIndex, LineIndex).

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.ISessionResettable.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.ISessionResettable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.ISessionResettable", + "Summary": "

    Marker for objects that hold session-scoped runtime state which must be\ncleared when initializes a new\nsession pipeline (the state.IsInitialized == false edge).

    \n

    \nImplementers may live on either chain: \nor . scans\n and\n on the session-init edge and calls\n on every match.\n

    \n

    \nDistinct from : power-reset clears\nretained-but-volatile state on a controller power cycle (e.g., Fanuc\n#100-#499), an edge that survives ordinary session boundaries.\nSession-reset clears state whose lifetime is one pipeline pass (iteration\ncounters, file-index allocators, etc.).\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.IndexedSentence.yml", @@ -11376,7 +11306,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.FanucGoto", - "Summary": "

    Fanuc Custom Macro B GOTO record. Stamped on the host block by\n after the control-flow\ndecision has been made; produced earlier by\n as a parsing-stage\nsub-section (Parsing.FanucGoto) carrying the raw captured fields.

    \n

    \nTwo source forms map to the same shape:\n

    • GOTO <n> — unconditional jump. is null.
    • IF [<bool-expr>] GOTO <n> — conditional jump.\n holds the expression text from inside the\n brackets.
    \n\n

    \nAt parsing time is a raw token from the source — it may\nbe a literal (\"100\"), a variable reference (\"#1\"), or a\nbracketed expression (\"#[#2+5]\"). \nsubstitutes a resolved literal back into the same field in the\nEvaluation bundle; then\nint.TryParses the final string to produce an int target.\n

    \n" + "Summary": "

    Fanuc Custom Macro B GOTO record. Stamped on the host block by\n after the control-flow\ndecision has been made; produced earlier by\n as a parsing-stage\nsub-section (Parsing.FanucGoto) carrying the raw captured fields.

    \n

    \nTwo source forms map to the same shape:\n

    • GOTO <n> — unconditional jump. is null.
    • IF [<bool-expr>] GOTO <n> — conditional jump.\n holds the expression text from inside the\n brackets.
    \n\n

    \nAt parsing time is a raw token from the source — it may\nbe a literal (\"100\"), a variable reference (\"#1\"), or a\nbracketed expression (\"#[#2+5]\"). \nsubstitutes a resolved literal back into the same field in the\nEvaluation bundle; then\nint.TryParses the final string to produce an int target.\n

    \n

    \nLifecycle of the condition fields.\n

    • is written at Parsing time as the raw\n expression text and substituted in place by\n pass-2 — the\n original text is preserved at Formula.FanucGoto.Condition\n when substitution succeeds.
    • is the host-level stamp\n written by \n carrying the tri-state truthy outcome.
    \n\n" }, { "type": "ManagedReference", @@ -11448,6 +11378,20 @@ "Title": "Hi.NcParsers.Keywords.FanucProgramNumber", "Summary": "

    Fanuc-family program identifier header that follows a\n line — e.g. O1234 or\n<O1234>. records the surface form\nso a parsed block can be emitted back to the original notation.

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.Keywords.FanucWhileDo.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.Keywords.FanucWhileDo.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.Keywords.FanucWhileDo", + "Summary": "

    Fanuc Custom Macro B WHILE/END bounded-loop record. Stamped on the\nhost block by\n after the\ncontrol-flow decision has been made; produced earlier by\n as a\nparsing-stage sub-section (Parsing.FanucWhileDo) carrying the\nraw captured fields.

    \n

    \nTwo phrases map to the same shape, distinguished by :\n

    • WHILE [<bool-expr>] DO <m> — loop entry.\n holds the expression text from inside the\n brackets at parsing time; substituted to a numeric\n by\n in place.\n carries the host-level truthy\n outcome at stamp time.
    • END <m> — loop terminator. Carries no condition;\n unconditionally reverse-jumps to the matching WHILE block on every\n execution (re-evaluation of the entry condition is the WHILE block's\n responsibility).
    \n\n

    \n is the spec-named \"identification number for\nnesting\" (the m in DO m / END m). Nested loops\nmust use distinct LoopIds; matching is by exact value. Same-LoopId\nnesting is spec-undefined and not given special handling here.\n

    \n

    \nActive loop frames are carried block-to-block via the top-level\nWhileFrames JSON section (a \nkeyed by LoopId-as-string, each entry recording the\nBeginLineNo of the WHILE block that opened that frame).\nCarried by as part\nof its tracked\nkeys (mutated in Evaluation, must reach Logic-stage consumers and\ndownstream blocks unchanged).\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Feedrate.yml", @@ -11544,7 +11488,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.IArcMotionDef", - "Summary": "

    Arc motion data written by .\nStored under the JSON section alongside\n properties.

    \n" + "Summary": "

    Arc motion data written by .\nStored under the JSON section alongside\n properties. The arc plane is read from the\nmodal section via\n rather than\ncached on the event — same source of truth as\n.

    \n" }, { "type": "ManagedReference", @@ -12286,7 +12230,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.BareG28Behavior", - "Summary": "

    Writes section for G28 reference point return.\nReads intermediate XYZ from Parsing.G28\n(written by )\nand converts to machine coordinates via\n.

    \n

    \nMust be placed after in the syntax chain.\nRemoves the section written by\n (G28 handles its own motion).\nOverwrites root \nand with reference position\nfor subsequent block lookback.\n

    \n" + "Summary": "

    Configurable handling for a G28 block with no axis specifiers\n(“bare G28”) — value of .\nReal Fanuc-class controllers vary: older 0i-M alarms (PS010), some\n30i variants send every configured axis to home. Default to\n so silent NC bugs surface; opt into\n per syntax instance.

    \n" }, { "type": "ManagedReference", @@ -12776,7 +12720,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax", - "Summary": "

    G28 reference point return syntax. Behaviour is documented in detail\non the example attached to ; this class\nis the implementation that the\n property configures.

    \n" + "Summary": "

    Writes section for G28 reference point return.\nReads intermediate XYZ from Parsing.G28\n(written by )\nand converts to machine coordinates via\n.

    \n

    \nMust be placed after in the syntax chain.\nRemoves the section written by\n (G28 handles its own motion).\nOverwrites root \nand with reference position\nfor subsequent block lookback.\n

    \n" }, { "type": "ManagedReference", @@ -13086,6 +13030,20 @@ "Title": "Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax", "Summary": "

    Detects a Fanuc-family program identifier header — O1234 or\n<O1234> — that follows a \nline, and records it under on the\nblock JSON. The wrapping form (bare vs angle-bracketed) is preserved\nin so the block can be emitted\nback to its original notation.

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax", + "Summary": "

    Parses the two Fanuc Custom Macro B WHILE/END phrases out of\n into a\nParsing.FanucWhileDo sub-object:

    \n
    • WHILE [<bool-expr>] DO <m> — loop entry,\n writes { Term: \"WHILE...DO\", LoopId, Condition }.
    • END <m> — loop terminator, writes\n { Term: \"END\", LoopId }.
    \n

    \nPipeline placement. This syntax must run before\n in the Parsing bundle — same lesson\nas : although the WHILE / END\nphrases per Fanuc spec do not coexist with assignments on the same\nblock, the defensive ordering prevents a body fragment from being\nhalf-eaten as a stand-alone assignment if a non-spec NC file appears.\n

    \n

    \nLoopId is captured as an int directly (Fanuc spec\nrestricts the m identifier to small literal integers 1–3\ntypical, no expression form). The WHILE's Condition is captured\nas a string and substituted in place by\n's pass-2 tree\nwalk; then\nreads it via the shared\n.\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.yml", @@ -14724,6 +14682,90 @@ "Title": "Hi.Numerical.CoordinateInterpolationMode", "Summary": "

    Defines the coordinate interpolation mode for NC operations.

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.Numerical.CsvParsers.CsvRowSemantic.yml", + "output": { + ".html": { + "relative_path": "api/Hi.Numerical.CsvParsers.CsvRowSemantic.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.Numerical.CsvParsers.CsvRowSemantic", + "Summary": "

    Final-stage semantic that turns each row JSON stamped by\n into the same sequence the\nlegacy CsvRunner produced: optional \n(begin), , ,\n, ,\n, /\n, , and\noptional (end).

    \n

    \nStateless — the previous machine coordinate is recovered by walking back\nthrough the chain and reading the typed\n cells already stamped, so\nno carry-state lives on the semantic instance or in extra JSON sections.\nThe previous actual time is recovered the same way; that cell stays as a\nstring (the source format may be TimeSpan or DateTime) and is re-parsed\non demand — at most once per row.\n

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.Numerical.CsvParsers.CsvRowSyntax.yml", + "output": { + ".html": { + "relative_path": "api/Hi.Numerical.CsvParsers.CsvRowSyntax.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.Numerical.CsvParsers.CsvRowSyntax", + "Summary": "

    Per-row CSV parsing syntax for the soft NC runner. Reads the active\n via\n, splits the row text using\n, and\nstamps the resulting column→value map into\n under the \nproperty for to consume.

    \n

    \nNumeric cells are pre-typed to (or )\nat this stage so downstream readers — including\n's backwards walk for the previous machine\ncoordinate — touch native JSON numbers instead of re-parsing strings on\nevery visit. Columns kept as strings: the script / time / spindle-direction\ntags whose semantic interpretation is non-numeric, plus any column whose\nkey appears in (the\ncaller-supplied parsing function expects the raw cell text).\n

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.Numerical.CsvParsers.CsvRunnerConfig.yml", + "output": { + ".html": { + "relative_path": "api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.Numerical.CsvParsers.CsvRunnerConfig", + "Summary": "

    Configuration class for CSV Runner. Lives in\n when wired with\n; consumed by and\n for tag-name lookup and custom-field parsing.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.Numerical.CsvParsers.CsvSegmenter.yml", + "output": { + ".html": { + "relative_path": "api/Hi.Numerical.CsvParsers.CsvSegmenter.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.Numerical.CsvParsers.CsvSegmenter", + "Summary": "

    Segments a CSV stream for the \npipeline. Consumes the first as the title\nrow (populating and registering any new columns\nas step variables via\n), then yields each\nsubsequent line as a one-line for\n to parse.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.Numerical.CsvParsers.CsvSoftRunner.yml", + "output": { + ".html": { + "relative_path": "api/Hi.Numerical.CsvParsers.CsvSoftRunner.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.Numerical.CsvParsers.CsvSoftRunner", + "Summary": "

    Factory for a wired to replay CSV files\n(deprecates the legacy CsvRunner). The returned runner has a\nsingle-syntax pipeline: →\n.

    \n

    \nDefault :\n

    • — tag names + custom field parsers.
    • — provider left null; host wires\n it the same way it does for brand presets (see BuildCoordinateConverter).
    • — wired by the\n host so CSV title columns auto-register as step variables.
    • , ,\n — runtime plumbing required by\n .
    \n is intentionally not included by\ndefault; clients that build custom syntaxes around \ncan append it themselves.\n\n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.Numerical.CsvParsers.yml", + "output": { + ".html": { + "relative_path": "api/Hi.Numerical.CsvParsers.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.Numerical.CsvParsers", + "Summary": null + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.FilePlayers.CsvRunner.yml", @@ -14738,20 +14780,6 @@ "Title": "Hi.Numerical.FilePlayers.CsvRunner", "Summary": "

    Provides functionality for running and processing csv lines.

    \n" }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Numerical.FilePlayers.CsvRunnerConfig.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Numerical.FilePlayers.CsvRunnerConfig", - "Summary": "

    Configuration class for CSV Runner.

    \n" - }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.FilePlayers.HardNcRunner.yml", @@ -17580,202 +17608,6 @@ "Title": "HiMachining.Milling", "Summary": null }, - { - "type": "ManagedReference", - "source_relative_path": "api/HiNc.Grpcs.MachiningProjectGrpcServer.yml", - "output": { - ".html": { - "relative_path": "api/HiNc.Grpcs.MachiningProjectGrpcServer.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "HiNc.Grpcs.MachiningProjectGrpcServer", - "Summary": "

    Server for exposing machining project functionality via gRPC.

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/HiNc.Grpcs.yml", - "output": { - ".html": { - "relative_path": "api/HiNc.Grpcs.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "HiNc.Grpcs", - "Summary": null - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.Empty.yml", - "output": { - ".html": { - "relative_path": "api/numerical.Empty.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.Empty", - "Summary": null - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.GrpcCsvRowDictionary.yml", - "output": { - ".html": { - "relative_path": "api/numerical.GrpcCsvRowDictionary.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.GrpcCsvRowDictionary", - "Summary": null - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.GrpcNcStep.yml", - "output": { - ".html": { - "relative_path": "api/numerical.GrpcNcStep.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.GrpcNcStep", - "Summary": null - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.NumericalReflection.yml", - "output": { - ".html": { - "relative_path": "api/numerical.NumericalReflection.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.NumericalReflection", - "Summary": "

    Holder for reflection information generated from UniversalNcs/numerical.proto

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.NumericalService.NumericalServiceBase.yml", - "output": { - ".html": { - "relative_path": "api/numerical.NumericalService.NumericalServiceBase.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.NumericalService.NumericalServiceBase", - "Summary": "

    Base class for server-side implementations of NumericalService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.NumericalService.NumericalServiceClient.yml", - "output": { - ".html": { - "relative_path": "api/numerical.NumericalService.NumericalServiceClient.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.NumericalService.NumericalServiceClient", - "Summary": "

    Client for NumericalService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.NumericalService.yml", - "output": { - ".html": { - "relative_path": "api/numerical.NumericalService.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.NumericalService", - "Summary": null - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.UniversalNcReflection.yml", - "output": { - ".html": { - "relative_path": "api/numerical.UniversalNcReflection.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.UniversalNcReflection", - "Summary": "

    Holder for reflection information generated from UniversalNcs/universal_nc.proto

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.UniversalNcService.UniversalNcServiceBase.yml", - "output": { - ".html": { - "relative_path": "api/numerical.UniversalNcService.UniversalNcServiceBase.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.UniversalNcService.UniversalNcServiceBase", - "Summary": "

    Base class for server-side implementations of UniversalNcService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.UniversalNcService.UniversalNcServiceClient.yml", - "output": { - ".html": { - "relative_path": "api/numerical.UniversalNcService.UniversalNcServiceClient.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.UniversalNcService.UniversalNcServiceClient", - "Summary": "

    Client for UniversalNcService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.UniversalNcService.yml", - "output": { - ".html": { - "relative_path": "api/numerical.UniversalNcService.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.UniversalNcService", - "Summary": null - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.yml", - "output": { - ".html": { - "relative_path": "api/numerical.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical", - "Summary": null - }, { "type": "Toc", "source_relative_path": "api/toc.yml", @@ -19078,16 +18910,6 @@ }, "version": "" }, - { - "type": "Conceptual", - "source_relative_path": "manual/runtime/machining-step.md", - "output": { - ".html": { - "relative_path": "manual/runtime/machining-step.html" - } - }, - "version": "" - }, { "type": "Conceptual", "source_relative_path": "manual/runtime/script-command.md", @@ -19120,20 +18942,20 @@ }, { "type": "Conceptual", - "source_relative_path": "manual/runtime/step-intro.md", + "source_relative_path": "manual/runtime/step-fields.md", "output": { ".html": { - "relative_path": "manual/runtime/step-intro.html" + "relative_path": "manual/runtime/step-fields.html" } }, "version": "" }, { "type": "Conceptual", - "source_relative_path": "manual/runtime/step-output.md", + "source_relative_path": "manual/runtime/step.md", "output": { ".html": { - "relative_path": "manual/runtime/step-output.html" + "relative_path": "manual/runtime/step.html" } }, "version": "" diff --git a/App/wwwroot/HiAPI-docsite/manual/analysis/nc-optimization-principles.html b/App/wwwroot/HiAPI-docsite/manual/analysis/nc-optimization-principles.html index 4aabe066..27330e3a 100644 --- a/App/wwwroot/HiAPI-docsite/manual/analysis/nc-optimization-principles.html +++ b/App/wwwroot/HiAPI-docsite/manual/analysis/nc-optimization-principles.html @@ -94,7 +94,7 @@

    Factors Determining the Optimized Feed Rate

    The optimized feed rate is determined by:

      -
    1. Physical quantity constraints of individual steps: Feed rate limits calculated for each step based on target force, yielding stress, spindle torque, etc. For detailed descriptions of indicators such as yielding stress ratio and spindle torque ratio, refer to "Evaluating Process Machinability".
    2. +
    3. Physical quantity constraints of individual steps: Feed rate limits calculated for each step based on target force, yielding stress, spindle torque, etc. For detailed descriptions of indicators such as yielding stress ratio and spindle torque ratio, refer to "Evaluating Process Machinability".
    4. Inter-step smoothing: Interactions such as acceleration/deceleration limits and extended distances.

    Differences in Simulation Results After Optimization

    diff --git a/App/wwwroot/HiAPI-docsite/manual/analysis/spindle-capability.html b/App/wwwroot/HiAPI-docsite/manual/analysis/spindle-capability.html index a0b0b573..79d6a315 100644 --- a/App/wwwroot/HiAPI-docsite/manual/analysis/spindle-capability.html +++ b/App/wwwroot/HiAPI-docsite/manual/analysis/spindle-capability.html @@ -191,7 +191,7 @@ diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/index.html b/App/wwwroot/HiAPI-docsite/manual/runtime/index.html index 13f5267a..6f7edc40 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/index.html +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/index.html @@ -91,9 +91,8 @@

    Core Concepts

    API Reference

    diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/script-command.html b/App/wwwroot/HiAPI-docsite/manual/runtime/script-command.html index 9e5bdaa8..39011e6a 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/script-command.html +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/script-command.html @@ -202,7 +202,7 @@ var material = Global["material"];

    See Also

    diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/session-shell.html b/App/wwwroot/HiAPI-docsite/manual/runtime/session-shell.html index edd30c40..0e72ff35 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/session-shell.html +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/session-shell.html @@ -597,7 +597,7 @@ RegisterStepVariable Register a custom step variable -Glossary: Machining Step +Step @@ -694,7 +694,7 @@ diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/step-output.html b/App/wwwroot/HiAPI-docsite/manual/runtime/step-fields.html similarity index 95% rename from App/wwwroot/HiAPI-docsite/manual/runtime/step-output.html rename to App/wwwroot/HiAPI-docsite/manual/runtime/step-fields.html index 8f1e0339..68ff2bbb 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/step-output.html +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/step-fields.html @@ -2,9 +2,9 @@ - Simulation Step Output | HiAPI-C# 2025 + Step Field Reference | HiAPI-C# 2025 - + @@ -84,14 +84,14 @@ -
    -

    Simulation Step Output

    +
    +

    Step Field Reference

    For the complete and up-to-date field reference, see MachiningStep.

    To assess the risk of tool breakage, also refer to "Evaluating Process Machinability".

    -

    This page summarizes the main output data for each simulation step, covering source line, kinematics, load, force/torque, power, thermal, and wear information to help quickly understand the machining state at each step.

    +

    This page summarizes the main output data for each simulation step, covering source line, kinematics, load, force/torque, power, thermal, and wear information to help quickly understand the machining state at each step.

    Step data contains information for the time interval between two consecutive steps (i.e., from the previous step to the current step). Many fields are therefore simplified representations over that period. Common prefixes based on the simplification method include Average (Avg), Extremes (Min, Max), Range (Delta), and Maximum Absolute Value (MaxAbs).

    Basic Source Information

      @@ -105,6 +105,7 @@
    • StepDuration: Duration of this step (default per-revolution mode: one step equals one spindle revolution).
    • BeginSpindleAngle_deg: Spindle angular displacement at the start of this step.
    • Cl (Cutter Location): Cutter location point (including IJK normal).
    • +
    • MC (X, Y, Z, A, B, C): Machine coordinates.
    • MoveOnProgramCoordinate, MovingLength_mm: Displacement vector and length in the program coordinate system.
    • Feedrate_mmdmin / SpindleSpeed_rpm / CuttingSpeed_mmds: Feed rate, spindle speed, and cutting speed.
    • FeedPerTooth_mm / FeedPerCycle_mm / ToothArcDuration_s / SpindleCyclePeriod_s: Feed per tooth/per cycle, tooth arc duration, and spindle cycle period.
    • diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/step-intro.html b/App/wwwroot/HiAPI-docsite/manual/runtime/step-intro.html deleted file mode 100644 index 92348941..00000000 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/step-intro.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - Simulation Step | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - -
      -
      -
      -
      -
      Table of Contents
      - -
      -
      - -
      -
      -
      - -
      -
      - - - -
      - -
      -

      Simulation Step

      - -

      Definition

      -

      A Step is a single computation unit in the simulation. During cutting, the default is one spindle revolution per step, which can be modified via Workflow: Basic Machining Simulation.

      -

      Time Significance of Step Data

      -

      Step data contains information for the time interval between two consecutive steps (i.e., from the previous step to the current step). Since this represents a time interval rather than an instant, many fields are simplified representations of data over that period.

      - - - -
      - -
      -
      - - - -
      - -
      - -
      -
      - -
      - - - - diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/machining-step.html b/App/wwwroot/HiAPI-docsite/manual/runtime/step.html similarity index 67% rename from App/wwwroot/HiAPI-docsite/manual/runtime/machining-step.html rename to App/wwwroot/HiAPI-docsite/manual/runtime/step.html index b4ac4a3c..165b5002 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/machining-step.html +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/step.html @@ -2,9 +2,9 @@ - Glossary: Machining Step | HiAPI-C# 2025 + Step | HiAPI-C# 2025 - + @@ -84,225 +84,13 @@ -
      -

      Glossary: Machining Step

      +
      +

      Step

      -

      What Is a Machining Step?

      +

      What Is a Step?

      A MachiningStep (MachiningStep) is a single computation unit in the HiNC simulation. By default, one step corresponds to one spindle revolution, but this interval is configurable via the Basic Simulation workflow.

      Each step contains data for the time interval between two consecutive steps (from the previous step to the current step). Since this represents a period rather than an instant, many fields are simplified representations using prefixes like Average (Avg), Extremes (Min, Max), Range (Delta), and Maximum Absolute Value (MaxAbs).


      -

      Key Properties

      -

      The table below summarizes the primary step output fields. For the complete reference, see MachiningStep.

      -

      Basic Source Information

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      FileNo / LineNo / FilePath / LineTextSource NC file and line information
      StepIndexStep sequence index
      ToolIdActive tool ID
      FlagsTextActive G-code modal flags
      -

      Time and Motion

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      AccumulatedTimeAccumulated simulation time
      StepDurationDuration of this step
      BeginSpindleAngle_degSpindle angle at step start
      Cl (X, Y, Z, I, J, K)Cutter location point and tool axis vector
      MC (X, Y, Z, A, B, C)Machine coordinates
      Feedrate_mmdminFeed rate (mm/min)
      SpindleSpeed_rpmSpindle speed (RPM)
      FeedPerTooth_mm / FeedPerCycle_mmFeed per tooth / per cycle
      MovingLength_mmDisplacement length
      -

      Cutting Engagement

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      IsTouchedWhether cutting engagement occurred
      CuttingWidth_mm (ae)Cutting width
      CuttingDepth_mm (ap)Cutting depth
      Mrr_mm3dsMaterial removal rate
      ChipThickness_mmChip thickness
      ChipVolume_mm3Chip volume
      -

      Force and Torque

      - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      AvgForceToToolOnToolRunningCoordinate_NAverage force on tool (X, Y, Z)
      MaxAbsForce_NMaximum absolute force
      AvgAbsTorque_NmAverage absolute torque
      -

      Power and Energy

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      SpindleInputPower_WSpindle input power
      SpindleOutputPower_WSpindle output power (after efficiency losses)
      MaxSpindlePowerRatioInput power / max spindle power capability
      AccumulatedSpindleEnergyConsumption_kWhAccumulated energy consumption
      -

      Thermal

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      CutterDermisTemperature_CCutter surface temperature
      WorkpieceDermisTemperature_CWorkpiece surface temperature
      ChipTemperature_CChip temperature
      ThermalStress_MPa / ThermalYieldRatioThermal stress and yield ratio
      -

      Wear and Deflection

      - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      AccumulatedCraterWear_umAccumulated crater wear
      AccumulatedFlankWearDepth_um / Width_umAccumulated flank wear
      ReCutDepth_umRe-cut depth from tool deflection
      -

      Registering Custom Step Variables

      Beyond default properties, you can register custom step variables using RegisterStepVariable:

      RegisterStepVariable(
      @@ -385,8 +173,7 @@ if (step != null)
       

      See Also

        -
      • Simulation Step — concept definition
      • -
      • Simulation Step Output — complete field reference
      • +
      • Step Field Reference — complete field reference
      • Glossary: SessionShell Quick-Reference — SessionShell quick-reference
      • Workflow: Basic Machining Simulation — simulation workflow producing steps
      • Workflow: Milling Force Parameter Training — training workflow that adds step variables
      • diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/toc.html b/App/wwwroot/HiAPI-docsite/manual/runtime/toc.html index c27faa6e..d721a3bf 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/toc.html +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/toc.html @@ -22,13 +22,10 @@ SessionShell Reference
      • - MachiningStep + Step — Concept & Output
      • - Step (Concept) -
      • -
      • - Step Output + Step Field Reference
      • SessionProgress diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/toc.json b/App/wwwroot/HiAPI-docsite/manual/runtime/toc.json index ad41223c..b79ad000 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/toc.json +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/toc.json @@ -1,2 +1,2 @@ -{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Script Command","href":"script-command.html","topicHref":"script-command.html"},{"name":"SessionShell Reference","href":"session-shell.html","topicHref":"session-shell.html"},{"name":"MachiningStep","href":"machining-step.html","topicHref":"machining-step.html"},{"name":"Step (Concept)","href":"step-intro.html","topicHref":"step-intro.html"},{"name":"Step Output","href":"step-output.html","topicHref":"step-output.html"},{"name":"SessionProgress","href":"session-progress.html","topicHref":"session-progress.html"}]} +{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Script Command","href":"script-command.html","topicHref":"script-command.html"},{"name":"SessionShell Reference","href":"session-shell.html","topicHref":"session-shell.html"},{"name":"Step — Concept & Output","href":"step.html","topicHref":"step.html"},{"name":"Step Field Reference","href":"step-fields.html","topicHref":"step-fields.html"},{"name":"SessionProgress","href":"session-progress.html","topicHref":"session-progress.html"}]} diff --git a/App/wwwroot/HiAPI-docsite/release-note/index.html b/App/wwwroot/HiAPI-docsite/release-note/index.html index b501b0b9..2a8e7147 100644 --- a/App/wwwroot/HiAPI-docsite/release-note/index.html +++ b/App/wwwroot/HiAPI-docsite/release-note/index.html @@ -87,6 +87,12 @@

        Release Note

        +

        HiNc Packages Version 3.1.173

        +
          +
        • Improve Mrr_mm3ds precision: the material-removal-rate now sums each cut contour's signed area-vector (fan triangulation, skipping non-finite triangles) projected on the feed direction, replacing the per-contour bounding-box area that over-estimated the cut cross-section
        • +
        • Add AlignWorkpieceProgramZeroToIso script command: resolves a G54/G55/… entry from the project ISO coordinate table and places workpiece + fixture so the program zero coincides with that machine coordinate (topology math delegated to the new AlignWorkpieceProgramZeroToIso extension)
        • +
        • Drop gRPC plumbing from the HiNc package: remove Hi.Grpcs.* ClStrip/Player service runners and protos, MachiningProjectGrpcServer, MonitoringPlayer, and UniversalNcMonitorClient; fold CsvRunnerConfig back into CsvRunner (gRPC services now ship in HiNcRcl / UJoinRcl)
        • +

        HiNc Packages Version 3.1.172

        • Replace implicit XFactory registration (private static <ClassName>() constructors + _ = X.XName wake-up touches) with explicit public static void Reg(XFactory factory = null) methods across ~270 classes. XFactory becomes an instance class with a process-wide Default singleton; Generators is renamed from Regs and now an instance property; the delegate type is renamed XGeneratorDelegate from GenByXElementDelegate. Composite types chain X.Reg(factory) on dependents in place of the old wake-up touches; multi-name (legacy alias) registrations keep the current XName first and group aliases under a //legacy aliases comment. Entry points (web service, win-desktop, test fixtures) must call Reg once at startup before any project XML is deserialized — registration no longer happens by accident when the type is first touched. See XML IO.
        • diff --git a/App/wwwroot/HiAPI-docsite/workflows/basic-simulation.html b/App/wwwroot/HiAPI-docsite/workflows/basic-simulation.html index 8251dd68..8b681d80 100644 --- a/App/wwwroot/HiAPI-docsite/workflows/basic-simulation.html +++ b/App/wwwroot/HiAPI-docsite/workflows/basic-simulation.html @@ -224,6 +224,12 @@ PlayNc($"G01 X{x} Y20 F100", "Generated Command");
          PlayCsvFile("Data/file1.csv");
           

          Required CSV columns (default headers): MC.X, MC.Y, MC.Z, ToolId, SpindleSpeed_rpm, Feedrate_mmdmin. Optional: MC.A, MC.B, MC.C, ActualTime, StepDuration.

          +

          Headers and timestamp values may be wrapped in double quotes; the parser strips them. ActualTime accepts either HH:mm:ss.fff or an absolute yyyy-MM-dd HH:mm:ss.ffffff form (the absolute form is required when chaining with MapSeriesByCsvFile(API), which matches by TimeTag):

          +
          "ActualTime","Feedrate_mmdmin","MC.X","MC.Y","MC.Z","SpindleSpeed_rpm","ToolId"
          +"2026-03-16 15:57:45.559000",10000.0,-351.745,-244.799,-215.799,1270,1
          +"2026-03-16 15:57:45.705000",10000.0,-351.745,-244.799,-215.799,1270,1
          +
          +

          When a real-world controller log includes extra columns (e.g., t_receive, cnc_delay_s, status) or uses alternative column names (X/Y/Z, feedrate, spindle_speed), preprocess the file to drop or rename columns before passing it to PlayCsvFile(API).

          Tip

          CSV files exported by WriteStepFiles(API) can be directly read back with PlayCsvFile(API).

          @@ -324,8 +330,8 @@ AppendMessagesToFile("Output/messages.txt"); diff --git a/App/wwwroot/HiAPI-docsite/workflows/force-training.html b/App/wwwroot/HiAPI-docsite/workflows/force-training.html index 08c9453e..a3c42348 100644 --- a/App/wwwroot/HiAPI-docsite/workflows/force-training.html +++ b/App/wwwroot/HiAPI-docsite/workflows/force-training.html @@ -355,7 +355,7 @@ WriteShotFiles("Output/[NcName].shot.csv", 1);
        • Sensor Mapping Workflow — detailed mapping workflow
        • Workflow: Basic Machining Simulation — basic simulation setup
        • Workflow: NC Optimization — optimization after training
        • -
        • Glossary: Machining Step — step data reference
        • +
        • Step — step data reference
        • Glossary: SessionShell Quick-Reference — SessionShell quick-reference
        • Training with a Dynamometer (Example)
        • Cascading Mapping (Example)
        • diff --git a/App/wwwroot/HiAPI-docsite/workflows/sensor-mapping.html b/App/wwwroot/HiAPI-docsite/workflows/sensor-mapping.html index 42500107..c7d216d2 100644 --- a/App/wwwroot/HiAPI-docsite/workflows/sensor-mapping.html +++ b/App/wwwroot/HiAPI-docsite/workflows/sensor-mapping.html @@ -309,7 +309,7 @@ WriteStepFiles("Output/[NcName].step.csv");
          • Workflow: Milling Force Parameter Training — using mapped data for coefficient training
          • Workflow: Basic Machining Simulation — basic simulation setup
          • -
          • Glossary: Machining Step — step data model
          • +
          • Step — step data model
          • Glossary: SessionShell Quick-Reference — SessionShell quick-reference
          • Example Project: Mapping Controller and Sensor Data to Simulated NC Toolpaths and Updating Milling Coefficients — mapping demo example project
          • Example Project: Training Milling Coefficients with a Dynamometer — dynamometer training example project
          • diff --git a/App/wwwroot/HiAPI-docsite/xrefmap.yml b/App/wwwroot/HiAPI-docsite/xrefmap.yml index 20a62e70..2f94490e 100644 --- a/App/wwwroot/HiAPI-docsite/xrefmap.yml +++ b/App/wwwroot/HiAPI-docsite/xrefmap.yml @@ -1,15 +1,12 @@ ### YamlMime:XRefMap sorted: true references: -- uid: Concept-Step - name: Simulation Step - href: manual/runtime/step-intro.html - uid: Controllers/HeidenhainSupport name: Heidenhain Controller Support href: manual/setup/controller-heidenhain.html -- uid: Doc-Machining-Step-Output - name: Simulation Step Output - href: manual/runtime/step-output.html +- uid: Doc-Step-Fields + name: Step Field Reference + href: manual/runtime/step-fields.html - uid: Equipment/Coolant name: Coolant href: manual/setup/coolant.html @@ -22,9 +19,6 @@ references: - uid: Examples name: Example Projects href: workflows/examples/index.html -- uid: Glossary-MachiningStep - name: 'Glossary: Machining Step' - href: manual/runtime/machining-step.html - uid: Glossary-ScriptCommand name: 'Glossary: Script Commands' href: manual/runtime/script-command.html @@ -34,6 +28,9 @@ references: - uid: Glossary-SessionShell name: 'Glossary: SessionShell Quick-Reference' href: manual/runtime/session-shell.html +- uid: Glossary-Step + name: Step + href: manual/runtime/step.html - uid: Hi.Cbtr name: Hi.Cbtr href: api/Hi.Cbtr.html @@ -8241,6 +8238,15 @@ references: fullName.vb: Hi.Common.CsvUtils.CsvInputKit.New nameWithType: CsvInputKit.CsvInputKit nameWithType.vb: CsvInputKit.New +- uid: Hi.Common.CsvUtils.CsvInputKit.GetCsvDictionary(System.Collections.Generic.IList{System.String},System.String) + name: GetCsvDictionary(IList, string) + href: api/Hi.Common.CsvUtils.CsvInputKit.html#Hi_Common_CsvUtils_CsvInputKit_GetCsvDictionary_System_Collections_Generic_IList_System_String__System_String_ + commentId: M:Hi.Common.CsvUtils.CsvInputKit.GetCsvDictionary(System.Collections.Generic.IList{System.String},System.String) + name.vb: GetCsvDictionary(IList(Of String), String) + fullName: Hi.Common.CsvUtils.CsvInputKit.GetCsvDictionary(System.Collections.Generic.IList, string) + fullName.vb: Hi.Common.CsvUtils.CsvInputKit.GetCsvDictionary(System.Collections.Generic.IList(Of String), String) + nameWithType: CsvInputKit.GetCsvDictionary(IList, string) + nameWithType.vb: CsvInputKit.GetCsvDictionary(IList(Of String), String) - uid: Hi.Common.CsvUtils.CsvInputKit.GetCsvDictionary(System.String) name: GetCsvDictionary(string) href: api/Hi.Common.CsvUtils.CsvInputKit.html#Hi_Common_CsvUtils_CsvInputKit_GetCsvDictionary_System_String_ @@ -77861,891 +77867,6 @@ references: commentId: F:Hi.Geom.Vec3d.z fullName: Hi.Geom.Vec3d.z nameWithType: Vec3d.z -- uid: Hi.Grpcs - name: Hi.Grpcs - href: api/Hi.Grpcs.html - commentId: N:Hi.Grpcs - fullName: Hi.Grpcs - nameWithType: Hi.Grpcs -- uid: Hi.Grpcs.ClStripService - name: ClStripService - href: api/Hi.Grpcs.ClStripService.html - commentId: T:Hi.Grpcs.ClStripService - fullName: Hi.Grpcs.ClStripService - nameWithType: ClStripService -- uid: Hi.Grpcs.ClStripService.BindService(Grpc.Core.ServiceBinderBase,Hi.Grpcs.ClStripService.ClStripServiceBase) - name: BindService(ServiceBinderBase, ClStripServiceBase) - href: api/Hi.Grpcs.ClStripService.html#Hi_Grpcs_ClStripService_BindService_Grpc_Core_ServiceBinderBase_Hi_Grpcs_ClStripService_ClStripServiceBase_ - commentId: M:Hi.Grpcs.ClStripService.BindService(Grpc.Core.ServiceBinderBase,Hi.Grpcs.ClStripService.ClStripServiceBase) - fullName: Hi.Grpcs.ClStripService.BindService(Grpc.Core.ServiceBinderBase, Hi.Grpcs.ClStripService.ClStripServiceBase) - nameWithType: ClStripService.BindService(ServiceBinderBase, ClStripService.ClStripServiceBase) -- uid: Hi.Grpcs.ClStripService.BindService(Hi.Grpcs.ClStripService.ClStripServiceBase) - name: BindService(ClStripServiceBase) - href: api/Hi.Grpcs.ClStripService.html#Hi_Grpcs_ClStripService_BindService_Hi_Grpcs_ClStripService_ClStripServiceBase_ - commentId: M:Hi.Grpcs.ClStripService.BindService(Hi.Grpcs.ClStripService.ClStripServiceBase) - fullName: Hi.Grpcs.ClStripService.BindService(Hi.Grpcs.ClStripService.ClStripServiceBase) - nameWithType: ClStripService.BindService(ClStripService.ClStripServiceBase) -- uid: Hi.Grpcs.ClStripService.BindService* - name: BindService - href: api/Hi.Grpcs.ClStripService.html#Hi_Grpcs_ClStripService_BindService_ - commentId: Overload:Hi.Grpcs.ClStripService.BindService - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.BindService - nameWithType: ClStripService.BindService -- uid: Hi.Grpcs.ClStripService.ClStripServiceBase - name: ClStripService.ClStripServiceBase - href: api/Hi.Grpcs.ClStripService.ClStripServiceBase.html - commentId: T:Hi.Grpcs.ClStripService.ClStripServiceBase - fullName: Hi.Grpcs.ClStripService.ClStripServiceBase - nameWithType: ClStripService.ClStripServiceBase -- uid: Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name: StepRan(Empty, IServerStreamWriter, ServerCallContext) - href: api/Hi.Grpcs.ClStripService.ClStripServiceBase.html#Hi_Grpcs_ClStripService_ClStripServiceBase_StepRan_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_IServerStreamWriter_Hi_Grpcs_DictionaryStep__Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name.vb: StepRan(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) - fullName: Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter, Grpc.Core.ServerCallContext) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter(Of Hi.Grpcs.DictionaryStep), Grpc.Core.ServerCallContext) - nameWithType: ClStripService.ClStripServiceBase.StepRan(Empty, IServerStreamWriter, ServerCallContext) - nameWithType.vb: ClStripService.ClStripServiceBase.StepRan(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) -- uid: Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan* - name: StepRan - href: api/Hi.Grpcs.ClStripService.ClStripServiceBase.html#Hi_Grpcs_ClStripService_ClStripServiceBase_StepRan_ - commentId: Overload:Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan - nameWithType: ClStripService.ClStripServiceBase.StepRan -- uid: Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name: StepSelected(Empty, IServerStreamWriter, ServerCallContext) - href: api/Hi.Grpcs.ClStripService.ClStripServiceBase.html#Hi_Grpcs_ClStripService_ClStripServiceBase_StepSelected_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_IServerStreamWriter_Hi_Grpcs_DictionaryStep__Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name.vb: StepSelected(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) - fullName: Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter, Grpc.Core.ServerCallContext) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter(Of Hi.Grpcs.DictionaryStep), Grpc.Core.ServerCallContext) - nameWithType: ClStripService.ClStripServiceBase.StepSelected(Empty, IServerStreamWriter, ServerCallContext) - nameWithType.vb: ClStripService.ClStripServiceBase.StepSelected(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) -- uid: Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected* - name: StepSelected - href: api/Hi.Grpcs.ClStripService.ClStripServiceBase.html#Hi_Grpcs_ClStripService_ClStripServiceBase_StepSelected_ - commentId: Overload:Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected - nameWithType: ClStripService.ClStripServiceBase.StepSelected -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient - name: ClStripService.ClStripServiceClient - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html - commentId: T:Hi.Grpcs.ClStripService.ClStripServiceClient - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient - nameWithType: ClStripService.ClStripServiceClient -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor - name: ClStripServiceClient() - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient__ctor - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor - name.vb: New() - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.ClStripServiceClient() - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.New() - nameWithType: ClStripService.ClStripServiceClient.ClStripServiceClient() - nameWithType.vb: ClStripService.ClStripServiceClient.New() -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor(Grpc.Core.CallInvoker) - name: ClStripServiceClient(CallInvoker) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient__ctor_Grpc_Core_CallInvoker_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor(Grpc.Core.CallInvoker) - name.vb: New(CallInvoker) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.ClStripServiceClient(Grpc.Core.CallInvoker) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.New(Grpc.Core.CallInvoker) - nameWithType: ClStripService.ClStripServiceClient.ClStripServiceClient(CallInvoker) - nameWithType.vb: ClStripService.ClStripServiceClient.New(CallInvoker) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor(Grpc.Core.ChannelBase) - name: ClStripServiceClient(ChannelBase) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient__ctor_Grpc_Core_ChannelBase_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor(Grpc.Core.ChannelBase) - name.vb: New(ChannelBase) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.ClStripServiceClient(Grpc.Core.ChannelBase) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.New(Grpc.Core.ChannelBase) - nameWithType: ClStripService.ClStripServiceClient.ClStripServiceClient(ChannelBase) - nameWithType.vb: ClStripService.ClStripServiceClient.New(ChannelBase) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: ClStripServiceClient(ClientBaseConfiguration) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name.vb: New(ClientBaseConfiguration) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.ClStripServiceClient(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.New(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: ClStripService.ClStripServiceClient.ClStripServiceClient(ClientBase.ClientBaseConfiguration) - nameWithType.vb: ClStripService.ClStripServiceClient.New(ClientBase.ClientBaseConfiguration) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor* - name: ClStripServiceClient - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient__ctor_ - commentId: Overload:Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.ClStripServiceClient - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.New - nameWithType: ClStripService.ClStripServiceClient.ClStripServiceClient - nameWithType.vb: ClStripService.ClStripServiceClient.New -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: NewInstance(ClientBaseConfiguration) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_NewInstance_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: ClStripService.ClStripServiceClient.NewInstance(ClientBase.ClientBaseConfiguration) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.NewInstance* - name: NewInstance - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_NewInstance_ - commentId: Overload:Hi.Grpcs.ClStripService.ClStripServiceClient.NewInstance - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.NewInstance - nameWithType: ClStripService.ClStripServiceClient.NewInstance -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: StepRan(Empty, CallOptions) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_StepRan_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: ClStripService.ClStripServiceClient.StepRan(Empty, CallOptions) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: StepRan(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_StepRan_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: StepRan(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: ClStripService.ClStripServiceClient.StepRan(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: ClStripService.ClStripServiceClient.StepRan(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan* - name: StepRan - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_StepRan_ - commentId: Overload:Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan - nameWithType: ClStripService.ClStripServiceClient.StepRan -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: StepSelected(Empty, CallOptions) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_StepSelected_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: ClStripService.ClStripServiceClient.StepSelected(Empty, CallOptions) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: StepSelected(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_StepSelected_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: StepSelected(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: ClStripService.ClStripServiceClient.StepSelected(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: ClStripService.ClStripServiceClient.StepSelected(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected* - name: StepSelected - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_StepSelected_ - commentId: Overload:Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected - nameWithType: ClStripService.ClStripServiceClient.StepSelected -- uid: Hi.Grpcs.ClStripService.Descriptor - name: Descriptor - href: api/Hi.Grpcs.ClStripService.html#Hi_Grpcs_ClStripService_Descriptor - commentId: P:Hi.Grpcs.ClStripService.Descriptor - fullName: Hi.Grpcs.ClStripService.Descriptor - nameWithType: ClStripService.Descriptor -- uid: Hi.Grpcs.ClStripService.Descriptor* - name: Descriptor - href: api/Hi.Grpcs.ClStripService.html#Hi_Grpcs_ClStripService_Descriptor_ - commentId: Overload:Hi.Grpcs.ClStripService.Descriptor - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.Descriptor - nameWithType: ClStripService.Descriptor -- uid: Hi.Grpcs.ClStripServiceReflection - name: ClStripServiceReflection - href: api/Hi.Grpcs.ClStripServiceReflection.html - commentId: T:Hi.Grpcs.ClStripServiceReflection - fullName: Hi.Grpcs.ClStripServiceReflection - nameWithType: ClStripServiceReflection -- uid: Hi.Grpcs.ClStripServiceReflection.Descriptor - name: Descriptor - href: api/Hi.Grpcs.ClStripServiceReflection.html#Hi_Grpcs_ClStripServiceReflection_Descriptor - commentId: P:Hi.Grpcs.ClStripServiceReflection.Descriptor - fullName: Hi.Grpcs.ClStripServiceReflection.Descriptor - nameWithType: ClStripServiceReflection.Descriptor -- uid: Hi.Grpcs.ClStripServiceReflection.Descriptor* - name: Descriptor - href: api/Hi.Grpcs.ClStripServiceReflection.html#Hi_Grpcs_ClStripServiceReflection_Descriptor_ - commentId: Overload:Hi.Grpcs.ClStripServiceReflection.Descriptor - isSpec: "True" - fullName: Hi.Grpcs.ClStripServiceReflection.Descriptor - nameWithType: ClStripServiceReflection.Descriptor -- uid: Hi.Grpcs.ClStripServiceRunner - name: ClStripServiceRunner - href: api/Hi.Grpcs.ClStripServiceRunner.html - commentId: T:Hi.Grpcs.ClStripServiceRunner - fullName: Hi.Grpcs.ClStripServiceRunner - nameWithType: ClStripServiceRunner -- uid: Hi.Grpcs.ClStripServiceRunner.#ctor(Hi.MachiningProcs.LocalProjectService) - name: ClStripServiceRunner(LocalProjectService) - href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner__ctor_Hi_MachiningProcs_LocalProjectService_ - commentId: M:Hi.Grpcs.ClStripServiceRunner.#ctor(Hi.MachiningProcs.LocalProjectService) - name.vb: New(LocalProjectService) - fullName: Hi.Grpcs.ClStripServiceRunner.ClStripServiceRunner(Hi.MachiningProcs.LocalProjectService) - fullName.vb: Hi.Grpcs.ClStripServiceRunner.New(Hi.MachiningProcs.LocalProjectService) - nameWithType: ClStripServiceRunner.ClStripServiceRunner(LocalProjectService) - nameWithType.vb: ClStripServiceRunner.New(LocalProjectService) -- uid: Hi.Grpcs.ClStripServiceRunner.#ctor* - name: ClStripServiceRunner - href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner__ctor_ - commentId: Overload:Hi.Grpcs.ClStripServiceRunner.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.Grpcs.ClStripServiceRunner.ClStripServiceRunner - fullName.vb: Hi.Grpcs.ClStripServiceRunner.New - nameWithType: ClStripServiceRunner.ClStripServiceRunner - nameWithType.vb: ClStripServiceRunner.New -- uid: Hi.Grpcs.ClStripServiceRunner.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name: StepRan(Empty, IServerStreamWriter, ServerCallContext) - href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner_StepRan_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_IServerStreamWriter_Hi_Grpcs_DictionaryStep__Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.ClStripServiceRunner.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name.vb: StepRan(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) - fullName: Hi.Grpcs.ClStripServiceRunner.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter, Grpc.Core.ServerCallContext) - fullName.vb: Hi.Grpcs.ClStripServiceRunner.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter(Of Hi.Grpcs.DictionaryStep), Grpc.Core.ServerCallContext) - nameWithType: ClStripServiceRunner.StepRan(Empty, IServerStreamWriter, ServerCallContext) - nameWithType.vb: ClStripServiceRunner.StepRan(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) -- uid: Hi.Grpcs.ClStripServiceRunner.StepRan* - name: StepRan - href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner_StepRan_ - commentId: Overload:Hi.Grpcs.ClStripServiceRunner.StepRan - isSpec: "True" - fullName: Hi.Grpcs.ClStripServiceRunner.StepRan - nameWithType: ClStripServiceRunner.StepRan -- uid: Hi.Grpcs.ClStripServiceRunner.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name: StepSelected(Empty, IServerStreamWriter, ServerCallContext) - href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner_StepSelected_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_IServerStreamWriter_Hi_Grpcs_DictionaryStep__Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.ClStripServiceRunner.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name.vb: StepSelected(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) - fullName: Hi.Grpcs.ClStripServiceRunner.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter, Grpc.Core.ServerCallContext) - fullName.vb: Hi.Grpcs.ClStripServiceRunner.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter(Of Hi.Grpcs.DictionaryStep), Grpc.Core.ServerCallContext) - nameWithType: ClStripServiceRunner.StepSelected(Empty, IServerStreamWriter, ServerCallContext) - nameWithType.vb: ClStripServiceRunner.StepSelected(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) -- uid: Hi.Grpcs.ClStripServiceRunner.StepSelected* - name: StepSelected - href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner_StepSelected_ - commentId: Overload:Hi.Grpcs.ClStripServiceRunner.StepSelected - isSpec: "True" - fullName: Hi.Grpcs.ClStripServiceRunner.StepSelected - nameWithType: ClStripServiceRunner.StepSelected -- uid: Hi.Grpcs.DictionaryStep - name: DictionaryStep - href: api/Hi.Grpcs.DictionaryStep.html - commentId: T:Hi.Grpcs.DictionaryStep - fullName: Hi.Grpcs.DictionaryStep - nameWithType: DictionaryStep -- uid: Hi.Grpcs.DictionaryStep.#ctor - name: DictionaryStep() - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep__ctor - commentId: M:Hi.Grpcs.DictionaryStep.#ctor - name.vb: New() - fullName: Hi.Grpcs.DictionaryStep.DictionaryStep() - fullName.vb: Hi.Grpcs.DictionaryStep.New() - nameWithType: DictionaryStep.DictionaryStep() - nameWithType.vb: DictionaryStep.New() -- uid: Hi.Grpcs.DictionaryStep.#ctor(Hi.Grpcs.DictionaryStep) - name: DictionaryStep(DictionaryStep) - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep__ctor_Hi_Grpcs_DictionaryStep_ - commentId: M:Hi.Grpcs.DictionaryStep.#ctor(Hi.Grpcs.DictionaryStep) - name.vb: New(DictionaryStep) - fullName: Hi.Grpcs.DictionaryStep.DictionaryStep(Hi.Grpcs.DictionaryStep) - fullName.vb: Hi.Grpcs.DictionaryStep.New(Hi.Grpcs.DictionaryStep) - nameWithType: DictionaryStep.DictionaryStep(DictionaryStep) - nameWithType.vb: DictionaryStep.New(DictionaryStep) -- uid: Hi.Grpcs.DictionaryStep.#ctor* - name: DictionaryStep - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep__ctor_ - commentId: Overload:Hi.Grpcs.DictionaryStep.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.Grpcs.DictionaryStep.DictionaryStep - fullName.vb: Hi.Grpcs.DictionaryStep.New - nameWithType: DictionaryStep.DictionaryStep - nameWithType.vb: DictionaryStep.New -- uid: Hi.Grpcs.DictionaryStep.CalculateSize - name: CalculateSize() - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_CalculateSize - commentId: M:Hi.Grpcs.DictionaryStep.CalculateSize - fullName: Hi.Grpcs.DictionaryStep.CalculateSize() - nameWithType: DictionaryStep.CalculateSize() -- uid: Hi.Grpcs.DictionaryStep.CalculateSize* - name: CalculateSize - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_CalculateSize_ - commentId: Overload:Hi.Grpcs.DictionaryStep.CalculateSize - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.CalculateSize - nameWithType: DictionaryStep.CalculateSize -- uid: Hi.Grpcs.DictionaryStep.Clone - name: Clone() - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Clone - commentId: M:Hi.Grpcs.DictionaryStep.Clone - fullName: Hi.Grpcs.DictionaryStep.Clone() - nameWithType: DictionaryStep.Clone() -- uid: Hi.Grpcs.DictionaryStep.Clone* - name: Clone - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Clone_ - commentId: Overload:Hi.Grpcs.DictionaryStep.Clone - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.Clone - nameWithType: DictionaryStep.Clone -- uid: Hi.Grpcs.DictionaryStep.Descriptor - name: Descriptor - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Descriptor - commentId: P:Hi.Grpcs.DictionaryStep.Descriptor - fullName: Hi.Grpcs.DictionaryStep.Descriptor - nameWithType: DictionaryStep.Descriptor -- uid: Hi.Grpcs.DictionaryStep.Descriptor* - name: Descriptor - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Descriptor_ - commentId: Overload:Hi.Grpcs.DictionaryStep.Descriptor - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.Descriptor - nameWithType: DictionaryStep.Descriptor -- uid: Hi.Grpcs.DictionaryStep.Dictionary - name: Dictionary - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Dictionary - commentId: P:Hi.Grpcs.DictionaryStep.Dictionary - fullName: Hi.Grpcs.DictionaryStep.Dictionary - nameWithType: DictionaryStep.Dictionary -- uid: Hi.Grpcs.DictionaryStep.Dictionary* - name: Dictionary - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Dictionary_ - commentId: Overload:Hi.Grpcs.DictionaryStep.Dictionary - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.Dictionary - nameWithType: DictionaryStep.Dictionary -- uid: Hi.Grpcs.DictionaryStep.DictionaryFieldNumber - name: DictionaryFieldNumber - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_DictionaryFieldNumber - commentId: F:Hi.Grpcs.DictionaryStep.DictionaryFieldNumber - fullName: Hi.Grpcs.DictionaryStep.DictionaryFieldNumber - nameWithType: DictionaryStep.DictionaryFieldNumber -- uid: Hi.Grpcs.DictionaryStep.Equals(Hi.Grpcs.DictionaryStep) - name: Equals(DictionaryStep) - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Equals_Hi_Grpcs_DictionaryStep_ - commentId: M:Hi.Grpcs.DictionaryStep.Equals(Hi.Grpcs.DictionaryStep) - fullName: Hi.Grpcs.DictionaryStep.Equals(Hi.Grpcs.DictionaryStep) - nameWithType: DictionaryStep.Equals(DictionaryStep) -- uid: Hi.Grpcs.DictionaryStep.Equals(System.Object) - name: Equals(object) - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Equals_System_Object_ - commentId: M:Hi.Grpcs.DictionaryStep.Equals(System.Object) - name.vb: Equals(Object) - fullName: Hi.Grpcs.DictionaryStep.Equals(object) - fullName.vb: Hi.Grpcs.DictionaryStep.Equals(Object) - nameWithType: DictionaryStep.Equals(object) - nameWithType.vb: DictionaryStep.Equals(Object) -- uid: Hi.Grpcs.DictionaryStep.Equals* - name: Equals - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Equals_ - commentId: Overload:Hi.Grpcs.DictionaryStep.Equals - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.Equals - nameWithType: DictionaryStep.Equals -- uid: Hi.Grpcs.DictionaryStep.GetHashCode - name: GetHashCode() - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_GetHashCode - commentId: M:Hi.Grpcs.DictionaryStep.GetHashCode - fullName: Hi.Grpcs.DictionaryStep.GetHashCode() - nameWithType: DictionaryStep.GetHashCode() -- uid: Hi.Grpcs.DictionaryStep.GetHashCode* - name: GetHashCode - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_GetHashCode_ - commentId: Overload:Hi.Grpcs.DictionaryStep.GetHashCode - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.GetHashCode - nameWithType: DictionaryStep.GetHashCode -- uid: Hi.Grpcs.DictionaryStep.MergeFrom(Google.Protobuf.CodedInputStream) - name: MergeFrom(CodedInputStream) - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_MergeFrom_Google_Protobuf_CodedInputStream_ - commentId: M:Hi.Grpcs.DictionaryStep.MergeFrom(Google.Protobuf.CodedInputStream) - fullName: Hi.Grpcs.DictionaryStep.MergeFrom(Google.Protobuf.CodedInputStream) - nameWithType: DictionaryStep.MergeFrom(CodedInputStream) -- uid: Hi.Grpcs.DictionaryStep.MergeFrom(Hi.Grpcs.DictionaryStep) - name: MergeFrom(DictionaryStep) - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_MergeFrom_Hi_Grpcs_DictionaryStep_ - commentId: M:Hi.Grpcs.DictionaryStep.MergeFrom(Hi.Grpcs.DictionaryStep) - fullName: Hi.Grpcs.DictionaryStep.MergeFrom(Hi.Grpcs.DictionaryStep) - nameWithType: DictionaryStep.MergeFrom(DictionaryStep) -- uid: Hi.Grpcs.DictionaryStep.MergeFrom* - name: MergeFrom - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_MergeFrom_ - commentId: Overload:Hi.Grpcs.DictionaryStep.MergeFrom - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.MergeFrom - nameWithType: DictionaryStep.MergeFrom -- uid: Hi.Grpcs.DictionaryStep.Parser - name: Parser - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Parser - commentId: P:Hi.Grpcs.DictionaryStep.Parser - fullName: Hi.Grpcs.DictionaryStep.Parser - nameWithType: DictionaryStep.Parser -- uid: Hi.Grpcs.DictionaryStep.Parser* - name: Parser - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Parser_ - commentId: Overload:Hi.Grpcs.DictionaryStep.Parser - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.Parser - nameWithType: DictionaryStep.Parser -- uid: Hi.Grpcs.DictionaryStep.ToString - name: ToString() - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_ToString - commentId: M:Hi.Grpcs.DictionaryStep.ToString - fullName: Hi.Grpcs.DictionaryStep.ToString() - nameWithType: DictionaryStep.ToString() -- uid: Hi.Grpcs.DictionaryStep.ToString* - name: ToString - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_ToString_ - commentId: Overload:Hi.Grpcs.DictionaryStep.ToString - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.ToString - nameWithType: DictionaryStep.ToString -- uid: Hi.Grpcs.DictionaryStep.WriteTo(Google.Protobuf.CodedOutputStream) - name: WriteTo(CodedOutputStream) - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_WriteTo_Google_Protobuf_CodedOutputStream_ - commentId: M:Hi.Grpcs.DictionaryStep.WriteTo(Google.Protobuf.CodedOutputStream) - fullName: Hi.Grpcs.DictionaryStep.WriteTo(Google.Protobuf.CodedOutputStream) - nameWithType: DictionaryStep.WriteTo(CodedOutputStream) -- uid: Hi.Grpcs.DictionaryStep.WriteTo* - name: WriteTo - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_WriteTo_ - commentId: Overload:Hi.Grpcs.DictionaryStep.WriteTo - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.WriteTo - nameWithType: DictionaryStep.WriteTo -- uid: Hi.Grpcs.PlayerService - name: PlayerService - href: api/Hi.Grpcs.PlayerService.html - commentId: T:Hi.Grpcs.PlayerService - fullName: Hi.Grpcs.PlayerService - nameWithType: PlayerService -- uid: Hi.Grpcs.PlayerService.BindService(Grpc.Core.ServiceBinderBase,Hi.Grpcs.PlayerService.PlayerServiceBase) - name: BindService(ServiceBinderBase, PlayerServiceBase) - href: api/Hi.Grpcs.PlayerService.html#Hi_Grpcs_PlayerService_BindService_Grpc_Core_ServiceBinderBase_Hi_Grpcs_PlayerService_PlayerServiceBase_ - commentId: M:Hi.Grpcs.PlayerService.BindService(Grpc.Core.ServiceBinderBase,Hi.Grpcs.PlayerService.PlayerServiceBase) - fullName: Hi.Grpcs.PlayerService.BindService(Grpc.Core.ServiceBinderBase, Hi.Grpcs.PlayerService.PlayerServiceBase) - nameWithType: PlayerService.BindService(ServiceBinderBase, PlayerService.PlayerServiceBase) -- uid: Hi.Grpcs.PlayerService.BindService(Hi.Grpcs.PlayerService.PlayerServiceBase) - name: BindService(PlayerServiceBase) - href: api/Hi.Grpcs.PlayerService.html#Hi_Grpcs_PlayerService_BindService_Hi_Grpcs_PlayerService_PlayerServiceBase_ - commentId: M:Hi.Grpcs.PlayerService.BindService(Hi.Grpcs.PlayerService.PlayerServiceBase) - fullName: Hi.Grpcs.PlayerService.BindService(Hi.Grpcs.PlayerService.PlayerServiceBase) - nameWithType: PlayerService.BindService(PlayerService.PlayerServiceBase) -- uid: Hi.Grpcs.PlayerService.BindService* - name: BindService - href: api/Hi.Grpcs.PlayerService.html#Hi_Grpcs_PlayerService_BindService_ - commentId: Overload:Hi.Grpcs.PlayerService.BindService - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.BindService - nameWithType: PlayerService.BindService -- uid: Hi.Grpcs.PlayerService.Descriptor - name: Descriptor - href: api/Hi.Grpcs.PlayerService.html#Hi_Grpcs_PlayerService_Descriptor - commentId: P:Hi.Grpcs.PlayerService.Descriptor - fullName: Hi.Grpcs.PlayerService.Descriptor - nameWithType: PlayerService.Descriptor -- uid: Hi.Grpcs.PlayerService.Descriptor* - name: Descriptor - href: api/Hi.Grpcs.PlayerService.html#Hi_Grpcs_PlayerService_Descriptor_ - commentId: Overload:Hi.Grpcs.PlayerService.Descriptor - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.Descriptor - nameWithType: PlayerService.Descriptor -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase - name: PlayerService.PlayerServiceBase - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html - commentId: T:Hi.Grpcs.PlayerService.PlayerServiceBase - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase - nameWithType: PlayerService.PlayerServiceBase -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Pause(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Pause_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceBase.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Pause(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerService.PlayerServiceBase.Pause(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Pause* - name: Pause - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Pause_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceBase.Pause - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Pause - nameWithType: PlayerService.PlayerServiceBase.Pause -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Reset(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Reset_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceBase.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Reset(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerService.PlayerServiceBase.Reset(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Reset* - name: Reset - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Reset_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceBase.Reset - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Reset - nameWithType: PlayerService.PlayerServiceBase.Reset -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Resume(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Resume_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceBase.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Resume(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerService.PlayerServiceBase.Resume(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Resume* - name: Resume - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Resume_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceBase.Resume - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Resume - nameWithType: PlayerService.PlayerServiceBase.Resume -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Start(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Start_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceBase.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Start(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerService.PlayerServiceBase.Start(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Start* - name: Start - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Start_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceBase.Start - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Start - nameWithType: PlayerService.PlayerServiceBase.Start -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient - name: PlayerService.PlayerServiceClient - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html - commentId: T:Hi.Grpcs.PlayerService.PlayerServiceClient - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient - nameWithType: PlayerService.PlayerServiceClient -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor - name: PlayerServiceClient() - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient__ctor - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor - name.vb: New() - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PlayerServiceClient() - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.New() - nameWithType: PlayerService.PlayerServiceClient.PlayerServiceClient() - nameWithType.vb: PlayerService.PlayerServiceClient.New() -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor(Grpc.Core.CallInvoker) - name: PlayerServiceClient(CallInvoker) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient__ctor_Grpc_Core_CallInvoker_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor(Grpc.Core.CallInvoker) - name.vb: New(CallInvoker) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PlayerServiceClient(Grpc.Core.CallInvoker) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.New(Grpc.Core.CallInvoker) - nameWithType: PlayerService.PlayerServiceClient.PlayerServiceClient(CallInvoker) - nameWithType.vb: PlayerService.PlayerServiceClient.New(CallInvoker) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor(Grpc.Core.ChannelBase) - name: PlayerServiceClient(ChannelBase) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient__ctor_Grpc_Core_ChannelBase_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor(Grpc.Core.ChannelBase) - name.vb: New(ChannelBase) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PlayerServiceClient(Grpc.Core.ChannelBase) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.New(Grpc.Core.ChannelBase) - nameWithType: PlayerService.PlayerServiceClient.PlayerServiceClient(ChannelBase) - nameWithType.vb: PlayerService.PlayerServiceClient.New(ChannelBase) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: PlayerServiceClient(ClientBaseConfiguration) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name.vb: New(ClientBaseConfiguration) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PlayerServiceClient(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.New(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: PlayerService.PlayerServiceClient.PlayerServiceClient(ClientBase.ClientBaseConfiguration) - nameWithType.vb: PlayerService.PlayerServiceClient.New(ClientBase.ClientBaseConfiguration) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor* - name: PlayerServiceClient - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient__ctor_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PlayerServiceClient - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.New - nameWithType: PlayerService.PlayerServiceClient.PlayerServiceClient - nameWithType.vb: PlayerService.PlayerServiceClient.New -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: NewInstance(ClientBaseConfiguration) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_NewInstance_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: PlayerService.PlayerServiceClient.NewInstance(ClientBase.ClientBaseConfiguration) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.NewInstance* - name: NewInstance - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_NewInstance_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.NewInstance - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.NewInstance - nameWithType: PlayerService.PlayerServiceClient.NewInstance -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: Pause(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Pause_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.Pause(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: Pause(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Pause_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: Pause(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.Pause(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.Pause(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause* - name: Pause - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Pause_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.Pause - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause - nameWithType: PlayerService.PlayerServiceClient.Pause -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: PauseAsync(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_PauseAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.PauseAsync(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: PauseAsync(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_PauseAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: PauseAsync(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.PauseAsync(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.PauseAsync(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync* - name: PauseAsync - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_PauseAsync_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync - nameWithType: PlayerService.PlayerServiceClient.PauseAsync -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: Reset(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Reset_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.Reset(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: Reset(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Reset_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: Reset(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.Reset(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.Reset(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset* - name: Reset - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Reset_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.Reset - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset - nameWithType: PlayerService.PlayerServiceClient.Reset -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: ResetAsync(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_ResetAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.ResetAsync(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: ResetAsync(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_ResetAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: ResetAsync(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.ResetAsync(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.ResetAsync(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync* - name: ResetAsync - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_ResetAsync_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync - nameWithType: PlayerService.PlayerServiceClient.ResetAsync -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: Resume(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Resume_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.Resume(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: Resume(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Resume_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: Resume(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.Resume(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.Resume(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume* - name: Resume - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Resume_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.Resume - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume - nameWithType: PlayerService.PlayerServiceClient.Resume -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: ResumeAsync(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_ResumeAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.ResumeAsync(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: ResumeAsync(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_ResumeAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: ResumeAsync(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.ResumeAsync(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.ResumeAsync(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync* - name: ResumeAsync - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_ResumeAsync_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync - nameWithType: PlayerService.PlayerServiceClient.ResumeAsync -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: Start(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Start_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.Start(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: Start(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Start_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: Start(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.Start(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.Start(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Start* - name: Start - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Start_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.Start - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Start - nameWithType: PlayerService.PlayerServiceClient.Start -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: StartAsync(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_StartAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.StartAsync(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: StartAsync(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_StartAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: StartAsync(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.StartAsync(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.StartAsync(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync* - name: StartAsync - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_StartAsync_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync - nameWithType: PlayerService.PlayerServiceClient.StartAsync -- uid: Hi.Grpcs.PlayerServiceReflection - name: PlayerServiceReflection - href: api/Hi.Grpcs.PlayerServiceReflection.html - commentId: T:Hi.Grpcs.PlayerServiceReflection - fullName: Hi.Grpcs.PlayerServiceReflection - nameWithType: PlayerServiceReflection -- uid: Hi.Grpcs.PlayerServiceReflection.Descriptor - name: Descriptor - href: api/Hi.Grpcs.PlayerServiceReflection.html#Hi_Grpcs_PlayerServiceReflection_Descriptor - commentId: P:Hi.Grpcs.PlayerServiceReflection.Descriptor - fullName: Hi.Grpcs.PlayerServiceReflection.Descriptor - nameWithType: PlayerServiceReflection.Descriptor -- uid: Hi.Grpcs.PlayerServiceReflection.Descriptor* - name: Descriptor - href: api/Hi.Grpcs.PlayerServiceReflection.html#Hi_Grpcs_PlayerServiceReflection_Descriptor_ - commentId: Overload:Hi.Grpcs.PlayerServiceReflection.Descriptor - isSpec: "True" - fullName: Hi.Grpcs.PlayerServiceReflection.Descriptor - nameWithType: PlayerServiceReflection.Descriptor -- uid: Hi.Grpcs.PlayerServiceRunner - name: PlayerServiceRunner - href: api/Hi.Grpcs.PlayerServiceRunner.html - commentId: T:Hi.Grpcs.PlayerServiceRunner - fullName: Hi.Grpcs.PlayerServiceRunner - nameWithType: PlayerServiceRunner -- uid: Hi.Grpcs.PlayerServiceRunner.#ctor(Hi.MachiningProcs.LocalProjectService) - name: PlayerServiceRunner(LocalProjectService) - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner__ctor_Hi_MachiningProcs_LocalProjectService_ - commentId: M:Hi.Grpcs.PlayerServiceRunner.#ctor(Hi.MachiningProcs.LocalProjectService) - name.vb: New(LocalProjectService) - fullName: Hi.Grpcs.PlayerServiceRunner.PlayerServiceRunner(Hi.MachiningProcs.LocalProjectService) - fullName.vb: Hi.Grpcs.PlayerServiceRunner.New(Hi.MachiningProcs.LocalProjectService) - nameWithType: PlayerServiceRunner.PlayerServiceRunner(LocalProjectService) - nameWithType.vb: PlayerServiceRunner.New(LocalProjectService) -- uid: Hi.Grpcs.PlayerServiceRunner.#ctor* - name: PlayerServiceRunner - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner__ctor_ - commentId: Overload:Hi.Grpcs.PlayerServiceRunner.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.Grpcs.PlayerServiceRunner.PlayerServiceRunner - fullName.vb: Hi.Grpcs.PlayerServiceRunner.New - nameWithType: PlayerServiceRunner.PlayerServiceRunner - nameWithType.vb: PlayerServiceRunner.New -- uid: Hi.Grpcs.PlayerServiceRunner.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Pause(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Pause_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerServiceRunner.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerServiceRunner.Pause(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerServiceRunner.Pause(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerServiceRunner.Pause* - name: Pause - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Pause_ - commentId: Overload:Hi.Grpcs.PlayerServiceRunner.Pause - isSpec: "True" - fullName: Hi.Grpcs.PlayerServiceRunner.Pause - nameWithType: PlayerServiceRunner.Pause -- uid: Hi.Grpcs.PlayerServiceRunner.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Reset(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Reset_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerServiceRunner.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerServiceRunner.Reset(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerServiceRunner.Reset(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerServiceRunner.Reset* - name: Reset - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Reset_ - commentId: Overload:Hi.Grpcs.PlayerServiceRunner.Reset - isSpec: "True" - fullName: Hi.Grpcs.PlayerServiceRunner.Reset - nameWithType: PlayerServiceRunner.Reset -- uid: Hi.Grpcs.PlayerServiceRunner.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Resume(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Resume_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerServiceRunner.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerServiceRunner.Resume(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerServiceRunner.Resume(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerServiceRunner.Resume* - name: Resume - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Resume_ - commentId: Overload:Hi.Grpcs.PlayerServiceRunner.Resume - isSpec: "True" - fullName: Hi.Grpcs.PlayerServiceRunner.Resume - nameWithType: PlayerServiceRunner.Resume -- uid: Hi.Grpcs.PlayerServiceRunner.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Start(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Start_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerServiceRunner.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerServiceRunner.Start(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerServiceRunner.Start(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerServiceRunner.Start* - name: Start - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Start_ - commentId: Overload:Hi.Grpcs.PlayerServiceRunner.Start - isSpec: "True" - fullName: Hi.Grpcs.PlayerServiceRunner.Start - nameWithType: PlayerServiceRunner.Start - uid: Hi.HiNcKits name: Hi.HiNcKits href: api/Hi.HiNcKits.html @@ -82041,6 +81162,19 @@ references: commentId: T:Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil fullName: Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil nameWithType: MachiningEquipmentUtil +- uid: Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment,Hi.Geom.Vec3d) + name: AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) + href: api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipmentUtil_AlignWorkpieceProgramZeroToIso_Hi_Machining_MachiningEquipmentUtils_IMachiningEquipment_Hi_Geom_Vec3d_ + commentId: M:Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment,Hi.Geom.Vec3d) + fullName: Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment, Hi.Geom.Vec3d) + nameWithType: MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) +- uid: Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso* + name: AlignWorkpieceProgramZeroToIso + href: api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipmentUtil_AlignWorkpieceProgramZeroToIso_ + commentId: Overload:Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso + isSpec: "True" + fullName: Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso + nameWithType: MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso - uid: Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.GetIsoCoordinatePosition(Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment,Hi.Geom.Vec3d) name: GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) href: api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipmentUtil_GetIsoCoordinatePosition_Hi_Machining_MachiningEquipmentUtils_IMachiningEquipment_Hi_Geom_Vec3d_ @@ -84904,6 +84038,19 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningProject.SoftNcRunner nameWithType: MachiningProject.SoftNcRunner +- uid: Hi.MachiningProcs.MachiningProject.SoftNcRunnerFile + name: SoftNcRunnerFile + href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_SoftNcRunnerFile + commentId: P:Hi.MachiningProcs.MachiningProject.SoftNcRunnerFile + fullName: Hi.MachiningProcs.MachiningProject.SoftNcRunnerFile + nameWithType: MachiningProject.SoftNcRunnerFile +- uid: Hi.MachiningProcs.MachiningProject.SoftNcRunnerFile* + name: SoftNcRunnerFile + href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_SoftNcRunnerFile_ + commentId: Overload:Hi.MachiningProcs.MachiningProject.SoftNcRunnerFile + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningProject.SoftNcRunnerFile + nameWithType: MachiningProject.SoftNcRunnerFile - uid: Hi.MachiningProcs.MachiningProject.TimeMapping name: TimeMapping href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_TimeMapping @@ -86304,6 +85451,22 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.SessionShell.AdjustedFeedPerCycle nameWithType: SessionShell.AdjustedFeedPerCycle +- uid: Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso(System.String) + name: AlignWorkpieceProgramZeroToIso(string) + href: api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_AlignWorkpieceProgramZeroToIso_System_String_ + commentId: M:Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso(System.String) + name.vb: AlignWorkpieceProgramZeroToIso(String) + fullName: Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso(string) + fullName.vb: Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso(String) + nameWithType: SessionShell.AlignWorkpieceProgramZeroToIso(string) + nameWithType.vb: SessionShell.AlignWorkpieceProgramZeroToIso(String) +- uid: Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso* + name: AlignWorkpieceProgramZeroToIso + href: api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_AlignWorkpieceProgramZeroToIso_ + commentId: Overload:Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso + isSpec: "True" + fullName: Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso + nameWithType: SessionShell.AlignWorkpieceProgramZeroToIso - uid: Hi.MachiningProcs.SessionShell.AppendMessagesToFile(System.String,System.String[]) name: AppendMessagesToFile(string, params string[]) href: api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_AppendMessagesToFile_System_String_System_String___ @@ -89944,6 +89107,41 @@ references: isSpec: "True" fullName: Hi.MachiningSteps.IMachiningService.TimeMapping nameWithType: IMachiningService.TimeMapping +- uid: Hi.MachiningSteps.IStepPropertyAccessHost + name: IStepPropertyAccessHost + href: api/Hi.MachiningSteps.IStepPropertyAccessHost.html + commentId: T:Hi.MachiningSteps.IStepPropertyAccessHost + fullName: Hi.MachiningSteps.IStepPropertyAccessHost + nameWithType: IStepPropertyAccessHost +- uid: Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable(System.String,System.String,System.String,System.String,System.Func{Hi.MachiningSteps.MachiningStep,System.Object}) + name: RegisterStepVariable(string, string, string, string, Func) + href: api/Hi.MachiningSteps.IStepPropertyAccessHost.html#Hi_MachiningSteps_IStepPropertyAccessHost_RegisterStepVariable_System_String_System_String_System_String_System_String_System_Func_Hi_MachiningSteps_MachiningStep_System_Object__ + commentId: M:Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable(System.String,System.String,System.String,System.String,System.Func{Hi.MachiningSteps.MachiningStep,System.Object}) + name.vb: RegisterStepVariable(String, String, String, String, Func(Of MachiningStep, Object)) + fullName: Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable(string, string, string, string, System.Func) + fullName.vb: Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable(String, String, String, String, System.Func(Of Hi.MachiningSteps.MachiningStep, Object)) + nameWithType: IStepPropertyAccessHost.RegisterStepVariable(string, string, string, string, Func) + nameWithType.vb: IStepPropertyAccessHost.RegisterStepVariable(String, String, String, String, Func(Of MachiningStep, Object)) +- uid: Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable* + name: RegisterStepVariable + href: api/Hi.MachiningSteps.IStepPropertyAccessHost.html#Hi_MachiningSteps_IStepPropertyAccessHost_RegisterStepVariable_ + commentId: Overload:Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable + isSpec: "True" + fullName: Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable + nameWithType: IStepPropertyAccessHost.RegisterStepVariable +- uid: Hi.MachiningSteps.IStepPropertyAccessHost.StepPropertyAccessDictionary + name: StepPropertyAccessDictionary + href: api/Hi.MachiningSteps.IStepPropertyAccessHost.html#Hi_MachiningSteps_IStepPropertyAccessHost_StepPropertyAccessDictionary + commentId: P:Hi.MachiningSteps.IStepPropertyAccessHost.StepPropertyAccessDictionary + fullName: Hi.MachiningSteps.IStepPropertyAccessHost.StepPropertyAccessDictionary + nameWithType: IStepPropertyAccessHost.StepPropertyAccessDictionary +- uid: Hi.MachiningSteps.IStepPropertyAccessHost.StepPropertyAccessDictionary* + name: StepPropertyAccessDictionary + href: api/Hi.MachiningSteps.IStepPropertyAccessHost.html#Hi_MachiningSteps_IStepPropertyAccessHost_StepPropertyAccessDictionary_ + commentId: Overload:Hi.MachiningSteps.IStepPropertyAccessHost.StepPropertyAccessDictionary + isSpec: "True" + fullName: Hi.MachiningSteps.IStepPropertyAccessHost.StepPropertyAccessDictionary + nameWithType: IStepPropertyAccessHost.StepPropertyAccessDictionary - uid: Hi.MachiningSteps.MachineMotionStep name: MachineMotionStep href: api/Hi.MachiningSteps.MachineMotionStep.html @@ -122278,6 +121476,19 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.MaxIterationsPerTarget nameWithType: FanucGotoIterationDependency.MaxIterationsPerTarget +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset + name: OnSessionReset() + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_OnSessionReset + commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset() + nameWithType: FanucGotoIterationDependency.OnSessionReset() +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset* + name: OnSessionReset + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_OnSessionReset_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset + nameWithType: FanucGotoIterationDependency.OnSessionReset - uid: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reg(Hi.Common.XmlUtils.XFactory) name: Reg(XFactory) href: api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_Reg_Hi_Common_XmlUtils_XFactory_ @@ -122291,19 +121502,6 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reg nameWithType: FanucGotoIterationDependency.Reg -- uid: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset - name: Reset() - href: api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_Reset - commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset - fullName: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset() - nameWithType: FanucGotoIterationDependency.Reset() -- uid: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset* - name: Reset - href: api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_Reset_ - commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset - isSpec: "True" - fullName: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset - nameWithType: FanucGotoIterationDependency.Reset - uid: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.XName name: XName href: api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_XName @@ -122979,6 +122177,127 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.XName nameWithType: FanucToolOffsetVariableLookup.XName +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency + name: FanucWhileDoIterationDependency + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html + commentId: T:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency + nameWithType: FanucWhileDoIterationDependency +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.#ctor + name: FanucWhileDoIterationDependency() + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency__ctor + commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.#ctor + name.vb: New() + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.FanucWhileDoIterationDependency() + fullName.vb: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.New() + nameWithType: FanucWhileDoIterationDependency.FanucWhileDoIterationDependency() + nameWithType.vb: FanucWhileDoIterationDependency.New() +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.#ctor(System.Xml.Linq.XElement) + name: FanucWhileDoIterationDependency(XElement) + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency__ctor_System_Xml_Linq_XElement_ + commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.#ctor(System.Xml.Linq.XElement) + name.vb: New(XElement) + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.FanucWhileDoIterationDependency(System.Xml.Linq.XElement) + fullName.vb: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.New(System.Xml.Linq.XElement) + nameWithType: FanucWhileDoIterationDependency.FanucWhileDoIterationDependency(XElement) + nameWithType.vb: FanucWhileDoIterationDependency.New(XElement) +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.#ctor* + name: FanucWhileDoIterationDependency + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency__ctor_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.#ctor + isSpec: "True" + name.vb: New + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.FanucWhileDoIterationDependency + fullName.vb: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.New + nameWithType: FanucWhileDoIterationDependency.FanucWhileDoIterationDependency + nameWithType.vb: FanucWhileDoIterationDependency.New +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.CountByLoop + name: CountByLoop + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_CountByLoop + commentId: P:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.CountByLoop + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.CountByLoop + nameWithType: FanucWhileDoIterationDependency.CountByLoop +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.CountByLoop* + name: CountByLoop + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_CountByLoop_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.CountByLoop + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.CountByLoop + nameWithType: FanucWhileDoIterationDependency.CountByLoop +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.DefaultMaxIterationsPerLoopId + name: DefaultMaxIterationsPerLoopId + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_DefaultMaxIterationsPerLoopId + commentId: F:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.DefaultMaxIterationsPerLoopId + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.DefaultMaxIterationsPerLoopId + nameWithType: FanucWhileDoIterationDependency.DefaultMaxIterationsPerLoopId +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource(string, string, bool) + fullName.vb: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource(String, String, Boolean) + nameWithType: FanucWhileDoIterationDependency.MakeXmlSource(string, string, bool) + nameWithType.vb: FanucWhileDoIterationDependency.MakeXmlSource(String, String, Boolean) +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_MakeXmlSource_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource + nameWithType: FanucWhileDoIterationDependency.MakeXmlSource +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MaxIterationsPerLoopId + name: MaxIterationsPerLoopId + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_MaxIterationsPerLoopId + commentId: P:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MaxIterationsPerLoopId + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MaxIterationsPerLoopId + nameWithType: FanucWhileDoIterationDependency.MaxIterationsPerLoopId +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MaxIterationsPerLoopId* + name: MaxIterationsPerLoopId + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_MaxIterationsPerLoopId_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MaxIterationsPerLoopId + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MaxIterationsPerLoopId + nameWithType: FanucWhileDoIterationDependency.MaxIterationsPerLoopId +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.OnSessionReset + name: OnSessionReset() + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_OnSessionReset + commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.OnSessionReset + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.OnSessionReset() + nameWithType: FanucWhileDoIterationDependency.OnSessionReset() +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.OnSessionReset* + name: OnSessionReset + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_OnSessionReset_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.OnSessionReset + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.OnSessionReset + nameWithType: FanucWhileDoIterationDependency.OnSessionReset +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: FanucWhileDoIterationDependency.Reg(XFactory) +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.Reg* + name: Reg + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_Reg_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.Reg + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.Reg + nameWithType: FanucWhileDoIterationDependency.Reg +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.XName + name: XName + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_XName + commentId: P:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.XName + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.XName + nameWithType: FanucWhileDoIterationDependency.XName +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.XName* + name: XName + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_XName_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.XName + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.XName + nameWithType: FanucWhileDoIterationDependency.XName - uid: Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable name: RetainedCommonVariableTable href: api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html @@ -126108,6 +125427,19 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.MakeXmlSource nameWithType: FileIndexCounterDependency.MakeXmlSource +- uid: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.OnSessionReset + name: OnSessionReset() + href: api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html#Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_OnSessionReset + commentId: M:Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.OnSessionReset + fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.OnSessionReset() + nameWithType: FileIndexCounterDependency.OnSessionReset() +- uid: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.OnSessionReset* + name: OnSessionReset + href: api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html#Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_OnSessionReset_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.OnSessionReset + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.OnSessionReset + nameWithType: FileIndexCounterDependency.OnSessionReset - uid: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reg(Hi.Common.XmlUtils.XFactory) name: Reg(XFactory) href: api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html#Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_Reg_Hi_Common_XmlUtils_XFactory_ @@ -126121,19 +125453,6 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reg nameWithType: FileIndexCounterDependency.Reg -- uid: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reset - name: Reset() - href: api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html#Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_Reset - commentId: M:Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reset - fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reset() - nameWithType: FileIndexCounterDependency.Reset() -- uid: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reset* - name: Reset - href: api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html#Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_Reset_ - commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reset - isSpec: "True" - fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reset - nameWithType: FileIndexCounterDependency.Reset - uid: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.XName name: XName href: api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html#Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_XName @@ -126147,6 +125466,108 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.XName nameWithType: FileIndexCounterDependency.XName +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency + name: MachiningServiceDependency + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html + commentId: T:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency + nameWithType: MachiningServiceDependency +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.#ctor + name: MachiningServiceDependency() + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency__ctor + commentId: M:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.#ctor + name.vb: New() + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MachiningServiceDependency() + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.New() + nameWithType: MachiningServiceDependency.MachiningServiceDependency() + nameWithType.vb: MachiningServiceDependency.New() +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.#ctor(System.Func{Hi.MachiningSteps.IMachiningService}) + name: MachiningServiceDependency(Func) + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency__ctor_System_Func_Hi_MachiningSteps_IMachiningService__ + commentId: M:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.#ctor(System.Func{Hi.MachiningSteps.IMachiningService}) + name.vb: New(Func(Of IMachiningService)) + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MachiningServiceDependency(System.Func) + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.New(System.Func(Of Hi.MachiningSteps.IMachiningService)) + nameWithType: MachiningServiceDependency.MachiningServiceDependency(Func) + nameWithType.vb: MachiningServiceDependency.New(Func(Of IMachiningService)) +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.#ctor* + name: MachiningServiceDependency + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency__ctor_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.#ctor + isSpec: "True" + name.vb: New + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MachiningServiceDependency + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.New + nameWithType: MachiningServiceDependency.MachiningServiceDependency + nameWithType.vb: MachiningServiceDependency.New +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource(string, string, bool) + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource(String, String, Boolean) + nameWithType: MachiningServiceDependency.MakeXmlSource(string, string, bool) + nameWithType.vb: MachiningServiceDependency.MakeXmlSource(String, String, Boolean) +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_MakeXmlSource_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource + nameWithType: MachiningServiceDependency.MakeXmlSource +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: MachiningServiceDependency.Reg(XFactory) +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Reg* + name: Reg + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_Reg_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Reg + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Reg + nameWithType: MachiningServiceDependency.Reg +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Service + name: Service + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_Service + commentId: P:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Service + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Service + nameWithType: MachiningServiceDependency.Service +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Service* + name: Service + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_Service_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Service + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Service + nameWithType: MachiningServiceDependency.Service +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.ServiceProvider + name: ServiceProvider + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_ServiceProvider + commentId: P:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.ServiceProvider + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.ServiceProvider + nameWithType: MachiningServiceDependency.ServiceProvider +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.ServiceProvider* + name: ServiceProvider + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_ServiceProvider_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.ServiceProvider + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.ServiceProvider + nameWithType: MachiningServiceDependency.ServiceProvider +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.XName + name: XName + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_XName + commentId: P:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.XName + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.XName + nameWithType: MachiningServiceDependency.XName +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.XName* + name: XName + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_XName_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.XName + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.XName + nameWithType: MachiningServiceDependency.XName - uid: Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency name: NcKinematicsDependency href: api/Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html @@ -126507,6 +125928,108 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.XName nameWithType: SegmenterDependency.XName +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency + name: StepPropertyAccessDictionaryDependency + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html + commentId: T:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency + nameWithType: StepPropertyAccessDictionaryDependency +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.#ctor + name: StepPropertyAccessDictionaryDependency() + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency__ctor + commentId: M:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.#ctor + name.vb: New() + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.StepPropertyAccessDictionaryDependency() + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.New() + nameWithType: StepPropertyAccessDictionaryDependency.StepPropertyAccessDictionaryDependency() + nameWithType.vb: StepPropertyAccessDictionaryDependency.New() +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.#ctor(System.Func{Hi.MachiningSteps.IStepPropertyAccessHost}) + name: StepPropertyAccessDictionaryDependency(Func) + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency__ctor_System_Func_Hi_MachiningSteps_IStepPropertyAccessHost__ + commentId: M:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.#ctor(System.Func{Hi.MachiningSteps.IStepPropertyAccessHost}) + name.vb: New(Func(Of IStepPropertyAccessHost)) + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.StepPropertyAccessDictionaryDependency(System.Func) + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.New(System.Func(Of Hi.MachiningSteps.IStepPropertyAccessHost)) + nameWithType: StepPropertyAccessDictionaryDependency.StepPropertyAccessDictionaryDependency(Func) + nameWithType.vb: StepPropertyAccessDictionaryDependency.New(Func(Of IStepPropertyAccessHost)) +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.#ctor* + name: StepPropertyAccessDictionaryDependency + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency__ctor_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.#ctor + isSpec: "True" + name.vb: New + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.StepPropertyAccessDictionaryDependency + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.New + nameWithType: StepPropertyAccessDictionaryDependency.StepPropertyAccessDictionaryDependency + nameWithType.vb: StepPropertyAccessDictionaryDependency.New +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Host + name: Host + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_Host + commentId: P:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Host + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Host + nameWithType: StepPropertyAccessDictionaryDependency.Host +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Host* + name: Host + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_Host_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Host + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Host + nameWithType: StepPropertyAccessDictionaryDependency.Host +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.HostProvider + name: HostProvider + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_HostProvider + commentId: P:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.HostProvider + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.HostProvider + nameWithType: StepPropertyAccessDictionaryDependency.HostProvider +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.HostProvider* + name: HostProvider + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_HostProvider_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.HostProvider + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.HostProvider + nameWithType: StepPropertyAccessDictionaryDependency.HostProvider +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource(string, string, bool) + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource(String, String, Boolean) + nameWithType: StepPropertyAccessDictionaryDependency.MakeXmlSource(string, string, bool) + nameWithType.vb: StepPropertyAccessDictionaryDependency.MakeXmlSource(String, String, Boolean) +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_MakeXmlSource_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource + nameWithType: StepPropertyAccessDictionaryDependency.MakeXmlSource +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: StepPropertyAccessDictionaryDependency.Reg(XFactory) +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Reg* + name: Reg + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_Reg_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Reg + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Reg + nameWithType: StepPropertyAccessDictionaryDependency.Reg +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.XName + name: XName + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_XName + commentId: P:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.XName + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.XName + nameWithType: StepPropertyAccessDictionaryDependency.XName +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.XName* + name: XName + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_XName_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.XName + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.XName + nameWithType: StepPropertyAccessDictionaryDependency.XName - uid: Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency name: SyntaxPieceLayerDependency href: api/Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html @@ -127483,6 +127006,25 @@ references: commentId: N:Hi.NcParsers.EvaluationSyntaxs.Fanuc fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc nameWithType: Hi.NcParsers.EvaluationSyntaxs.Fanuc +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader + name: FanucConditionReader + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html + commentId: T:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader + nameWithType: FanucConditionReader +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.ReadCondition(System.Text.Json.Nodes.JsonNode) + name: ReadCondition(JsonNode) + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucConditionReader_ReadCondition_System_Text_Json_Nodes_JsonNode_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.ReadCondition(System.Text.Json.Nodes.JsonNode) + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.ReadCondition(System.Text.Json.Nodes.JsonNode) + nameWithType: FanucConditionReader.ReadCondition(JsonNode) +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.ReadCondition* + name: ReadCondition + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucConditionReader_ReadCondition_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.ReadCondition + isSpec: "True" + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.ReadCondition + nameWithType: FanucConditionReader.ReadCondition - uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax name: FanucGotoSyntax href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html @@ -128225,21 +127767,147 @@ references: isSpec: "True" fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.XName nameWithType: FanucSystemControlVariableSyntax.XName +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax + name: FanucWhileDoSyntax + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html + commentId: T:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax + nameWithType: FanucWhileDoSyntax +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.#ctor + name: FanucWhileDoSyntax() + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax__ctor + commentId: M:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.#ctor + name.vb: New() + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.FanucWhileDoSyntax() + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.New() + nameWithType: FanucWhileDoSyntax.FanucWhileDoSyntax() + nameWithType.vb: FanucWhileDoSyntax.New() +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.#ctor(System.Xml.Linq.XElement) + name: FanucWhileDoSyntax(XElement) + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax__ctor_System_Xml_Linq_XElement_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.#ctor(System.Xml.Linq.XElement) + name.vb: New(XElement) + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.FanucWhileDoSyntax(System.Xml.Linq.XElement) + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.New(System.Xml.Linq.XElement) + nameWithType: FanucWhileDoSyntax.FanucWhileDoSyntax(XElement) + nameWithType.vb: FanucWhileDoSyntax.New(XElement) +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.#ctor* + name: FanucWhileDoSyntax + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax__ctor_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.#ctor + isSpec: "True" + name.vb: New + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.FanucWhileDoSyntax + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.New + nameWithType: FanucWhileDoSyntax.FanucWhileDoSyntax + nameWithType.vb: FanucWhileDoSyntax.New +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.BeginLineNoKey + name: BeginLineNoKey + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_BeginLineNoKey + commentId: F:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.BeginLineNoKey + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.BeginLineNoKey + nameWithType: FanucWhileDoSyntax.BeginLineNoKey +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: Build(LazyLinkedListNode, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_Build_Hi_Common_Collections_LazyLinkedListNode_Hi_NcParsers_Syntaxs_SyntaxPiece__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: Build(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build(Hi.Common.Collections.LazyLinkedListNode, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build(Hi.Common.Collections.LazyLinkedListNode(Of Hi.NcParsers.Syntaxs.SyntaxPiece), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: FanucWhileDoSyntax.Build(LazyLinkedListNode, List, NcDiagnosticProgress) + nameWithType.vb: FanucWhileDoSyntax.Build(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build* + name: Build + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_Build_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build + isSpec: "True" + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build + nameWithType: FanucWhileDoSyntax.Build +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource(string, string, bool) + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource(String, String, Boolean) + nameWithType: FanucWhileDoSyntax.MakeXmlSource(string, string, bool) + nameWithType.vb: FanucWhileDoSyntax.MakeXmlSource(String, String, Boolean) +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_MakeXmlSource_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource + isSpec: "True" + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource + nameWithType: FanucWhileDoSyntax.MakeXmlSource +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Name + name: Name + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_Name + commentId: P:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Name + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Name + nameWithType: FanucWhileDoSyntax.Name +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Name* + name: Name + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_Name_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Name + isSpec: "True" + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Name + nameWithType: FanucWhileDoSyntax.Name +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: FanucWhileDoSyntax.Reg(XFactory) +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Reg* + name: Reg + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_Reg_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Reg + isSpec: "True" + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Reg + nameWithType: FanucWhileDoSyntax.Reg +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.WhileFramesKey + name: WhileFramesKey + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_WhileFramesKey + commentId: F:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.WhileFramesKey + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.WhileFramesKey + nameWithType: FanucWhileDoSyntax.WhileFramesKey +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.XName + name: XName + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_XName + commentId: P:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.XName + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.XName + nameWithType: FanucWhileDoSyntax.XName +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.XName* + name: XName + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_XName_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.XName + isSpec: "True" + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.XName + nameWithType: FanucWhileDoSyntax.XName - uid: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil name: LabelScanUtil href: api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html commentId: T:Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil fullName: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil nameWithType: LabelScanUtil -- uid: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter,System.String,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.List{Hi.NcParsers.Syntaxs.ISituNcSyntax},Hi.NcParsers.NcDiagnosticProgress) - name: SegmentAndSkipUntilLabel(ISegmenter, string, string, int, int, int, List, NcDiagnosticProgress) - href: api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html#Hi_NcParsers_EvaluationSyntaxs_LabelScanUtil_SegmentAndSkipUntilLabel_Hi_NcParsers_Segmenters_ISegmenter_System_String_System_String_System_Int32_System_Int32_System_Int32_System_Collections_Generic_List_Hi_NcParsers_Syntaxs_ISituNcSyntax__Hi_NcParsers_NcDiagnosticProgress_ - commentId: M:Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter,System.String,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.List{Hi.NcParsers.Syntaxs.ISituNcSyntax},Hi.NcParsers.NcDiagnosticProgress) - name.vb: SegmentAndSkipUntilLabel(ISegmenter, String, String, Integer, Integer, Integer, List(Of ISituNcSyntax), NcDiagnosticProgress) - fullName: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter, string, string, int, int, int, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) - fullName.vb: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter, String, String, Integer, Integer, Integer, System.Collections.Generic.List(Of Hi.NcParsers.Syntaxs.ISituNcSyntax), Hi.NcParsers.NcDiagnosticProgress) - nameWithType: LabelScanUtil.SegmentAndSkipUntilLabel(ISegmenter, string, string, int, int, int, List, NcDiagnosticProgress) - nameWithType.vb: LabelScanUtil.SegmentAndSkipUntilLabel(ISegmenter, String, String, Integer, Integer, Integer, List(Of ISituNcSyntax), NcDiagnosticProgress) +- uid: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.List{Hi.NcParsers.Syntaxs.ISituNcSyntax},System.Func{System.Text.Json.Nodes.JsonObject,System.Boolean},Hi.NcParsers.NcDiagnosticProgress) + name: SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, List, Func, NcDiagnosticProgress) + href: api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html#Hi_NcParsers_EvaluationSyntaxs_LabelScanUtil_SegmentAndSkipUntilLabel_Hi_NcParsers_Segmenters_ISegmenter_System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__System_String_System_String_System_Int32_System_Int32_System_Collections_Generic_List_Hi_NcParsers_Syntaxs_ISituNcSyntax__System_Func_System_Text_Json_Nodes_JsonObject_System_Boolean__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.List{Hi.NcParsers.Syntaxs.ISituNcSyntax},System.Func{System.Text.Json.Nodes.JsonObject,System.Boolean},Hi.NcParsers.NcDiagnosticProgress) + name.vb: SegmentAndSkipUntilLabel(ISegmenter, List(Of INcDependency), String, String, Integer, Integer, List(Of ISituNcSyntax), Func(Of JsonObject, Boolean), NcDiagnosticProgress) + fullName: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter, System.Collections.Generic.List, string, string, int, int, System.Collections.Generic.List, System.Func, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter, System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), String, String, Integer, Integer, System.Collections.Generic.List(Of Hi.NcParsers.Syntaxs.ISituNcSyntax), System.Func(Of System.Text.Json.Nodes.JsonObject, Boolean), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: LabelScanUtil.SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, List, Func, NcDiagnosticProgress) + nameWithType.vb: LabelScanUtil.SegmentAndSkipUntilLabel(ISegmenter, List(Of INcDependency), String, String, Integer, Integer, List(Of ISituNcSyntax), Func(Of JsonObject, Boolean), NcDiagnosticProgress) +- uid: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},System.String,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.List{Hi.NcParsers.Syntaxs.ISituNcSyntax},Hi.NcParsers.NcDiagnosticProgress) + name: SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, int, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html#Hi_NcParsers_EvaluationSyntaxs_LabelScanUtil_SegmentAndSkipUntilLabel_Hi_NcParsers_Segmenters_ISegmenter_System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__System_String_System_String_System_Int32_System_Int32_System_Int32_System_Collections_Generic_List_Hi_NcParsers_Syntaxs_ISituNcSyntax__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},System.String,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.List{Hi.NcParsers.Syntaxs.ISituNcSyntax},Hi.NcParsers.NcDiagnosticProgress) + name.vb: SegmentAndSkipUntilLabel(ISegmenter, List(Of INcDependency), String, String, Integer, Integer, Integer, List(Of ISituNcSyntax), NcDiagnosticProgress) + fullName: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter, System.Collections.Generic.List, string, string, int, int, int, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter, System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), String, String, Integer, Integer, Integer, System.Collections.Generic.List(Of Hi.NcParsers.Syntaxs.ISituNcSyntax), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: LabelScanUtil.SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, int, List, NcDiagnosticProgress) + nameWithType.vb: LabelScanUtil.SegmentAndSkipUntilLabel(ISegmenter, List(Of INcDependency), String, String, Integer, Integer, Integer, List(Of ISituNcSyntax), NcDiagnosticProgress) - uid: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel* name: SegmentAndSkipUntilLabel href: api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html#Hi_NcParsers_EvaluationSyntaxs_LabelScanUtil_SegmentAndSkipUntilLabel_ @@ -128377,15 +128045,15 @@ references: isSpec: "True" fullName: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.ApplyLocalBindings nameWithType: MacroInlineUtil.ApplyLocalBindings -- uid: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile,System.Int32,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Double},System.Text.Json.Nodes.JsonObject,System.Text.Json.Nodes.JsonObject,Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency,Hi.NcParsers.Segmenters.ISegmenter,System.Int32,Hi.NcParsers.NcDiagnosticProgress) - name: BuildInlinedPieces(ResolvedFile, int, IReadOnlyDictionary, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, int, NcDiagnosticProgress) - href: api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html#Hi_NcParsers_EvaluationSyntaxs_MacroInlineUtil_BuildInlinedPieces_Hi_NcParsers_EvaluationSyntaxs_MacroFileResolver_ResolvedFile_System_Int32_System_Collections_Generic_IReadOnlyDictionary_System_String_System_Double__System_Text_Json_Nodes_JsonObject_System_Text_Json_Nodes_JsonObject_Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_Hi_NcParsers_Segmenters_ISegmenter_System_Int32_Hi_NcParsers_NcDiagnosticProgress_ - commentId: M:Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile,System.Int32,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Double},System.Text.Json.Nodes.JsonObject,System.Text.Json.Nodes.JsonObject,Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency,Hi.NcParsers.Segmenters.ISegmenter,System.Int32,Hi.NcParsers.NcDiagnosticProgress) - name.vb: BuildInlinedPieces(ResolvedFile, Integer, IReadOnlyDictionary(Of String, Double), JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, Integer, NcDiagnosticProgress) - fullName: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile, int, System.Collections.Generic.IReadOnlyDictionary, System.Text.Json.Nodes.JsonObject, System.Text.Json.Nodes.JsonObject, Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency, Hi.NcParsers.Segmenters.ISegmenter, int, Hi.NcParsers.NcDiagnosticProgress) - fullName.vb: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile, Integer, System.Collections.Generic.IReadOnlyDictionary(Of String, Double), System.Text.Json.Nodes.JsonObject, System.Text.Json.Nodes.JsonObject, Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency, Hi.NcParsers.Segmenters.ISegmenter, Integer, Hi.NcParsers.NcDiagnosticProgress) - nameWithType: MacroInlineUtil.BuildInlinedPieces(MacroFileResolver.ResolvedFile, int, IReadOnlyDictionary, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, int, NcDiagnosticProgress) - nameWithType.vb: MacroInlineUtil.BuildInlinedPieces(MacroFileResolver.ResolvedFile, Integer, IReadOnlyDictionary(Of String, Double), JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, Integer, NcDiagnosticProgress) +- uid: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile,System.Int32,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Double},System.Text.Json.Nodes.JsonObject,System.Text.Json.Nodes.JsonObject,Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency,Hi.NcParsers.Segmenters.ISegmenter,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},System.Int32,Hi.NcParsers.NcDiagnosticProgress) + name: BuildInlinedPieces(ResolvedFile, int, IReadOnlyDictionary, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, List, int, NcDiagnosticProgress) + href: api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html#Hi_NcParsers_EvaluationSyntaxs_MacroInlineUtil_BuildInlinedPieces_Hi_NcParsers_EvaluationSyntaxs_MacroFileResolver_ResolvedFile_System_Int32_System_Collections_Generic_IReadOnlyDictionary_System_String_System_Double__System_Text_Json_Nodes_JsonObject_System_Text_Json_Nodes_JsonObject_Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_Hi_NcParsers_Segmenters_ISegmenter_System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__System_Int32_Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile,System.Int32,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Double},System.Text.Json.Nodes.JsonObject,System.Text.Json.Nodes.JsonObject,Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency,Hi.NcParsers.Segmenters.ISegmenter,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},System.Int32,Hi.NcParsers.NcDiagnosticProgress) + name.vb: BuildInlinedPieces(ResolvedFile, Integer, IReadOnlyDictionary(Of String, Double), JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, List(Of INcDependency), Integer, NcDiagnosticProgress) + fullName: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile, int, System.Collections.Generic.IReadOnlyDictionary, System.Text.Json.Nodes.JsonObject, System.Text.Json.Nodes.JsonObject, Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency, Hi.NcParsers.Segmenters.ISegmenter, System.Collections.Generic.List, int, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile, Integer, System.Collections.Generic.IReadOnlyDictionary(Of String, Double), System.Text.Json.Nodes.JsonObject, System.Text.Json.Nodes.JsonObject, Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency, Hi.NcParsers.Segmenters.ISegmenter, System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Integer, Hi.NcParsers.NcDiagnosticProgress) + nameWithType: MacroInlineUtil.BuildInlinedPieces(MacroFileResolver.ResolvedFile, int, IReadOnlyDictionary, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, List, int, NcDiagnosticProgress) + nameWithType.vb: MacroInlineUtil.BuildInlinedPieces(MacroFileResolver.ResolvedFile, Integer, IReadOnlyDictionary(Of String, Double), JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, List(Of INcDependency), Integer, NcDiagnosticProgress) - uid: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces* name: BuildInlinedPieces href: api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html#Hi_NcParsers_EvaluationSyntaxs_MacroInlineUtil_BuildInlinedPieces_ @@ -128784,6 +128452,12 @@ references: isSpec: "True" fullName: Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.Build nameWithType: VariableEvaluatorSyntax.Build +- uid: Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.FormulaKey + name: FormulaKey + href: api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html#Hi_NcParsers_EvaluationSyntaxs_VariableEvaluatorSyntax_FormulaKey + commentId: F:Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.FormulaKey + fullName: Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.FormulaKey + nameWithType: VariableEvaluatorSyntax.FormulaKey - uid: Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.MakeXmlSource(System.String,System.String,System.Boolean) name: MakeXmlSource(string, string, bool) href: api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html#Hi_NcParsers_EvaluationSyntaxs_VariableEvaluatorSyntax_MakeXmlSource_System_String_System_String_System_Boolean_ @@ -129013,6 +128687,25 @@ references: isSpec: "True" fullName: Hi.NcParsers.ISentenceIndexed.SentenceIndex nameWithType: ISentenceIndexed.SentenceIndex +- uid: Hi.NcParsers.ISessionResettable + name: ISessionResettable + href: api/Hi.NcParsers.ISessionResettable.html + commentId: T:Hi.NcParsers.ISessionResettable + fullName: Hi.NcParsers.ISessionResettable + nameWithType: ISessionResettable +- uid: Hi.NcParsers.ISessionResettable.OnSessionReset + name: OnSessionReset() + href: api/Hi.NcParsers.ISessionResettable.html#Hi_NcParsers_ISessionResettable_OnSessionReset + commentId: M:Hi.NcParsers.ISessionResettable.OnSessionReset + fullName: Hi.NcParsers.ISessionResettable.OnSessionReset() + nameWithType: ISessionResettable.OnSessionReset() +- uid: Hi.NcParsers.ISessionResettable.OnSessionReset* + name: OnSessionReset + href: api/Hi.NcParsers.ISessionResettable.html#Hi_NcParsers_ISessionResettable_OnSessionReset_ + commentId: Overload:Hi.NcParsers.ISessionResettable.OnSessionReset + isSpec: "True" + fullName: Hi.NcParsers.ISessionResettable.OnSessionReset + nameWithType: ISessionResettable.OnSessionReset - uid: Hi.NcParsers.IndexedSentence name: IndexedSentence href: api/Hi.NcParsers.IndexedSentence.html @@ -130276,6 +129969,19 @@ references: isSpec: "True" fullName: Hi.NcParsers.Keywords.FanucGoto.Condition nameWithType: FanucGoto.Condition +- uid: Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated + name: ConditionEvaluated + href: api/Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_ConditionEvaluated + commentId: P:Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated + fullName: Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated + nameWithType: FanucGoto.ConditionEvaluated +- uid: Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated* + name: ConditionEvaluated + href: api/Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_ConditionEvaluated_ + commentId: Overload:Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated + isSpec: "True" + fullName: Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated + nameWithType: FanucGoto.ConditionEvaluated - uid: Hi.NcParsers.Keywords.FanucGoto.Fired name: Fired href: api/Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_Fired @@ -130360,6 +130066,19 @@ references: isSpec: "True" fullName: Hi.NcParsers.Keywords.FanucIfThen.Condition nameWithType: FanucIfThen.Condition +- uid: Hi.NcParsers.Keywords.FanucIfThen.ConditionEvaluated + name: ConditionEvaluated + href: api/Hi.NcParsers.Keywords.FanucIfThen.html#Hi_NcParsers_Keywords_FanucIfThen_ConditionEvaluated + commentId: P:Hi.NcParsers.Keywords.FanucIfThen.ConditionEvaluated + fullName: Hi.NcParsers.Keywords.FanucIfThen.ConditionEvaluated + nameWithType: FanucIfThen.ConditionEvaluated +- uid: Hi.NcParsers.Keywords.FanucIfThen.ConditionEvaluated* + name: ConditionEvaluated + href: api/Hi.NcParsers.Keywords.FanucIfThen.html#Hi_NcParsers_Keywords_FanucIfThen_ConditionEvaluated_ + commentId: Overload:Hi.NcParsers.Keywords.FanucIfThen.ConditionEvaluated + isSpec: "True" + fullName: Hi.NcParsers.Keywords.FanucIfThen.ConditionEvaluated + nameWithType: FanucIfThen.ConditionEvaluated - uid: Hi.NcParsers.Keywords.FanucMacroCall name: FanucMacroCall href: api/Hi.NcParsers.Keywords.FanucMacroCall.html @@ -130565,6 +130284,64 @@ references: commentId: F:Hi.NcParsers.Keywords.FanucProgramNumber.WrapperNone fullName: Hi.NcParsers.Keywords.FanucProgramNumber.WrapperNone nameWithType: FanucProgramNumber.WrapperNone +- uid: Hi.NcParsers.Keywords.FanucWhileDo + name: FanucWhileDo + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html + commentId: T:Hi.NcParsers.Keywords.FanucWhileDo + fullName: Hi.NcParsers.Keywords.FanucWhileDo + nameWithType: FanucWhileDo +- uid: Hi.NcParsers.Keywords.FanucWhileDo.Condition + name: Condition + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_Condition + commentId: P:Hi.NcParsers.Keywords.FanucWhileDo.Condition + fullName: Hi.NcParsers.Keywords.FanucWhileDo.Condition + nameWithType: FanucWhileDo.Condition +- uid: Hi.NcParsers.Keywords.FanucWhileDo.Condition* + name: Condition + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_Condition_ + commentId: Overload:Hi.NcParsers.Keywords.FanucWhileDo.Condition + isSpec: "True" + fullName: Hi.NcParsers.Keywords.FanucWhileDo.Condition + nameWithType: FanucWhileDo.Condition +- uid: Hi.NcParsers.Keywords.FanucWhileDo.ConditionEvaluated + name: ConditionEvaluated + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_ConditionEvaluated + commentId: P:Hi.NcParsers.Keywords.FanucWhileDo.ConditionEvaluated + fullName: Hi.NcParsers.Keywords.FanucWhileDo.ConditionEvaluated + nameWithType: FanucWhileDo.ConditionEvaluated +- uid: Hi.NcParsers.Keywords.FanucWhileDo.ConditionEvaluated* + name: ConditionEvaluated + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_ConditionEvaluated_ + commentId: Overload:Hi.NcParsers.Keywords.FanucWhileDo.ConditionEvaluated + isSpec: "True" + fullName: Hi.NcParsers.Keywords.FanucWhileDo.ConditionEvaluated + nameWithType: FanucWhileDo.ConditionEvaluated +- uid: Hi.NcParsers.Keywords.FanucWhileDo.LoopId + name: LoopId + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_LoopId + commentId: P:Hi.NcParsers.Keywords.FanucWhileDo.LoopId + fullName: Hi.NcParsers.Keywords.FanucWhileDo.LoopId + nameWithType: FanucWhileDo.LoopId +- uid: Hi.NcParsers.Keywords.FanucWhileDo.LoopId* + name: LoopId + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_LoopId_ + commentId: Overload:Hi.NcParsers.Keywords.FanucWhileDo.LoopId + isSpec: "True" + fullName: Hi.NcParsers.Keywords.FanucWhileDo.LoopId + nameWithType: FanucWhileDo.LoopId +- uid: Hi.NcParsers.Keywords.FanucWhileDo.Term + name: Term + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_Term + commentId: P:Hi.NcParsers.Keywords.FanucWhileDo.Term + fullName: Hi.NcParsers.Keywords.FanucWhileDo.Term + nameWithType: FanucWhileDo.Term +- uid: Hi.NcParsers.Keywords.FanucWhileDo.Term* + name: Term + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_Term_ + commentId: Overload:Hi.NcParsers.Keywords.FanucWhileDo.Term + isSpec: "True" + fullName: Hi.NcParsers.Keywords.FanucWhileDo.Term + nameWithType: FanucWhileDo.Term - uid: Hi.NcParsers.Keywords.Feedrate name: Feedrate href: api/Hi.NcParsers.Keywords.Feedrate.html @@ -131116,19 +130893,6 @@ references: isSpec: "True" fullName: Hi.NcParsers.Keywords.IArcMotionDef.IsCcw nameWithType: IArcMotionDef.IsCcw -- uid: Hi.NcParsers.Keywords.IArcMotionDef.PlaneNormalDir - name: PlaneNormalDir - href: api/Hi.NcParsers.Keywords.IArcMotionDef.html#Hi_NcParsers_Keywords_IArcMotionDef_PlaneNormalDir - commentId: P:Hi.NcParsers.Keywords.IArcMotionDef.PlaneNormalDir - fullName: Hi.NcParsers.Keywords.IArcMotionDef.PlaneNormalDir - nameWithType: IArcMotionDef.PlaneNormalDir -- uid: Hi.NcParsers.Keywords.IArcMotionDef.PlaneNormalDir* - name: PlaneNormalDir - href: api/Hi.NcParsers.Keywords.IArcMotionDef.html#Hi_NcParsers_Keywords_IArcMotionDef_PlaneNormalDir_ - commentId: Overload:Hi.NcParsers.Keywords.IArcMotionDef.PlaneNormalDir - isSpec: "True" - fullName: Hi.NcParsers.Keywords.IArcMotionDef.PlaneNormalDir - nameWithType: IArcMotionDef.PlaneNormalDir - uid: Hi.NcParsers.Keywords.ICannedCycleDef name: ICannedCycleDef href: api/Hi.NcParsers.Keywords.ICannedCycleDef.html @@ -138383,6 +138147,111 @@ references: isSpec: "True" fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax.XName nameWithType: FanucProgramNumberSyntax.XName +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax + name: FanucWhileDoParsingSyntax + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html + commentId: T:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax + nameWithType: FanucWhileDoParsingSyntax +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.#ctor + name: FanucWhileDoParsingSyntax() + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax__ctor + commentId: M:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.#ctor + name.vb: New() + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.FanucWhileDoParsingSyntax() + fullName.vb: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.New() + nameWithType: FanucWhileDoParsingSyntax.FanucWhileDoParsingSyntax() + nameWithType.vb: FanucWhileDoParsingSyntax.New() +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.#ctor(System.Xml.Linq.XElement) + name: FanucWhileDoParsingSyntax(XElement) + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax__ctor_System_Xml_Linq_XElement_ + commentId: M:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.#ctor(System.Xml.Linq.XElement) + name.vb: New(XElement) + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.FanucWhileDoParsingSyntax(System.Xml.Linq.XElement) + fullName.vb: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.New(System.Xml.Linq.XElement) + nameWithType: FanucWhileDoParsingSyntax.FanucWhileDoParsingSyntax(XElement) + nameWithType.vb: FanucWhileDoParsingSyntax.New(XElement) +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.#ctor* + name: FanucWhileDoParsingSyntax + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax__ctor_ + commentId: Overload:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.#ctor + isSpec: "True" + name.vb: New + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.FanucWhileDoParsingSyntax + fullName.vb: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.New + nameWithType: FanucWhileDoParsingSyntax.FanucWhileDoParsingSyntax + nameWithType.vb: FanucWhileDoParsingSyntax.New +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: Build(LazyLinkedListNode, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_Build_Hi_Common_Collections_LazyLinkedListNode_Hi_NcParsers_Syntaxs_SyntaxPiece__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: Build(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build(Hi.Common.Collections.LazyLinkedListNode, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build(Hi.Common.Collections.LazyLinkedListNode(Of Hi.NcParsers.Syntaxs.SyntaxPiece), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: FanucWhileDoParsingSyntax.Build(LazyLinkedListNode, List, NcDiagnosticProgress) + nameWithType.vb: FanucWhileDoParsingSyntax.Build(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build* + name: Build + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_Build_ + commentId: Overload:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build + isSpec: "True" + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build + nameWithType: FanucWhileDoParsingSyntax.Build +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource(string, string, bool) + fullName.vb: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource(String, String, Boolean) + nameWithType: FanucWhileDoParsingSyntax.MakeXmlSource(string, string, bool) + nameWithType.vb: FanucWhileDoParsingSyntax.MakeXmlSource(String, String, Boolean) +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_MakeXmlSource_ + commentId: Overload:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource + isSpec: "True" + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource + nameWithType: FanucWhileDoParsingSyntax.MakeXmlSource +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Name + name: Name + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_Name + commentId: P:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Name + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Name + nameWithType: FanucWhileDoParsingSyntax.Name +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Name* + name: Name + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_Name_ + commentId: Overload:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Name + isSpec: "True" + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Name + nameWithType: FanucWhileDoParsingSyntax.Name +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: FanucWhileDoParsingSyntax.Reg(XFactory) +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Reg* + name: Reg + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_Reg_ + commentId: Overload:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Reg + isSpec: "True" + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Reg + nameWithType: FanucWhileDoParsingSyntax.Reg +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.XName + name: XName + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_XName + commentId: P:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.XName + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.XName + nameWithType: FanucWhileDoParsingSyntax.XName +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.XName* + name: XName + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_XName_ + commentId: Overload:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.XName + isSpec: "True" + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.XName + nameWithType: FanucWhileDoParsingSyntax.XName - uid: Hi.NcParsers.ParsingSyntaxs.FlagSyntax name: FlagSyntax href: api/Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html @@ -141426,15 +141295,15 @@ references: fullName.vb: Hi.NcParsers.Segmenters.HeidenhainSegmenter.New nameWithType: HeidenhainSegmenter.HeidenhainSegmenter nameWithType.vb: HeidenhainSegmenter.New -- uid: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name: GetSentences(LazyLinkedList, NcDiagnosticProgress) - href: api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html#Hi_NcParsers_Segmenters_HeidenhainSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__Hi_NcParsers_NcDiagnosticProgress_ - commentId: M:Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) - fullName: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, Hi.NcParsers.NcDiagnosticProgress) - fullName.vb: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), Hi.NcParsers.NcDiagnosticProgress) - nameWithType: HeidenhainSegmenter.GetSentences(LazyLinkedList, NcDiagnosticProgress) - nameWithType.vb: HeidenhainSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) +- uid: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html#Hi_NcParsers_Segmenters_HeidenhainSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: HeidenhainSegmenter.GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + nameWithType.vb: HeidenhainSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) - uid: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences* name: GetSentences href: api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html#Hi_NcParsers_Segmenters_HeidenhainSegmenter_GetSentences_ @@ -141500,15 +141369,15 @@ references: commentId: T:Hi.NcParsers.Segmenters.ISegmenter fullName: Hi.NcParsers.Segmenters.ISegmenter nameWithType: ISegmenter -- uid: Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name: GetSentences(LazyLinkedList, NcDiagnosticProgress) - href: api/Hi.NcParsers.Segmenters.ISegmenter.html#Hi_NcParsers_Segmenters_ISegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__Hi_NcParsers_NcDiagnosticProgress_ - commentId: M:Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) - fullName: Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, Hi.NcParsers.NcDiagnosticProgress) - fullName.vb: Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), Hi.NcParsers.NcDiagnosticProgress) - nameWithType: ISegmenter.GetSentences(LazyLinkedList, NcDiagnosticProgress) - nameWithType.vb: ISegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) +- uid: Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.Segmenters.ISegmenter.html#Hi_NcParsers_Segmenters_ISegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: ISegmenter.GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + nameWithType.vb: ISegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) - uid: Hi.NcParsers.Segmenters.ISegmenter.GetSentences* name: GetSentences href: api/Hi.NcParsers.Segmenters.ISegmenter.html#Hi_NcParsers_Segmenters_ISegmenter_GetSentences_ @@ -141582,15 +141451,15 @@ references: isSpec: "True" fullName: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.Delimiter nameWithType: InlineDelimiterSegmenter.Delimiter -- uid: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name: GetSentences(LazyLinkedList, NcDiagnosticProgress) - href: api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html#Hi_NcParsers_Segmenters_InlineDelimiterSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__Hi_NcParsers_NcDiagnosticProgress_ - commentId: M:Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) - fullName: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, Hi.NcParsers.NcDiagnosticProgress) - fullName.vb: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), Hi.NcParsers.NcDiagnosticProgress) - nameWithType: InlineDelimiterSegmenter.GetSentences(LazyLinkedList, NcDiagnosticProgress) - nameWithType.vb: InlineDelimiterSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) +- uid: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html#Hi_NcParsers_Segmenters_InlineDelimiterSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: InlineDelimiterSegmenter.GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + nameWithType.vb: InlineDelimiterSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) - uid: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences* name: GetSentences href: api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html#Hi_NcParsers_Segmenters_InlineDelimiterSegmenter_GetSentences_ @@ -141656,15 +141525,15 @@ references: commentId: T:Hi.NcParsers.Segmenters.SingleLineSegmenter fullName: Hi.NcParsers.Segmenters.SingleLineSegmenter nameWithType: SingleLineSegmenter -- uid: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name: GetSentences(LazyLinkedList, NcDiagnosticProgress) - href: api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html#Hi_NcParsers_Segmenters_SingleLineSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__Hi_NcParsers_NcDiagnosticProgress_ - commentId: M:Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) - fullName: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, Hi.NcParsers.NcDiagnosticProgress) - fullName.vb: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), Hi.NcParsers.NcDiagnosticProgress) - nameWithType: SingleLineSegmenter.GetSentences(LazyLinkedList, NcDiagnosticProgress) - nameWithType.vb: SingleLineSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) +- uid: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html#Hi_NcParsers_Segmenters_SingleLineSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: SingleLineSegmenter.GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + nameWithType.vb: SingleLineSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) - uid: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences* name: GetSentences href: api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html#Hi_NcParsers_Segmenters_SingleLineSegmenter_GetSentences_ @@ -146978,6 +146847,497 @@ references: commentId: F:Hi.Numerical.CoordinateInterpolationMode.Polar fullName: Hi.Numerical.CoordinateInterpolationMode.Polar nameWithType: CoordinateInterpolationMode.Polar +- uid: Hi.Numerical.CsvParsers + name: Hi.Numerical.CsvParsers + href: api/Hi.Numerical.CsvParsers.html + commentId: N:Hi.Numerical.CsvParsers + fullName: Hi.Numerical.CsvParsers + nameWithType: Hi.Numerical.CsvParsers +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic + name: CsvRowSemantic + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html + commentId: T:Hi.Numerical.CsvParsers.CsvRowSemantic + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic + nameWithType: CsvRowSemantic +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.DisplayName + name: DisplayName + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_DisplayName + commentId: P:Hi.Numerical.CsvParsers.CsvRowSemantic.DisplayName + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.DisplayName + nameWithType: CsvRowSemantic.DisplayName +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.DisplayName* + name: DisplayName + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_DisplayName_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSemantic.DisplayName + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.DisplayName + nameWithType: CsvRowSemantic.DisplayName +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource(string, string, bool) + fullName.vb: Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource(String, String, Boolean) + nameWithType: CsvRowSemantic.MakeXmlSource(string, string, bool) + nameWithType.vb: CsvRowSemantic.MakeXmlSource(String, String, Boolean) +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_MakeXmlSource_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource + nameWithType: CsvRowSemantic.MakeXmlSource +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.Numerical.CsvParsers.CsvRowSemantic.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: CsvRowSemantic.Reg(XFactory) +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.Reg* + name: Reg + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_Reg_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSemantic.Reg + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.Reg + nameWithType: CsvRowSemantic.Reg +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: Resolve(LazyLinkedListNode, List, NcDiagnosticProgress) + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_Resolve_Hi_Common_Collections_LazyLinkedListNode_Hi_NcParsers_Syntaxs_SyntaxPiece__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: Resolve(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve(Hi.Common.Collections.LazyLinkedListNode, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve(Hi.Common.Collections.LazyLinkedListNode(Of Hi.NcParsers.Syntaxs.SyntaxPiece), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: CsvRowSemantic.Resolve(LazyLinkedListNode, List, NcDiagnosticProgress) + nameWithType.vb: CsvRowSemantic.Resolve(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve* + name: Resolve + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_Resolve_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve + nameWithType: CsvRowSemantic.Resolve +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.XName + name: XName + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_XName + commentId: P:Hi.Numerical.CsvParsers.CsvRowSemantic.XName + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.XName + nameWithType: CsvRowSemantic.XName +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.XName* + name: XName + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_XName_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSemantic.XName + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.XName + nameWithType: CsvRowSemantic.XName +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax + name: CsvRowSyntax + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html + commentId: T:Hi.Numerical.CsvParsers.CsvRowSyntax + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax + nameWithType: CsvRowSyntax +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.Build(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: Build(LazyLinkedListNode, List, NcDiagnosticProgress) + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_Build_Hi_Common_Collections_LazyLinkedListNode_Hi_NcParsers_Syntaxs_SyntaxPiece__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.Numerical.CsvParsers.CsvRowSyntax.Build(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: Build(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.Build(Hi.Common.Collections.LazyLinkedListNode, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.Numerical.CsvParsers.CsvRowSyntax.Build(Hi.Common.Collections.LazyLinkedListNode(Of Hi.NcParsers.Syntaxs.SyntaxPiece), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: CsvRowSyntax.Build(LazyLinkedListNode, List, NcDiagnosticProgress) + nameWithType.vb: CsvRowSyntax.Build(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.Build* + name: Build + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_Build_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSyntax.Build + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.Build + nameWithType: CsvRowSyntax.Build +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.CsvRowKey + name: CsvRowKey + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_CsvRowKey + commentId: F:Hi.Numerical.CsvParsers.CsvRowSyntax.CsvRowKey + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.CsvRowKey + nameWithType: CsvRowSyntax.CsvRowKey +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource(string, string, bool) + fullName.vb: Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource(String, String, Boolean) + nameWithType: CsvRowSyntax.MakeXmlSource(string, string, bool) + nameWithType.vb: CsvRowSyntax.MakeXmlSource(String, String, Boolean) +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_MakeXmlSource_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource + nameWithType: CsvRowSyntax.MakeXmlSource +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.Name + name: Name + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_Name + commentId: P:Hi.Numerical.CsvParsers.CsvRowSyntax.Name + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.Name + nameWithType: CsvRowSyntax.Name +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.Name* + name: Name + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_Name_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSyntax.Name + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.Name + nameWithType: CsvRowSyntax.Name +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.Numerical.CsvParsers.CsvRowSyntax.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: CsvRowSyntax.Reg(XFactory) +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.Reg* + name: Reg + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_Reg_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSyntax.Reg + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.Reg + nameWithType: CsvRowSyntax.Reg +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.XName + name: XName + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_XName + commentId: P:Hi.Numerical.CsvParsers.CsvRowSyntax.XName + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.XName + nameWithType: CsvRowSyntax.XName +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.XName* + name: XName + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_XName_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSyntax.XName + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.XName + nameWithType: CsvRowSyntax.XName +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig + name: CsvRunnerConfig + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html + commentId: T:Hi.Numerical.CsvParsers.CsvRunnerConfig + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig + nameWithType: CsvRunnerConfig +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.#ctor + name: CsvRunnerConfig() + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig__ctor + commentId: M:Hi.Numerical.CsvParsers.CsvRunnerConfig.#ctor + name.vb: New() + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.CsvRunnerConfig() + fullName.vb: Hi.Numerical.CsvParsers.CsvRunnerConfig.New() + nameWithType: CsvRunnerConfig.CsvRunnerConfig() + nameWithType.vb: CsvRunnerConfig.New() +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.#ctor(System.Xml.Linq.XElement) + name: CsvRunnerConfig(XElement) + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig__ctor_System_Xml_Linq_XElement_ + commentId: M:Hi.Numerical.CsvParsers.CsvRunnerConfig.#ctor(System.Xml.Linq.XElement) + name.vb: New(XElement) + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.CsvRunnerConfig(System.Xml.Linq.XElement) + fullName.vb: Hi.Numerical.CsvParsers.CsvRunnerConfig.New(System.Xml.Linq.XElement) + nameWithType: CsvRunnerConfig.CsvRunnerConfig(XElement) + nameWithType.vb: CsvRunnerConfig.New(XElement) +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.#ctor* + name: CsvRunnerConfig + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig__ctor_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.#ctor + isSpec: "True" + name.vb: New + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.CsvRunnerConfig + fullName.vb: Hi.Numerical.CsvParsers.CsvRunnerConfig.New + nameWithType: CsvRunnerConfig.CsvRunnerConfig + nameWithType.vb: CsvRunnerConfig.New +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.ActualTimeTag + name: ActualTimeTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_ActualTimeTag + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.ActualTimeTag + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.ActualTimeTag + nameWithType: CsvRunnerConfig.ActualTimeTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.ActualTimeTag* + name: ActualTimeTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_ActualTimeTag_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.ActualTimeTag + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.ActualTimeTag + nameWithType: CsvRunnerConfig.ActualTimeTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.CutterLocationPrefix + name: CutterLocationPrefix + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_CutterLocationPrefix + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.CutterLocationPrefix + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.CutterLocationPrefix + nameWithType: CsvRunnerConfig.CutterLocationPrefix +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.CutterLocationPrefix* + name: CutterLocationPrefix + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_CutterLocationPrefix_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.CutterLocationPrefix + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.CutterLocationPrefix + nameWithType: CsvRunnerConfig.CutterLocationPrefix +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.DurationTag + name: DurationTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_DurationTag + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.DurationTag + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.DurationTag + nameWithType: CsvRunnerConfig.DurationTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.DurationTag* + name: DurationTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_DurationTag_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.DurationTag + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.DurationTag + nameWithType: CsvRunnerConfig.DurationTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.FeedrateTag_mmdmin + name: FeedrateTag_mmdmin + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_FeedrateTag_mmdmin + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.FeedrateTag_mmdmin + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.FeedrateTag_mmdmin + nameWithType: CsvRunnerConfig.FeedrateTag_mmdmin +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.FeedrateTag_mmdmin* + name: FeedrateTag_mmdmin + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_FeedrateTag_mmdmin_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.FeedrateTag_mmdmin + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.FeedrateTag_mmdmin + nameWithType: CsvRunnerConfig.FeedrateTag_mmdmin +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineBeginCsScriptTag + name: LineBeginCsScriptTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_LineBeginCsScriptTag + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.LineBeginCsScriptTag + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineBeginCsScriptTag + nameWithType: CsvRunnerConfig.LineBeginCsScriptTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineBeginCsScriptTag* + name: LineBeginCsScriptTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_LineBeginCsScriptTag_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.LineBeginCsScriptTag + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineBeginCsScriptTag + nameWithType: CsvRunnerConfig.LineBeginCsScriptTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineEndCsScriptTag + name: LineEndCsScriptTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_LineEndCsScriptTag + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.LineEndCsScriptTag + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineEndCsScriptTag + nameWithType: CsvRunnerConfig.LineEndCsScriptTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineEndCsScriptTag* + name: LineEndCsScriptTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_LineEndCsScriptTag_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.LineEndCsScriptTag + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineEndCsScriptTag + nameWithType: CsvRunnerConfig.LineEndCsScriptTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.MachineCoordinatePrefix + name: MachineCoordinatePrefix + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_MachineCoordinatePrefix + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.MachineCoordinatePrefix + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.MachineCoordinatePrefix + nameWithType: CsvRunnerConfig.MachineCoordinatePrefix +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.MachineCoordinatePrefix* + name: MachineCoordinatePrefix + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_MachineCoordinatePrefix_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.MachineCoordinatePrefix + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.MachineCoordinatePrefix + nameWithType: CsvRunnerConfig.MachineCoordinatePrefix +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource(string, string, bool) + fullName.vb: Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource(String, String, Boolean) + nameWithType: CsvRunnerConfig.MakeXmlSource(string, string, bool) + nameWithType.vb: CsvRunnerConfig.MakeXmlSource(String, String, Boolean) +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_MakeXmlSource_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource + nameWithType: CsvRunnerConfig.MakeXmlSource +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.ParsingDictionary + name: ParsingDictionary + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_ParsingDictionary + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.ParsingDictionary + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.ParsingDictionary + nameWithType: CsvRunnerConfig.ParsingDictionary +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.ParsingDictionary* + name: ParsingDictionary + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_ParsingDictionary_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.ParsingDictionary + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.ParsingDictionary + nameWithType: CsvRunnerConfig.ParsingDictionary +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.Numerical.CsvParsers.CsvRunnerConfig.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: CsvRunnerConfig.Reg(XFactory) +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.Reg* + name: Reg + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_Reg_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.Reg + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.Reg + nameWithType: CsvRunnerConfig.Reg +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleDirectionTag + name: SpindleDirectionTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_SpindleDirectionTag + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleDirectionTag + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleDirectionTag + nameWithType: CsvRunnerConfig.SpindleDirectionTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleDirectionTag* + name: SpindleDirectionTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_SpindleDirectionTag_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleDirectionTag + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleDirectionTag + nameWithType: CsvRunnerConfig.SpindleDirectionTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleSpeedTag_rpm + name: SpindleSpeedTag_rpm + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_SpindleSpeedTag_rpm + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleSpeedTag_rpm + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleSpeedTag_rpm + nameWithType: CsvRunnerConfig.SpindleSpeedTag_rpm +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleSpeedTag_rpm* + name: SpindleSpeedTag_rpm + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_SpindleSpeedTag_rpm_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleSpeedTag_rpm + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleSpeedTag_rpm + nameWithType: CsvRunnerConfig.SpindleSpeedTag_rpm +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.ToolIdTag + name: ToolIdTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_ToolIdTag + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.ToolIdTag + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.ToolIdTag + nameWithType: CsvRunnerConfig.ToolIdTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.ToolIdTag* + name: ToolIdTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_ToolIdTag_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.ToolIdTag + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.ToolIdTag + nameWithType: CsvRunnerConfig.ToolIdTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.XName + name: XName + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_XName + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.XName + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.XName + nameWithType: CsvRunnerConfig.XName +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.XName* + name: XName + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_XName_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.XName + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.XName + nameWithType: CsvRunnerConfig.XName +- uid: Hi.Numerical.CsvParsers.CsvSegmenter + name: CsvSegmenter + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html + commentId: T:Hi.Numerical.CsvParsers.CsvSegmenter + fullName: Hi.Numerical.CsvParsers.CsvSegmenter + nameWithType: CsvSegmenter +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: CsvSegmenter.GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + nameWithType.vb: CsvSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences* + name: GetSentences + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_GetSentences_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences + nameWithType: CsvSegmenter.GetSentences +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.Name + name: Name + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_Name + commentId: P:Hi.Numerical.CsvParsers.CsvSegmenter.Name + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.Name + nameWithType: CsvSegmenter.Name +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.Name* + name: Name + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_Name_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSegmenter.Name + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.Name + nameWithType: CsvSegmenter.Name +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.Numerical.CsvParsers.CsvSegmenter.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: CsvSegmenter.Reg(XFactory) +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.Reg* + name: Reg + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_Reg_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSegmenter.Reg + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.Reg + nameWithType: CsvSegmenter.Reg +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.TitleList + name: TitleList + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_TitleList + commentId: P:Hi.Numerical.CsvParsers.CsvSegmenter.TitleList + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.TitleList + nameWithType: CsvSegmenter.TitleList +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.TitleList* + name: TitleList + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_TitleList_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSegmenter.TitleList + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.TitleList + nameWithType: CsvSegmenter.TitleList +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.ToXElement + name: ToXElement() + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_ToXElement + commentId: M:Hi.Numerical.CsvParsers.CsvSegmenter.ToXElement + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.ToXElement() + nameWithType: CsvSegmenter.ToXElement() +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.ToXElement* + name: ToXElement + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_ToXElement_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSegmenter.ToXElement + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.ToXElement + nameWithType: CsvSegmenter.ToXElement +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.XName + name: XName + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_XName + commentId: P:Hi.Numerical.CsvParsers.CsvSegmenter.XName + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.XName + nameWithType: CsvSegmenter.XName +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.XName* + name: XName + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_XName_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSegmenter.XName + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.XName + nameWithType: CsvSegmenter.XName +- uid: Hi.Numerical.CsvParsers.CsvSoftRunner + name: CsvSoftRunner + href: api/Hi.Numerical.CsvParsers.CsvSoftRunner.html + commentId: T:Hi.Numerical.CsvParsers.CsvSoftRunner + fullName: Hi.Numerical.CsvParsers.CsvSoftRunner + nameWithType: CsvSoftRunner +- uid: Hi.Numerical.CsvParsers.CsvSoftRunner.Create(Hi.Numerical.CsvParsers.CsvRunnerConfig) + name: Create(CsvRunnerConfig) + href: api/Hi.Numerical.CsvParsers.CsvSoftRunner.html#Hi_Numerical_CsvParsers_CsvSoftRunner_Create_Hi_Numerical_CsvParsers_CsvRunnerConfig_ + commentId: M:Hi.Numerical.CsvParsers.CsvSoftRunner.Create(Hi.Numerical.CsvParsers.CsvRunnerConfig) + fullName: Hi.Numerical.CsvParsers.CsvSoftRunner.Create(Hi.Numerical.CsvParsers.CsvRunnerConfig) + nameWithType: CsvSoftRunner.Create(CsvRunnerConfig) +- uid: Hi.Numerical.CsvParsers.CsvSoftRunner.Create* + name: Create + href: api/Hi.Numerical.CsvParsers.CsvSoftRunner.html#Hi_Numerical_CsvParsers_CsvSoftRunner_Create_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSoftRunner.Create + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSoftRunner.Create + nameWithType: CsvSoftRunner.Create - uid: Hi.Numerical.FilePlayers name: Hi.Numerical.FilePlayers href: api/Hi.Numerical.FilePlayers.html @@ -147051,225 +147411,6 @@ references: isSpec: "True" fullName: Hi.Numerical.FilePlayers.CsvRunner.RunControlLines nameWithType: CsvRunner.RunControlLines -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig - name: CsvRunnerConfig - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html - commentId: T:Hi.Numerical.FilePlayers.CsvRunnerConfig - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig - nameWithType: CsvRunnerConfig -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.#ctor - name: CsvRunnerConfig() - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig__ctor - commentId: M:Hi.Numerical.FilePlayers.CsvRunnerConfig.#ctor - name.vb: New() - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.CsvRunnerConfig() - fullName.vb: Hi.Numerical.FilePlayers.CsvRunnerConfig.New() - nameWithType: CsvRunnerConfig.CsvRunnerConfig() - nameWithType.vb: CsvRunnerConfig.New() -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.#ctor(System.Xml.Linq.XElement) - name: CsvRunnerConfig(XElement) - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig__ctor_System_Xml_Linq_XElement_ - commentId: M:Hi.Numerical.FilePlayers.CsvRunnerConfig.#ctor(System.Xml.Linq.XElement) - name.vb: New(XElement) - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.CsvRunnerConfig(System.Xml.Linq.XElement) - fullName.vb: Hi.Numerical.FilePlayers.CsvRunnerConfig.New(System.Xml.Linq.XElement) - nameWithType: CsvRunnerConfig.CsvRunnerConfig(XElement) - nameWithType.vb: CsvRunnerConfig.New(XElement) -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.#ctor* - name: CsvRunnerConfig - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig__ctor_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.CsvRunnerConfig - fullName.vb: Hi.Numerical.FilePlayers.CsvRunnerConfig.New - nameWithType: CsvRunnerConfig.CsvRunnerConfig - nameWithType.vb: CsvRunnerConfig.New -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.ActualTimeTag - name: ActualTimeTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_ActualTimeTag - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.ActualTimeTag - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.ActualTimeTag - nameWithType: CsvRunnerConfig.ActualTimeTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.ActualTimeTag* - name: ActualTimeTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_ActualTimeTag_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.ActualTimeTag - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.ActualTimeTag - nameWithType: CsvRunnerConfig.ActualTimeTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.CutterLocationPrefix - name: CutterLocationPrefix - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_CutterLocationPrefix - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.CutterLocationPrefix - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.CutterLocationPrefix - nameWithType: CsvRunnerConfig.CutterLocationPrefix -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.CutterLocationPrefix* - name: CutterLocationPrefix - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_CutterLocationPrefix_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.CutterLocationPrefix - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.CutterLocationPrefix - nameWithType: CsvRunnerConfig.CutterLocationPrefix -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.DurationTag - name: DurationTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_DurationTag - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.DurationTag - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.DurationTag - nameWithType: CsvRunnerConfig.DurationTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.DurationTag* - name: DurationTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_DurationTag_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.DurationTag - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.DurationTag - nameWithType: CsvRunnerConfig.DurationTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.FeedrateTag_mmdmin - name: FeedrateTag_mmdmin - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_FeedrateTag_mmdmin - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.FeedrateTag_mmdmin - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.FeedrateTag_mmdmin - nameWithType: CsvRunnerConfig.FeedrateTag_mmdmin -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.FeedrateTag_mmdmin* - name: FeedrateTag_mmdmin - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_FeedrateTag_mmdmin_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.FeedrateTag_mmdmin - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.FeedrateTag_mmdmin - nameWithType: CsvRunnerConfig.FeedrateTag_mmdmin -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineBeginCsScriptTag - name: LineBeginCsScriptTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_LineBeginCsScriptTag - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.LineBeginCsScriptTag - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineBeginCsScriptTag - nameWithType: CsvRunnerConfig.LineBeginCsScriptTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineBeginCsScriptTag* - name: LineBeginCsScriptTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_LineBeginCsScriptTag_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.LineBeginCsScriptTag - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineBeginCsScriptTag - nameWithType: CsvRunnerConfig.LineBeginCsScriptTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineEndCsScriptTag - name: LineEndCsScriptTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_LineEndCsScriptTag - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.LineEndCsScriptTag - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineEndCsScriptTag - nameWithType: CsvRunnerConfig.LineEndCsScriptTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineEndCsScriptTag* - name: LineEndCsScriptTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_LineEndCsScriptTag_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.LineEndCsScriptTag - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineEndCsScriptTag - nameWithType: CsvRunnerConfig.LineEndCsScriptTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.MachineCoordinatePrefix - name: MachineCoordinatePrefix - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_MachineCoordinatePrefix - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.MachineCoordinatePrefix - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.MachineCoordinatePrefix - nameWithType: CsvRunnerConfig.MachineCoordinatePrefix -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.MachineCoordinatePrefix* - name: MachineCoordinatePrefix - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_MachineCoordinatePrefix_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.MachineCoordinatePrefix - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.MachineCoordinatePrefix - nameWithType: CsvRunnerConfig.MachineCoordinatePrefix -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource(System.String,System.String,System.Boolean) - name: MakeXmlSource(string, string, bool) - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_MakeXmlSource_System_String_System_String_System_Boolean_ - commentId: M:Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource(System.String,System.String,System.Boolean) - name.vb: MakeXmlSource(String, String, Boolean) - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource(string, string, bool) - fullName.vb: Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource(String, String, Boolean) - nameWithType: CsvRunnerConfig.MakeXmlSource(string, string, bool) - nameWithType.vb: CsvRunnerConfig.MakeXmlSource(String, String, Boolean) -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource* - name: MakeXmlSource - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_MakeXmlSource_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource - nameWithType: CsvRunnerConfig.MakeXmlSource -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.ParsingDictionary - name: ParsingDictionary - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_ParsingDictionary - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.ParsingDictionary - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.ParsingDictionary - nameWithType: CsvRunnerConfig.ParsingDictionary -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.ParsingDictionary* - name: ParsingDictionary - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_ParsingDictionary_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.ParsingDictionary - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.ParsingDictionary - nameWithType: CsvRunnerConfig.ParsingDictionary -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.Reg(Hi.Common.XmlUtils.XFactory) - name: Reg(XFactory) - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_Reg_Hi_Common_XmlUtils_XFactory_ - commentId: M:Hi.Numerical.FilePlayers.CsvRunnerConfig.Reg(Hi.Common.XmlUtils.XFactory) - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.Reg(Hi.Common.XmlUtils.XFactory) - nameWithType: CsvRunnerConfig.Reg(XFactory) -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.Reg* - name: Reg - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_Reg_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.Reg - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.Reg - nameWithType: CsvRunnerConfig.Reg -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleDirectionTag - name: SpindleDirectionTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_SpindleDirectionTag - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleDirectionTag - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleDirectionTag - nameWithType: CsvRunnerConfig.SpindleDirectionTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleDirectionTag* - name: SpindleDirectionTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_SpindleDirectionTag_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleDirectionTag - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleDirectionTag - nameWithType: CsvRunnerConfig.SpindleDirectionTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleSpeedTag_rpm - name: SpindleSpeedTag_rpm - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_SpindleSpeedTag_rpm - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleSpeedTag_rpm - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleSpeedTag_rpm - nameWithType: CsvRunnerConfig.SpindleSpeedTag_rpm -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleSpeedTag_rpm* - name: SpindleSpeedTag_rpm - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_SpindleSpeedTag_rpm_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleSpeedTag_rpm - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleSpeedTag_rpm - nameWithType: CsvRunnerConfig.SpindleSpeedTag_rpm -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.ToolIdTag - name: ToolIdTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_ToolIdTag - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.ToolIdTag - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.ToolIdTag - nameWithType: CsvRunnerConfig.ToolIdTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.ToolIdTag* - name: ToolIdTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_ToolIdTag_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.ToolIdTag - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.ToolIdTag - nameWithType: CsvRunnerConfig.ToolIdTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.XName - name: XName - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_XName - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.XName - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.XName - nameWithType: CsvRunnerConfig.XName -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.XName* - name: XName - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_XName_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.XName - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.XName - nameWithType: CsvRunnerConfig.XName - uid: Hi.Numerical.FilePlayers.HardNcRunner name: HardNcRunner href: api/Hi.Numerical.FilePlayers.HardNcRunner.html @@ -168751,175 +168892,6 @@ references: - uid: HiMech.Tutor.transformers name: Handle Transform Matrix by ITransformer href: fundamentals/mechanism/transformers/index.html -- uid: HiNc.Grpcs - name: HiNc.Grpcs - href: api/HiNc.Grpcs.html - commentId: N:HiNc.Grpcs - fullName: HiNc.Grpcs - nameWithType: HiNc.Grpcs -- uid: HiNc.Grpcs.MachiningProjectGrpcServer - name: MachiningProjectGrpcServer - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html - commentId: T:HiNc.Grpcs.MachiningProjectGrpcServer - fullName: HiNc.Grpcs.MachiningProjectGrpcServer - nameWithType: MachiningProjectGrpcServer -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(Hi.MachiningProcs.LocalProjectService) - name: MachiningProjectGrpcServer(LocalProjectService) - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer__ctor_Hi_MachiningProcs_LocalProjectService_ - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(Hi.MachiningProcs.LocalProjectService) - name.vb: New(LocalProjectService) - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MachiningProjectGrpcServer(Hi.MachiningProcs.LocalProjectService) - fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.New(Hi.MachiningProcs.LocalProjectService) - nameWithType: MachiningProjectGrpcServer.MachiningProjectGrpcServer(LocalProjectService) - nameWithType.vb: MachiningProjectGrpcServer.New(LocalProjectService) -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(System.Xml.Linq.XElement,Hi.MachiningProcs.LocalProjectService) - name: MachiningProjectGrpcServer(XElement, LocalProjectService) - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer__ctor_System_Xml_Linq_XElement_Hi_MachiningProcs_LocalProjectService_ - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(System.Xml.Linq.XElement,Hi.MachiningProcs.LocalProjectService) - name.vb: New(XElement, LocalProjectService) - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MachiningProjectGrpcServer(System.Xml.Linq.XElement, Hi.MachiningProcs.LocalProjectService) - fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.New(System.Xml.Linq.XElement, Hi.MachiningProcs.LocalProjectService) - nameWithType: MachiningProjectGrpcServer.MachiningProjectGrpcServer(XElement, LocalProjectService) - nameWithType.vb: MachiningProjectGrpcServer.New(XElement, LocalProjectService) -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.#ctor* - name: MachiningProjectGrpcServer - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer__ctor_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.#ctor - isSpec: "True" - name.vb: New - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MachiningProjectGrpcServer - fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.New - nameWithType: MachiningProjectGrpcServer.MachiningProjectGrpcServer - nameWithType.vb: MachiningProjectGrpcServer.New -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose - name: Dispose() - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_Dispose - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.Dispose - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose() - nameWithType: MachiningProjectGrpcServer.Dispose() -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose(System.Boolean) - name: Dispose(bool) - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_Dispose_System_Boolean_ - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.Dispose(System.Boolean) - name.vb: Dispose(Boolean) - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose(bool) - fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose(Boolean) - nameWithType: MachiningProjectGrpcServer.Dispose(bool) - nameWithType.vb: MachiningProjectGrpcServer.Dispose(Boolean) -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose* - name: Dispose - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_Dispose_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.Dispose - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose - nameWithType: MachiningProjectGrpcServer.Dispose -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.IsServiceRunning - name: IsServiceRunning - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_IsServiceRunning - commentId: P:HiNc.Grpcs.MachiningProjectGrpcServer.IsServiceRunning - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.IsServiceRunning - nameWithType: MachiningProjectGrpcServer.IsServiceRunning -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.IsServiceRunning* - name: IsServiceRunning - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_IsServiceRunning_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.IsServiceRunning - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.IsServiceRunning - nameWithType: MachiningProjectGrpcServer.IsServiceRunning -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource(System.String,System.String,System.Boolean) - name: MakeXmlSource(string, string, bool) - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_MakeXmlSource_System_String_System_String_System_Boolean_ - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource(System.String,System.String,System.Boolean) - name.vb: MakeXmlSource(String, String, Boolean) - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource(string, string, bool) - fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource(String, String, Boolean) - nameWithType: MachiningProjectGrpcServer.MakeXmlSource(string, string, bool) - nameWithType.vb: MachiningProjectGrpcServer.MakeXmlSource(String, String, Boolean) -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource* - name: MakeXmlSource - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_MakeXmlSource_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource - nameWithType: MachiningProjectGrpcServer.MakeXmlSource -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.Reg(Hi.Common.XmlUtils.XFactory) - name: Reg(XFactory) - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_Reg_Hi_Common_XmlUtils_XFactory_ - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.Reg(Hi.Common.XmlUtils.XFactory) - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.Reg(Hi.Common.XmlUtils.XFactory) - nameWithType: MachiningProjectGrpcServer.Reg(XFactory) -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.Reg* - name: Reg - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_Reg_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.Reg - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.Reg - nameWithType: MachiningProjectGrpcServer.Reg -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.ServicePort - name: ServicePort - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_ServicePort - commentId: P:HiNc.Grpcs.MachiningProjectGrpcServer.ServicePort - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.ServicePort - nameWithType: MachiningProjectGrpcServer.ServicePort -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.ServicePort* - name: ServicePort - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_ServicePort_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.ServicePort - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.ServicePort - nameWithType: MachiningProjectGrpcServer.ServicePort -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.StartAsync - name: StartAsync() - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_StartAsync - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.StartAsync - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.StartAsync() - nameWithType: MachiningProjectGrpcServer.StartAsync() -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.StartAsync* - name: StartAsync - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_StartAsync_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.StartAsync - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.StartAsync - nameWithType: MachiningProjectGrpcServer.StartAsync -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.StopAsync - name: StopAsync() - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_StopAsync - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.StopAsync - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.StopAsync() - nameWithType: MachiningProjectGrpcServer.StopAsync() -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.StopAsync* - name: StopAsync - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_StopAsync_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.StopAsync - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.StopAsync - nameWithType: MachiningProjectGrpcServer.StopAsync -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.WebApplication - name: WebApplication - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_WebApplication - commentId: P:HiNc.Grpcs.MachiningProjectGrpcServer.WebApplication - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.WebApplication - nameWithType: MachiningProjectGrpcServer.WebApplication -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.WebApplication* - name: WebApplication - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_WebApplication_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.WebApplication - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.WebApplication - nameWithType: MachiningProjectGrpcServer.WebApplication -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.XName - name: XName - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_XName - commentId: P:HiNc.Grpcs.MachiningProjectGrpcServer.XName - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.XName - nameWithType: MachiningProjectGrpcServer.XName -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.XName* - name: XName - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_XName_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.XName - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.XName - nameWithType: MachiningProjectGrpcServer.XName - uid: Milling-Physics-Coordinates name: Milling Physics Coordinate Systems href: manual/analysis/milling-physics-coordinates.html @@ -169518,1124 +169490,3 @@ references: - uid: Workflow-SensorMapping name: 'Workflow: Sensor Data Mapping' href: workflows/sensor-mapping.html -- uid: numerical - name: numerical - href: api/numerical.html - commentId: N:numerical - fullName: numerical - nameWithType: numerical -- uid: numerical.Empty - name: Empty - href: api/numerical.Empty.html - commentId: T:numerical.Empty - fullName: numerical.Empty - nameWithType: Empty -- uid: numerical.Empty.#ctor - name: Empty() - href: api/numerical.Empty.html#numerical_Empty__ctor - commentId: M:numerical.Empty.#ctor - name.vb: New() - fullName: numerical.Empty.Empty() - fullName.vb: numerical.Empty.New() - nameWithType: Empty.Empty() - nameWithType.vb: Empty.New() -- uid: numerical.Empty.#ctor(numerical.Empty) - name: Empty(Empty) - href: api/numerical.Empty.html#numerical_Empty__ctor_numerical_Empty_ - commentId: M:numerical.Empty.#ctor(numerical.Empty) - name.vb: New(Empty) - fullName: numerical.Empty.Empty(numerical.Empty) - fullName.vb: numerical.Empty.New(numerical.Empty) - nameWithType: Empty.Empty(Empty) - nameWithType.vb: Empty.New(Empty) -- uid: numerical.Empty.#ctor* - name: Empty - href: api/numerical.Empty.html#numerical_Empty__ctor_ - commentId: Overload:numerical.Empty.#ctor - isSpec: "True" - name.vb: New - fullName: numerical.Empty.Empty - fullName.vb: numerical.Empty.New - nameWithType: Empty.Empty - nameWithType.vb: Empty.New -- uid: numerical.Empty.CalculateSize - name: CalculateSize() - href: api/numerical.Empty.html#numerical_Empty_CalculateSize - commentId: M:numerical.Empty.CalculateSize - fullName: numerical.Empty.CalculateSize() - nameWithType: Empty.CalculateSize() -- uid: numerical.Empty.CalculateSize* - name: CalculateSize - href: api/numerical.Empty.html#numerical_Empty_CalculateSize_ - commentId: Overload:numerical.Empty.CalculateSize - isSpec: "True" - fullName: numerical.Empty.CalculateSize - nameWithType: Empty.CalculateSize -- uid: numerical.Empty.Clone - name: Clone() - href: api/numerical.Empty.html#numerical_Empty_Clone - commentId: M:numerical.Empty.Clone - fullName: numerical.Empty.Clone() - nameWithType: Empty.Clone() -- uid: numerical.Empty.Clone* - name: Clone - href: api/numerical.Empty.html#numerical_Empty_Clone_ - commentId: Overload:numerical.Empty.Clone - isSpec: "True" - fullName: numerical.Empty.Clone - nameWithType: Empty.Clone -- uid: numerical.Empty.Descriptor - name: Descriptor - href: api/numerical.Empty.html#numerical_Empty_Descriptor - commentId: P:numerical.Empty.Descriptor - fullName: numerical.Empty.Descriptor - nameWithType: Empty.Descriptor -- uid: numerical.Empty.Descriptor* - name: Descriptor - href: api/numerical.Empty.html#numerical_Empty_Descriptor_ - commentId: Overload:numerical.Empty.Descriptor - isSpec: "True" - fullName: numerical.Empty.Descriptor - nameWithType: Empty.Descriptor -- uid: numerical.Empty.Equals(System.Object) - name: Equals(object) - href: api/numerical.Empty.html#numerical_Empty_Equals_System_Object_ - commentId: M:numerical.Empty.Equals(System.Object) - name.vb: Equals(Object) - fullName: numerical.Empty.Equals(object) - fullName.vb: numerical.Empty.Equals(Object) - nameWithType: Empty.Equals(object) - nameWithType.vb: Empty.Equals(Object) -- uid: numerical.Empty.Equals(numerical.Empty) - name: Equals(Empty) - href: api/numerical.Empty.html#numerical_Empty_Equals_numerical_Empty_ - commentId: M:numerical.Empty.Equals(numerical.Empty) - fullName: numerical.Empty.Equals(numerical.Empty) - nameWithType: Empty.Equals(Empty) -- uid: numerical.Empty.Equals* - name: Equals - href: api/numerical.Empty.html#numerical_Empty_Equals_ - commentId: Overload:numerical.Empty.Equals - isSpec: "True" - fullName: numerical.Empty.Equals - nameWithType: Empty.Equals -- uid: numerical.Empty.GetHashCode - name: GetHashCode() - href: api/numerical.Empty.html#numerical_Empty_GetHashCode - commentId: M:numerical.Empty.GetHashCode - fullName: numerical.Empty.GetHashCode() - nameWithType: Empty.GetHashCode() -- uid: numerical.Empty.GetHashCode* - name: GetHashCode - href: api/numerical.Empty.html#numerical_Empty_GetHashCode_ - commentId: Overload:numerical.Empty.GetHashCode - isSpec: "True" - fullName: numerical.Empty.GetHashCode - nameWithType: Empty.GetHashCode -- uid: numerical.Empty.MergeFrom(Google.Protobuf.CodedInputStream) - name: MergeFrom(CodedInputStream) - href: api/numerical.Empty.html#numerical_Empty_MergeFrom_Google_Protobuf_CodedInputStream_ - commentId: M:numerical.Empty.MergeFrom(Google.Protobuf.CodedInputStream) - fullName: numerical.Empty.MergeFrom(Google.Protobuf.CodedInputStream) - nameWithType: Empty.MergeFrom(CodedInputStream) -- uid: numerical.Empty.MergeFrom(numerical.Empty) - name: MergeFrom(Empty) - href: api/numerical.Empty.html#numerical_Empty_MergeFrom_numerical_Empty_ - commentId: M:numerical.Empty.MergeFrom(numerical.Empty) - fullName: numerical.Empty.MergeFrom(numerical.Empty) - nameWithType: Empty.MergeFrom(Empty) -- uid: numerical.Empty.MergeFrom* - name: MergeFrom - href: api/numerical.Empty.html#numerical_Empty_MergeFrom_ - commentId: Overload:numerical.Empty.MergeFrom - isSpec: "True" - fullName: numerical.Empty.MergeFrom - nameWithType: Empty.MergeFrom -- uid: numerical.Empty.Parser - name: Parser - href: api/numerical.Empty.html#numerical_Empty_Parser - commentId: P:numerical.Empty.Parser - fullName: numerical.Empty.Parser - nameWithType: Empty.Parser -- uid: numerical.Empty.Parser* - name: Parser - href: api/numerical.Empty.html#numerical_Empty_Parser_ - commentId: Overload:numerical.Empty.Parser - isSpec: "True" - fullName: numerical.Empty.Parser - nameWithType: Empty.Parser -- uid: numerical.Empty.ToString - name: ToString() - href: api/numerical.Empty.html#numerical_Empty_ToString - commentId: M:numerical.Empty.ToString - fullName: numerical.Empty.ToString() - nameWithType: Empty.ToString() -- uid: numerical.Empty.ToString* - name: ToString - href: api/numerical.Empty.html#numerical_Empty_ToString_ - commentId: Overload:numerical.Empty.ToString - isSpec: "True" - fullName: numerical.Empty.ToString - nameWithType: Empty.ToString -- uid: numerical.Empty.WriteTo(Google.Protobuf.CodedOutputStream) - name: WriteTo(CodedOutputStream) - href: api/numerical.Empty.html#numerical_Empty_WriteTo_Google_Protobuf_CodedOutputStream_ - commentId: M:numerical.Empty.WriteTo(Google.Protobuf.CodedOutputStream) - fullName: numerical.Empty.WriteTo(Google.Protobuf.CodedOutputStream) - nameWithType: Empty.WriteTo(CodedOutputStream) -- uid: numerical.Empty.WriteTo* - name: WriteTo - href: api/numerical.Empty.html#numerical_Empty_WriteTo_ - commentId: Overload:numerical.Empty.WriteTo - isSpec: "True" - fullName: numerical.Empty.WriteTo - nameWithType: Empty.WriteTo -- uid: numerical.GrpcCsvRowDictionary - name: GrpcCsvRowDictionary - href: api/numerical.GrpcCsvRowDictionary.html - commentId: T:numerical.GrpcCsvRowDictionary - fullName: numerical.GrpcCsvRowDictionary - nameWithType: GrpcCsvRowDictionary -- uid: numerical.GrpcCsvRowDictionary.#ctor - name: GrpcCsvRowDictionary() - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary__ctor - commentId: M:numerical.GrpcCsvRowDictionary.#ctor - name.vb: New() - fullName: numerical.GrpcCsvRowDictionary.GrpcCsvRowDictionary() - fullName.vb: numerical.GrpcCsvRowDictionary.New() - nameWithType: GrpcCsvRowDictionary.GrpcCsvRowDictionary() - nameWithType.vb: GrpcCsvRowDictionary.New() -- uid: numerical.GrpcCsvRowDictionary.#ctor(numerical.GrpcCsvRowDictionary) - name: GrpcCsvRowDictionary(GrpcCsvRowDictionary) - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary__ctor_numerical_GrpcCsvRowDictionary_ - commentId: M:numerical.GrpcCsvRowDictionary.#ctor(numerical.GrpcCsvRowDictionary) - name.vb: New(GrpcCsvRowDictionary) - fullName: numerical.GrpcCsvRowDictionary.GrpcCsvRowDictionary(numerical.GrpcCsvRowDictionary) - fullName.vb: numerical.GrpcCsvRowDictionary.New(numerical.GrpcCsvRowDictionary) - nameWithType: GrpcCsvRowDictionary.GrpcCsvRowDictionary(GrpcCsvRowDictionary) - nameWithType.vb: GrpcCsvRowDictionary.New(GrpcCsvRowDictionary) -- uid: numerical.GrpcCsvRowDictionary.#ctor* - name: GrpcCsvRowDictionary - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary__ctor_ - commentId: Overload:numerical.GrpcCsvRowDictionary.#ctor - isSpec: "True" - name.vb: New - fullName: numerical.GrpcCsvRowDictionary.GrpcCsvRowDictionary - fullName.vb: numerical.GrpcCsvRowDictionary.New - nameWithType: GrpcCsvRowDictionary.GrpcCsvRowDictionary - nameWithType.vb: GrpcCsvRowDictionary.New -- uid: numerical.GrpcCsvRowDictionary.CalculateSize - name: CalculateSize() - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_CalculateSize - commentId: M:numerical.GrpcCsvRowDictionary.CalculateSize - fullName: numerical.GrpcCsvRowDictionary.CalculateSize() - nameWithType: GrpcCsvRowDictionary.CalculateSize() -- uid: numerical.GrpcCsvRowDictionary.CalculateSize* - name: CalculateSize - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_CalculateSize_ - commentId: Overload:numerical.GrpcCsvRowDictionary.CalculateSize - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.CalculateSize - nameWithType: GrpcCsvRowDictionary.CalculateSize -- uid: numerical.GrpcCsvRowDictionary.Clone - name: Clone() - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Clone - commentId: M:numerical.GrpcCsvRowDictionary.Clone - fullName: numerical.GrpcCsvRowDictionary.Clone() - nameWithType: GrpcCsvRowDictionary.Clone() -- uid: numerical.GrpcCsvRowDictionary.Clone* - name: Clone - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Clone_ - commentId: Overload:numerical.GrpcCsvRowDictionary.Clone - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.Clone - nameWithType: GrpcCsvRowDictionary.Clone -- uid: numerical.GrpcCsvRowDictionary.CsvRowDictionary - name: CsvRowDictionary - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_CsvRowDictionary - commentId: P:numerical.GrpcCsvRowDictionary.CsvRowDictionary - fullName: numerical.GrpcCsvRowDictionary.CsvRowDictionary - nameWithType: GrpcCsvRowDictionary.CsvRowDictionary -- uid: numerical.GrpcCsvRowDictionary.CsvRowDictionary* - name: CsvRowDictionary - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_CsvRowDictionary_ - commentId: Overload:numerical.GrpcCsvRowDictionary.CsvRowDictionary - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.CsvRowDictionary - nameWithType: GrpcCsvRowDictionary.CsvRowDictionary -- uid: numerical.GrpcCsvRowDictionary.CsvRowDictionaryFieldNumber - name: CsvRowDictionaryFieldNumber - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_CsvRowDictionaryFieldNumber - commentId: F:numerical.GrpcCsvRowDictionary.CsvRowDictionaryFieldNumber - fullName: numerical.GrpcCsvRowDictionary.CsvRowDictionaryFieldNumber - nameWithType: GrpcCsvRowDictionary.CsvRowDictionaryFieldNumber -- uid: numerical.GrpcCsvRowDictionary.Descriptor - name: Descriptor - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Descriptor - commentId: P:numerical.GrpcCsvRowDictionary.Descriptor - fullName: numerical.GrpcCsvRowDictionary.Descriptor - nameWithType: GrpcCsvRowDictionary.Descriptor -- uid: numerical.GrpcCsvRowDictionary.Descriptor* - name: Descriptor - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Descriptor_ - commentId: Overload:numerical.GrpcCsvRowDictionary.Descriptor - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.Descriptor - nameWithType: GrpcCsvRowDictionary.Descriptor -- uid: numerical.GrpcCsvRowDictionary.Equals(System.Object) - name: Equals(object) - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Equals_System_Object_ - commentId: M:numerical.GrpcCsvRowDictionary.Equals(System.Object) - name.vb: Equals(Object) - fullName: numerical.GrpcCsvRowDictionary.Equals(object) - fullName.vb: numerical.GrpcCsvRowDictionary.Equals(Object) - nameWithType: GrpcCsvRowDictionary.Equals(object) - nameWithType.vb: GrpcCsvRowDictionary.Equals(Object) -- uid: numerical.GrpcCsvRowDictionary.Equals(numerical.GrpcCsvRowDictionary) - name: Equals(GrpcCsvRowDictionary) - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Equals_numerical_GrpcCsvRowDictionary_ - commentId: M:numerical.GrpcCsvRowDictionary.Equals(numerical.GrpcCsvRowDictionary) - fullName: numerical.GrpcCsvRowDictionary.Equals(numerical.GrpcCsvRowDictionary) - nameWithType: GrpcCsvRowDictionary.Equals(GrpcCsvRowDictionary) -- uid: numerical.GrpcCsvRowDictionary.Equals* - name: Equals - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Equals_ - commentId: Overload:numerical.GrpcCsvRowDictionary.Equals - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.Equals - nameWithType: GrpcCsvRowDictionary.Equals -- uid: numerical.GrpcCsvRowDictionary.GetHashCode - name: GetHashCode() - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_GetHashCode - commentId: M:numerical.GrpcCsvRowDictionary.GetHashCode - fullName: numerical.GrpcCsvRowDictionary.GetHashCode() - nameWithType: GrpcCsvRowDictionary.GetHashCode() -- uid: numerical.GrpcCsvRowDictionary.GetHashCode* - name: GetHashCode - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_GetHashCode_ - commentId: Overload:numerical.GrpcCsvRowDictionary.GetHashCode - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.GetHashCode - nameWithType: GrpcCsvRowDictionary.GetHashCode -- uid: numerical.GrpcCsvRowDictionary.MergeFrom(Google.Protobuf.CodedInputStream) - name: MergeFrom(CodedInputStream) - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_MergeFrom_Google_Protobuf_CodedInputStream_ - commentId: M:numerical.GrpcCsvRowDictionary.MergeFrom(Google.Protobuf.CodedInputStream) - fullName: numerical.GrpcCsvRowDictionary.MergeFrom(Google.Protobuf.CodedInputStream) - nameWithType: GrpcCsvRowDictionary.MergeFrom(CodedInputStream) -- uid: numerical.GrpcCsvRowDictionary.MergeFrom(numerical.GrpcCsvRowDictionary) - name: MergeFrom(GrpcCsvRowDictionary) - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_MergeFrom_numerical_GrpcCsvRowDictionary_ - commentId: M:numerical.GrpcCsvRowDictionary.MergeFrom(numerical.GrpcCsvRowDictionary) - fullName: numerical.GrpcCsvRowDictionary.MergeFrom(numerical.GrpcCsvRowDictionary) - nameWithType: GrpcCsvRowDictionary.MergeFrom(GrpcCsvRowDictionary) -- uid: numerical.GrpcCsvRowDictionary.MergeFrom* - name: MergeFrom - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_MergeFrom_ - commentId: Overload:numerical.GrpcCsvRowDictionary.MergeFrom - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.MergeFrom - nameWithType: GrpcCsvRowDictionary.MergeFrom -- uid: numerical.GrpcCsvRowDictionary.Parser - name: Parser - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Parser - commentId: P:numerical.GrpcCsvRowDictionary.Parser - fullName: numerical.GrpcCsvRowDictionary.Parser - nameWithType: GrpcCsvRowDictionary.Parser -- uid: numerical.GrpcCsvRowDictionary.Parser* - name: Parser - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Parser_ - commentId: Overload:numerical.GrpcCsvRowDictionary.Parser - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.Parser - nameWithType: GrpcCsvRowDictionary.Parser -- uid: numerical.GrpcCsvRowDictionary.Status - name: Status - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Status - commentId: P:numerical.GrpcCsvRowDictionary.Status - fullName: numerical.GrpcCsvRowDictionary.Status - nameWithType: GrpcCsvRowDictionary.Status -- uid: numerical.GrpcCsvRowDictionary.Status* - name: Status - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Status_ - commentId: Overload:numerical.GrpcCsvRowDictionary.Status - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.Status - nameWithType: GrpcCsvRowDictionary.Status -- uid: numerical.GrpcCsvRowDictionary.StatusFieldNumber - name: StatusFieldNumber - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_StatusFieldNumber - commentId: F:numerical.GrpcCsvRowDictionary.StatusFieldNumber - fullName: numerical.GrpcCsvRowDictionary.StatusFieldNumber - nameWithType: GrpcCsvRowDictionary.StatusFieldNumber -- uid: numerical.GrpcCsvRowDictionary.ToString - name: ToString() - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_ToString - commentId: M:numerical.GrpcCsvRowDictionary.ToString - fullName: numerical.GrpcCsvRowDictionary.ToString() - nameWithType: GrpcCsvRowDictionary.ToString() -- uid: numerical.GrpcCsvRowDictionary.ToString* - name: ToString - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_ToString_ - commentId: Overload:numerical.GrpcCsvRowDictionary.ToString - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.ToString - nameWithType: GrpcCsvRowDictionary.ToString -- uid: numerical.GrpcCsvRowDictionary.WriteTo(Google.Protobuf.CodedOutputStream) - name: WriteTo(CodedOutputStream) - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_WriteTo_Google_Protobuf_CodedOutputStream_ - commentId: M:numerical.GrpcCsvRowDictionary.WriteTo(Google.Protobuf.CodedOutputStream) - fullName: numerical.GrpcCsvRowDictionary.WriteTo(Google.Protobuf.CodedOutputStream) - nameWithType: GrpcCsvRowDictionary.WriteTo(CodedOutputStream) -- uid: numerical.GrpcCsvRowDictionary.WriteTo* - name: WriteTo - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_WriteTo_ - commentId: Overload:numerical.GrpcCsvRowDictionary.WriteTo - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.WriteTo - nameWithType: GrpcCsvRowDictionary.WriteTo -- uid: numerical.GrpcNcStep - name: GrpcNcStep - href: api/numerical.GrpcNcStep.html - commentId: T:numerical.GrpcNcStep - fullName: numerical.GrpcNcStep - nameWithType: GrpcNcStep -- uid: numerical.GrpcNcStep.#ctor - name: GrpcNcStep() - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep__ctor - commentId: M:numerical.GrpcNcStep.#ctor - name.vb: New() - fullName: numerical.GrpcNcStep.GrpcNcStep() - fullName.vb: numerical.GrpcNcStep.New() - nameWithType: GrpcNcStep.GrpcNcStep() - nameWithType.vb: GrpcNcStep.New() -- uid: numerical.GrpcNcStep.#ctor(numerical.GrpcNcStep) - name: GrpcNcStep(GrpcNcStep) - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep__ctor_numerical_GrpcNcStep_ - commentId: M:numerical.GrpcNcStep.#ctor(numerical.GrpcNcStep) - name.vb: New(GrpcNcStep) - fullName: numerical.GrpcNcStep.GrpcNcStep(numerical.GrpcNcStep) - fullName.vb: numerical.GrpcNcStep.New(numerical.GrpcNcStep) - nameWithType: GrpcNcStep.GrpcNcStep(GrpcNcStep) - nameWithType.vb: GrpcNcStep.New(GrpcNcStep) -- uid: numerical.GrpcNcStep.#ctor* - name: GrpcNcStep - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep__ctor_ - commentId: Overload:numerical.GrpcNcStep.#ctor - isSpec: "True" - name.vb: New - fullName: numerical.GrpcNcStep.GrpcNcStep - fullName.vb: numerical.GrpcNcStep.New - nameWithType: GrpcNcStep.GrpcNcStep - nameWithType.vb: GrpcNcStep.New -- uid: numerical.GrpcNcStep.CalculateSize - name: CalculateSize() - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_CalculateSize - commentId: M:numerical.GrpcNcStep.CalculateSize - fullName: numerical.GrpcNcStep.CalculateSize() - nameWithType: GrpcNcStep.CalculateSize() -- uid: numerical.GrpcNcStep.CalculateSize* - name: CalculateSize - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_CalculateSize_ - commentId: Overload:numerical.GrpcNcStep.CalculateSize - isSpec: "True" - fullName: numerical.GrpcNcStep.CalculateSize - nameWithType: GrpcNcStep.CalculateSize -- uid: numerical.GrpcNcStep.Clone - name: Clone() - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Clone - commentId: M:numerical.GrpcNcStep.Clone - fullName: numerical.GrpcNcStep.Clone() - nameWithType: GrpcNcStep.Clone() -- uid: numerical.GrpcNcStep.Clone* - name: Clone - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Clone_ - commentId: Overload:numerical.GrpcNcStep.Clone - isSpec: "True" - fullName: numerical.GrpcNcStep.Clone - nameWithType: GrpcNcStep.Clone -- uid: numerical.GrpcNcStep.CsvRowDictionary - name: CsvRowDictionary - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_CsvRowDictionary - commentId: P:numerical.GrpcNcStep.CsvRowDictionary - fullName: numerical.GrpcNcStep.CsvRowDictionary - nameWithType: GrpcNcStep.CsvRowDictionary -- uid: numerical.GrpcNcStep.CsvRowDictionary* - name: CsvRowDictionary - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_CsvRowDictionary_ - commentId: Overload:numerical.GrpcNcStep.CsvRowDictionary - isSpec: "True" - fullName: numerical.GrpcNcStep.CsvRowDictionary - nameWithType: GrpcNcStep.CsvRowDictionary -- uid: numerical.GrpcNcStep.CsvRowDictionaryFieldNumber - name: CsvRowDictionaryFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_CsvRowDictionaryFieldNumber - commentId: F:numerical.GrpcNcStep.CsvRowDictionaryFieldNumber - fullName: numerical.GrpcNcStep.CsvRowDictionaryFieldNumber - nameWithType: GrpcNcStep.CsvRowDictionaryFieldNumber -- uid: numerical.GrpcNcStep.Descriptor - name: Descriptor - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Descriptor - commentId: P:numerical.GrpcNcStep.Descriptor - fullName: numerical.GrpcNcStep.Descriptor - nameWithType: GrpcNcStep.Descriptor -- uid: numerical.GrpcNcStep.Descriptor* - name: Descriptor - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Descriptor_ - commentId: Overload:numerical.GrpcNcStep.Descriptor - isSpec: "True" - fullName: numerical.GrpcNcStep.Descriptor - nameWithType: GrpcNcStep.Descriptor -- uid: numerical.GrpcNcStep.Equals(System.Object) - name: Equals(object) - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Equals_System_Object_ - commentId: M:numerical.GrpcNcStep.Equals(System.Object) - name.vb: Equals(Object) - fullName: numerical.GrpcNcStep.Equals(object) - fullName.vb: numerical.GrpcNcStep.Equals(Object) - nameWithType: GrpcNcStep.Equals(object) - nameWithType.vb: GrpcNcStep.Equals(Object) -- uid: numerical.GrpcNcStep.Equals(numerical.GrpcNcStep) - name: Equals(GrpcNcStep) - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Equals_numerical_GrpcNcStep_ - commentId: M:numerical.GrpcNcStep.Equals(numerical.GrpcNcStep) - fullName: numerical.GrpcNcStep.Equals(numerical.GrpcNcStep) - nameWithType: GrpcNcStep.Equals(GrpcNcStep) -- uid: numerical.GrpcNcStep.Equals* - name: Equals - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Equals_ - commentId: Overload:numerical.GrpcNcStep.Equals - isSpec: "True" - fullName: numerical.GrpcNcStep.Equals - nameWithType: GrpcNcStep.Equals -- uid: numerical.GrpcNcStep.FeedrateMmdmin - name: FeedrateMmdmin - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FeedrateMmdmin - commentId: P:numerical.GrpcNcStep.FeedrateMmdmin - fullName: numerical.GrpcNcStep.FeedrateMmdmin - nameWithType: GrpcNcStep.FeedrateMmdmin -- uid: numerical.GrpcNcStep.FeedrateMmdmin* - name: FeedrateMmdmin - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FeedrateMmdmin_ - commentId: Overload:numerical.GrpcNcStep.FeedrateMmdmin - isSpec: "True" - fullName: numerical.GrpcNcStep.FeedrateMmdmin - nameWithType: GrpcNcStep.FeedrateMmdmin -- uid: numerical.GrpcNcStep.FeedrateMmdminFieldNumber - name: FeedrateMmdminFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FeedrateMmdminFieldNumber - commentId: F:numerical.GrpcNcStep.FeedrateMmdminFieldNumber - fullName: numerical.GrpcNcStep.FeedrateMmdminFieldNumber - nameWithType: GrpcNcStep.FeedrateMmdminFieldNumber -- uid: numerical.GrpcNcStep.FileIndex - name: FileIndex - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FileIndex - commentId: P:numerical.GrpcNcStep.FileIndex - fullName: numerical.GrpcNcStep.FileIndex - nameWithType: GrpcNcStep.FileIndex -- uid: numerical.GrpcNcStep.FileIndex* - name: FileIndex - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FileIndex_ - commentId: Overload:numerical.GrpcNcStep.FileIndex - isSpec: "True" - fullName: numerical.GrpcNcStep.FileIndex - nameWithType: GrpcNcStep.FileIndex -- uid: numerical.GrpcNcStep.FileIndexFieldNumber - name: FileIndexFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FileIndexFieldNumber - commentId: F:numerical.GrpcNcStep.FileIndexFieldNumber - fullName: numerical.GrpcNcStep.FileIndexFieldNumber - nameWithType: GrpcNcStep.FileIndexFieldNumber -- uid: numerical.GrpcNcStep.FilePath - name: FilePath - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FilePath - commentId: P:numerical.GrpcNcStep.FilePath - fullName: numerical.GrpcNcStep.FilePath - nameWithType: GrpcNcStep.FilePath -- uid: numerical.GrpcNcStep.FilePath* - name: FilePath - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FilePath_ - commentId: Overload:numerical.GrpcNcStep.FilePath - isSpec: "True" - fullName: numerical.GrpcNcStep.FilePath - nameWithType: GrpcNcStep.FilePath -- uid: numerical.GrpcNcStep.FilePathFieldNumber - name: FilePathFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FilePathFieldNumber - commentId: F:numerical.GrpcNcStep.FilePathFieldNumber - fullName: numerical.GrpcNcStep.FilePathFieldNumber - nameWithType: GrpcNcStep.FilePathFieldNumber -- uid: numerical.GrpcNcStep.GetHashCode - name: GetHashCode() - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_GetHashCode - commentId: M:numerical.GrpcNcStep.GetHashCode - fullName: numerical.GrpcNcStep.GetHashCode() - nameWithType: GrpcNcStep.GetHashCode() -- uid: numerical.GrpcNcStep.GetHashCode* - name: GetHashCode - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_GetHashCode_ - commentId: Overload:numerical.GrpcNcStep.GetHashCode - isSpec: "True" - fullName: numerical.GrpcNcStep.GetHashCode - nameWithType: GrpcNcStep.GetHashCode -- uid: numerical.GrpcNcStep.Line - name: Line - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Line - commentId: P:numerical.GrpcNcStep.Line - fullName: numerical.GrpcNcStep.Line - nameWithType: GrpcNcStep.Line -- uid: numerical.GrpcNcStep.Line* - name: Line - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Line_ - commentId: Overload:numerical.GrpcNcStep.Line - isSpec: "True" - fullName: numerical.GrpcNcStep.Line - nameWithType: GrpcNcStep.Line -- uid: numerical.GrpcNcStep.LineFieldNumber - name: LineFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_LineFieldNumber - commentId: F:numerical.GrpcNcStep.LineFieldNumber - fullName: numerical.GrpcNcStep.LineFieldNumber - nameWithType: GrpcNcStep.LineFieldNumber -- uid: numerical.GrpcNcStep.LineIndex - name: LineIndex - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_LineIndex - commentId: P:numerical.GrpcNcStep.LineIndex - fullName: numerical.GrpcNcStep.LineIndex - nameWithType: GrpcNcStep.LineIndex -- uid: numerical.GrpcNcStep.LineIndex* - name: LineIndex - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_LineIndex_ - commentId: Overload:numerical.GrpcNcStep.LineIndex - isSpec: "True" - fullName: numerical.GrpcNcStep.LineIndex - nameWithType: GrpcNcStep.LineIndex -- uid: numerical.GrpcNcStep.LineIndexFieldNumber - name: LineIndexFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_LineIndexFieldNumber - commentId: F:numerical.GrpcNcStep.LineIndexFieldNumber - fullName: numerical.GrpcNcStep.LineIndexFieldNumber - nameWithType: GrpcNcStep.LineIndexFieldNumber -- uid: numerical.GrpcNcStep.MergeFrom(Google.Protobuf.CodedInputStream) - name: MergeFrom(CodedInputStream) - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_MergeFrom_Google_Protobuf_CodedInputStream_ - commentId: M:numerical.GrpcNcStep.MergeFrom(Google.Protobuf.CodedInputStream) - fullName: numerical.GrpcNcStep.MergeFrom(Google.Protobuf.CodedInputStream) - nameWithType: GrpcNcStep.MergeFrom(CodedInputStream) -- uid: numerical.GrpcNcStep.MergeFrom(numerical.GrpcNcStep) - name: MergeFrom(GrpcNcStep) - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_MergeFrom_numerical_GrpcNcStep_ - commentId: M:numerical.GrpcNcStep.MergeFrom(numerical.GrpcNcStep) - fullName: numerical.GrpcNcStep.MergeFrom(numerical.GrpcNcStep) - nameWithType: GrpcNcStep.MergeFrom(GrpcNcStep) -- uid: numerical.GrpcNcStep.MergeFrom* - name: MergeFrom - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_MergeFrom_ - commentId: Overload:numerical.GrpcNcStep.MergeFrom - isSpec: "True" - fullName: numerical.GrpcNcStep.MergeFrom - nameWithType: GrpcNcStep.MergeFrom -- uid: numerical.GrpcNcStep.Parser - name: Parser - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Parser - commentId: P:numerical.GrpcNcStep.Parser - fullName: numerical.GrpcNcStep.Parser - nameWithType: GrpcNcStep.Parser -- uid: numerical.GrpcNcStep.Parser* - name: Parser - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Parser_ - commentId: Overload:numerical.GrpcNcStep.Parser - isSpec: "True" - fullName: numerical.GrpcNcStep.Parser - nameWithType: GrpcNcStep.Parser -- uid: numerical.GrpcNcStep.SpindleDirection - name: SpindleDirection - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_SpindleDirection - commentId: P:numerical.GrpcNcStep.SpindleDirection - fullName: numerical.GrpcNcStep.SpindleDirection - nameWithType: GrpcNcStep.SpindleDirection -- uid: numerical.GrpcNcStep.SpindleDirection* - name: SpindleDirection - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_SpindleDirection_ - commentId: Overload:numerical.GrpcNcStep.SpindleDirection - isSpec: "True" - fullName: numerical.GrpcNcStep.SpindleDirection - nameWithType: GrpcNcStep.SpindleDirection -- uid: numerical.GrpcNcStep.SpindleDirectionFieldNumber - name: SpindleDirectionFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_SpindleDirectionFieldNumber - commentId: F:numerical.GrpcNcStep.SpindleDirectionFieldNumber - fullName: numerical.GrpcNcStep.SpindleDirectionFieldNumber - nameWithType: GrpcNcStep.SpindleDirectionFieldNumber -- uid: numerical.GrpcNcStep.SpindleSpeedRpm - name: SpindleSpeedRpm - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_SpindleSpeedRpm - commentId: P:numerical.GrpcNcStep.SpindleSpeedRpm - fullName: numerical.GrpcNcStep.SpindleSpeedRpm - nameWithType: GrpcNcStep.SpindleSpeedRpm -- uid: numerical.GrpcNcStep.SpindleSpeedRpm* - name: SpindleSpeedRpm - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_SpindleSpeedRpm_ - commentId: Overload:numerical.GrpcNcStep.SpindleSpeedRpm - isSpec: "True" - fullName: numerical.GrpcNcStep.SpindleSpeedRpm - nameWithType: GrpcNcStep.SpindleSpeedRpm -- uid: numerical.GrpcNcStep.SpindleSpeedRpmFieldNumber - name: SpindleSpeedRpmFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_SpindleSpeedRpmFieldNumber - commentId: F:numerical.GrpcNcStep.SpindleSpeedRpmFieldNumber - fullName: numerical.GrpcNcStep.SpindleSpeedRpmFieldNumber - nameWithType: GrpcNcStep.SpindleSpeedRpmFieldNumber -- uid: numerical.GrpcNcStep.StepIndex - name: StepIndex - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_StepIndex - commentId: P:numerical.GrpcNcStep.StepIndex - fullName: numerical.GrpcNcStep.StepIndex - nameWithType: GrpcNcStep.StepIndex -- uid: numerical.GrpcNcStep.StepIndex* - name: StepIndex - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_StepIndex_ - commentId: Overload:numerical.GrpcNcStep.StepIndex - isSpec: "True" - fullName: numerical.GrpcNcStep.StepIndex - nameWithType: GrpcNcStep.StepIndex -- uid: numerical.GrpcNcStep.StepIndexFieldNumber - name: StepIndexFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_StepIndexFieldNumber - commentId: F:numerical.GrpcNcStep.StepIndexFieldNumber - fullName: numerical.GrpcNcStep.StepIndexFieldNumber - nameWithType: GrpcNcStep.StepIndexFieldNumber -- uid: numerical.GrpcNcStep.ToString - name: ToString() - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_ToString - commentId: M:numerical.GrpcNcStep.ToString - fullName: numerical.GrpcNcStep.ToString() - nameWithType: GrpcNcStep.ToString() -- uid: numerical.GrpcNcStep.ToString* - name: ToString - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_ToString_ - commentId: Overload:numerical.GrpcNcStep.ToString - isSpec: "True" - fullName: numerical.GrpcNcStep.ToString - nameWithType: GrpcNcStep.ToString -- uid: numerical.GrpcNcStep.ToolId - name: ToolId - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_ToolId - commentId: P:numerical.GrpcNcStep.ToolId - fullName: numerical.GrpcNcStep.ToolId - nameWithType: GrpcNcStep.ToolId -- uid: numerical.GrpcNcStep.ToolId* - name: ToolId - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_ToolId_ - commentId: Overload:numerical.GrpcNcStep.ToolId - isSpec: "True" - fullName: numerical.GrpcNcStep.ToolId - nameWithType: GrpcNcStep.ToolId -- uid: numerical.GrpcNcStep.ToolIdFieldNumber - name: ToolIdFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_ToolIdFieldNumber - commentId: F:numerical.GrpcNcStep.ToolIdFieldNumber - fullName: numerical.GrpcNcStep.ToolIdFieldNumber - nameWithType: GrpcNcStep.ToolIdFieldNumber -- uid: numerical.GrpcNcStep.WorkTime - name: WorkTime - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_WorkTime - commentId: P:numerical.GrpcNcStep.WorkTime - fullName: numerical.GrpcNcStep.WorkTime - nameWithType: GrpcNcStep.WorkTime -- uid: numerical.GrpcNcStep.WorkTime* - name: WorkTime - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_WorkTime_ - commentId: Overload:numerical.GrpcNcStep.WorkTime - isSpec: "True" - fullName: numerical.GrpcNcStep.WorkTime - nameWithType: GrpcNcStep.WorkTime -- uid: numerical.GrpcNcStep.WorkTimeFieldNumber - name: WorkTimeFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_WorkTimeFieldNumber - commentId: F:numerical.GrpcNcStep.WorkTimeFieldNumber - fullName: numerical.GrpcNcStep.WorkTimeFieldNumber - nameWithType: GrpcNcStep.WorkTimeFieldNumber -- uid: numerical.GrpcNcStep.WriteTo(Google.Protobuf.CodedOutputStream) - name: WriteTo(CodedOutputStream) - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_WriteTo_Google_Protobuf_CodedOutputStream_ - commentId: M:numerical.GrpcNcStep.WriteTo(Google.Protobuf.CodedOutputStream) - fullName: numerical.GrpcNcStep.WriteTo(Google.Protobuf.CodedOutputStream) - nameWithType: GrpcNcStep.WriteTo(CodedOutputStream) -- uid: numerical.GrpcNcStep.WriteTo* - name: WriteTo - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_WriteTo_ - commentId: Overload:numerical.GrpcNcStep.WriteTo - isSpec: "True" - fullName: numerical.GrpcNcStep.WriteTo - nameWithType: GrpcNcStep.WriteTo -- uid: numerical.NumericalReflection - name: NumericalReflection - href: api/numerical.NumericalReflection.html - commentId: T:numerical.NumericalReflection - fullName: numerical.NumericalReflection - nameWithType: NumericalReflection -- uid: numerical.NumericalReflection.Descriptor - name: Descriptor - href: api/numerical.NumericalReflection.html#numerical_NumericalReflection_Descriptor - commentId: P:numerical.NumericalReflection.Descriptor - fullName: numerical.NumericalReflection.Descriptor - nameWithType: NumericalReflection.Descriptor -- uid: numerical.NumericalReflection.Descriptor* - name: Descriptor - href: api/numerical.NumericalReflection.html#numerical_NumericalReflection_Descriptor_ - commentId: Overload:numerical.NumericalReflection.Descriptor - isSpec: "True" - fullName: numerical.NumericalReflection.Descriptor - nameWithType: NumericalReflection.Descriptor -- uid: numerical.NumericalService - name: NumericalService - href: api/numerical.NumericalService.html - commentId: T:numerical.NumericalService - fullName: numerical.NumericalService - nameWithType: NumericalService -- uid: numerical.NumericalService.BindService(Grpc.Core.ServiceBinderBase,numerical.NumericalService.NumericalServiceBase) - name: BindService(ServiceBinderBase, NumericalServiceBase) - href: api/numerical.NumericalService.html#numerical_NumericalService_BindService_Grpc_Core_ServiceBinderBase_numerical_NumericalService_NumericalServiceBase_ - commentId: M:numerical.NumericalService.BindService(Grpc.Core.ServiceBinderBase,numerical.NumericalService.NumericalServiceBase) - fullName: numerical.NumericalService.BindService(Grpc.Core.ServiceBinderBase, numerical.NumericalService.NumericalServiceBase) - nameWithType: NumericalService.BindService(ServiceBinderBase, NumericalService.NumericalServiceBase) -- uid: numerical.NumericalService.BindService(numerical.NumericalService.NumericalServiceBase) - name: BindService(NumericalServiceBase) - href: api/numerical.NumericalService.html#numerical_NumericalService_BindService_numerical_NumericalService_NumericalServiceBase_ - commentId: M:numerical.NumericalService.BindService(numerical.NumericalService.NumericalServiceBase) - fullName: numerical.NumericalService.BindService(numerical.NumericalService.NumericalServiceBase) - nameWithType: NumericalService.BindService(NumericalService.NumericalServiceBase) -- uid: numerical.NumericalService.BindService* - name: BindService - href: api/numerical.NumericalService.html#numerical_NumericalService_BindService_ - commentId: Overload:numerical.NumericalService.BindService - isSpec: "True" - fullName: numerical.NumericalService.BindService - nameWithType: NumericalService.BindService -- uid: numerical.NumericalService.Descriptor - name: Descriptor - href: api/numerical.NumericalService.html#numerical_NumericalService_Descriptor - commentId: P:numerical.NumericalService.Descriptor - fullName: numerical.NumericalService.Descriptor - nameWithType: NumericalService.Descriptor -- uid: numerical.NumericalService.Descriptor* - name: Descriptor - href: api/numerical.NumericalService.html#numerical_NumericalService_Descriptor_ - commentId: Overload:numerical.NumericalService.Descriptor - isSpec: "True" - fullName: numerical.NumericalService.Descriptor - nameWithType: NumericalService.Descriptor -- uid: numerical.NumericalService.NumericalServiceBase - name: NumericalService.NumericalServiceBase - href: api/numerical.NumericalService.NumericalServiceBase.html - commentId: T:numerical.NumericalService.NumericalServiceBase - fullName: numerical.NumericalService.NumericalServiceBase - nameWithType: NumericalService.NumericalServiceBase -- uid: numerical.NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary(numerical.Empty,Grpc.Core.ServerCallContext) - name: GetNcStepGrpcCsvRowDictionary(Empty, ServerCallContext) - href: api/numerical.NumericalService.NumericalServiceBase.html#numerical_NumericalService_NumericalServiceBase_GetNcStepGrpcCsvRowDictionary_numerical_Empty_Grpc_Core_ServerCallContext_ - commentId: M:numerical.NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary(numerical.Empty,Grpc.Core.ServerCallContext) - fullName: numerical.NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary(numerical.Empty, Grpc.Core.ServerCallContext) - nameWithType: NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary(Empty, ServerCallContext) -- uid: numerical.NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary* - name: GetNcStepGrpcCsvRowDictionary - href: api/numerical.NumericalService.NumericalServiceBase.html#numerical_NumericalService_NumericalServiceBase_GetNcStepGrpcCsvRowDictionary_ - commentId: Overload:numerical.NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary - isSpec: "True" - fullName: numerical.NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary - nameWithType: NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary -- uid: numerical.NumericalService.NumericalServiceClient - name: NumericalService.NumericalServiceClient - href: api/numerical.NumericalService.NumericalServiceClient.html - commentId: T:numerical.NumericalService.NumericalServiceClient - fullName: numerical.NumericalService.NumericalServiceClient - nameWithType: NumericalService.NumericalServiceClient -- uid: numerical.NumericalService.NumericalServiceClient.#ctor - name: NumericalServiceClient() - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient__ctor - commentId: M:numerical.NumericalService.NumericalServiceClient.#ctor - name.vb: New() - fullName: numerical.NumericalService.NumericalServiceClient.NumericalServiceClient() - fullName.vb: numerical.NumericalService.NumericalServiceClient.New() - nameWithType: NumericalService.NumericalServiceClient.NumericalServiceClient() - nameWithType.vb: NumericalService.NumericalServiceClient.New() -- uid: numerical.NumericalService.NumericalServiceClient.#ctor(Grpc.Core.CallInvoker) - name: NumericalServiceClient(CallInvoker) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient__ctor_Grpc_Core_CallInvoker_ - commentId: M:numerical.NumericalService.NumericalServiceClient.#ctor(Grpc.Core.CallInvoker) - name.vb: New(CallInvoker) - fullName: numerical.NumericalService.NumericalServiceClient.NumericalServiceClient(Grpc.Core.CallInvoker) - fullName.vb: numerical.NumericalService.NumericalServiceClient.New(Grpc.Core.CallInvoker) - nameWithType: NumericalService.NumericalServiceClient.NumericalServiceClient(CallInvoker) - nameWithType.vb: NumericalService.NumericalServiceClient.New(CallInvoker) -- uid: numerical.NumericalService.NumericalServiceClient.#ctor(Grpc.Core.ChannelBase) - name: NumericalServiceClient(ChannelBase) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient__ctor_Grpc_Core_ChannelBase_ - commentId: M:numerical.NumericalService.NumericalServiceClient.#ctor(Grpc.Core.ChannelBase) - name.vb: New(ChannelBase) - fullName: numerical.NumericalService.NumericalServiceClient.NumericalServiceClient(Grpc.Core.ChannelBase) - fullName.vb: numerical.NumericalService.NumericalServiceClient.New(Grpc.Core.ChannelBase) - nameWithType: NumericalService.NumericalServiceClient.NumericalServiceClient(ChannelBase) - nameWithType.vb: NumericalService.NumericalServiceClient.New(ChannelBase) -- uid: numerical.NumericalService.NumericalServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: NumericalServiceClient(ClientBaseConfiguration) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:numerical.NumericalService.NumericalServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name.vb: New(ClientBaseConfiguration) - fullName: numerical.NumericalService.NumericalServiceClient.NumericalServiceClient(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName.vb: numerical.NumericalService.NumericalServiceClient.New(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: NumericalService.NumericalServiceClient.NumericalServiceClient(ClientBase.ClientBaseConfiguration) - nameWithType.vb: NumericalService.NumericalServiceClient.New(ClientBase.ClientBaseConfiguration) -- uid: numerical.NumericalService.NumericalServiceClient.#ctor* - name: NumericalServiceClient - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient__ctor_ - commentId: Overload:numerical.NumericalService.NumericalServiceClient.#ctor - isSpec: "True" - name.vb: New - fullName: numerical.NumericalService.NumericalServiceClient.NumericalServiceClient - fullName.vb: numerical.NumericalService.NumericalServiceClient.New - nameWithType: NumericalService.NumericalServiceClient.NumericalServiceClient - nameWithType.vb: NumericalService.NumericalServiceClient.New -- uid: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty,Grpc.Core.CallOptions) - name: GetNcStepGrpcCsvRowDictionary(Empty, CallOptions) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_GetNcStepGrpcCsvRowDictionary_numerical_Empty_Grpc_Core_CallOptions_ - commentId: M:numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty,Grpc.Core.CallOptions) - fullName: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty, Grpc.Core.CallOptions) - nameWithType: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(Empty, CallOptions) -- uid: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: GetNcStepGrpcCsvRowDictionary(Empty, Metadata, DateTime?, CancellationToken) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_GetNcStepGrpcCsvRowDictionary_numerical_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: GetNcStepGrpcCsvRowDictionary(Empty, Metadata, Date?, CancellationToken) - fullName: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(Empty, Metadata, Date?, CancellationToken) -- uid: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary* - name: GetNcStepGrpcCsvRowDictionary - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_GetNcStepGrpcCsvRowDictionary_ - commentId: Overload:numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary - isSpec: "True" - fullName: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary - nameWithType: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary -- uid: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty,Grpc.Core.CallOptions) - name: GetNcStepGrpcCsvRowDictionaryAsync(Empty, CallOptions) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_GetNcStepGrpcCsvRowDictionaryAsync_numerical_Empty_Grpc_Core_CallOptions_ - commentId: M:numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty,Grpc.Core.CallOptions) - fullName: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty, Grpc.Core.CallOptions) - nameWithType: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(Empty, CallOptions) -- uid: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: GetNcStepGrpcCsvRowDictionaryAsync(Empty, Metadata, DateTime?, CancellationToken) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_GetNcStepGrpcCsvRowDictionaryAsync_numerical_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: GetNcStepGrpcCsvRowDictionaryAsync(Empty, Metadata, Date?, CancellationToken) - fullName: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(Empty, Metadata, Date?, CancellationToken) -- uid: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync* - name: GetNcStepGrpcCsvRowDictionaryAsync - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_GetNcStepGrpcCsvRowDictionaryAsync_ - commentId: Overload:numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync - isSpec: "True" - fullName: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync - nameWithType: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync -- uid: numerical.NumericalService.NumericalServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: NewInstance(ClientBaseConfiguration) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_NewInstance_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:numerical.NumericalService.NumericalServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName: numerical.NumericalService.NumericalServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: NumericalService.NumericalServiceClient.NewInstance(ClientBase.ClientBaseConfiguration) -- uid: numerical.NumericalService.NumericalServiceClient.NewInstance* - name: NewInstance - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_NewInstance_ - commentId: Overload:numerical.NumericalService.NumericalServiceClient.NewInstance - isSpec: "True" - fullName: numerical.NumericalService.NumericalServiceClient.NewInstance - nameWithType: NumericalService.NumericalServiceClient.NewInstance -- uid: numerical.UniversalNcReflection - name: UniversalNcReflection - href: api/numerical.UniversalNcReflection.html - commentId: T:numerical.UniversalNcReflection - fullName: numerical.UniversalNcReflection - nameWithType: UniversalNcReflection -- uid: numerical.UniversalNcReflection.Descriptor - name: Descriptor - href: api/numerical.UniversalNcReflection.html#numerical_UniversalNcReflection_Descriptor - commentId: P:numerical.UniversalNcReflection.Descriptor - fullName: numerical.UniversalNcReflection.Descriptor - nameWithType: UniversalNcReflection.Descriptor -- uid: numerical.UniversalNcReflection.Descriptor* - name: Descriptor - href: api/numerical.UniversalNcReflection.html#numerical_UniversalNcReflection_Descriptor_ - commentId: Overload:numerical.UniversalNcReflection.Descriptor - isSpec: "True" - fullName: numerical.UniversalNcReflection.Descriptor - nameWithType: UniversalNcReflection.Descriptor -- uid: numerical.UniversalNcService - name: UniversalNcService - href: api/numerical.UniversalNcService.html - commentId: T:numerical.UniversalNcService - fullName: numerical.UniversalNcService - nameWithType: UniversalNcService -- uid: numerical.UniversalNcService.BindService(Grpc.Core.ServiceBinderBase,numerical.UniversalNcService.UniversalNcServiceBase) - name: BindService(ServiceBinderBase, UniversalNcServiceBase) - href: api/numerical.UniversalNcService.html#numerical_UniversalNcService_BindService_Grpc_Core_ServiceBinderBase_numerical_UniversalNcService_UniversalNcServiceBase_ - commentId: M:numerical.UniversalNcService.BindService(Grpc.Core.ServiceBinderBase,numerical.UniversalNcService.UniversalNcServiceBase) - fullName: numerical.UniversalNcService.BindService(Grpc.Core.ServiceBinderBase, numerical.UniversalNcService.UniversalNcServiceBase) - nameWithType: UniversalNcService.BindService(ServiceBinderBase, UniversalNcService.UniversalNcServiceBase) -- uid: numerical.UniversalNcService.BindService(numerical.UniversalNcService.UniversalNcServiceBase) - name: BindService(UniversalNcServiceBase) - href: api/numerical.UniversalNcService.html#numerical_UniversalNcService_BindService_numerical_UniversalNcService_UniversalNcServiceBase_ - commentId: M:numerical.UniversalNcService.BindService(numerical.UniversalNcService.UniversalNcServiceBase) - fullName: numerical.UniversalNcService.BindService(numerical.UniversalNcService.UniversalNcServiceBase) - nameWithType: UniversalNcService.BindService(UniversalNcService.UniversalNcServiceBase) -- uid: numerical.UniversalNcService.BindService* - name: BindService - href: api/numerical.UniversalNcService.html#numerical_UniversalNcService_BindService_ - commentId: Overload:numerical.UniversalNcService.BindService - isSpec: "True" - fullName: numerical.UniversalNcService.BindService - nameWithType: UniversalNcService.BindService -- uid: numerical.UniversalNcService.Descriptor - name: Descriptor - href: api/numerical.UniversalNcService.html#numerical_UniversalNcService_Descriptor - commentId: P:numerical.UniversalNcService.Descriptor - fullName: numerical.UniversalNcService.Descriptor - nameWithType: UniversalNcService.Descriptor -- uid: numerical.UniversalNcService.Descriptor* - name: Descriptor - href: api/numerical.UniversalNcService.html#numerical_UniversalNcService_Descriptor_ - commentId: Overload:numerical.UniversalNcService.Descriptor - isSpec: "True" - fullName: numerical.UniversalNcService.Descriptor - nameWithType: UniversalNcService.Descriptor -- uid: numerical.UniversalNcService.UniversalNcServiceBase - name: UniversalNcService.UniversalNcServiceBase - href: api/numerical.UniversalNcService.UniversalNcServiceBase.html - commentId: T:numerical.UniversalNcService.UniversalNcServiceBase - fullName: numerical.UniversalNcService.UniversalNcServiceBase - nameWithType: UniversalNcService.UniversalNcServiceBase -- uid: numerical.UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep,Grpc.Core.ServerCallContext) - name: GetNcStepGrpcCsvRowDictionary(GrpcNcStep, ServerCallContext) - href: api/numerical.UniversalNcService.UniversalNcServiceBase.html#numerical_UniversalNcService_UniversalNcServiceBase_GetNcStepGrpcCsvRowDictionary_numerical_GrpcNcStep_Grpc_Core_ServerCallContext_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep,Grpc.Core.ServerCallContext) - fullName: numerical.UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep, Grpc.Core.ServerCallContext) - nameWithType: UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary(GrpcNcStep, ServerCallContext) -- uid: numerical.UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary* - name: GetNcStepGrpcCsvRowDictionary - href: api/numerical.UniversalNcService.UniversalNcServiceBase.html#numerical_UniversalNcService_UniversalNcServiceBase_GetNcStepGrpcCsvRowDictionary_ - commentId: Overload:numerical.UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary - isSpec: "True" - fullName: numerical.UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary - nameWithType: UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary -- uid: numerical.UniversalNcService.UniversalNcServiceClient - name: UniversalNcService.UniversalNcServiceClient - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html - commentId: T:numerical.UniversalNcService.UniversalNcServiceClient - fullName: numerical.UniversalNcService.UniversalNcServiceClient - nameWithType: UniversalNcService.UniversalNcServiceClient -- uid: numerical.UniversalNcService.UniversalNcServiceClient.#ctor - name: UniversalNcServiceClient() - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient__ctor - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.#ctor - name.vb: New() - fullName: numerical.UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient() - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.New() - nameWithType: UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient() - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.New() -- uid: numerical.UniversalNcService.UniversalNcServiceClient.#ctor(Grpc.Core.CallInvoker) - name: UniversalNcServiceClient(CallInvoker) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient__ctor_Grpc_Core_CallInvoker_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.#ctor(Grpc.Core.CallInvoker) - name.vb: New(CallInvoker) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient(Grpc.Core.CallInvoker) - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.New(Grpc.Core.CallInvoker) - nameWithType: UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient(CallInvoker) - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.New(CallInvoker) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.#ctor(Grpc.Core.ChannelBase) - name: UniversalNcServiceClient(ChannelBase) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient__ctor_Grpc_Core_ChannelBase_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.#ctor(Grpc.Core.ChannelBase) - name.vb: New(ChannelBase) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient(Grpc.Core.ChannelBase) - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.New(Grpc.Core.ChannelBase) - nameWithType: UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient(ChannelBase) - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.New(ChannelBase) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: UniversalNcServiceClient(ClientBaseConfiguration) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name.vb: New(ClientBaseConfiguration) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.New(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient(ClientBase.ClientBaseConfiguration) - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.New(ClientBase.ClientBaseConfiguration) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.#ctor* - name: UniversalNcServiceClient - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient__ctor_ - commentId: Overload:numerical.UniversalNcService.UniversalNcServiceClient.#ctor - isSpec: "True" - name.vb: New - fullName: numerical.UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.New - nameWithType: UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.New -- uid: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep,Grpc.Core.CallOptions) - name: GetNcStepGrpcCsvRowDictionary(GrpcNcStep, CallOptions) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_GetNcStepGrpcCsvRowDictionary_numerical_GrpcNcStep_Grpc_Core_CallOptions_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep,Grpc.Core.CallOptions) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep, Grpc.Core.CallOptions) - nameWithType: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(GrpcNcStep, CallOptions) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: GetNcStepGrpcCsvRowDictionary(GrpcNcStep, Metadata, DateTime?, CancellationToken) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_GetNcStepGrpcCsvRowDictionary_numerical_GrpcNcStep_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: GetNcStepGrpcCsvRowDictionary(GrpcNcStep, Metadata, Date?, CancellationToken) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(GrpcNcStep, Metadata, DateTime?, CancellationToken) - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(GrpcNcStep, Metadata, Date?, CancellationToken) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary* - name: GetNcStepGrpcCsvRowDictionary - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_GetNcStepGrpcCsvRowDictionary_ - commentId: Overload:numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary - isSpec: "True" - fullName: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary - nameWithType: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary -- uid: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep,Grpc.Core.CallOptions) - name: GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, CallOptions) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_GetNcStepGrpcCsvRowDictionaryAsync_numerical_GrpcNcStep_Grpc_Core_CallOptions_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep,Grpc.Core.CallOptions) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep, Grpc.Core.CallOptions) - nameWithType: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, CallOptions) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, Metadata, DateTime?, CancellationToken) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_GetNcStepGrpcCsvRowDictionaryAsync_numerical_GrpcNcStep_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, Metadata, Date?, CancellationToken) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, Metadata, DateTime?, CancellationToken) - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, Metadata, Date?, CancellationToken) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync* - name: GetNcStepGrpcCsvRowDictionaryAsync - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_GetNcStepGrpcCsvRowDictionaryAsync_ - commentId: Overload:numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync - isSpec: "True" - fullName: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync - nameWithType: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync -- uid: numerical.UniversalNcService.UniversalNcServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: NewInstance(ClientBaseConfiguration) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_NewInstance_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: UniversalNcService.UniversalNcServiceClient.NewInstance(ClientBase.ClientBaseConfiguration) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.NewInstance* - name: NewInstance - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_NewInstance_ - commentId: Overload:numerical.UniversalNcService.UniversalNcServiceClient.NewInstance - isSpec: "True" - fullName: numerical.UniversalNcService.UniversalNcServiceClient.NewInstance - nameWithType: UniversalNcService.UniversalNcServiceClient.NewInstance diff --git a/App/zh-Hans/HiMech.resources.dll b/App/zh-Hans/HiMech.resources.dll index 90ded7f8..d696dc97 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 cf379088..cd317890 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 885cb600..9381a4cd 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 70cbc45d..d4c9bdd4 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 a1221ffa..b3f03246 100644 Binary files a/App/zh-Hant/HiNc.resources.dll and b/App/zh-Hant/HiNc.resources.dll differ